source: GNUmakefile @ 6461f57

Revision 6461f57, 9.8 KB checked in by Hal Finkel <hfinkel@…>, 6 years ago (diff)

start working on sz intrgration

  • Property mode set to 100644
Line 
1#                    Copyright (C) 2015, UChicago Argonne, LLC
2#                               All Rights Reserved
3#
4#                               Generic IO (ANL-15-066)
5#                     Hal Finkel, Argonne National Laboratory
6#
7#                              OPEN SOURCE LICENSE
8#
9# Under the terms of Contract No. DE-AC02-06CH11357 with UChicago Argonne,
10# LLC, the U.S. Government retains certain rights in this software.
11#
12# Redistribution and use in source and binary forms, with or without
13# modification, are permitted provided that the following conditions are met:
14#
15#   1. Redistributions of source code must retain the above copyright notice,
16#      this list of conditions and the following disclaimer.
17#
18#   2. Redistributions in binary form must reproduce the above copyright
19#      notice, this list of conditions and the following disclaimer in the
20#      documentation and/or other materials provided with the distribution.
21#
22#   3. Neither the names of UChicago Argonne, LLC or the Department of Energy
23#      nor the names of its contributors may be used to endorse or promote
24#      products derived from this software without specific prior written
25#      permission.
26#
27# *****************************************************************************
28#
29#                                  DISCLAIMER
30# THE SOFTWARE IS SUPPLIED “AS IS” WITHOUT WARRANTY OF ANY KIND.  NEITHER THE
31# UNTED STATES GOVERNMENT, NOR THE UNITED STATES DEPARTMENT OF ENERGY, NOR
32# UCHICAGO ARGONNE, LLC, NOR ANY OF THEIR EMPLOYEES, MAKES ANY WARRANTY,
33# EXPRESS OR IMPLIED, OR ASSUMES ANY LEGAL LIABILITY OR RESPONSIBILITY FOR THE
34# ACCURACY, COMPLETENESS, OR USEFULNESS OF ANY INFORMATION, DATA, APPARATUS,
35# PRODUCT, OR PROCESS DISCLOSED, OR REPRESENTS THAT ITS USE WOULD NOT INFRINGE
36# PRIVATELY OWNED RIGHTS.
37#
38# *****************************************************************************
39
40CC = gcc
41CXX = g++
42
43MPICC = mpicc
44MPICXX = mpicxx
45
46all: fe-progs mpi-progs
47sql: fe-sqlite
48
49BLOSC_CPPFLAGS := \
50        -Ithirdparty/blosc \
51        -DHAVE_LZ4 -DHAVE_SNAPPY -DHAVE_ZLIB -DHAVE_ZSTD \
52        -Ithirdparty/blosc/internal-complibs/zlib-1.2.8 \
53        -Ithirdparty/blosc/internal-complibs/lz4-1.7.2 \
54        -Ithirdparty/blosc/internal-complibs/snappy-1.1.1 \
55        -Ithirdparty/blosc/internal-complibs/zstd-0.7.4 \
56        -Ithirdparty/blosc/internal-complibs/zstd-0.7.4/legacy \
57        -Ithirdparty/blosc/internal-complibs/zstd-0.7.4/compress \
58        -Ithirdparty/blosc/internal-complibs/zstd-0.7.4/common \
59        -Ithirdparty/blosc/internal-complibs/zstd-0.7.4/dictBuilder \
60        -Ithirdparty/blosc/internal-complibs/zstd-0.7.4/decompress \
61        -Ithirdparty/SZ/sz/include
62
63BASE_CPPFLAGS := $(BLOSC_CPPFLAGS) -I. -D__STDC_CONSTANT_MACROS
64
65FEDIR = frontend
66FE_CFLAGS := -g -fPIC -O3 -fopenmp
67FE_CPPFLAGS := $(BASE_CPPFLAGS) -Ithirdparty/sqlite -DGENERICIO_NO_MPI
68
69MPIDIR = mpi
70MPI_CFLAGS := -g -O3 -fopenmp
71MPI_CPPFLAGS := $(BASE_CPPFLAGS)
72
73$(FEDIR):
74        mkdir -p $(FEDIR)
75
76$(FEDIR)/%.o: %.c | $(FEDIR)
77        mkdir -p $(dir $@)
78        $(CC) $(FE_CFLAGS) $(FE_CPPFLAGS) -c -o $@ $<
79
80$(FEDIR)/%.o: %.cxx | $(FEDIR)
81        mkdir -p $(dir $@)
82        $(CXX) $(FE_CFLAGS) $(FE_CPPFLAGS) -c -o $@ $<
83
84BLOSC_O := \
85        thirdparty/blosc/blosc.o \
86        thirdparty/blosc/blosclz.o \
87        thirdparty/blosc/shuffle.o \
88        thirdparty/blosc/bitshuffle-generic.o \
89        thirdparty/blosc/shuffle-generic.o \
90        thirdparty/blosc/internal-complibs/zlib-1.2.8/gzwrite.o \
91        thirdparty/blosc/internal-complibs/zlib-1.2.8/crc32.o \
92        thirdparty/blosc/internal-complibs/zlib-1.2.8/inffast.o \
93        thirdparty/blosc/internal-complibs/zlib-1.2.8/zutil.o \
94        thirdparty/blosc/internal-complibs/zlib-1.2.8/infback.o \
95        thirdparty/blosc/internal-complibs/zlib-1.2.8/deflate.o \
96        thirdparty/blosc/internal-complibs/zlib-1.2.8/inflate.o \
97        thirdparty/blosc/internal-complibs/zlib-1.2.8/gzread.o \
98        thirdparty/blosc/internal-complibs/zlib-1.2.8/gzlib.o \
99        thirdparty/blosc/internal-complibs/zlib-1.2.8/gzclose.o \
100        thirdparty/blosc/internal-complibs/zlib-1.2.8/uncompr.o \
101        thirdparty/blosc/internal-complibs/zlib-1.2.8/compress.o \
102        thirdparty/blosc/internal-complibs/zlib-1.2.8/inftrees.o \
103        thirdparty/blosc/internal-complibs/zlib-1.2.8/trees.o \
104        thirdparty/blosc/internal-complibs/zlib-1.2.8/adler32.o \
105        thirdparty/blosc/internal-complibs/lz4-1.7.2/lz4.o \
106        thirdparty/blosc/internal-complibs/lz4-1.7.2/lz4hc.o \
107        thirdparty/blosc/internal-complibs/zstd-0.7.4/legacy/zstd_v01.o \
108        thirdparty/blosc/internal-complibs/zstd-0.7.4/legacy/zstd_v02.o \
109        thirdparty/blosc/internal-complibs/zstd-0.7.4/legacy/zstd_v03.o \
110        thirdparty/blosc/internal-complibs/zstd-0.7.4/legacy/zstd_v06.o \
111        thirdparty/blosc/internal-complibs/zstd-0.7.4/legacy/zstd_v04.o \
112        thirdparty/blosc/internal-complibs/zstd-0.7.4/legacy/zstd_v05.o \
113        thirdparty/blosc/internal-complibs/zstd-0.7.4/compress/fse_compress.o \
114        thirdparty/blosc/internal-complibs/zstd-0.7.4/compress/zstd_compress.o \
115        thirdparty/blosc/internal-complibs/zstd-0.7.4/compress/huf_compress.o \
116        thirdparty/blosc/internal-complibs/zstd-0.7.4/compress/zbuff_compress.o \
117        thirdparty/blosc/internal-complibs/zstd-0.7.4/common/entropy_common.o \
118        thirdparty/blosc/internal-complibs/zstd-0.7.4/common/xxhash.o \
119        thirdparty/blosc/internal-complibs/zstd-0.7.4/common/zstd_common.o \
120        thirdparty/blosc/internal-complibs/zstd-0.7.4/common/fse_decompress.o \
121        thirdparty/blosc/internal-complibs/zstd-0.7.4/dictBuilder/zdict.o \
122        thirdparty/blosc/internal-complibs/zstd-0.7.4/dictBuilder/divsufsort.o \
123        thirdparty/blosc/internal-complibs/zstd-0.7.4/decompress/zstd_decompress.o \
124        thirdparty/blosc/internal-complibs/zstd-0.7.4/decompress/huf_decompress.o \
125        thirdparty/blosc/internal-complibs/zstd-0.7.4/decompress/zbuff_decompress.o \
126        thirdparty/blosc/internal-complibs/snappy-1.1.1/snappy-c.o \
127        thirdparty/blosc/internal-complibs/snappy-1.1.1/snappy.o \
128        thirdparty/blosc/internal-complibs/snappy-1.1.1/snappy-sinksource.o \
129        thirdparty/blosc/internal-complibs/snappy-1.1.1/snappy-stubs-internal.o \
130        thirdparty/SZ/sz/src/ByteToolkit.o \
131        thirdparty/SZ/sz/src/dataCompression.o \
132        thirdparty/SZ/sz/src/DynamicIntArray.o \
133        thirdparty/SZ/sz/src/iniparser.o \
134        thirdparty/SZ/sz/src/CompressElement.o \
135        thirdparty/SZ/sz/src/DynamicByteArray.o \
136        thirdparty/SZ/sz/src/rw.o \
137        thirdparty/SZ/sz/src/TightDataPointStorageI.o \
138        thirdparty/SZ/sz/src/TightDataPointStorageD.o \
139        thirdparty/SZ/sz/src/TightDataPointStorageF.o \
140        thirdparty/SZ/sz/src/conf.o \
141        thirdparty/SZ/sz/src/DynamicDoubleArray.o \
142        thirdparty/SZ/sz/src/TypeManager.o \
143        thirdparty/SZ/sz/src/dictionary.o \
144        thirdparty/SZ/sz/src/DynamicFloatArray.o \
145        thirdparty/SZ/sz/src/VarSet.o \
146        thirdparty/SZ/sz/src/callZlib.o \
147        thirdparty/SZ/sz/src/Huffman.o \
148        thirdparty/SZ/sz/src/sz_float.o \
149        thirdparty/SZ/sz/src/sz_double.o \
150        thirdparty/SZ/sz/src/sz_int8.o \
151        thirdparty/SZ/sz/src/sz_int16.o \
152        thirdparty/SZ/sz/src/sz_int32.o \
153        thirdparty/SZ/sz/src/sz_int64.o \
154        thirdparty/SZ/sz/src/sz_uint8.o \
155        thirdparty/SZ/sz/src/sz_uint16.o \
156        thirdparty/SZ/sz/src/sz_uint32.o \
157        thirdparty/SZ/sz/src/sz_uint64.o \
158        thirdparty/SZ/sz/src/szd_uint8.o \
159        thirdparty/SZ/sz/src/szd_uint16.o \
160        thirdparty/SZ/sz/src/szd_uint32.o \
161        thirdparty/SZ/sz/src/szd_uint64.o \
162        thirdparty/SZ/sz/src/szd_float.o \
163        thirdparty/SZ/sz/src/szd_double.o \
164        thirdparty/SZ/sz/src/szd_int8.o \
165        thirdparty/SZ/sz/src/szd_int16.o \
166        thirdparty/SZ/sz/src/szd_int32.o \
167        thirdparty/SZ/sz/src/szd_int64.o \
168        thirdparty/SZ/sz/src/sz.o \
169        thirdparty/SZ/sz/src/sz_float_pwr.o \
170        thirdparty/SZ/sz/src/sz_double_pwr.o \
171        thirdparty/SZ/sz/src/szd_float_pwr.o \
172        thirdparty/SZ/sz/src/szd_double_pwr.o
173
174FE_BLOSC_O := $(addprefix $(FEDIR)/,$(BLOSC_O))
175
176$(FEDIR)/GenericIOPrint: $(FEDIR)/GenericIOPrint.o $(FEDIR)/GenericIO.o $(FE_BLOSC_O)
177        $(CXX) $(FE_CFLAGS) -o $@ $^
178
179$(FEDIR)/GenericIOVerify: $(FEDIR)/GenericIOVerify.o $(FEDIR)/GenericIO.o $(FE_BLOSC_O)
180        $(CXX) $(FE_CFLAGS) -o $@ $^
181
182FE_UNAME := $(shell uname -s)
183ifeq ($(FE_UNAME),Darwin)
184FE_SHARED := -bundle
185else
186FE_SHARED := -shared
187endif
188
189$(FEDIR)/libpygio.so: $(FEDIR)/GenericIO.o $(FEDIR)/python/lib/gio.o $(FE_BLOSC_O)
190        $(CXX) $(FE_CFLAGS) $(FE_SHARED) -o $@ $^
191
192$(FEDIR)/GenericIOSQLite.so: $(FEDIR)/GenericIOSQLite.o $(FEDIR)/GenericIO.o $(FE_BLOSC_O)
193        $(CXX) $(FE_CFLAGS) $(FE_SHARED) -o $@ $^
194
195SQLITE_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
196
197$(FEDIR)/sqbuild:
198        mkdir -p $(FEDIR)/sqbuild
199
200$(FEDIR)/sqbuild/%.o: thirdparty/sqlite/%.c | $(FEDIR)/sqbuild
201        $(CC) $(FE_CFLAGS) $(FE_CPPFLAGS) $(SQLITE_CPPFLAGS) -c -o $@ $<
202
203$(FEDIR)/sqlite3: $(FEDIR)/sqbuild/sqlite3.o $(FEDIR)/sqbuild/shell.o
204        $(CC) $(FE_CFLAGS) -o $@ $^ -pthread -lreadline -lrt -ldl
205
206$(MPIDIR):
207        mkdir -p $(MPIDIR)
208
209$(MPIDIR)/%.o: %.c | $(MPIDIR)
210        mkdir -p $(dir $@)
211        $(MPICC) $(MPI_CFLAGS) $(MPI_CPPFLAGS) -c -o $@ $<
212
213$(MPIDIR)/%.o: %.cxx | $(MPIDIR)
214        mkdir -p $(dir $@)
215        $(MPICXX) $(MPI_CFLAGS) $(MPI_CPPFLAGS) -c -o $@ $<
216
217MPI_BLOSC_O := $(addprefix $(MPIDIR)/,$(BLOSC_O))
218
219$(MPIDIR)/GenericIOPrint: $(MPIDIR)/GenericIOPrint.o $(MPIDIR)/GenericIO.o $(MPI_BLOSC_O)
220        $(MPICXX) $(MPI_CFLAGS) -o $@ $^
221
222$(MPIDIR)/GenericIOVerify: $(MPIDIR)/GenericIOVerify.o $(MPIDIR)/GenericIO.o $(MPI_BLOSC_O)
223        $(MPICXX) $(MPI_CFLAGS) -o $@ $^
224
225$(MPIDIR)/GenericIOBenchmarkRead: $(MPIDIR)/GenericIOBenchmarkRead.o $(MPIDIR)/GenericIO.o $(MPI_BLOSC_O)
226        $(MPICXX) $(MPI_CFLAGS) -o $@ $^
227
228$(MPIDIR)/GenericIOBenchmarkWrite: $(MPIDIR)/GenericIOBenchmarkWrite.o $(MPIDIR)/GenericIO.o $(MPI_BLOSC_O)
229        $(MPICXX) $(MPI_CFLAGS) -o $@ $^
230
231$(MPIDIR)/GenericIORewrite: $(MPIDIR)/GenericIORewrite.o $(MPIDIR)/GenericIO.o $(MPI_BLOSC_O)
232        $(MPICXX) $(MPI_CFLAGS) -o $@ $^
233
234frontend-progs: $(FEDIR)/GenericIOPrint $(FEDIR)/GenericIOVerify $(FEDIR)/libpygio.so
235fe-progs: frontend-progs
236
237mpi-progs: $(MPIDIR)/GenericIOPrint $(MPIDIR)/GenericIOVerify $(MPIDIR)/GenericIOBenchmarkRead $(MPIDIR)/GenericIOBenchmarkWrite $(MPIDIR)/GenericIORewrite
238
239frontend-sqlite: $(FEDIR)/GenericIOSQLite.so $(FEDIR)/sqlite3
240fe-sqlite: frontend-sqlite
241
242clean:
243        rm -rf frontend mpi python/genericio.pyc
244
Note: See TracBrowser for help on using the repository browser.