1all: library all_samples
2
3#CFLAGS=-arch i386 -arch x86_64 -O3  -I. -w
4CFLAGS=-arch x86_64 -fPIC -mfpmath=sse -msse4.2 -ffunction-sections -fdata-sections -ffast-math -fvisibility=hidden -fvisibility-inlines-hidden -fnon-call-exceptions -O3 -I. -w
5CC=clang
6CXX=clang++
7
8# OpenMP support
9#CFLAGS+=-fopenmp
10
11# RawSpeed Support
12#CFLAGS+=-pthread -DUSE_RAWSPEED -I../RawSpeed -I/usr/local/include/libxml2
13#LDADD+=-L../RawSpeed/RawSpeed -lrawspeed -L/usr/local/lib -ljpeg -lxml2
14#RAWSPEED_DATA=../RawSpeed/data/cameras.xml
15
16# DNG SDK Support
17# CFLAGS+=-DUSE_DNGSDK -I../dng_sdk/source
18# LDADDD+=-L../dng_sdk/release -ldng -lXMPCore -ljpeg -lz
19
20# Jasper support for RedCine
21#CFLAGS+=-DUSE_JASPER -I/usr/local/include
22#LDADD+=-L/usr/local/lib -ljasper
23
24# JPEG support for lossy DNG
25#CFLAGS+=-DUSE_JPEG -I/usr/local/include
26#LDADD+=-L/usr/local/lib -ljpeg
27# LIBJPEG8:
28#CFLAGS+=-DUSE_JPEG8
29
30# LCMS support
31#CFLAGS+=-DUSE_LCMS -I/usr/local/include
32#LDADD+=-L/usr/local/lib -llcms
33
34# LCMS2.x support
35#CFLAGS+=-DUSE_LCMS2 -I/usr/local/include
36#LDADD+=-L/usr/local/lib -llcms2
37
38CSTFLAGS=$(CFLAGS) -DLIBRAW_NOTHREADS
39
40LIB_OBJECTS= object/libraw_datastream.o object/libraw_c_api.o \
41  object/cameralist.o object/fuji_compressed.o \
42  object/crx.o object/fp_dng.o object/decoders_libraw.o \
43  object/unpack.o object/unpack_thumb.o \
44  object/rawspeed_glue.o object/dngsdk_glue.o \
45  object/colorconst.o object/utils_libraw.o object/init_close_utils.o \
46  object/decoder_info.o object/open.o object/phaseone_processing.o \
47  object/thumb_utils.o \
48  object/tiff_writer.o object/subtract_black.o object/postprocessing_utils.o \
49  object/dcraw_process.o object/raw2image.o object/mem_image.o \
50  object/x3f_utils_patched.o object/x3f_parse_process.o \
51  object/read_utils.o object/curves.o object/utils_dcraw.o \
52  object/colordata.o \
53  object/canon_600.o  object/decoders_dcraw.o \
54  object/decoders_libraw_dcrdefs.o  object/generic.o \
55  object/kodak_decoders.o object/dng.o object/smal.o \
56  object/load_mfbacks.o \
57  object/sony.o object/nikon.o object/samsung.o object/cr3_parser.o \
58  object/canon.o  object/epson.o object/olympus.o object/leica.o \
59  object/fuji.o object/adobepano.o object/pentax.o object/p1.o \
60  object/makernotes.o object/exif_gps.o object/kodak.o \
61  object/tiff.o object/ciff.o object/mediumformat.o object/minolta.o \
62  object/identify_tools.o \
63  object/hasselblad_model.o object/normalize_model.o object/identify.o \
64  object/misc_parsers.o object/wblists.o \
65  object/postprocessing_aux.o object/postprocessing_utils_dcrdefs.o \
66  object/aspect_ratio.o \
67  object/misc_demosaic.o object/xtrans_demosaic.o object/ahd_demosaic.o \
68  object/dht_demosaic.o  object/aahd_demosaic.o  object/dcb_demosaic.o \
69  object/file_write.o \
70  object/ext_preprocess.o   object/apply_profile.o
71
72
73LIB_MT_OBJECTS= object/libraw_datastream.mt.o object/libraw_c_api.mt.o \
74  object/cameralist.mt.o object/fuji_compressed.mt.o \
75  object/crx.mt.o object/fp_dng.mt.o object/decoders_libraw.mt.o \
76  object/unpack.mt.o object/unpack_thumb.mt.o \
77  object/rawspeed_glue.mt.o object/dngsdk_glue.mt.o \
78  object/colorconst.mt.o object/utils_libraw.mt.o \
79  object/init_close_utils.mt.o \
80  object/decoder_info.mt.o object/open.mt.o object/phaseone_processing.mt.o \
81  object/thumb_utils.mt.o \
82  object/tiff_writer.mt.o object/subtract_black.mt.o \
83  object/postprocessing_utils.mt.o object/dcraw_process.mt.o \
84  object/raw2image.mt.o object/mem_image.mt.o \
85  object/x3f_utils_patched.mt.o object/x3f_parse_process.mt.o \
86  object/read_utils.mt.o object/curves.mt.o object/utils_dcraw.mt.o \
87  object/colordata.mt.o \
88  object/canon_600.mt.o  object/decoders_dcraw.mt.o \
89  object/decoders_libraw_dcrdefs.mt.o  object/generic.mt.o \
90  object/kodak_decoders.mt.o object/dng.mt.o object/smal.mt.o \
91  object/load_mfbacks.mt.o \
92  object/sony.mt.o object/nikon.mt.o object/samsung.mt.o \
93  object/cr3_parser.mt.o object/canon.mt.o  object/epson.mt.o \
94  object/olympus.mt.o object/leica.mt.o \
95  object/fuji.mt.o object/adobepano.mt.o object/pentax.mt.o object/p1.mt.o \
96  object/makernotes.mt.o object/exif_gps.mt.o object/kodak.mt.o \
97  object/tiff.mt.o object/ciff.mt.o object/mediumformat.mt.o \
98  object/minolta.mt.o \
99  object/identify_tools.mt.o \
100  object/hasselblad_model.o object/normalize_model.mt.o object/identify.mt.o \
101  object/misc_parsers.mt.o object/wblists.mt.o \
102  object/postprocessing_aux.mt.o object/postprocessing_utils_dcrdefs.mt.o \
103  object/aspect_ratio.mt.o \
104  object/misc_demosaic.mt.o object/xtrans_demosaic.mt.o \
105  object/ahd_demosaic.mt.o object/dht_demosaic.mt.o \
106  object/aahd_demosaic.mt.o object/dcb_demosaic.mt.o \
107  object/file_write.mt.o \
108  object/ext_preprocess.mt.o   object/apply_profile.mt.o
109
110
111LR_INCLUDES=libraw/libraw.h libraw/libraw_alloc.h \
112  libraw/libraw_const.h libraw/libraw_datastream.h \
113  libraw/libraw_internal.h libraw/libraw_types.h \
114  libraw/libraw_version.h
115
116library: lib/libraw.a lib/liblibraw_r-pxi.a
117
118all_samples: bin/raw-identify bin/simple_dcraw  bin/dcraw_emu bin/dcraw_half bin/half_mt bin/mem_image \
119             bin/unprocessed_raw bin/4channels bin/multirender_test bin/postprocessing_benchmark \
120	     bin/rawtextdump
121
122install: library
123	@if [ -d /usr/local/include ] ; then cp -R libraw /usr/local/include/ ; else echo 'no /usr/local/include' ; fi
124	@if [ -d /usr/local/lib ] ; then cp lib/libraw.a lib/liblibraw_r-pxi.a /usr/local/lib/ ; else echo 'no /usr/local/lib' ; fi
125
126install-binaries: all_samples
127	@if [ -d /usr/local/bin ] ; then cp bin/[a-z]* /usr/local/bin/ ; else echo 'no /usr/local/bin' ; fi
128
129
130## RawSpeed xml file
131
132RawSpeed/rawspeed_xmldata.cpp: ${RAWSPEED_DATA}
133	./rsxml2c.sh ${RAWSPEED_DATA} > RawSpeed/rawspeed_xmldata.cpp
134
135#binaries
136
137bin/raw-identify: lib/libraw.a samples/raw-identify.cpp
138	${CXX} -DLIBRAW_NOTHREADS  ${CFLAGS} -o bin/raw-identify samples/raw-identify.cpp -L./lib -lraw  -lm ${LDADD}
139
140bin/unprocessed_raw: lib/libraw.a samples/unprocessed_raw.cpp
141	${CXX} -DLIBRAW_NOTHREADS  ${CFLAGS} -o bin/unprocessed_raw samples/unprocessed_raw.cpp -L./lib -lraw  -lm  ${LDADD}
142
143bin/4channels: lib/libraw.a samples/4channels.cpp
144	${CXX} -DLIBRAW_NOTHREADS  ${CFLAGS} -o bin/4channels samples/4channels.cpp -L./lib -lraw  -lm  ${LDADD}
145
146bin/rawtextdump: lib/libraw.a samples/rawtextdump.cpp
147	${CXX} -DLIBRAW_NOTHREADS  ${CFLAGS} -o bin/rawtextdump samples/rawtextdump.cpp -L./lib -lraw  -lm  ${LDADD}
148
149bin/simple_dcraw: lib/libraw.a samples/simple_dcraw.cpp
150	${CXX} -DLIBRAW_NOTHREADS   ${CFLAGS} -o bin/simple_dcraw samples/simple_dcraw.cpp -L./lib -lraw  -lm  ${LDADD}
151
152bin/multirender_test: lib/libraw.a samples/multirender_test.cpp
153	${CXX} -DLIBRAW_NOTHREADS   ${CFLAGS} -o bin/multirender_test samples/multirender_test.cpp -L./lib -lraw  -lm  ${LDADD}
154
155bin/postprocessing_benchmark: lib/libraw.a samples/postprocessing_benchmark.cpp
156	${CXX} -DLIBRAW_NOTHREADS   ${CFLAGS} -o bin/postprocessing_benchmark samples/postprocessing_benchmark.cpp -L./lib -lraw  -lm  ${LDADD}
157
158bin/mem_image: lib/libraw.a samples/mem_image_sample.cpp
159	${CXX} -DLIBRAW_NOTHREADS  ${CFLAGS} -o bin/mem_image samples/mem_image_sample.cpp -L./lib -lraw  -lm  ${LDADD}
160
161bin/dcraw_half: lib/libraw.a object/dcraw_half.o
162	${CC} -DLIBRAW_NOTHREADS  ${CFLAGS} -o bin/dcraw_half object/dcraw_half.o -L./lib -lraw  -lm -lstdc++  ${LDADD}
163
164bin/half_mt: lib/liblibraw_r-pxi.a object/half_mt.o
165	${CC}   -pthread ${CFLAGS} -o bin/half_mt object/half_mt.o -L./lib -llibraw_r-pxi -lm -lstdc++  ${LDADD}
166
167bin/dcraw_emu: lib/libraw.a samples/dcraw_emu.cpp
168	${CXX} -DLIBRAW_NOTHREADS  ${CFLAGS} -o bin/dcraw_emu samples/dcraw_emu.cpp -L./lib -lraw  -lm  ${LDADD}
169
170#objects
171
172object/dcraw_half.o: samples/dcraw_half.c
173	${CC} -c -DLIBRAW_NOTHREADS   ${CFLAGS} -o object/dcraw_half.o samples/dcraw_half.c
174
175object/half_mt.o: samples/half_mt.c
176	${CC} -c -pthread   ${CFLAGS} -o object/half_mt.o samples/half_mt.c
177
178
179lib/libraw.a: ${LIB_OBJECTS}
180	rm -f lib/libraw.a
181	ar crv lib/libraw.a ${LIB_OBJECTS}
182	ranlib lib/libraw.a
183
184lib/liblibraw_r-pxi.a: ${LIB_MT_OBJECTS}
185	rm -f lib/liblibraw_r-pxi.a
186	ar crv lib/liblibraw_r-pxi.a ${LIB_MT_OBJECTS}
187	ranlib lib/liblibraw_r-pxi.a
188
189clean:
190	rm -fr bin/*.dSYM
191	rm -f *.o *~ src/*~ samples/*~ internal/*~ libraw/*~ lib/lib*.a bin/[4a-z]* object/*o dcraw/*~ doc/*~ bin/*~ src/*/*~
192
193### generated
194object/libraw_c_api.o: src/libraw_c_api.cpp
195	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/libraw_c_api.o src/libraw_c_api.cpp
196object/libraw_c_api.mt.o: src/libraw_c_api.cpp
197	${CXX} -c ${CFLAGS} -o object/libraw_c_api.mt.o src/libraw_c_api.cpp
198object/libraw_cxx.o: src/libraw_cxx.cpp
199	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/libraw_cxx.o src/libraw_cxx.cpp
200object/libraw_cxx.mt.o: src/libraw_cxx.cpp
201	${CXX} -c ${CFLAGS} -o object/libraw_cxx.mt.o src/libraw_cxx.cpp
202object/libraw_datastream.o: src/libraw_datastream.cpp
203	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/libraw_datastream.o src/libraw_datastream.cpp
204object/libraw_datastream.mt.o: src/libraw_datastream.cpp
205	${CXX} -c ${CFLAGS} -o object/libraw_datastream.mt.o src/libraw_datastream.cpp
206object/canon_600.o: src/decoders/canon_600.cpp
207	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/canon_600.o src/decoders/canon_600.cpp
208object/canon_600.mt.o: src/decoders/canon_600.cpp
209	${CXX} -c ${CFLAGS} -o object/canon_600.mt.o src/decoders/canon_600.cpp
210object/crx.o: src/decoders/crx.cpp
211	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/crx.o src/decoders/crx.cpp
212object/crx.mt.o: src/decoders/crx.cpp
213	${CXX} -c ${CFLAGS} -o object/crx.mt.o src/decoders/crx.cpp
214object/decoders_dcraw.o: src/decoders/decoders_dcraw.cpp
215	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/decoders_dcraw.o src/decoders/decoders_dcraw.cpp
216object/decoders_dcraw.mt.o: src/decoders/decoders_dcraw.cpp
217	${CXX} -c ${CFLAGS} -o object/decoders_dcraw.mt.o src/decoders/decoders_dcraw.cpp
218object/decoders_libraw_dcrdefs.o: src/decoders/decoders_libraw_dcrdefs.cpp
219	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/decoders_libraw_dcrdefs.o src/decoders/decoders_libraw_dcrdefs.cpp
220object/decoders_libraw_dcrdefs.mt.o: src/decoders/decoders_libraw_dcrdefs.cpp
221	${CXX} -c ${CFLAGS} -o object/decoders_libraw_dcrdefs.mt.o src/decoders/decoders_libraw_dcrdefs.cpp
222object/decoders_libraw.o: src/decoders/decoders_libraw.cpp
223	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/decoders_libraw.o src/decoders/decoders_libraw.cpp
224object/decoders_libraw.mt.o: src/decoders/decoders_libraw.cpp
225	${CXX} -c ${CFLAGS} -o object/decoders_libraw.mt.o src/decoders/decoders_libraw.cpp
226object/dng.o: src/decoders/dng.cpp
227	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/dng.o src/decoders/dng.cpp
228object/dng.mt.o: src/decoders/dng.cpp
229	${CXX} -c ${CFLAGS} -o object/dng.mt.o src/decoders/dng.cpp
230object/fp_dng.o: src/decoders/fp_dng.cpp
231	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/fp_dng.o src/decoders/fp_dng.cpp
232object/fp_dng.mt.o: src/decoders/fp_dng.cpp
233	${CXX} -c ${CFLAGS} -o object/fp_dng.mt.o src/decoders/fp_dng.cpp
234object/fuji_compressed.o: src/decoders/fuji_compressed.cpp
235	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/fuji_compressed.o src/decoders/fuji_compressed.cpp
236object/fuji_compressed.mt.o: src/decoders/fuji_compressed.cpp
237	${CXX} -c ${CFLAGS} -o object/fuji_compressed.mt.o src/decoders/fuji_compressed.cpp
238object/generic.o: src/decoders/generic.cpp
239	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/generic.o src/decoders/generic.cpp
240object/generic.mt.o: src/decoders/generic.cpp
241	${CXX} -c ${CFLAGS} -o object/generic.mt.o src/decoders/generic.cpp
242object/kodak_decoders.o: src/decoders/kodak_decoders.cpp
243	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/kodak_decoders.o src/decoders/kodak_decoders.cpp
244object/kodak_decoders.mt.o: src/decoders/kodak_decoders.cpp
245	${CXX} -c ${CFLAGS} -o object/kodak_decoders.mt.o src/decoders/kodak_decoders.cpp
246object/load_mfbacks.o: src/decoders/load_mfbacks.cpp
247	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/load_mfbacks.o src/decoders/load_mfbacks.cpp
248object/load_mfbacks.mt.o: src/decoders/load_mfbacks.cpp
249	${CXX} -c ${CFLAGS} -o object/load_mfbacks.mt.o src/decoders/load_mfbacks.cpp
250object/smal.o: src/decoders/smal.cpp
251	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/smal.o src/decoders/smal.cpp
252object/smal.mt.o: src/decoders/smal.cpp
253	${CXX} -c ${CFLAGS} -o object/smal.mt.o src/decoders/smal.cpp
254object/unpack_thumb.o: src/decoders/unpack_thumb.cpp
255	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/unpack_thumb.o src/decoders/unpack_thumb.cpp
256object/unpack_thumb.mt.o: src/decoders/unpack_thumb.cpp
257	${CXX} -c ${CFLAGS} -o object/unpack_thumb.mt.o src/decoders/unpack_thumb.cpp
258object/unpack.o: src/decoders/unpack.cpp
259	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/unpack.o src/decoders/unpack.cpp
260object/unpack.mt.o: src/decoders/unpack.cpp
261	${CXX} -c ${CFLAGS} -o object/unpack.mt.o src/decoders/unpack.cpp
262object/aahd_demosaic.o: src/demosaic/aahd_demosaic.cpp
263	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/aahd_demosaic.o src/demosaic/aahd_demosaic.cpp
264object/aahd_demosaic.mt.o: src/demosaic/aahd_demosaic.cpp
265	${CXX} -c ${CFLAGS} -o object/aahd_demosaic.mt.o src/demosaic/aahd_demosaic.cpp
266object/ahd_demosaic.o: src/demosaic/ahd_demosaic.cpp
267	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/ahd_demosaic.o src/demosaic/ahd_demosaic.cpp
268object/ahd_demosaic.mt.o: src/demosaic/ahd_demosaic.cpp
269	${CXX} -c ${CFLAGS} -o object/ahd_demosaic.mt.o src/demosaic/ahd_demosaic.cpp
270object/dcb_demosaic.o: src/demosaic/dcb_demosaic.cpp
271	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/dcb_demosaic.o src/demosaic/dcb_demosaic.cpp
272object/dcb_demosaic.mt.o: src/demosaic/dcb_demosaic.cpp
273	${CXX} -c ${CFLAGS} -o object/dcb_demosaic.mt.o src/demosaic/dcb_demosaic.cpp
274object/dht_demosaic.o: src/demosaic/dht_demosaic.cpp
275	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/dht_demosaic.o src/demosaic/dht_demosaic.cpp
276object/dht_demosaic.mt.o: src/demosaic/dht_demosaic.cpp
277	${CXX} -c ${CFLAGS} -o object/dht_demosaic.mt.o src/demosaic/dht_demosaic.cpp
278object/misc_demosaic.o: src/demosaic/misc_demosaic.cpp
279	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/misc_demosaic.o src/demosaic/misc_demosaic.cpp
280object/misc_demosaic.mt.o: src/demosaic/misc_demosaic.cpp
281	${CXX} -c ${CFLAGS} -o object/misc_demosaic.mt.o src/demosaic/misc_demosaic.cpp
282object/xtrans_demosaic.o: src/demosaic/xtrans_demosaic.cpp
283	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/xtrans_demosaic.o src/demosaic/xtrans_demosaic.cpp
284object/xtrans_demosaic.mt.o: src/demosaic/xtrans_demosaic.cpp
285	${CXX} -c ${CFLAGS} -o object/xtrans_demosaic.mt.o src/demosaic/xtrans_demosaic.cpp
286object/dngsdk_glue.o: src/integration/dngsdk_glue.cpp
287	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/dngsdk_glue.o src/integration/dngsdk_glue.cpp
288object/dngsdk_glue.mt.o: src/integration/dngsdk_glue.cpp
289	${CXX} -c ${CFLAGS} -o object/dngsdk_glue.mt.o src/integration/dngsdk_glue.cpp
290object/rawspeed_glue.o: src/integration/rawspeed_glue.cpp
291	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/rawspeed_glue.o src/integration/rawspeed_glue.cpp
292object/rawspeed_glue.mt.o: src/integration/rawspeed_glue.cpp
293	${CXX} -c ${CFLAGS} -o object/rawspeed_glue.mt.o src/integration/rawspeed_glue.cpp
294object/adobepano.o: src/metadata/adobepano.cpp
295	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/adobepano.o src/metadata/adobepano.cpp
296object/adobepano.mt.o: src/metadata/adobepano.cpp
297	${CXX} -c ${CFLAGS} -o object/adobepano.mt.o src/metadata/adobepano.cpp
298object/canon.o: src/metadata/canon.cpp
299	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/canon.o src/metadata/canon.cpp
300object/canon.mt.o: src/metadata/canon.cpp
301	${CXX} -c ${CFLAGS} -o object/canon.mt.o src/metadata/canon.cpp
302object/ciff.o: src/metadata/ciff.cpp
303	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/ciff.o src/metadata/ciff.cpp
304object/ciff.mt.o: src/metadata/ciff.cpp
305	${CXX} -c ${CFLAGS} -o object/ciff.mt.o src/metadata/ciff.cpp
306object/cr3_parser.o: src/metadata/cr3_parser.cpp
307	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/cr3_parser.o src/metadata/cr3_parser.cpp
308object/cr3_parser.mt.o: src/metadata/cr3_parser.cpp
309	${CXX} -c ${CFLAGS} -o object/cr3_parser.mt.o src/metadata/cr3_parser.cpp
310object/epson.o: src/metadata/epson.cpp
311	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/epson.o src/metadata/epson.cpp
312object/epson.mt.o: src/metadata/epson.cpp
313	${CXX} -c ${CFLAGS} -o object/epson.mt.o src/metadata/epson.cpp
314object/exif_gps.o: src/metadata/exif_gps.cpp
315	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/exif_gps.o src/metadata/exif_gps.cpp
316object/exif_gps.mt.o: src/metadata/exif_gps.cpp
317	${CXX} -c ${CFLAGS} -o object/exif_gps.mt.o src/metadata/exif_gps.cpp
318object/fuji.o: src/metadata/fuji.cpp
319	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/fuji.o src/metadata/fuji.cpp
320object/fuji.mt.o: src/metadata/fuji.cpp
321	${CXX} -c ${CFLAGS} -o object/fuji.mt.o src/metadata/fuji.cpp
322object/identify_tools.o: src/metadata/identify_tools.cpp
323	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/identify_tools.o src/metadata/identify_tools.cpp
324object/identify_tools.mt.o: src/metadata/identify_tools.cpp
325	${CXX} -c ${CFLAGS} -o object/identify_tools.mt.o src/metadata/identify_tools.cpp
326object/identify.o: src/metadata/identify.cpp
327	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/identify.o src/metadata/identify.cpp
328object/identify.mt.o: src/metadata/identify.cpp
329	${CXX} -c ${CFLAGS} -o object/identify.mt.o src/metadata/identify.cpp
330object/kodak.o: src/metadata/kodak.cpp
331	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/kodak.o src/metadata/kodak.cpp
332object/kodak.mt.o: src/metadata/kodak.cpp
333	${CXX} -c ${CFLAGS} -o object/kodak.mt.o src/metadata/kodak.cpp
334object/leica.o: src/metadata/leica.cpp
335	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/leica.o src/metadata/leica.cpp
336object/leica.mt.o: src/metadata/leica.cpp
337	${CXX} -c ${CFLAGS} -o object/leica.mt.o src/metadata/leica.cpp
338object/makernotes.o: src/metadata/makernotes.cpp
339	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/makernotes.o src/metadata/makernotes.cpp
340object/makernotes.mt.o: src/metadata/makernotes.cpp
341	${CXX} -c ${CFLAGS} -o object/makernotes.mt.o src/metadata/makernotes.cpp
342object/mediumformat.o: src/metadata/mediumformat.cpp
343	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/mediumformat.o src/metadata/mediumformat.cpp
344object/mediumformat.mt.o: src/metadata/mediumformat.cpp
345	${CXX} -c ${CFLAGS} -o object/mediumformat.mt.o src/metadata/mediumformat.cpp
346object/minolta.o: src/metadata/minolta.cpp
347	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/minolta.o src/metadata/minolta.cpp
348object/minolta.mt.o: src/metadata/minolta.cpp
349	${CXX} -c ${CFLAGS} -o object/minolta.mt.o src/metadata/minolta.cpp
350object/misc_parsers.o: src/metadata/misc_parsers.cpp
351	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/misc_parsers.o src/metadata/misc_parsers.cpp
352object/misc_parsers.mt.o: src/metadata/misc_parsers.cpp
353	${CXX} -c ${CFLAGS} -o object/misc_parsers.mt.o src/metadata/misc_parsers.cpp
354object/nikon.o: src/metadata/nikon.cpp
355	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/nikon.o src/metadata/nikon.cpp
356object/nikon.mt.o: src/metadata/nikon.cpp
357	${CXX} -c ${CFLAGS} -o object/nikon.mt.o src/metadata/nikon.cpp
358object/hasselblad_model.o: src/metadata/hasselblad_model.cpp
359	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/hasselblad_model.o src/metadata/hasselblad_model.cpp
360object/hasselblad_model.mt.o: src/metadata/hasselblad_model.cpp
361	${CXX} -c ${CFLAGS} -o object/hasselblad_model.mt.o src/metadata/hasselblad_model.cpp
362object/normalize_model.o: src/metadata/normalize_model.cpp
363	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/normalize_model.o src/metadata/normalize_model.cpp
364object/normalize_model.mt.o: src/metadata/normalize_model.cpp
365	${CXX} -c ${CFLAGS} -o object/normalize_model.mt.o src/metadata/normalize_model.cpp
366object/olympus.o: src/metadata/olympus.cpp
367	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/olympus.o src/metadata/olympus.cpp
368object/olympus.mt.o: src/metadata/olympus.cpp
369	${CXX} -c ${CFLAGS} -o object/olympus.mt.o src/metadata/olympus.cpp
370object/p1.o: src/metadata/p1.cpp
371	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/p1.o src/metadata/p1.cpp
372object/p1.mt.o: src/metadata/p1.cpp
373	${CXX} -c ${CFLAGS} -o object/p1.mt.o src/metadata/p1.cpp
374object/pentax.o: src/metadata/pentax.cpp
375	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/pentax.o src/metadata/pentax.cpp
376object/pentax.mt.o: src/metadata/pentax.cpp
377	${CXX} -c ${CFLAGS} -o object/pentax.mt.o src/metadata/pentax.cpp
378object/samsung.o: src/metadata/samsung.cpp
379	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/samsung.o src/metadata/samsung.cpp
380object/samsung.mt.o: src/metadata/samsung.cpp
381	${CXX} -c ${CFLAGS} -o object/samsung.mt.o src/metadata/samsung.cpp
382object/sony.o: src/metadata/sony.cpp
383	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/sony.o src/metadata/sony.cpp
384object/sony.mt.o: src/metadata/sony.cpp
385	${CXX} -c ${CFLAGS} -o object/sony.mt.o src/metadata/sony.cpp
386object/tiff.o: src/metadata/tiff.cpp
387	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/tiff.o src/metadata/tiff.cpp
388object/tiff.mt.o: src/metadata/tiff.cpp
389	${CXX} -c ${CFLAGS} -o object/tiff.mt.o src/metadata/tiff.cpp
390object/aspect_ratio.o: src/postprocessing/aspect_ratio.cpp
391	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/aspect_ratio.o src/postprocessing/aspect_ratio.cpp
392object/aspect_ratio.mt.o: src/postprocessing/aspect_ratio.cpp
393	${CXX} -c ${CFLAGS} -o object/aspect_ratio.mt.o src/postprocessing/aspect_ratio.cpp
394object/dcraw_process.o: src/postprocessing/dcraw_process.cpp
395	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/dcraw_process.o src/postprocessing/dcraw_process.cpp
396object/dcraw_process.mt.o: src/postprocessing/dcraw_process.cpp
397	${CXX} -c ${CFLAGS} -o object/dcraw_process.mt.o src/postprocessing/dcraw_process.cpp
398object/mem_image.o: src/postprocessing/mem_image.cpp
399	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/mem_image.o src/postprocessing/mem_image.cpp
400object/mem_image.mt.o: src/postprocessing/mem_image.cpp
401	${CXX} -c ${CFLAGS} -o object/mem_image.mt.o src/postprocessing/mem_image.cpp
402object/postprocessing_aux.o: src/postprocessing/postprocessing_aux.cpp
403	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/postprocessing_aux.o src/postprocessing/postprocessing_aux.cpp
404object/postprocessing_aux.mt.o: src/postprocessing/postprocessing_aux.cpp
405	${CXX} -c ${CFLAGS} -o object/postprocessing_aux.mt.o src/postprocessing/postprocessing_aux.cpp
406object/postprocessing_utils_dcrdefs.o: src/postprocessing/postprocessing_utils_dcrdefs.cpp
407	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/postprocessing_utils_dcrdefs.o src/postprocessing/postprocessing_utils_dcrdefs.cpp
408object/postprocessing_utils_dcrdefs.mt.o: src/postprocessing/postprocessing_utils_dcrdefs.cpp
409	${CXX} -c ${CFLAGS} -o object/postprocessing_utils_dcrdefs.mt.o src/postprocessing/postprocessing_utils_dcrdefs.cpp
410object/postprocessing_utils.o: src/postprocessing/postprocessing_utils.cpp
411	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/postprocessing_utils.o src/postprocessing/postprocessing_utils.cpp
412object/postprocessing_utils.mt.o: src/postprocessing/postprocessing_utils.cpp
413	${CXX} -c ${CFLAGS} -o object/postprocessing_utils.mt.o src/postprocessing/postprocessing_utils.cpp
414object/raw2image.o: src/preprocessing/raw2image.cpp
415	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/raw2image.o src/preprocessing/raw2image.cpp
416object/raw2image.mt.o: src/preprocessing/raw2image.cpp
417	${CXX} -c ${CFLAGS} -o object/raw2image.mt.o src/preprocessing/raw2image.cpp
418object/ext_preprocess.o: src/preprocessing/ext_preprocess.cpp
419	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/ext_preprocess.o src/preprocessing/ext_preprocess.cpp
420object/ext_preprocess.mt.o: src/preprocessing/ext_preprocess.cpp
421	${CXX} -c ${CFLAGS} -o object/ext_preprocess.mt.o src/preprocessing/ext_preprocess.cpp
422object/subtract_black.o: src/preprocessing/subtract_black.cpp
423	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/subtract_black.o src/preprocessing/subtract_black.cpp
424object/subtract_black.mt.o: src/preprocessing/subtract_black.cpp
425	${CXX} -c ${CFLAGS} -o object/subtract_black.mt.o src/preprocessing/subtract_black.cpp
426object/cameralist.o: src/tables/cameralist.cpp
427	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/cameralist.o src/tables/cameralist.cpp
428object/cameralist.mt.o: src/tables/cameralist.cpp
429	${CXX} -c ${CFLAGS} -o object/cameralist.mt.o src/tables/cameralist.cpp
430object/colorconst.o: src/tables/colorconst.cpp
431	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/colorconst.o src/tables/colorconst.cpp
432object/colorconst.mt.o: src/tables/colorconst.cpp
433	${CXX} -c ${CFLAGS} -o object/colorconst.mt.o src/tables/colorconst.cpp
434object/colordata.o: src/tables/colordata.cpp
435	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/colordata.o src/tables/colordata.cpp
436object/colordata.mt.o: src/tables/colordata.cpp
437	${CXX} -c ${CFLAGS} -o object/colordata.mt.o src/tables/colordata.cpp
438object/wblists.o: src/tables/wblists.cpp
439	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/wblists.o src/tables/wblists.cpp
440object/wblists.mt.o: src/tables/wblists.cpp
441	${CXX} -c ${CFLAGS} -o object/wblists.mt.o src/tables/wblists.cpp
442object/curves.o: src/utils/curves.cpp
443	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/curves.o src/utils/curves.cpp
444object/curves.mt.o: src/utils/curves.cpp
445	${CXX} -c ${CFLAGS} -o object/curves.mt.o src/utils/curves.cpp
446object/decoder_info.o: src/utils/decoder_info.cpp
447	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/decoder_info.o src/utils/decoder_info.cpp
448object/decoder_info.mt.o: src/utils/decoder_info.cpp
449	${CXX} -c ${CFLAGS} -o object/decoder_info.mt.o src/utils/decoder_info.cpp
450object/init_close_utils.o: src/utils/init_close_utils.cpp
451	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/init_close_utils.o src/utils/init_close_utils.cpp
452object/init_close_utils.mt.o: src/utils/init_close_utils.cpp
453	${CXX} -c ${CFLAGS} -o object/init_close_utils.mt.o src/utils/init_close_utils.cpp
454object/open.o: src/utils/open.cpp
455	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/open.o src/utils/open.cpp
456object/open.mt.o: src/utils/open.cpp
457	${CXX} -c ${CFLAGS} -o object/open.mt.o src/utils/open.cpp
458object/phaseone_processing.o: src/utils/phaseone_processing.cpp
459	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/phaseone_processing.o src/utils/phaseone_processing.cpp
460object/phaseone_processing.mt.o: src/utils/phaseone_processing.cpp
461	${CXX} -c ${CFLAGS} -o object/phaseone_processing.mt.o src/utils/phaseone_processing.cpp
462object/read_utils.o: src/utils/read_utils.cpp
463	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/read_utils.o src/utils/read_utils.cpp
464object/read_utils.mt.o: src/utils/read_utils.cpp
465	${CXX} -c ${CFLAGS} -o object/read_utils.mt.o src/utils/read_utils.cpp
466object/thumb_utils.o: src/utils/thumb_utils.cpp
467	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/thumb_utils.o src/utils/thumb_utils.cpp
468object/thumb_utils.mt.o: src/utils/thumb_utils.cpp
469	${CXX} -c ${CFLAGS} -o object/thumb_utils.mt.o src/utils/thumb_utils.cpp
470object/utils_dcraw.o: src/utils/utils_dcraw.cpp
471	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/utils_dcraw.o src/utils/utils_dcraw.cpp
472object/utils_dcraw.mt.o: src/utils/utils_dcraw.cpp
473	${CXX} -c ${CFLAGS} -o object/utils_dcraw.mt.o src/utils/utils_dcraw.cpp
474object/utils_libraw.o: src/utils/utils_libraw.cpp
475	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/utils_libraw.o src/utils/utils_libraw.cpp
476object/utils_libraw.mt.o: src/utils/utils_libraw.cpp
477	${CXX} -c ${CFLAGS} -o object/utils_libraw.mt.o src/utils/utils_libraw.cpp
478object/apply_profile.o: src/write/apply_profile.cpp
479	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/apply_profile.o src/write/apply_profile.cpp
480object/apply_profile.mt.o: src/write/apply_profile.cpp
481	${CXX} -c ${CFLAGS} -o object/apply_profile.mt.o src/write/apply_profile.cpp
482object/file_write.o: src/write/file_write.cpp
483	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/file_write.o src/write/file_write.cpp
484object/file_write.mt.o: src/write/file_write.cpp
485	${CXX} -c ${CFLAGS} -o object/file_write.mt.o src/write/file_write.cpp
486object/tiff_writer.o: src/write/tiff_writer.cpp
487	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/tiff_writer.o src/write/tiff_writer.cpp
488object/tiff_writer.mt.o: src/write/tiff_writer.cpp
489	${CXX} -c ${CFLAGS} -o object/tiff_writer.mt.o src/write/tiff_writer.cpp
490object/x3f_parse_process.o: src/x3f/x3f_parse_process.cpp
491	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/x3f_parse_process.o src/x3f/x3f_parse_process.cpp
492object/x3f_parse_process.mt.o: src/x3f/x3f_parse_process.cpp
493	${CXX} -c ${CFLAGS} -o object/x3f_parse_process.mt.o src/x3f/x3f_parse_process.cpp
494object/x3f_utils_patched.o: src/x3f/x3f_utils_patched.cpp
495	${CXX} -c -DLIBRAW_NOTHREADS  ${CFLAGS} -o object/x3f_utils_patched.o src/x3f/x3f_utils_patched.cpp
496object/x3f_utils_patched.mt.o: src/x3f/x3f_utils_patched.cpp
497	${CXX} -c ${CFLAGS} -o object/x3f_utils_patched.mt.o src/x3f/x3f_utils_patched.cpp
498