all: library samples # OpenMP support #OPENMP_CFLAGS=-O4 -I. -w -fopenmp # LCMS support #LCMS_DEF=-DUSE_LCMS -I/usr/local/include #LCMS_LIB=-L/usr/local/lib -llcms # Common flags # WARNING: library order matters COMMON_LIBS=-L./lib -lws2_32 -lm ${LCMS_LIB} CLIBS=-lraw ${COMMON_LIBS} CFLAGS=-O4 -I. -w -DLIBRAW_NODLL ${OPENMP_CFLAGS} DCRAW_LIB_OBJECTS=object/dcraw_common.o object/foveon.o object/libraw_cxx.o object/libraw_c_api.o library: lib/libraw.a samples: bin/identify bin/simple_dcraw bin/dcraw_emu bin/dcraw_half bin/mem_image install: library @if [ -d /usr/local/include ] ; then cp -R libraw /usr/local/include/ ; else echo 'no /usr/local/include' ; fi @if [ -d /usr/local/lib ] ; then cp lib/libraw.a /usr/local/lib/ ; else echo 'no /usr/local/lib' ; fi install-samples: samples @if [ -d /usr/local/bin ] ; then cp bin/[a-z]* /usr/local/bin/ ; else echo 'no /usr/local/bin' ; fi # Samples bin/identify: lib/libraw.a samples/identify.cpp g++ -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} ${BIN_CFLAGS} -o bin/identify samples/identify.cpp ${CLIBS} bin/simple_dcraw: lib/libraw.a samples/simple_dcraw.cpp g++ -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o bin/simple_dcraw samples/simple_dcraw.cpp ${CLIBS} bin/mem_image: lib/libraw.a samples/mem_image.cpp g++ -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o bin/mem_image samples/mem_image.cpp ${CLIBS} bin/dcraw_half: lib/libraw.a object/dcraw_half.o gcc -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o bin/dcraw_half object/dcraw_half.o ${CLIBS} -lstdc++ bin/dcraw_emu: lib/libraw.a samples/dcraw_emu.cpp g++ -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o bin/dcraw_emu samples/dcraw_emu.cpp ${CLIBS} #Libraries # Non-threaded library object/dcraw_common.o: internal/dcraw_common.cpp g++ -c -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o object/dcraw_common.o internal/dcraw_common.cpp object/foveon.o: internal/foveon.cpp g++ -c -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o object/foveon.o internal/foveon.cpp object/libraw_cxx.o: src/libraw_cxx.cpp g++ -c -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o object/libraw_cxx.o src/libraw_cxx.cpp object/libraw_c_api.o: src/libraw_c_api.cpp g++ -c -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o object/libraw_c_api.o src/libraw_c_api.cpp object/dcraw_half.o: samples/dcraw_half.c gcc -c -DLIBRAW_NOTHREADS ${LCMS_DEF} ${CFLAGS} -o object/dcraw_half.o samples/dcraw_half.c lib/libraw.a: ${DCRAW_LIB_OBJECTS} rm -f lib/libraw.a ar crv lib/libraw.a ${DCRAW_LIB_OBJECTS} ranlib lib/libraw.a # Clean clean: rm -fr bin/*.dSYM rm -f *.o *~ src/*~ samples/*~ internal/*~ libraw/*~ lib/lib*.a bin/[a-z]* object/*o dcraw/*~ doc/*~ bin/*~