(file) Return to make_basic.mk CVS log (file) (dir) Up to [Development] / JSOC

Diff for /JSOC/make_basic.mk between version 1.60 and 1.84

version 1.60, 2009/10/06 20:13:24 version 1.84, 2015/08/25 18:47:27
Line 1 
Line 1 
   #***********************************************************************************************#
   #
   # INITIALIZATION
   #
   
 VPATH  = $(SRCDIR) VPATH  = $(SRCDIR)
 STATIC = STATIC =
 DBNAME = POSTGRESQL  DBMS = POSTGRESQL
   CUSTOMSW =
  
 # This optional file has custom definitions created by the configure script  # Run a script to determine the machine on which make is being run. This
 -include $(SRCDIR)/custom.mk  # MAY return a machine type, if the host found falls into one of several
   # categories (like dbserver).
   MACHTYPE = $(shell hostname)
  
 # If MACH was set when the make command was issued (eg., make MACH='N02'), then # If MACH was set when the make command was issued (eg., make MACH='N02'), then
 # use its value for the output/obj directory and use the custom.mk variables  # use its value for the output/obj directory and use the drmsparams.mk variables
 # relevant to its value. Otherwise, use $(JSOC_MACHINE). # relevant to its value. Otherwise, use $(JSOC_MACHINE).
 ifeq ($(MACH),) ifeq ($(MACH),)
 MACH = $(JSOC_MACHINE) MACH = $(JSOC_MACHINE)
Line 18  endif
Line 26  endif
 # #
 COMPILER = icc COMPILER = icc
 FCOMPILER = ifort FCOMPILER = ifort
   MPICOMPILER = $(MPI_PATH)/mpicc
   MPIFCOMPILER = $(MPI_PATH)/mpif90
  
 ifneq ($(JSOC_AUTOCOMPILER),)  # can set through drmsparams.mk or through environment
 COMPILER = $(JSOC_AUTOCOMPILER)  
 endif  
   
 ifneq ($(JSOC_AUTOFCOMPILER),)  
 FCOMPILER = $(JSOC_AUTOFCOMPILER)  
 endif  
   
 # can set through custom.mk or through environment  
 ifneq ($(JSOC_COMPILER),) ifneq ($(JSOC_COMPILER),)
 COMPILER = $(JSOC_COMPILER) COMPILER = $(JSOC_COMPILER)
 endif endif
Line 37  FCOMPILER = $(JSOC_FCOMPILER)
Line 39  FCOMPILER = $(JSOC_FCOMPILER)
 endif endif
 #***********************************************************************************************# #***********************************************************************************************#
  
   #***********************************************************************************************#
   # This optional file has custom definitions created by the configure script.
   # Do this after compiler selection since drmsparams.mk might use $COMPILER or $FCOMPILER.
   # drmsparams.mk might also set compiler (through moreconfigure.pl)
   -include $(SRCDIR)/$(LOCALIZATIONDIR)/drmsparams.mk
   #***********************************************************************************************#
  
 #***********************************************************************************************# #***********************************************************************************************#
 # #
Line 109  CFITSIOL = -L$(CFITSIO_LIBS)
Line 117  CFITSIOL = -L$(CFITSIO_LIBS)
 CFITSIOLIBNAME = $(CFITSIO_LIB) CFITSIOLIBNAME = $(CFITSIO_LIB)
 CFITSIOLIBS =  $(CFITSIOL) -l$(CFITSIOLIBNAME) CFITSIOLIBS =  $(CFITSIOL) -l$(CFITSIOLIBNAME)
  
   # GSL
   GSLH = -I$(GSL_INCS)
   GSLL = -L$(GSL_LIBS)
   GSLLIBS = $(GSLL) -lgsl
   
   # FFTW
   FFTWH = -I$(FFTW_INCS)
   FFTWL = -L$(FFTW_LIBS)
   FFTW3LIBS = $(FFTWL) -lfftw3
   FFTW3FLIBS = $(FFTWL) -lfftw3f
   
   # TAR
   LIBTARH = -I$(TAR_INCS)
   LIBTARL = -L$(TAR_LIBS) -ltar
   
   # Python
   LIBPYH = -I$(PY_INCS)
   LIBPYL = -L$(PY_LIBS) -l$(PY_LIB)
   PYTHONHOME = "\"$(PY_HOME)\""
   
 #***********************************************************************************************# #***********************************************************************************************#
  
  
Line 117  CFITSIOLIBS = $(CFITSIOL) -l$(CFITSIOLI
Line 145  CFITSIOLIBS = $(CFITSIOL) -l$(CFITSIOLI
 # CUSTOM BUILDS # CUSTOM BUILDS
 # #
 # Compilation define customizations (eg., for remote DRMS builds) # Compilation define customizations (eg., for remote DRMS builds)
 CUSTOMSW =  
 ifneq ($(DRMS_DEFAULT_RETENTION),) ifneq ($(DRMS_DEFAULT_RETENTION),)
 #       CUSTOMSW = $(CUSTOMSW) -DDRMS_DEFAULT_RETENTION="\"$(DRMS_DEFAULT_RETENTION)\"" #       CUSTOMSW = $(CUSTOMSW) -DDRMS_DEFAULT_RETENTION="\"$(DRMS_DEFAULT_RETENTION)\""
         CUSTOMSW := $(CUSTOMSW) -DDRMS_DEFAULT_RETENTION=$(DRMS_DEFAULT_RETENTION)         CUSTOMSW := $(CUSTOMSW) -DDRMS_DEFAULT_RETENTION=$(DRMS_DEFAULT_RETENTION)
 endif endif
  
 ifneq ($(CUSTOM_DEFINES),)  # Due to legacy code, the name __LOCALIZED_DEFS__ must be used for NetDRMS builds.
 CUSTOMSW := $(CUSTOMSW) -D$(CUSTOM_DEFINES)  # Despite the name, this macro has nothing to do with localized definitions. It means
   # "not Stanford JSOC-SDP" (it essentially means NetDRMS). So, if __LOCALIZED_DEFS__ is set, then
   # the binaries were built for use outside of Stanford.
   # For future use, we also define the NETDRMS_BUILD as a synonym, but with a more appropriate name.
   # __LOCALIZED_DEFS__ is deprecated and should not be used in new code.
   ifeq ($(BUILD_TYPE),NETDRMS)
   CUSTOMSW := $(CUSTOMSW) -DNETDRMS_BUILD -D__LOCALIZED_DEFS__
   endif
   
   # Stanford builds are marked by the JSOC_SDP_BUILD  macro.
   ifeq ($(BUILD_TYPE),JSOC_SDP)
   CUSTOMSW := $(CUSTOMSW) -DJSOC_SDP_BUILD
 endif endif
  
 # #
Line 137  endif
Line 175  endif
 # All modules must be able to find libdsds.so. The define DRMS_LIBDIR specifies the path to # All modules must be able to find libdsds.so. The define DRMS_LIBDIR specifies the path to
 # all libraries. # all libraries.
  
 GLOBALSW = -DDRMS_LIBDIR="\"$(CURDIR)/../lib/$(MACH)\""  GLOBALSW = -DDRMS_ARCH="\"$(MACH)\""
 # #
 #***********************************************************************************************# #***********************************************************************************************#
  
Line 181  endif
Line 219  endif
 # #
 # Link flags for all targets # Link flags for all targets
 # #
 LL_ALL          = $(SYSLIBS)  LL_ALL          = $(SYSLIBS) -lcurl
 GCC_LF_ALL      = $(STATIC) GCC_LF_ALL      = $(STATIC)
 ICC_LF_ALL      = $(STATIC) -openmp -static-intel  ICC_LF_ALL      = -diag-disable 10237 $(STATIC) -openmp -static-intel -Wl,-export-dynamic
  
 # Fortran global LINK flags # Fortran global LINK flags
 F_LF_ALL        = -nofor_main  -openmp -static-intel  ifeq ($(FCOMPILER), ifort)
   F_LF_ALL        = -diag-disable 10237 -nofor-main  -openmp -static-intel -Wl,-export-dynamic
   endif
 #***********************************************************************************************# #***********************************************************************************************#
  
 #***********************************************************************************************# #***********************************************************************************************#
Line 196  F_LF_ALL = -nofor_main -openmp -static-
Line 236  F_LF_ALL = -nofor_main -openmp -static-
 GCC_CF_GCCCOMP  = -DGCCCOMP GCC_CF_GCCCOMP  = -DGCCCOMP
 ICC_CF_ICCCOMP  = -DICCCOMP -openmp ICC_CF_ICCCOMP  = -DICCCOMP -openmp
  
 CCFLAGS_OPT     :=  
   
 ifeq ($(COMPILER), icc)  
   ifeq ($(JSOC_MACHINE), linux_x86_64)  
     CCFLAGS_OPT :=  
   endif  
 endif  
   
 # can't figure out how to get stupid make to do if/else if/else # can't figure out how to get stupid make to do if/else if/else
 ifeq ($(DEBUG), 0) ifeq ($(DEBUG), 0)
   GCC_CF_ALL    = -I$(SRCDIR)/base/include -std=gnu99 -O2 $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW)    GCC_CF_ALL    = -I$(SRCDIR)/base/include -std=gnu99 -O2 $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
 # -xW tells the icc compiler to optimize for Pentium 4  
   ICC_CF_ALL = -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(CCFLAGS_OPT) $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW)  
  
   ifeq ($(JSOC_MACHINE), linux_x86_64)   ifeq ($(JSOC_MACHINE), linux_x86_64)
       ICC_CF_ALL = -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
     GCC_CF_ALL  = -I$(SRCDIR)/base/include -std=gnu99 -O2 -march=opteron $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW)     GCC_CF_ALL  = -I$(SRCDIR)/base/include -std=gnu99 -O2 -march=opteron $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW)
   endif   endif
  
     ifeq ($(JSOC_MACHINE), linux_avx)
       ICC_CF_ALL = -xavx -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
     endif
   
   ifeq ($(JSOC_MACHINE), linux_ia64)   ifeq ($(JSOC_MACHINE), linux_ia64)
     ICC_CF_ALL  = -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW)      ICC_CF_ALL  = -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
   endif   endif
  
   ifeq ($(JSOC_MACHINE), linux_ia32)   ifeq ($(JSOC_MACHINE), linux_ia32)
     GCC_CF_ALL  = -I$(SRCDIR)/base/include -std=gnu99 -O2 -march=i686 $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW)      GCC_CF_ALL  = -I$(SRCDIR)/base/include -std=gnu99 -O2 -march=i686 $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
   endif   endif
  
 else else
Line 229  else
Line 264  else
 endif endif
  
 # Fortran global COMPILE flags # Fortran global COMPILE flags
   ifeq ($(JSOC_MACHINE), linux_avx)
     ifeq ($(FCOMPILER), ifort)
       F_CF_ALL := -xavx -openmp
     endif
   endif
   
 ifeq ($(JSOC_MACHINE), linux_x86_64) ifeq ($(JSOC_MACHINE), linux_x86_64)
   ifeq ($(FCOMPILER), ifort)   ifeq ($(FCOMPILER), ifort)
     F_CF_ALL := -openmp     F_CF_ALL := -openmp
Line 237  endif
Line 278  endif
  
 # Other compiler-specific Fortran COMPILE flags # Other compiler-specific Fortran COMPILE flags
 ifeq ($(FCOMPILER), ifort) ifeq ($(FCOMPILER), ifort)
   ifeq ($(JSOC_MACHINE), linux_x86_64)  
     FCFLAGS_OPT :=  
   endif  
   FCFLAGS_INIT := -ftrapuv   FCFLAGS_INIT := -ftrapuv
 else else
   # must be gfortran   # must be gfortran
   FCFLAGS_OPT   :=  
   FCFLAGS_INIT  :=   FCFLAGS_INIT  :=
 endif endif
  
 ifeq ($(DEBUG), 0) ifeq ($(DEBUG), 0)
 # -xW optimizes ifort compilation for Pentium 4 # -xW optimizes ifort compilation for Pentium 4
 # -ftrapuv initializes stack local variables to an unusual value to aid error detection. # -ftrapuv initializes stack local variables to an unusual value to aid error detection.
   F_CF_ALL      := $(F_CF_ALL) $(FCFLAGS_OPT) $(FCOMPILER_WARN)    F_CF_ALL      := $(F_CF_ALL) $(FCOMPILER_WARN)
 else else
   F_CF_ALL      := $(F_CF_ALL) -g $(FCFLAGS_INIT) $(FCOMPILER_WARN)   F_CF_ALL      := $(F_CF_ALL) -g $(FCFLAGS_INIT) $(FCOMPILER_WARN)
 endif endif
Line 310  include $(SRCDIR)/Rules.mk
Line 347  include $(SRCDIR)/Rules.mk
  
 # Libraries from src/util linked with all programs. # Libraries from src/util linked with all programs.
 ifneq ($(COMPILER), icc) ifneq ($(COMPILER), icc)
   SYSLIBS = -lz -ldl -lpthread -lm    SYSLIBS = -lz -ldl -lpthread -lm -lutil
 else else
   SYSLIBS = -lz -ldl -lpthread    SYSLIBS = -lz -ldl -lpthread -lutil
 endif endif
 SRCLIBS = $(LIBTHREADUTIL) $(LIBRICECOMP) $(LIBCMDPARAMS) $(LIBTIMEIO) $(LIBFITSRW) $(LIBERRLOG) $(LIBMISC) $(LIBDSTRUCT)  SRCLIBS = $(LIBTHREADUTIL) $(LIBRICECOMP) $(LIBCMDPARAMS) $(LIBTIMEIO) $(LIBFITSRW) $(LIBERRLOG) $(LIBEXPDRMS) $(LIBEXPUTL) $(LIBMISC) $(LIBDSTRUCT) $(LIBSTATS)
 FSRCLIBS = $(LIBTHREADUTIL) $(LIBRICECOMP) $(LIBCMDPARAMSF) $(LIBTIMEIO) $(LIBFITSRW) $(LIBERRLOG) $(LIBMISC) $(LIBDSTRUCT)  FSRCLIBS = $(LIBTHREADUTIL) $(LIBRICECOMP) $(LIBCMDPARAMSF) $(LIBTIMEIO) $(LIBFITSRW) $(LIBERRLOG) $(LIBEXPDRMS) $(LIBEXPUTL) $(LIBMISC) $(LIBDSTRUCT) $(LIBSTATS)
  
 ########## Libraries to link for server executables,    ############## ########## Libraries to link for server executables,    ##############
 ########## standalone executables and pipeline modules. ############## ########## standalone executables and pipeline modules. ##############
  
 # SERVERLIBS: Libraries linked with "server" programs that # SERVERLIBS: Libraries linked with "server" programs that
 # need direct access to the DRMS databases. # need direct access to the DRMS databases.
 SERVERLIBS = $(LIBDRMS) $(LIBDEFSSERVER) $(LIBDB) $(LIBSUMSAPI) $(SRCLIBS)  SERVERLIBS = $(LIBDRMS) $(LIBDEFSSERVER) $(LIBDB) $(LIBSUMSAPI) $(LIBCJSON) $(SRCLIBS)
  
 # EXELIBS: Libraries linked with standalone executables. # EXELIBS: Libraries linked with standalone executables.
 EXELIBS = $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(SRCLIBS) EXELIBS = $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(SRCLIBS)
Line 331  EXELIBS = $(LIBDRMSCLIENT) $(LIBDEFSCLIE
Line 368  EXELIBS = $(LIBDRMSCLIENT) $(LIBDEFSCLIE
 MODLIBS = $(LIBJSOC_MAIN) $(SERVERLIBS) MODLIBS = $(LIBJSOC_MAIN) $(SERVERLIBS)
  
 # MODLIBS_SOCK: Libraries linked with DRMS modules with socket connection to a drms_server # MODLIBS_SOCK: Libraries linked with DRMS modules with socket connection to a drms_server
 MODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK) $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(LIBSUMSAPI) $(SRCLIBS)  MODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK) $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(LIBSUMSAPI) $(LIBCJSON) $(SRCLIBS)
  
 # FMODLIBS: Libraries linked with DRMS Fortran modules # FMODLIBS: Libraries linked with DRMS Fortran modules
 FMODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK_F) $(LIBINTHANDLESF) $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(FSRCLIBS) FMODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK_F) $(LIBINTHANDLESF) $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(FSRCLIBS)
Line 343  FMODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK_F) $
Line 380  FMODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK_F) $
 # PROJECT MAKE RULES # PROJECT MAKE RULES
 # #
 # Make rules that apply to all projects outside of the base DRMS/SUMS system # Make rules that apply to all projects outside of the base DRMS/SUMS system
 -include $(SRCDIR)/proj/make_basic.mk  -include $(SRCDIR)/$(LOCALIZATIONDIR)/make_basic.mk
 #***********************************************************************************************# #***********************************************************************************************#
  
  
Line 370  $(MODEXE): %: %.o $(MODLIBS)
Line 407  $(MODEXE): %: %.o $(MODLIBS)
                         $(LINK)                         $(LINK)
                         $(SLBIN)                         $(SLBIN)
  
 $(MODEXE_SOCK): LL_TGT := $(LL_TGT) $(CFITSIOLIBS)  $(MODEXE_SOCK): LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
 $(MODEXE_SOCK): %_sock: %.o $(MODLIBS_SOCK) $(MODEXE_SOCK): %_sock: %.o $(MODLIBS_SOCK)
                         $(LINK)                         $(LINK)
                         $(SLBIN)                         $(SLBIN)
 # FMODEXE_SOCK contains all Fortran modules - the DoIt() function is defined inside a .f file. # FMODEXE_SOCK contains all Fortran modules - the DoIt() function is defined inside a .f file.
 # These are socket-connect modules only. Assume they use third-party Fortran libraries # These are socket-connect modules only. Assume they use third-party Fortran libraries
 # (although this may not be the case). # (although this may not be the case).
 $(FMODEXE_SOCK):        LL_TGT := $(LL_TGT) $(CFITSIOLIBS)  $(FMODEXE_SOCK):        LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
 $(FMODEXE_SOCK):     %_sock:    %.o $(FMODLIBS_SOCK) $(FMODEXE_SOCK):     %_sock:    %.o $(FMODLIBS_SOCK)
                         $(FLINK)                         $(FLINK)
                         $(SLBIN)                         $(SLBIN)
Line 388  $(MODEXE_USEF): %: %.o $(MODLIBS)
Line 425  $(MODEXE_USEF): %: %.o $(MODLIBS)
                         $(FLINK)                         $(FLINK)
                         $(SLBIN)                         $(SLBIN)
 # MODEXE_USEF contains all C socket-connect modules that use third-party Fortran libraries. # MODEXE_USEF contains all C socket-connect modules that use third-party Fortran libraries.
 $(MODEXE_USEF_SOCK):    LL_TGT := $(LL_TGT) $(CFITSIOLIBS)  $(MODEXE_USEF_SOCK):    LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
 $(MODEXE_USEF_SOCK): %_sock: %.o $(MODLIBS_SOCK) $(MODEXE_USEF_SOCK): %_sock: %.o $(MODLIBS_SOCK)
                         $(FLINK)                         $(FLINK)
                         $(SLBIN)                         $(SLBIN)


Legend:
Removed from v.1.60  
changed lines
  Added in v.1.84

Karen Tian
Powered by
ViewCVS 0.9.4