# to force make to use /bin/sh SHELL = /bin/sh ######################################################################### # 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/grass57/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 # ######################################################################### #generate static (ST) or shared (SH) #LIB_PREFIX=$(STLIB_PREFIX) #LIB_SUFFIX=$(STLIB_SUFFIX) #LIB_PREFIX=$(SHLIB_PREFIX) #LIB_SUFFIX=$(SHLIB_SUFFIX) LIB_PREFIX=@GRASS_LIB_PREFIX@ LIB_SUFFIX=@GRASS_LIB_SUFFIX@ GRASS_LIBRARY_TYPE=@GRASS_LIBRARY_TYPE@ # GRASS global directories and constants # platform specific dirs ARCH_DISTDIR = $(GRASS_HOME)/dist.$(ARCH) ARCH_BINDIR = $(GRASS_HOME)/bin.$(ARCH) # include dirs GRASS_INCDIR = $(GRASS_HOME)/include ARCH_INCDIR = $(ARCH_DISTDIR)/include/grass GRASS_INC = -I$(GRASS_INCDIR) ARCH_INC = -I$(ARCH_INCDIR) INC = $(GRASS_INC) $(ARCH_INC) VECT_INC = # libraries GRASS_LIBDIR = $(GRASS_HOME)/lib ARCH_LIBDIR = $(ARCH_DISTDIR)/lib ARCH_LIBPATH = -L$(ARCH_LIBDIR) LIBPATH = $(ARCH_LIBPATH) # object dir OBJDIR = OBJ.$(ARCH) ######################################################################### # these define the various directories which contain GRASS programs # or files used by GRASS programs GISBASE = $(ARCH_DISTDIR) BIN = $(ARCH_DISTDIR)/bin ETC = $(ARCH_DISTDIR)/etc DRIVERDIR = $(ARCH_DISTDIR)/driver DBDRIVERDIR = $(ARCH_DISTDIR)/driver/db FONTDIR = $(ARCH_DISTDIR)/fonts GRASS_VERSION_MAJOR = @GRASS_VERSION_MAJOR@ GRASS_VERSION_MINOR = @GRASS_VERSION_MINOR@ GRASS_VERSION_RELEASE = @GRASS_VERSION_RELEASE@ GRASS_VERSION_DATE = @GRASS_VERSION_DATE@ GRASS_VERSION_NUMBER = $(GRASS_VERSION_MAJOR).$(GRASS_VERSION_MINOR).$(GRASS_VERSION_RELEASE) GRASS_VERSION_NAME = $(GRASS_VERSION_MAJOR)$(GRASS_VERSION_MINOR)$(GRASS_VERSION_RELEASE) GRASS_VERSION_FILE = $(ETC)/VERSION ##################### other ############################################# CFLAGS = $(INC) $(COMPILE_FLAGS) $(USE_TERMIO) LDFLAGS = $(LINK_FLAGS) $(LIBPATH) $(LD_SEARCH_FLAGS) $(PQLIBPATH) $(USE_TERMIO) VECT_CFLAGS = $(GDALCFLAGS) ##################### library names ##################################### BITMAP_LIBNAME = grass_bitmap BTREE_LIBNAME = grass_btree COORCNV_LIBNAME = grass_coorcnv DATETIME_LIBNAME = grass_datetime DBDIALOG_LIBNAME = grass_dbdialog DISPLAY_LIBNAME = grass_display DLG_LIBNAME = grass_dlg DSPF_LIBNAME = grass_dspf D__LIBNAME = grass_D DRIVER_LIBNAME = grass_driver EDIT_LIBNAME = grass_edit G3D_LIBNAME = grass_g3d GIS_LIBNAME = grass_gis GMATH_LIBNAME = grass_gmath GPROJ_LIBNAME = grass_gproj IBTREE_LIBNAME = grass_ibtree ICON_LIBNAME = grass_icon IMAGE_LIBNAME = grass_image IMAGERY_LIBNAME = grass_I IORTHO_LIBNAME = grass_Iortho ISMAP_LIBNAME = grass_ismap LINKM_LIBNAME = grass_linkm LOCK_LIBNAME = grass_lock MANAGE_LIBNAME = grass_manage RASTER_LIBNAME = grass_raster ROWIO_LIBNAME = grass_rowio SEGMENT_LIBNAME = grass_segment VASK_LIBNAME = grass_vask XGD_LIBNAME = grass_Xgd XGI_LIBNAME = grass_Xgi XPM_LIBNAME = grass_Xpm # Vector DIG_LIBNAME = grass_dig DIG2_LIBNAME = grass_dig2 VECTR_LIBNAME = grass_vect TRANS_LIBNAME = grass_trans SHAPE_LIBNAME = grass_shape GRAPH_LIBNAME = grass_dgl RTREE_LIBNAME = grass_rtree # Interpolation INTERPDATA_LIBNAME = grass_interpdata INTERPFL_LIBNAME = grass_interpfl QTREE_LIBNAME = grass_qtree # NVIZ related OGSF_LIBNAME = grass_ogsf # triangulation libraries SOS_LIBNAME = grass_sos LIA_LIBNAME = grass_lia OPTRI_LIBNAME = grass_optri BASIC_LIBNAME = grass_basic XDISPLAY_LIBNAME = grass_Xdisplay # DBMI DBMI_LIBNAME = grass_dbmi DBMIBASE_LIBNAME = grass_dbmibase DBMICLIENT_LIBNAME = grass_dbmiclient DBMIDRIVER_LIBNAME = grass_dbmidriver SQLP_LIBNAME = grass_sqlp DBSTUBS_LIBNAME = grass_dbstubs # database forms FORM_LIBNAME = grass_form # Symbols (icons, patterns) SYMB_LIBNAME = grass_symb # Normality CDHC_LIBNAME = grass_cdhc # Sites SITES_LIBNAME = grass_sites ##################### library names and dependencies ################################# BITMAPLIB = -l$(BITMAP_LIBNAME) BTREELIB = -l$(BTREE_LIBNAME) COORCNVLIB = -l$(COORCNV_LIBNAME) DATETIMELIB = -l$(DATETIME_LIBNAME) DBDIALOGLIB = -l$(DBDIALOG_LIBNAME) DISPLAYLIB = -l$(DISPLAY_LIBNAME) DLGLIB = -l$(DLG_LIBNAME) DSPFLIB = -l$(DSPF_LIBNAME) D_LIB = -l$(D__LIBNAME) DRIVERLIB = -l$(DRIVER_LIBNAME) EDITLIB = -l$(EDIT_LIBNAME) G3DLIB = -l$(G3D_LIBNAME) GISLIB = -l$(GIS_LIBNAME) $(DATETIMELIB) $(XDRLIB) $(SOCKLIB) $(INTLLIB) GMATHLIB = -l$(GMATH_LIBNAME) $(FFTWLIB) $(LAPACKLIB) $(BLASLIB) GPROJLIB = -l$(GPROJ_LIBNAME) $(PROJLIB) $(GDALLIBS) IBTREELIB = -l$(IBTREE_LIBNAME) ICONLIB = -l$(ICON_LIBNAME) IMAGELIB = -l$(IMAGE_LIBNAME) IMAGERYLIB = -l$(IMAGERY_LIBNAME) IORTHOLIB = -l$(IORTHO_LIBNAME) ISMAPLIB = -l$(ISMAP_LIBNAME) LINKMLIB = -l$(LINKM_LIBNAME) LOCKLIB = -l$(LOCK_LIBNAME) MANAGELIB = -l$(MANAGE_LIBNAME) RASTERLIB = -l$(RASTER_LIBNAME) ROWIOLIB = -l$(ROWIO_LIBNAME) SEGMENTLIB = -l$(SEGMENT_LIBNAME) VASKLIB = -l$(VASK_LIBNAME) XGDLIB = -l$(XGD_LIBNAME) XGILIB = -l$(XGI_LIBNAME) XPMLIB = -l$(XPM_LIBNAME) # DBMI DBMIBASELIB = -l$(DBMIBASE_LIBNAME) DBMICLIENTLIB = -l$(DBMICLIENT_LIBNAME) DBMIDRIVERLIB = -l$(DBMIDRIVER_LIBNAME) DBMILIB = $(DBMICLIENTLIB) $(DBMIBASELIB) $(DBMIEXTRALIB) SQLPLIB = -l$(SQLP_LIBNAME) DBSTUBSLIB = -l$(DBSTUBS_LIBNAME) # Vector DIGLIB = -l$(DIG_LIBNAME) DIG2LIB = -l$(DIG2_LIBNAME) VECTRLIB = -l$(VECTR_LIBNAME) TRANSLIB = -l$(TRANS_LIBNAME) SHAPELIB = -l$(SHAPE_LIBNAME) GRAPHLIB = -l$(GRAPH_LIBNAME) RTREELIB = -l$(RTREE_LIBNAME) VECTLIB = $(VECTRLIB) $(DIG2LIB) $(GRAPHLIB) $(RTREELIB) $(LINKMLIB) $(DBMILIB) $(GDALLIBS) # Interpolation INTERPDATALIB = -l$(INTERPDATA_LIBNAME) INTERPFLLIB = -l$(INTERPFL_LIBNAME) QTREELIB = -l$(QTREE_LIBNAME) # NVIZ related OGSFLIB = -l$(OGSF_LIBNAME) # triangulation libraries SOSLIB = -l$(SOS_LIBNAME) LIALIB = -l$(LIA_LIBNAME) OPTRILIB = -l$(OPTRI_LIBNAME) BASICLIB = -l$(BASIC_LIBNAME) GEOMLIB = $(OPTRILIB) $(SOSLIB) $(LIALIB) $(BASICLIB) # misc XDISPLAYLIB = -l$(XDISPLAY_LIBNAME) FORMLIB = -l$(FORM_LIBNAME) SYMBLIB = -l$(SYMB_LIBNAME) # Normality CDHCLIB = -l$(CDHC_LIBNAME) # Sites SITESLIB = -l$(SITES_LIBNAME) # These always static DRIVERDEP = $(ARCH_LIBDIR)/$(STLIB_PREFIX)$(DRIVER_LIBNAME)$(STLIB_SUFFIX) ISMAPDEP = $(ARCH_LIBDIR)/$(STLIB_PREFIX)$(ISMAP_LIBNAME)$(STLIB_SUFFIX) MANAGEDEP = $(ARCH_LIBDIR)/$(STLIB_PREFIX)$(MANAGE_LIBNAME)$(STLIB_SUFFIX) ifeq ($(GRASS_LIBRARY_TYPE),stlib) BITMAPDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(BITMAP_LIBNAME)$(LIB_SUFFIX) BTREEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(BTREE_LIBNAME)$(LIB_SUFFIX) COORCNVDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(COORCNV_LIBNAME)$(LIB_SUFFIX) DATETIMEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DATETIME_LIBNAME)$(LIB_SUFFIX) DBDIALOGDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DBDIALOG_LIBNAME)$(LIB_SUFFIX) DISPLAYDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DISPLAY_LIBNAME)$(LIB_SUFFIX) DLGDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DLG_LIBNAME)$(LIB_SUFFIX) DSPFDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DSPF_LIBNAME)$(LIB_SUFFIX) D_DEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(D__LIBNAME)$(LIB_SUFFIX) EDITDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(EDIT_LIBNAME)$(LIB_SUFFIX) G3DDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(G3D_LIBNAME)$(LIB_SUFFIX) GISDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(GIS_LIBNAME)$(LIB_SUFFIX) GMATHDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(GMATH_LIBNAME)$(LIB_SUFFIX) GPROJDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(GPROJ_LIBNAME)$(LIB_SUFFIX) IBTREEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(IBTREE_LIBNAME)$(LIB_SUFFIX) ICONDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(ICON_LIBNAME)$(LIB_SUFFIX) IMAGEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(IMAGE_LIBNAME)$(LIB_SUFFIX) IMAGERYDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(IMAGERY_LIBNAME)$(LIB_SUFFIX) IORTHODEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(IORTHO_LIBNAME)$(LIB_SUFFIX) LINKMDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(LINKM_LIBNAME)$(LIB_SUFFIX) LOCKDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(LOCK_LIBNAME)$(LIB_SUFFIX) RASTERDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(RASTER_LIBNAME)$(LIB_SUFFIX) ROWIODEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(ROWIO_LIBNAME)$(LIB_SUFFIX) SEGMENTDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(SEGMENT_LIBNAME)$(LIB_SUFFIX) VASKDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(VASK_LIBNAME)$(LIB_SUFFIX) XGDDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(XGD_LIBNAME)$(LIB_SUFFIX) XGIDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(XGI_LIBNAME)$(LIB_SUFFIX) XPMDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(XPM_LIBNAME)$(LIB_SUFFIX) # DBMI DBMIBASEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DBMIBASE_LIBNAME)$(LIB_SUFFIX) DBMICLIENTDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DBMICLIENT_LIBNAME)$(LIB_SUFFIX) DBMIDRIVERDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DBMIDRIVER_LIBNAME)$(LIB_SUFFIX) DBMIDEP = $(DBMICLIENTDEP) $(DBMIBASEDEP) SQLPDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(SQLP_LIBNAME)$(LIB_SUFFIX) DBSTUBSDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DBSTUBS_LIBNAME)$(LIB_SUFFIX) # Vector DIGDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DIG_LIBNAME)$(LIB_SUFFIX) DIG2DEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(DIG2_LIBNAME)$(LIB_SUFFIX) VECTRDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(VECTR_LIBNAME)$(LIB_SUFFIX) TRANSDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(TRANS_LIBNAME)$(LIB_SUFFIX) SHAPEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(SHAPE_LIBNAME)$(LIB_SUFFIX) GRAPHDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(GRAPH_LIBNAME)$(LIB_SUFFIX) RTREEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(RTREE_LIBNAME)$(LIB_SUFFIX) VECTDEP = $(VECTRDEP) $(DIG2DEP) $(GRAPHDEP) $(RTREEDEP) $(LINKMDEP) $(DBMIDEP) # Interpolation INTERPDATADEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(INTERPDATA_LIBNAME)$(LIB_SUFFIX) INTERPFLDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(INTERPFL_LIBNAME)$(LIB_SUFFIX) QTREEDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(QTREE_LIBNAME)$(LIB_SUFFIX) # NVIZ related OGSFDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(OGSF_LIBNAME)$(LIB_SUFFIX) # triangulation libraries SOSDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(SOS_LIBNAME)$(LIB_SUFFIX) LIADEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(LIA_LIBNAME)$(LIB_SUFFIX) OPTRIDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(OPTRI_LIBNAME)$(LIB_SUFFIX) BASICDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(BASIC_LIBNAME)$(LIB_SUFFIX) GEOMDEP = $(OPTRIDEP) $(SOSDEP) $(LIADEP) $(BASICDEP) # misc XDISPLAYDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(XDISPLAY_LIBNAME)$(LIB_SUFFIX) FORMDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(FORM_LIBNAME)$(LIB_SUFFIX) SYMBDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(SYMB_LIBNAME)$(LIB_SUFFIX) # Normality CDHCDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(CDHC_LIBNAME)$(LIB_SUFFIX) # Sites SITESDEP = $(ARCH_LIBDIR)/$(LIB_PREFIX)$(SITES_LIBNAME)$(LIB_SUFFIX) endif ##################### rules ############################################# # first found target first: pre default @if test -n "$(INST_NOW)" ; then \ $(MAKE) inst_now ; \ fi # This helps compile and install modules directly into $(INST_DIR) # without having to install whole distribution even after modifying only # one module. It will update both $(GRASS_HOME)/dist.$(ARCH) and $(INST_DIR). # Usage: # INST_NOW=y make # alias gmake='INST_NOW=y make' will be useful. ifdef INST_NOW ARCH_DISTDIR = $(INST_DIR) ARCH_BINDIR = $(UNIX_BIN) endif inst_now: INST_NOW= $(MAKE) # create platform dirs pre: $(ARCH_BINDIR) $(ARCH_INCDIR) $(ARCH_LIBDIR) \ $(BIN) $(ETC) \ $(DRIVERDIR) $(DBDRIVERDIR) $(FONTDIR) $(ARCH_BINDIR): mkdir -p $(ARCH_BINDIR) $(ARCH_INCDIR): mkdir -p $(ARCH_INCDIR) $(ARCH_LIBDIR): mkdir -p $(ARCH_LIBDIR) $(BIN): mkdir -p $(BIN) $(ETC): mkdir -p $(ETC) $(DRIVERDIR): mkdir -p $(DRIVERDIR) $(DBDRIVERDIR): mkdir -p $(DBDRIVERDIR) $(FONTDIR): mkdir -p $(FONTDIR)