#PREF_CCFLAGS += $(CCOPTFLAG) ; # Turn optimisation on PREF_CCFLAGS += $(CCDEBUGFLAG) ; # Debugging flags #PREF_CCFLAGS += $(CCHEAPDEBUG) ; # Heap Debugging & Debugging flags PREF_LINKFLAGS += $(LINKDEBUGFLAG) ; # Compile .c as .m if $(OS) = MACOSX { ObjectCcFlags dispwin : -ObjC ; ObjectCcFlags dispwin_dispwin : -ObjC ; } if [ GLOB [ NormPaths . ] : fastserio.c ] { # echo "!!!!!!!!! fastserio.c is enabled !!!!!!!!!" ; # DEFINES += ENABLE_FTDI ; } MADVRSOURCE = ; # Setup the right hardware access libraries if $(NT) { MADVRSOURCE = madvrwin.c ; if $(USE_LIBUSB) = true { DEFINES += USE_LIBUSB ; if $(USE_LIBUSB1) = true { DEFINES += USE_LIBUSB1 ; LIBUSBDIR = ../libusb1 ; LIBUSBHDRS = ../libusb1 ; if $(MSVCNT) { LIBUSBHDRS += ../libusb1/msvc ; # So stdint.h can be found } if $(LIBUSB_IS_DLL) = true { LIBUSB = $(LIBUSB1NAME)$(SUFIMPLIB) ; LIBUSBSH = $(LIBUSB1NAME)$(SUFSHLIB) ; } else { LIBUSB = $(LIBUSB1NAME)$(SUFLIB) ; } } else { LIBUSBDIR = ../libusbw ; LIBUSBHDRS = ../libusbw ; LIBUSB = libusb ; } } else { LIBUSBHDRS = ../usb/driver ; # libusb-win32 kernel driver info } } if $(UNIX) { if $(USE_LIBUSB) = true { DEFINES += USE_LIBUSB ; if $(USE_LIBUSB1) = true { DEFINES += USE_LIBUSB1 ; LIBUSBDIR = ../libusb1 ; LIBUSBHDRS = ../libusb1 ; if $(LIBUSB_IS_DLL) = true { LIBUSB = $(LIBUSB1NAME)$(SUFIMPLIB) ; LIBUSBSH = $(LIBUSB1NAME)$(SUFSHLIB) ; } else { LIBUSB = $(LIBUSB1NAME)$(SUFLIB) ; } } else { LIBUSBDIR = ../libusb ; LIBUSBHDRS = ../libusb ; LIBUSB = libusb ; } } CONVFILE = pollem.c ; } #Products Libraries = libinsttypes libdisptechs libinst libdisp libconv libinstapp ; Executables = dispwin synthcal dispread dispcal fakeread synthread chartread spotread illumread ccxxmake spec2cie average oeminst ; Headers = inst.h ; Samples = SOtele.sp linear.cal strange.cal ccxx.ti1 ; #Install InstallBin $(DESTDIR)$(PREFIX)/bin : $(Executables) ; InstallFile $(DESTDIR)$(PREFIX)/$(REFSUBDIR) : $(Samples) ; #InstallFile $(DESTDIR)$(PREFIX)/h : $(Headers) ; #InstallLib $(DESTDIR)$(PREFIX)/lib : $(Libraries) ; if $(UNIX) && $(OS) != MACOSX { # Micro Unix CMM for handling monitor profile association CMMHDRS = ../ucmm ; CMMLIBS = ../ucmm/libucmm ../jcnf/libjcnf ../yajl/libyajl ; } HDRS = ../h ../numlib ../icc ../cgats ../rspl ../xicc ../gamut ../spectro ../plot ../render ../ccast $(LIBUSBHDRS) $(CMMHDRS) ; # Instrument access library library SER_INSTS = dtp22.c dtp41.c dtp51.c ss.c ss_imp.c ; USB_INSTS = dtp20.c i1disp.c i1d3.c i1pro.c i1pro_imp.c munki.c munki_imp.c hcfr.c spyd2.c huey.c colorhug.c ex1.c usbio.c hidio.c ; FAST_SER_INSTS = specbos.c kleink10.c smcube.c ; SER_USB_INSTS = dtp92.c ; if $(USE_SERIAL) = true { DEFINES += ENABLE_SERIAL ; INST_SRCS += $(SER_INSTS) ; } if $(USE_USB) = true { DEFINES += ENABLE_USB ; INST_SRCS += $(USB_INSTS) ; } if $(USE_FAST_SERIAL) = true || $(USE_SERIAL) = true { DEFINES += ENABLE_FAST_SERIAL ; INST_SRCS += $(FAST_SER_INSTS) ; } if $(USE_SERIAL) = true || $(USE_USB) = true { INST_SRCS += $(SER_USB_INSTS) ; } if $(USE_DEMOINST) = true && [ GLOB [ NormPaths . ] : demoinst.c ] { echo "Compiling demo instrument support" ; DEFINES += ENABLE_DEMOINST ; INST_SRCS += demoinst.c ; } Library libinst : inst.c insttypes.c icoms.c disptechs.c rspec.c $(INST_SRCS) ; # Display access library ObjectKeep mongoose.c ; Library libdisp : dispsup.c dispwin.c webwin.c ccwin.c $(MADVRSOURCE) : : : $(LibWinH) : mongoose ; # Instrument and Display types utility functions library. Use these instead of libinst when */ # applications need to know about different instrument or display types, but not access them. */ # (Note we're working around a bug in Jam caused by objects shared between libraries) Object insttypes2 : insttypes.c ; LibraryFromObjects libinsttypes : insttypes2 ; Object disptechs2 : disptechs.c ; LibraryFromObjects libdisptechs : disptechs2 ; # System utility functions (keyboard, msec_*, thread) Library libconv : xdg_bds.c aglob.c conv.c base64.c $(CONVFILE) : : : $(LibWinH) ; # Command line application instrument related convenience functions Library libinstapp : instappsup.c ; # Support file #Object alphix : ../target/alphix.c ; LINKLIBS = libinst libinstapp ../xicc/libxcolorants ../xicc/libxicc ../gamut/libgamut ../rspl/librspl ../cgats/libcgats ../icc/libicc ../plot/libplot ../plot/libvrml ../ccast/libccast $(SSLLIB) ../yajl/libyajl ../render/librender $(TIFFLIB) $(JPEGLIB) $(PNGLIB) $(ZLIB) ../numlib/libui ../numlib/libnum $(CMMLIBS) libconv ; if $(LIBUSB_IS_DLL) = true { LINKSHLIBS = $(LIBUSBDIR)/$(LIBUSB) ; File $(LIBUSBSH) : $(LIBUSBDIR)/$(LIBUSBSH) ; # executable needs .so/.dll in same directory NDepends $(Executables) : $(LIBUSBSH) ; } else { LINKLIBS += $(LIBUSBDIR)/$(LIBUSB) ; } # General target reader program Main chartread : chartread.c ../target/alphix.c : : : ../target : : ; # Illuminant measurement Main illumread : illumread.c : : : ../target : : ; # Printed target spot reader utility Main spotread : spotread.c : : : : : ; # Test code if $(HOME) = "d:\\usr\\graeme" && $(PWD) = "/src/argyll/spectro" { Main setoem : setoem.c : : : : : ../numlib/libui ; } # CCMX and CCSStool Main ccxxmake : ccxxmake.c : : : : : libdisp ; # Gretag Spectroscan/T filmstrip reader #Main filmread : filmread.c : : : : : ; # Create synthetic .cal Main synthcal : synthcal.c ; # Display calibration program Main dispcal : dispcal.c : : : ../target : : libdisp ; # Display tester program Main dispread : dispread.c : : : : : libdisp ; #display test window test/Lut loader utility # [ Could avoid need for libinst libusb etc. # by separating system dependent utils to a separate library .] MainVariant dispwin : dispwin.c webwin.c ccwin.c $(MADVRSOURCE) : : STANDALONE_TEST : : mongoose : $(LibWin) ; LINKLIBS = libinsttypes libdisptechs ../xicc/libxicc ../gamut/libgamut ../rspl/librspl ../cgats/libcgats ../icc/libicc ../plot/libplot ../numlib/libnum ../numlib/libui ../plot/libvrml ; # Fake device print/read utility using ICC profile Main fakeread : fakeread.c ; # Synthetic device print/read utility Main synthread : synthread.c ; # Add CIE values to a spectral reading file Main spec2cie : spec2cie.c ; # Average RGB or CMYK .ti3 files Main average : average.c ; # Utility to install ccmx's, ccss's or install from OEM EDR files Objects oemarch.c vinflate.c inflate.c LzmaDec.c mongoose.c ; Main oeminst : oeminst.c : : : : oemarch vinflate inflate LzmaDec : libconv ; # Generate linear.cal example/diagnostic # (NoUpdate so that Cross Compile Win64 hack works) NNoUpdate linear.cal ; GenFileND linear.cal : synthcal [ NormPaths linear ] ; NDepends exe : linear.cal ; # Normally create it # Generate strange.cal example/diagnostic # (NoUpdate so that Cross Compile Win64 hack works) NNoUpdate strange.cal ; GenFileND strange.cal : synthcal -s 0.7,1.0,0.9 -p 1.7,0.8,0.7 [ NormPaths strange ] ; NDepends exe : strange.cal ; # Normally create it # Dumy ti3 file generator for testing #Main dumyti3 : dumyti3.c ; # Test utility for XYZ matrix spectral correction #Main xyzfix : xyzfix.c ; # Individual stand alone test of xdg_bds library MainVariant xdg_bds : xdg_bds.c : : STANDALONE_TEST : : : libconv ; # fp conversion code test #Main fp : fp.c ; # test code #Main t : t.c ; #Main tt : tt.c ; #Main ttt : ttt.c ; #Main t1 : t1.c ; #Main tt : tt.c ; #Main t8 : t8.c ; #Main t9 : t9.c ; #Main i1d3eval : i1d3eval.c ; # Simple test code of aglob if [ GLOB [ NormPaths . ] : globtest.c ] { Main globtest : globtest.c : : : : : libconv ; } # reflect_db.txt parser */ if [ GLOB [ NormPaths . ] : txt2sp.c ] { Main txt2sp : txt2sp.c ; } # SwatchMate Cube calibration if [ GLOB [ NormPaths . ] : cubecal.c ] { Main cubecal : cubecal.c ; } # ColorMeter utility if [ GLOB [ NormPaths . ] : oemdnld.c ] { echo "Found oemdnld.c !" ; Main oemdnld : oemdnld.c : : : : oemarch vinflate inflate LzmaDec mongoose : libconv ; } # Test code if $(BUILD_JUNK) { # /SUBSYSTEM:WINDOWS on NT link ? # Main fakeindev : fakeindev.c ; # Main cmtest : cmtest.c : : : : : libconv ; # Main webdisp : webdisp.c : : : : : libconv ; # test for parsing a VISE archive #Main visetest : visetest.c vinflate.c ; # Compute deconvolution filter for i1pro #Main i1deconv : i1deconv.c ; # Compute stray light calibration for i1pro #Main i1stray : i1stray.c ; }