1 | CC = gcc |
---|
2 | CXX = g++ |
---|
3 | |
---|
4 | MPICC = mpicc |
---|
5 | MPICXX = mpicxx |
---|
6 | |
---|
7 | all: fe-progs mpi-progs |
---|
8 | sql: fe-sqlite |
---|
9 | |
---|
10 | FEDIR = frontend |
---|
11 | FE_CFLAGS := -g -fPIC -O3 -fopenmp |
---|
12 | FE_CPPFLAGS := -Ithirdparty/blosc -Ithirdparty/sqlite -DGENERICIO_NO_MPI |
---|
13 | |
---|
14 | MPIDIR = mpi |
---|
15 | MPI_CFLAGS := -g -O3 |
---|
16 | MPI_CPPFLAGS := -Ithirdparty/blosc |
---|
17 | |
---|
18 | $(FEDIR): |
---|
19 | mkdir -p $(FEDIR) |
---|
20 | |
---|
21 | $(FEDIR)/%.o: thirdparty/blosc/%.c | $(FEDIR) |
---|
22 | $(CC) $(FE_CFLAGS) $(FE_CPPFLAGS) -c -o $@ $< |
---|
23 | |
---|
24 | $(FEDIR)/%.o: %.cxx | $(FEDIR) |
---|
25 | $(CXX) $(FE_CFLAGS) $(FE_CPPFLAGS) -c -o $@ $< |
---|
26 | |
---|
27 | $(FEDIR)/GenericIOPrint: $(FEDIR)/GenericIOPrint.o $(FEDIR)/GenericIO.o $(FEDIR)/blosc.o $(FEDIR)/blosclz.o $(FEDIR)/shuffle.o |
---|
28 | $(CXX) $(FE_CFLAGS) -o $@ $^ |
---|
29 | |
---|
30 | $(FEDIR)/GenericIOVerify: $(FEDIR)/GenericIOVerify.o $(FEDIR)/GenericIO.o $(FEDIR)/blosc.o $(FEDIR)/blosclz.o $(FEDIR)/shuffle.o |
---|
31 | $(CXX) $(FE_CFLAGS) -o $@ $^ |
---|
32 | |
---|
33 | FE_UNAME := $(shell uname -s) |
---|
34 | ifeq ($(FE_UNAME),Darwin) |
---|
35 | FE_SHARED := -bundle |
---|
36 | else |
---|
37 | FE_SHARED := -shared |
---|
38 | endif |
---|
39 | $(FEDIR)/GenericIOSQLite.so: $(FEDIR)/GenericIOSQLite.o $(FEDIR)/GenericIO.o |
---|
40 | $(CXX) $(FE_CFLAGS) $(FE_SHARED) -o $@ $^ |
---|
41 | |
---|
42 | SQLITE_CPPFLAGS := -DSQLITE_ENABLE_COLUMN_METADATA=1 -DSQLITE_DISABLE_DIRSYNC=1 -DSQLITE_ENABLE_FTS3=3 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_UNLOCK_NOTIFY=1 -DSQLITE_ENABLE_LOAD_EXTENSION=1 -DHAVE_READLINE=1 |
---|
43 | |
---|
44 | $(FEDIR)/sqbuild: |
---|
45 | mkdir -p $(FEDIR)/sqbuild |
---|
46 | |
---|
47 | $(FEDIR)/sqbuild/%.o: thirdparty/sqlite/%.c | $(FEDIR)/sqbuild |
---|
48 | $(CC) $(FE_CFLAGS) $(FE_CPPFLAGS) $(SQLITE_CPPFLAGS) -c -o $@ $< |
---|
49 | |
---|
50 | $(FEDIR)/sqlite3: $(FEDIR)/sqbuild/sqlite3.o $(FEDIR)/sqbuild/shell.o |
---|
51 | $(CC) $(FE_CFLAGS) -o $@ $^ -pthread -lreadline -lrt -ldl |
---|
52 | |
---|
53 | $(MPIDIR): |
---|
54 | mkdir -p $(MPIDIR) |
---|
55 | |
---|
56 | $(MPIDIR)/%.o: thirdparty/blosc/%.c | $(MPIDIR) |
---|
57 | $(MPICC) $(MPI_CFLAGS) $(MPI_CPPFLAGS) -c -o $@ $< |
---|
58 | |
---|
59 | $(MPIDIR)/%.o: %.cxx | $(MPIDIR) |
---|
60 | $(MPICXX) $(MPI_CFLAGS) $(MPI_CPPFLAGS) -c -o $@ $< |
---|
61 | |
---|
62 | $(MPIDIR)/GenericIOPrint: $(MPIDIR)/GenericIOPrint.o $(MPIDIR)/GenericIO.o $(MPIDIR)/blosc.o $(MPIDIR)/blosclz.o $(MPIDIR)/shuffle.o |
---|
63 | $(MPICXX) $(MPI_CFLAGS) -o $@ $^ |
---|
64 | |
---|
65 | $(MPIDIR)/GenericIOVerify: $(MPIDIR)/GenericIOVerify.o $(MPIDIR)/GenericIO.o $(MPIDIR)/blosc.o $(MPIDIR)/blosclz.o $(MPIDIR)/shuffle.o |
---|
66 | $(MPICXX) $(MPI_CFLAGS) -o $@ $^ |
---|
67 | |
---|
68 | frontend-progs: $(FEDIR)/GenericIOPrint $(FEDIR)/GenericIOVerify |
---|
69 | fe-progs: frontend-progs |
---|
70 | |
---|
71 | mpi-progs: $(MPIDIR)/GenericIOPrint $(MPIDIR)/GenericIOVerify |
---|
72 | |
---|
73 | frontend-sqlite: $(FEDIR)/GenericIOSQLite.so $(FEDIR)/sqlite3 |
---|
74 | fe-sqlite: frontend-sqlite |
---|
75 | |
---|
76 | clean: |
---|
77 | rm -rf frontend mpi |
---|
78 | |
---|