123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- #########################################################################
- # Variable names
- # xxxINCDIR directory(ies) including header files (example: /usr/include)
- # xxxINC cc option(s) for include directory (example: -I/usr/inlude)
- # xxxLIBDIR directory(ies) containing library (example: /usr/lib)
- # xxxLIBPATH cc option for library directory (example: -L/usr/lib)
- # xxx_LIBNAME library name (example: gis)
- # xxxLIB full static library path
- # (example: /home/abc/grass63/dist.i686-pc-linux-gnu/lib/libgis.a)
- # xxxDEP dependency
- #
- # GRASS_xxx GRASS specific (without ARCH_xxx)
- #
- # ARCH_xxx platform specific dirs (without GRASS_xxx)
- #
- # _xxx GRASS_xxx + ARCH_xxx
- #
- # ALLxxx all known for GRASS make system
- #
- #########################################################################
- RELDIR := $(subst $(GRASS_HOME)/,,$(CURDIR))
- # GRASS global directories and constants
- # platform specific dirs
- ARCH_DISTDIR = $(GRASS_HOME)/dist.$(ARCH)
- ARCH_BINDIR = $(GRASS_HOME)/bin.$(ARCH)
- GISBASE = $(ARCH_DISTDIR)
- ERRORLOG = $(GRASS_HOME)/error.log
- # include dirs
- ARCH_INCDIR = $(ARCH_DISTDIR)/include/grass
- INC = -I$(ARCH_DISTDIR)/include -I$(GISBASE)/include
- VECT_INC = $(PQINCPATH)
- # libraries
- ARCH_LIBDIR = $(ARCH_DISTDIR)/lib
- BASE_LIBDIR = $(GISBASE)/lib
- LIBPATH = -L$(ARCH_LIBDIR) -L$(BASE_LIBDIR)
- # object dir
- OBJDIR = OBJ.$(ARCH)
- LIB_RUNTIME_DIR = $(GISBASE)/lib
- RUN_GISRC = $(GISBASE)/demolocation/.grassrc$(GRASS_VERSION_MAJOR)$(GRASS_VERSION_MINOR)
- #########################################################################
- # these define the various directories which contain GRASS programs
- # or files used by GRASS programs
- BIN = $(ARCH_DISTDIR)/bin
- DRIVERDIR = $(ARCH_DISTDIR)/driver
- DBDRIVERDIR = $(ARCH_DISTDIR)/driver/db
- DOCSDIR = $(ARCH_DISTDIR)/docs
- ETC = $(ARCH_DISTDIR)/etc
- GUIDIR = $(ARCH_DISTDIR)/gui
- HTMLDIR = $(ARCH_DISTDIR)/docs/html
- SCRIPTDIR = $(ARCH_DISTDIR)/scripts
- MSG_DIR = $(ARCH_DISTDIR)/etc/msgs
- MO_DIR = $(ARCH_DISTDIR)/locale
- UTILSDIR = $(ARCH_DISTDIR)/utils
- FONTDIR = $(ARCH_DISTDIR)/fonts
- GRASS_VERSION_NUMBER = $(GRASS_VERSION_MAJOR).$(GRASS_VERSION_MINOR).$(GRASS_VERSION_RELEASE)
- GRASS_LIB_VERSION_NUMBER = $(GRASS_VERSION_MAJOR).$(GRASS_VERSION_MINOR)
- GRASS_NAME = grass
- ##################### other #############################################
- COMPILE_FLAGS_C = $(CPPFLAGS) $(CFLAGS) $(INCLUDE_DIRS) $(INC)
- COMPILE_FLAGS_CXX = $(CPPFLAGS) $(CXXFLAGS) $(INCLUDE_DIRS) $(INC)
- LDFLAGS = $(LIBPATH) $(LINK_FLAGS) $(LD_SEARCH_FLAGS)
- VECT_CFLAGS = $(GDALCFLAGS) $(GEOSCFLAGS)
- # Object with _fmode which must be linked to each executable on Windows
- ifdef MINGW
- FMODE_OBJ = $(BASE_LIBDIR)/fmode.o
- # if fmode.o causes trouble, try:
- # FMODE_OBJ = /lib/binmode.o
- MANIFEST_OBJ = $(OBJDIR)/$(basename $(notdir $@)).manifest.res
- MANIFEST = internal
- endif
- # lexical analyzer and default options
- LFLAGS =
- # parser generator and default options
- YFLAGS = -d -v
- MANSECT = 1
- MANBASEDIR = $(ARCH_DISTDIR)/docs/man
- MANDIR = $(MANBASEDIR)/man$(MANSECT)
- HTML2MAN = VERSION_NUMBER=$(GRASS_VERSION_NUMBER) $(GISBASE)/utils/g.html2man.py
- GDAL_LINK = $(USE_GDAL)
- GDAL_DYNAMIC = 1
- DEPFILE = depend.mk
- ##################### library switches ##################################
- libs = \
- ARRAYSTATS:arraystats \
- BASIC:basic \
- BITMAP:bitmap \
- BTREE:btree \
- BTREE2:btree2 \
- CAIRODRIVER:cairodriver \
- CALC:calc \
- CDHC:cdhc \
- CCMATH:ccmath \
- CLUSTER:cluster \
- COORCNV:coorcnv \
- DATETIME:datetime \
- DBDIALOG:dbdialog \
- DBMIBASE:dbmibase \
- DBMICLIENT:dbmiclient \
- DBMIDRIVER:dbmidriver \
- DBSTUBS:dbstubs \
- DIG2:dig2 \
- DIG:dig \
- DISPLAY:display \
- DLG:dlg \
- DRIVER:driver \
- DSPF:dspf \
- RASTER3D:g3d \
- GIS:gis \
- GMATH:gmath \
- GPDE:gpde \
- GPROJ:gproj \
- GRAPH:dgl \
- HTMLDRIVER:htmldriver \
- IBTREE:ibtree \
- ICON:icon \
- IMAGERY:imagery \
- INTERPDATA:interpdata \
- INTERPFL:interpfl \
- IORTHO:iortho \
- ISMAP:ismap \
- LIA:lia \
- LIDAR:lidar \
- LINKM:linkm \
- LOCK:lock \
- LRS:lrs \
- MANAGE:manage \
- NVIZ:nviz \
- OGSF:ogsf \
- OPTRI:optri \
- PNGDRIVER:pngdriver \
- PSDRIVER:psdriver \
- QTREE:qtree \
- RASTER:raster \
- RLI:rli \
- ROWIO:rowio \
- RTREE:rtree \
- SEGMENT:segment \
- SHAPE:shape \
- SIM:sim \
- SITES:sites \
- SOS:sos \
- SQLP:sqlp \
- STATS:stats \
- SYMB:symb \
- TEMPORAL:temporal \
- VECTOR:vector \
- VEDIT:vedit \
- NETA:neta \
- XDISPLAY:xdisplay \
- XGD:xgd \
- XGI:xgi \
- XPM:xpm \
- IOSTREAM:iostream
- ARRAYSTATSDEPS = $(GISLIB) $(MATHLIB)
- BITMAPDEPS = $(LINKMLIB)
- BTREE2DEPS = $(GISLIB)
- CAIRODRIVERDEPS = $(DRIVERLIB) $(GISLIB) $(CAIROLIB) $(FCLIB) $(ICONVLIB)
- CALCDEPS = $(RASTERLIB) $(GISLIB) $(MATHLIB)
- CDHCDEPS = $(MATHLIB)
- CLUSTERDEPS = $(IMAGERYLIB) $(RASTERLIB) $(GISLIB) $(MATHLIB)
- DBMIBASEDEPS = $(GISLIB)
- DBMICLIENTDEPS = $(DBMIBASELIB) $(GISLIB)
- DBMIDRIVERDEPS = $(DBMIBASELIB) $(DBSTUBSLIB) $(GISLIB)
- DBSTUBSDEPS = $(DBMIBASELIB) $(GISLIB)
- DIG2DEPS = $(GISLIB) $(RTREELIB) $(MATHLIB)
- DISPLAYDEPS = $(HTMLDRIVERLIB) $(PNGDRIVERLIB) $(PSDRIVERLIB) $(DRIVERLIB) $(RASTERLIB) $(GISLIB) $(MATHLIB)
- DRIVERDEPS = $(GISLIB) $(FTLIB) $(ICONVLIB) $(MATHLIB)
- DSPFDEPS = $(GISLIB)
- FORMDEPS = $(DBMILIB) $(GISLIB)
- RASTER3DDEPS = $(RASTERLIB) $(GISLIB)
- GISDEPS = $(DATETIMELIB) $(ZLIBLIBPATH) $(ZLIB) $(BZIP2LIBPATH) $(BZIP2LIB) $(ZSTDLIBPATH) $(ZSTDLIB) $(INTLLIB) $(REGEXLIBPATH) $(REGEXLIB) $(ICONVLIB) $(PTHREADLIBPATH) $(PTHREADLIB) $(MATHLIB)
- GMATHDEPS = $(GISLIB) $(FFTWLIB) $(LAPACKLIB) $(BLASLIB) $(CCMATHLIB) $(OMPLIBPATH) $(OMPLIB)
- GPDEDEPS = $(RASTER3DLIB) $(RASTERLIB) $(GISLIB) $(GMATHLIB) $(OMPLIBPATH) $(OMPLIB) $(MATHLIB)
- GPROJDEPS = $(GISLIB) $(GDALLIBS) $(PROJLIB) $(MATHLIB)
- HTMLDRIVERDEPS = $(DRIVERLIB) $(GISLIB) $(MATHLIB)
- IMAGERYDEPS = $(GISLIB) $(MATHLIB) $(RASTERLIB) $(VECTORLIB)
- INTERPFLDEPS = $(BITMAPLIB) $(DBMILIB) $(GMATHLIB) $(INTERPDATALIB) $(QTREELIB) $(VECTORLIB) $(RASTERLIB) $(GISLIB) $(MATHLIB)
- #IORTHODEPS = $(IMAGERYLIB) $(GISLIB)
- IOSTREAMDEPS = $(GISLIB)
- LIDARDEPS = $(VECTORLIB) $(DBMILIB) $(GMATHLIB) $(RASTERLIB) $(SEGMENTLIB) $(GISLIB) $(MATHLIB)
- LRSDEPS = $(DBMILIB) $(GISLIB)
- MANAGEDEPS = $(VECTORLIB) $(GISLIB)
- NVIZDEPS = $(OGSFLIB) $(GISLIB) $(OPENGLLIB)
- OGSFDEPS = $(BITMAPLIB) $(RASTER3DLIB) $(VECTORLIB) $(DBMILIB) $(RASTERLIB) $(GISLIB) $(TIFFLIBPATH) $(TIFFLIB) $(OPENGLLIB) $(OPENGLULIB) $(MATHLIB)
- PNGDRIVERDEPS = $(DRIVERLIB) $(GISLIB) $(PNGLIB) $(MATHLIB)
- PSDRIVERDEPS = $(DRIVERLIB) $(GISLIB) $(MATHLIB)
- RASTERDEPS = $(GISLIB) $(GPROJLIB) $(MATHLIB)
- RLIDEPS = $(RASTERLIB) $(GISLIB) $(MATHLIB)
- ROWIODEPS = $(GISLIB)
- RTREEDEPS = $(GISLIB) $(MATHLIB)
- SEGMENTDEPS = $(GISLIB)
- SIMDEPS = $(VECTORLIB) $(RASTERLIB)
- SITESDEPS = $(VECTORLIB) $(DBMILIB) $(GISLIB) $(DATETIMELIB)
- STATSDEPS = $(RASTERLIB) $(GISLIB) $(MATHLIB)
- SYMBDEPS = $(GISLIB) $(MATHLIB)
- TEMPORALDEPS = $(DBMILIB) $(GISLIB) $(DATETIMELIB)
- VECTORDEPS = $(DBMILIB) $(GRAPHLIB) $(DIG2LIB) $(LINKMLIB) $(RTREELIB) $(GISLIB) $(GEOSLIBS) $(GDALLIBS) $(MATHLIB) $(BTREE2LIB) $(GPROJLIB) $(RASTERLIB) $(PQLIBPATH) $(PQLIB)
- VEDITDEPS = $(VECTORLIB) $(DBMILIB) $(GISLIB) $(MATHLIB)
- NETADEPS = $(VECTORLIB) $(DBMILIB) $(GISLIB)
- ifneq ($(USE_X11),)
- CAIRODRIVERDEPS += $(XLIBPATH) $(XLIB) $(XEXTRALIBS)
- endif
- ifneq ($(USE_CAIRO),)
- DISPLAYDEPS += $(CAIRODRIVERLIB)
- endif
- ifneq ($(GDAL_LINK),)
- ifneq ($(GDAL_DYNAMIC),)
- ifneq ($(MINGW),)
- RASTERDEPS += -lkernel32
- else
- RASTERDEPS += $(DLLIB)
- endif
- else
- RASTERDEPS += $(GDALLIBS)
- endif
- endif
- ifeq ($(OPENGL_WINDOWS),1)
- NVIZDEPS += -lgdi32
- OGSFDEPS += -lgdi32
- endif
- ifneq ($(OPENGL_X11),)
- NVIZDEPS += $(XLIBPATH) $(XLIB) $(XEXTRALIBS)
- endif
- ifeq ($(GRASS_LIBRARY_TYPE),stlib)
- NEED_DEPS = 1
- LIB_PREFIX = $(STLIB_PREFIX)
- LIB_SUFFIX = $(STLIB_SUFFIX)
- else
- LIB_PREFIX = $(SHLIB_PREFIX)
- LIB_SUFFIX = $(SHLIB_SUFFIX)
- endif
- define lib_rules
- $(1)_LIBNAME = grass_$(2).$(GRASS_LIB_VERSION_NUMBER)
- ifneq ($(NEED_DEPS),)
- $(1)LIB = -l$$($(1)_LIBNAME) $$($(1)DEPS)
- else
- $(1)LIB = -l$$($(1)_LIBNAME)
- endif
- ifneq ($(1),IOSTREAM)
- $(1)DEP = $$(BASE_LIBDIR)/$$(LIB_PREFIX)$$($(1)_LIBNAME)$$(LIB_SUFFIX)
- else
- $(1)DEP = $$(BASE_LIBDIR)/$$(STLIB_PREFIX)$$($(1)_LIBNAME)$$(STLIB_SUFFIX)
- endif
- endef
- $(foreach lib,$(libs),$(eval $(call lib_rules,$(firstword $(subst :, ,$(lib))),$(lastword $(subst :, ,$(lib))))))
- ifneq ($(MINGW),)
- GISLIB += $(INTLLIB)
- endif
- DBMILIB = $(DBMICLIENTLIB) $(DBMIBASELIB) $(DBMIEXTRALIB)
- GEOMLIB = $(OPTRILIB) $(SOSLIB) $(LIALIB) $(BASICLIB)
- DBMIDEPS = $(DBMICLIENTDEPS) $(DBMIBASEDEPS)
- GEOMDEPS = $(OPTRIDEPS) $(SOSDEPS) $(LIADEPS) $(BASICDEPS)
|