# $Id: config.darwin,v 1.47 2010/04/07 00:07:52 kbecker Exp $ #-------------------------------------------------------------------------- # Compiler options #--------------------------------------------------------------------------- # Build architecture now automatically determined at build time via isis.conf include $(ISISROOT)/make/isis.conf MAC_ARCH_FLAGS = $(MAC_ARCH) $(MAC_XARCH) $(MAC_OS_MIN) # Basically is GNU g++/gcc CXX = c++ CC = cc ISISCPPFLAGS = -Wall ISISCPPFLAGS += -ansi ISISCPPFLAGS += $(MAC_ARCH_FLAGS) ifeq ($(HOST_PROC), powerpc) # Powerpc support ISISCPPFLAGS += -DISIS_LITTLE_ENDIAN=0 else # Assumes Intel Mac ISISCPPFLAGS += -DISIS_LITTLE_ENDIAN=1 endif ISISCPPFLAGS += -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE ISISCPPFLAGS += -fPIC ISISCPPFLAGS += -DGMM_USES_SUPERLU ifeq ($(findstring DEBUG, $(MODE)),DEBUG) ISISCPPFLAGS += -g ISISCPPFLAGS += -O0 else ISISCPPFLAGS += -O1 QTDARWINFLAGS += $(QTDEFINES) endif ISISCFLAGS = #--------------------------------------------------------------------------- # Linker options. Runtime paths for Mac is rooted to $ISISROOT #--------------------------------------------------------------------------- ISISLDFLAGS = -headerpad_max_install_names $(MAC_ARCH_FLAGS) -bind_at_load -Wl,-w ISISLDRPATH = -Wl,-rpath,@loader_path/.. -Wl,-rpath,$(ISISROOT) ISISSYSLIBS = -lz -lm -framework ApplicationServices ISISSTATIC = ISISDYNAMIC = #--------------------------------------------------------------------------- # Shared library options #--------------------------------------------------------------------------- RANLIB = /usr/bin/ranlib SHAREDLIBEXT = dylib DYLIBVERSION = -compatibility_version $(ISISMAJOR).$(ISISMINOR) \ -current_version $(ISISLIBVERSION) DYLIBFLAGS = $(MAC_ARCH_FLAGS) -dynamiclib -flat_namespace \ -single_module -undefined suppress ISISSHAREDFLAGS = $(MAC_ARCH_FLAGS) -bundle -flat_namespace -dynamic \ -undefined suppress ISISSHAREDON = ISISSHAREDOFF = ISISARFLAGS = #--------------------------------------------------------------------------- # Set ISIS Dev Kit (IDK) paths #--------------------------------------------------------------------------- IDK_ROOT ?= /opt/usgs/v002 ISIS3OPT ?= $(IDK_ROOT)/ports ISIS3LOCAL ?= $(IDK_ROOT)/3rdparty ISIS3PROP ?= $(IDK_ROOT)/proprietary # Set up paths to needed apps DOXYGEN = $(ISIS3OPT)/bin/doxygen DOT_PATH = $(ISIS3OPT)/bin LATEX = $(ISIS3OPT)/bin/latex #--------------------------------------------------------------------------- # Set up for cwd #--------------------------------------------------------------------------- CWDINCDIR = CWDLIBDIR = CWDLIB = #--------------------------------------------------------------------------- # Set up for Qt #--------------------------------------------------------------------------- QTDARWINFLAGS += -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED QTDIR = $(ISIS3OPT) QTFRAMEWORKDIR = $(QTDIR)/Library/Frameworks ifeq (,$(findstring $(QTFRAMEWORKDIR)/QtCore.framework,$(wildcard $(QTFRAMEWORKDIR)/QtCore.framework ))) QTFRAMEWORKDIR = $(ISIS3OPT)/lib endif QTINCDIR = -I$(QTDIR)/share/qt4/mkspecs/macx-g++ QTINCDIR += -I$(QTFRAMEWORKDIR)/QtCore.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtAssistant.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtGui.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtNetwork.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtOpenGL.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtScript.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtScriptTools.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtSql.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtSvg.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtTest.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtWebKit.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtXml.framework/Headers QTINCDIR += -I$(QTFRAMEWORKDIR)/QtXmlPatterns.framework/Headers QTINCDIR += -F$(QTFRAMEWORKDIR) QTLIBDIR = -L$(QTFRAMEWORKDIR) -F$(QTFRAMEWORKDIR) ISISCPPFLAGS += $(QTDARWINFLAGS) QTCOMMONFRAMEWORKS = QTFRAMEWORKS = -framework QtXmlPatterns -framework QtXml -framework QtNetwork \ -framework QtSql -framework QtGui -framework QtCore -framework QtSvg \ -framework QtTest -framework QtWebKit -framework QtOpenGL QTLIB = $(QTFRAMEWORKS) $(QTCOMMONFRAMEWORKS) QTOPENGL = -framework OpenGL -framework AGL UIC = $(QTDIR)/bin/uic RCC = $(QTDIR)/bin/rcc RCCDEFINES = MOC = $(QTDIR)/bin/moc MOCDEFINES += $(QTDARWINFLAGS) MOCDEFINES += $(QTINCDIR) MOCDEFINES += -D__APPLE__ -D__GNUC__ #--------------------------------------------------------------------------- # Set up for Qwt #--------------------------------------------------------------------------- QWTDIR = $(ISIS3OPT) QWTFRAMES = $(QWTDIR)/Library/Frameworks ifeq (,$(findstring $(QWTFRAMES)/qwt.framework,$(wildcard $(QWTFRAMES)/qwt.framework ))) QWTFRAMES = $(ISIS3OPT)/lib endif QWTINCDIR = -I$(QWTFRAMES)/qwt.framework/Headers QWTLIBDIR = -L$(QWTFRAMES) -F$(QWTFRAMES) QWTLIB = -framework qwt #--------------------------------------------------------------------------- # Set up for Xerces #--------------------------------------------------------------------------- XERCESINCDIR = -I$(ISIS3OPT)/include/xercesc XERCESLIBDIR = -L$(ISIS3OPT)/lib XERCESLIB = -lxerces-c XALAN = $(ISIS3OPT)/bin/Xalan #--------------------------------------------------------------------------- # Set up for GeoTiff #--------------------------------------------------------------------------- GEOTIFFINCDIR = -I$(ISIS3OPT)/include GEOTIFFLIBDIR = -L$(ISIS3OPT)/lib GEOTIFFLIB = -lgeotiff #--------------------------------------------------------------------------- # Set up for proj (Needed on Macs for geotiff) #--------------------------------------------------------------------------- PROJINCDIR = -I$(ISIS3OPT)/include PROJLIBDIR = -L$(ISIS3OPT)/lib PROJLIB = -lproj #--------------------------------------------------------------------------- # Set up for Tiff #--------------------------------------------------------------------------- TIFFINCDIR = -I$(ISIS3OPT)/include TIFFLIBDIR = -L$(ISIS3OPT)/lib TIFFLIB = -ltiff #--------------------------------------------------------------------------- # Set up for naif dsk and cspice libraries #--------------------------------------------------------------------------- NAIFINCDIR = -I$(ISIS3LOCAL)/include/naif/dsklib -I$(ISIS3LOCAL)/include/naif/ NAIFLIBDIR = -L$(ISIS3LOCAL)/lib NAIFLIB = -ldsklib -lcspice #--------------------------------------------------------------------------- # Set up for TNT #--------------------------------------------------------------------------- TNTINCDIR = -I$(ISIS3LOCAL)/include/tnt TNTLIBDIR = TNTLIB = #--------------------------------------------------------------------------- # Set up for JAMA #--------------------------------------------------------------------------- JAMAINCDIR = -I$(ISIS3LOCAL)/include/jama JAMALIBDIR = JAMALIB = #--------------------------------------------------------------------------- # Set up for GEOS #--------------------------------------------------------------------------- GEOSINCDIR = -I$(ISIS3OPT)/include/geos GEOSLIBDIR = -L$(ISIS3OPT)/lib GEOSLIB = -lgeos #--------------------------------------------------------------------------- # Set up for the GNU Scientific Library (GSL). Note that this setup # suppports include patterns such as . With this # format, any other include spec that points to the general include # directory, such as GEOS, will suffice. Therefore, an explicit # include directive is ommitted but provided as an empty reference # in cases where it may be located elsewhere. This also goes for the # library reference. #--------------------------------------------------------------------------- GSLINCDIR = -I$(ISIS3OPT)/include/gsl GSLLIBDIR = -L$(ISIS3OPT)/lib GSLLIB = -lgsl -lgslcblas #--------------------------------------------------------------------------- # Set up for GMM #--------------------------------------------------------------------------- GMMINCDIR = -I$(ISIS3LOCAL)/include GMMLIBDIR = GMMLIB = #--------------------------------------------------------------------------- # Set up for SuperLU #--------------------------------------------------------------------------- SUPERLUINCDIR = -I$(ISIS3LOCAL)/include/superlu SUPERLULIBDIR = -L$(ISIS3LOCAL)/lib ifeq ($(HOST_PROC), powerpc) # Powerpc support SUPERLULIB = -lsuperlu_3.0 -framework vecLib else # Assumes Intel Mac SUPERLULIB = -lsuperlu -lblas endif #--------------------------------------------------------------------------- # Set up for Google Protocol Buffers (ProtoBuf) #--------------------------------------------------------------------------- PROTOBUFINCDIR = -I$(ISIS3OPT)/include/google PROTOBUFLIBDIR = -L$(ISIS3OPT)/lib PROTOBUFLIB = -lprotobuf PROTOC = $(ISIS3OPT)/bin/protoc #--------------------------------------------------------------------------- # Set up for kakadu # The Kakadu library is proprietary. The source files cannot be distributed # with ISIS3. If you need to rebuild ISIS3 on your system, then you will # need to modify the lines below that pertain to the location of the # header files and library on your system. The compilation flag, ENABLEJP2K, # should be set to true if you are building with the Kakadu library and # you want to use the JPEG2000 specific code in the ISIS3 system. Otherwise, # set the ENABLEJP2K flag to false. # # Added abililty to automatically detect the existance of the Kakadu include # directory. One can set the environment variable JP2KFLAG with a 1 or 0 # depending upon need. Developers can define appropriate enviroment variables # for the complete JP2K environment. Just redefine them based upon the usage # below (i.e., be sure to add -I, -L and -l to the variables for KAKADUINCDIR, # KAKADULIBDIR and KAKADULIB, respectively). #--------------------------------------------------------------------------- KAKADUINCDIR ?= -I$(ISIS3PROP)/include/kakadu/v6_3-00967N KAKADULIBDIR ?= -L$(ISIS3PROP)/lib KAKADULIB ?= -lkdu_a63R # Strip -I from Kakadu include directory macro and check for existance JP2KFLAG ?= $(shell if [ -d $(subst -I,,$(KAKADUINCDIR)) ]; then echo "1"; else echo "0"; fi;) ISISCPPFLAGS += -DENABLEJP2K=$(JP2KFLAG) #--------------------------------------------------------------------------- # Set up for Boost Library #--------------------------------------------------------------------------- BOOSTINCDIR = -I$(ISIS3OPT)/include BOOSTLIBDIR = -L$(ISIS3OPT)/lib BOOSTLIB = #--------------------------------------------------------------------------- # Set up for Cholmod Libraries #--------------------------------------------------------------------------- CHOLMODINCDIR = -I$(ISIS3LOCAL)/include CHOLMODLIBDIR = -L$(ISIS3LOCAL)/lib CHOLMODLIB = -lcholmod -lamd -lcolamd -framework Accelerate #--------------------------------------------------------------------------- # Define the third party distribution libraries (patterns) #--------------------------------------------------------------------------- # Libraries THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtXmlPatterns.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtXml.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtNetwork.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtSql.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtGui.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtCore.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtSvg.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtWebKit.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtOpenGL.framework" THIRDPARTYLIBS += "$(QTFRAMEWORKDIR)/QtTest.framework" THIRDPARTYLIBS += "$(QWTFRAMES)/qwt.framework" THIRDPARTYLIBS += "$(ISIS3LOCAL)/lib/libdsklib*.dylib" THIRDPARTYLIBS += "$(ISIS3LOCAL)/lib/libcspice*.dylib" THIRDPARTYLIBS += "$(ISIS3LOCAL)/lib/libsuperlu*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libprotobuf*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libiconv*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libxerces-c*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libgeotiff*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libtiff*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/liblzma*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libgsl*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libz*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libssl*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libcrypto*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libpng*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libtiff.*dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libjpeg.*dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libmng.*dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/liblcms.*dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libgeos*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libsqlite3.*dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/postgresql*/libpq.*dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/mysql5/mysql/libmysqlclient_r*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libiodbc*.dylib" THIRDPARTYLIBS += "$(ISIS3PROP)/lib/libkdu_a63R.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libamd.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libcholmod.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libcolamd.dylib" THIRDPARTYLIBS += "/System/Library/Frameworks/Accelerate.framework" # libxerces-c depends on these libraries THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libicui18n*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libicuuc*.dylib" THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libicudata*.dylib" # libgeotiff depends on these libraries THIRDPARTYLIBS += "$(ISIS3OPT)/lib/libproj*.dylib" # Plugins THIRDPARTYPLUGINS += "$(ISIS3OPT)/share/qt4/plugins/"