ssm
Version:
Inference for State Space Model (SSM)
64 lines (46 loc) • 2.34 kB
Plain Text
CC=gcc #clang -ferror-limit=2
CFLAGS= -std=gnu99 -Wall -O3 -DGSL_RANGE_CHECK_OFF -I kalman -I pmcmc -I simul -I mif -I simplex -I core
LIB=libssm.a libssmsmc.a libssmsimplex.a libssmmif.a libssmpmcmc.a libssmkalman.a libssmksimplex.a libssmkmcmc.a libssmsimul.a libssmworker.a
ALL_SRC= $(wildcard */*.c)
ALL_SRC_NO_TEMPLATE=$(filter-out templates/input_template.c templates/transform_template.c templates/check_IC_template.c templates/iterator_template.c templates/observed_template.c templates/diff_template.c templates/ode_sde_template.c templates/psr_template.c templates/jac_template.c templates/Ht_template.c templates/Q_template.c templates/step_ekf_template.c, $(ALL_SRC))
SRC=$(filter-out smc/main_smc.c simplex/main_simplex.c mif/main_mif.c worker/main_worker.c pmcmc/main_pmcmc.c kalman/main_kalman.c kalman/main_kmcmc.c kalman/main_ksimplex.c simul/main_simul.c, $(ALL_SRC_NO_TEMPLATE))
INCLUDES=$(wildcard */*.h)
OBJ= $(SRC:.c=.o)
ALL_OBJ= $(ALL_SRC_NO_TEMPLATE:.c=.o)
#http://stackoverflow.com/questions/4598001/how-do-you-find-the-original-user-through-multiple-sudo-and-su-commands
MY_SAFE_USER = $(shell logname)
#http://stackoverflow.com/questions/7358611/bash-get-users-home-directory-when-they-run-a-script-as-root
USER_HOME=$(shell eval echo ~$${MY_SAFE_USER})
PREFIX=$(USER_HOME)/.ssm
all: $(LIB)
libssm.a: $(OBJ)
ar -rcs $@ $(OBJ)
%.o: %.c $(INCLUDES)
$(CC) $(CFLAGS) -o $@ -c $<
libssmsmc.a: smc/main_smc.o
ar -rcs $@ $^
libssmsimplex.a: simplex/main_simplex.o
ar -rcs $@ $^
libssmmif.a: mif/main_mif.o
ar -rcs $@ $^
libssmpmcmc.a: pmcmc/main_pmcmc.o
ar -rcs $@ $^
libssmkalman.a: kalman/main_kalman.o
ar -rcs $@ $^
libssmksimplex.a: kalman/main_ksimplex.o
ar -rcs $@ $^
libssmkmcmc.a: kalman/main_kmcmc.o
ar -rcs $@ $^
libssmsimul.a: simul/main_simul.o
ar -rcs $@ $^
libssmworker.a: worker/main_worker.o
ar -rcs $@ $^
install:
test -d $(PREFIX)/lib || mkdir -p $(PREFIX)/lib; cp $(LIB) $(PREFIX)/lib/; \
test -d $(PREFIX)/include || mkdir -p $(PREFIX)/include; cp $(INCLUDES) $(PREFIX)/include/
clean:
rm $(ALL_OBJ); \
rm $(LIB)
uninstall:
rm $(PREFIX)/{lib/libssm.a,lib/libssmsmc.a,lib/libssmsimplex.a,lib/libssmmif.a,lib/libssmpmcmc.a,lib/libssmkalman.a,lib/libssmksimplex.a,lib/libssmkmcmc.a,lib/libssmsimul.a,lib/libssmworker.a,include/ssm.h}