-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMakefile
executable file
·66 lines (47 loc) · 1.99 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Compiler
#CC=clang
#CXX=clang++
#AR=ar
#LD=clang++
DYN_SUFFIX=.dylib
DYN_OPT=-dynamiclib -install_name $(LIBnuSQUIDS)/$(DYN_PRODUCT) -compatibility_version $(VERSION) -current_version $(VERSION)
VERSION=1.0.0
#PREFIX=/usr/local
#PATH_nuSQUIDS=$(shell pwd)
PATH_nuSQUIDS=/usr/local
PATH_SQUIDS=$(SQUIDS_DIR)
MAINS_SRC=$(wildcard mains/*.cpp)
MAINS=$(patsubst mains/%.cpp,bin/%.exe,$(MAINS_SRC))
#$(EXAMPLES_SRC:.cpp=.exe)
CXXFLAGS= -g -std=c++11 -I./inc -I${PREFIX}/include
CXXFLAGS+=-I${SROOT}/include
LDFLAGS+=-L${SROOT}/lib
LDFLAGS+=-L${SROOT}/lib64
# Directories
GSL_CFLAGS=-I/usr/local/Cellar/gsl/1.16/include
GSL_LDFLAGS=-L/usr/local/Cellar/gsl/1.16/lib -lgsl -lgslcblas -lm
HDF5_CFLAGS=-I/usr/local/Cellar/hdf5/1.8.15//include
#HDF5_LDFLAGS=-L/usr/local/Cellar/hdf5/1.8.15/lib -L/usr/local/opt/szip/lib -lhdf5_hl -lhdf5 -lsz -lz -ldl -lm
HDF5_LDFLAGS=-L/usr/local/Cellar/hdf5/1.8.15/lib -L/usr/local/opt/szip/lib -lhdf5_hl -lhdf5 -lz -ldl -lm
SQUIDS_CFLAGS=-I/usr/local/include -I/usr/local/Cellar/gsl/1.16/include
SQUIDS_LDFLAGS=-L/usr/local/lib -L/usr/local/Cellar/gsl/1.16/lib -lSQuIDS -lgsl -lgslcblas -lm
PHYSTOOLS_LDFLAGS=-lPhysTools
INCnuSQUIDS=$(PATH_nuSQUIDS)/inc
LIBnuSQUIDS=$(PATH_nuSQUIDS)/lib
# FLAGS
CFLAGS= -O3 -fPIC -I$(INCnuSQUIDS) $(SQUIDS_CFLAGS) $(GSL_CFLAGS) $(HDF5_CFLAGS)
LDFLAGS+= -Wl,-rpath -Wl,$(LIBnuSQUIDS) -L$(LIBnuSQUIDS) -L${PREFIX}/lib # -lsupc++
LDFLAGS+= $(SQUIDS_LDFLAGS) $(GSL_LDFLAGS) $(HDF5_LDFLAGS) $(PHYSTOOLS_LDFLAGS)
# Compilation rules
all: $(MAINS)
bin/%.exe : mains/%.cpp mains/%.o mains/lbfgsb.o mains/linpack.o
$(CXX) $(CXXFLAGS) $(CFLAGS) $< mains/lbfgsb.o mains/linpack.o $(LDFLAGS) -lnuSQuIDS -o $@
%.o : %.cpp
$(CXX) $(CXXFLAGS) -c $(CFLAGS) $< -o $@
mains/lbfgsb.o : ./inc/lbfgsb/lbfgsb.h ./inc/lbfgsb/lbfgsb.c
$(CC) $(CFLAGS) -std=c99 ./inc/lbfgsb/lbfgsb.c -c -o ./mains/lbfgsb.o
mains/linpack.o : ./inc/lbfgsb/linpack.c
$(CC) $(CFLAGS) -std=c99 ./inc/lbfgsb/linpack.c -c -o ./mains/linpack.o
.PHONY: clean
clean:
rm -rf ./mains/*.exe ./bin/* ./mains/*.o