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

  1 arta  1.79 #***********************************************************************************************#
  2            #
  3            # INITIALIZATION
  4            #
  5            
  6 arta  1.1  VPATH  = $(SRCDIR)
  7 arta  1.91 STATIC =
  8 arta  1.72 DBMS = POSTGRESQL
  9 arta  1.79 CUSTOMSW =
 10 arta  1.1  
 11 arta  1.62 # Run a script to determine the machine on which make is being run. This
 12            # MAY return a machine type, if the host found falls into one of several
 13            # categories (like dbserver).
 14 arta  1.80 MACHTYPE = $(shell hostname)
 15 arta  1.62 
 16 arta  1.58 # If MACH was set when the make command was issued (eg., make MACH='N02'), then
 17 arta  1.80 # use its value for the output/obj directory and use the drmsparams.mk variables
 18 arta  1.58 # relevant to its value. Otherwise, use $(JSOC_MACHINE).
 19 arta  1.57 ifeq ($(MACH),)
 20            MACH = $(JSOC_MACHINE)
 21            endif
 22            
 23 arta  1.46 #***********************************************************************************************#
 24            #
 25            # COMPILER SELECTION
 26            #
 27 rick  1.29 COMPILER = icc
 28 arta  1.46 FCOMPILER = ifort
 29 kehcheng 1.93 ifeq ($(JSOC_MACHINE), linux_avx2)
 30               MPICOMPILER = mpiicc
 31               MPIFCOMPILER = mpiifort
 32               else
 33 kehcheng 1.78 MPICOMPILER = $(MPI_PATH)/mpicc
 34               MPIFCOMPILER = $(MPI_PATH)/mpif90
 35 kehcheng 1.93 endif
 36 arta     1.46 
 37 arta     1.80 # can set through drmsparams.mk or through environment
 38 arta     1.47 ifneq ($(JSOC_COMPILER),)
 39               COMPILER = $(JSOC_COMPILER)
 40 arta     1.45 endif
 41 arta     1.46 
 42 arta     1.47 ifneq ($(JSOC_FCOMPILER),)
 43               FCOMPILER = $(JSOC_FCOMPILER)
 44 arta     1.45 endif
 45 arta     1.46 #***********************************************************************************************#
 46 arta     1.1  
 47 arta     1.65 #***********************************************************************************************#
 48               # This optional file has custom definitions created by the configure script.
 49 arta     1.80 # Do this after compiler selection since drmsparams.mk might use $COMPILER or $FCOMPILER.
 50               # drmsparams.mk might also set compiler (through moreconfigure.pl)
 51               -include $(SRCDIR)/$(LOCALIZATIONDIR)/drmsparams.mk
 52 arta     1.65 #***********************************************************************************************#
 53 arta     1.46 
 54               #***********************************************************************************************#
 55               #
 56               # DEBUGGING
 57               #
 58 arta     1.1  # Check for debug vs. release build - release is default.
 59 arta     1.30 #   To do a debug build, either set the environment variable JSOC_DEBUG to 1, OR
 60               #   modify the following line so that DEBUG = 1.  The environment variable takes precedence.
 61 arta     1.46 #
 62 arta     1.30 DEBUG = 0
 63 arta     1.1  
 64               ifdef JSOC_DEBUG
 65               ifeq ($(JSOC_DEBUG), 1)
 66               DEBUG = 1
 67               else
 68               DEBUG = 0
 69               endif
 70               endif
 71 arta     1.46 #***********************************************************************************************#
 72 arta     1.1  
 73 arta     1.46 
 74               #***********************************************************************************************#
 75               #
 76               # WARNINGS
 77               #
 78 arta     1.52 # Warnings ARE displayed, by default, for a release build.
 79 arta     1.46 #
 80 arta     1.52 WARN = 1
 81 arta     1.1  
 82 rick     1.29 # Builder can request warnings via environment variable (setenv JSOC_WARN 1).
 83               #   The environment variable takes precedence.
 84 arta     1.1  ifdef JSOC_WARN
 85               ifeq ($(JSOC_WARN), 1)
 86               WARN = 1
 87               else
 88               WARN = 0
 89               endif
 90               endif
 91               
 92 arta     1.53 ICC_WARNMORE =
 93               ifdef JSOC_WARNICC
 94               ifeq ($(COMPILER), icc)
 95               ICC_WARNMORE = $(JSOC_WARNICC)
 96               endif
 97               endif
 98               
 99 arta     1.46 #***********************************************************************************************#
100 arta     1.1  
101               
102 arta     1.39 #***********************************************************************************************#
103               #
104 arta     1.46 # THIRD-PARTY LIBRARIES
105               #
106 arta     1.39 # This section contains make variables that hold the paths to and names of third-party libraries.
107 arta     1.91 # Variables that end in 'H' contain the -I link flags that contain the include paths
108 arta     1.39 # for the library headers, variables that end in 'L' contain the -L link flags that
109               # contain the paths to the library binaries, and variables
110               # that end in "LIBS" contain the full link cmd (the -L flag plus the -l flag)
111               #
112 arta     1.24 
113 arta     1.91 # PostgreSQL
114 arta     1.56 PGH = -I$(POSTGRES_INCS)
115 arta     1.87 
116               # For use of dynamic library
117               PGLIBS = $(POSTGRES_LIBS)/lib$(POSTGRES_LIB).so
118 arta     1.56 
119               # CFITSIO
120               CFITSIOH = -I$(CFITSIO_INCS)
121               CFITSIOL = -L$(CFITSIO_LIBS)
122               CFITSIOLIBNAME = $(CFITSIO_LIB)
123 arta     1.91 # make sure to use static library so we don't have to deal with locating the dynamic one at run time
124               # set back to dynamic (the default) for the other libraries that could follow cfitsio
125               CFITSIOLIBS = $(CFITSIOL) -Wl,-Bstatic -l$(CFITSIOLIBNAME) -Wl,-Bdynamic
126               # end CFITSIO
127 arta     1.56 
128 kehcheng 1.78 # GSL
129               GSLH = -I$(GSL_INCS)
130               GSLL = -L$(GSL_LIBS)
131               GSLLIBS = $(GSLL) -lgsl
132               
133               # FFTW
134 kehcheng 1.93 ifeq ($(JSOC_MACHINE), linux_avx2)
135               FFTWH =
136               FFTWL =
137               FFTW3LIBS =
138               FFTW3FLIBS =
139               else
140 kehcheng 1.78 FFTWH = -I$(FFTW_INCS)
141               FFTWL = -L$(FFTW_LIBS)
142               FFTW3LIBS = $(FFTWL) -lfftw3
143               FFTW3FLIBS = $(FFTWL) -lfftw3f
144 kehcheng 1.93 endif
145 kehcheng 1.78 
146 arta     1.81 # TAR
147               LIBTARH = -I$(TAR_INCS)
148               LIBTARL = -L$(TAR_LIBS) -ltar
149               
150 arta     1.83 # Python
151               LIBPYH = -I$(PY_INCS)
152               LIBPYL = -L$(PY_LIBS) -l$(PY_LIB)
153               PYTHONHOME = "\"$(PY_HOME)\""
154               
155 arta     1.39 #***********************************************************************************************#
156               
157 arta     1.1  
158 arta     1.46 #***********************************************************************************************#
159               #
160               # CUSTOM BUILDS
161               #
162 arta     1.31 # Compilation define customizations (eg., for remote DRMS builds)
163               ifneq ($(DRMS_DEFAULT_RETENTION),)
164               #	CUSTOMSW = $(CUSTOMSW) -DDRMS_DEFAULT_RETENTION="\"$(DRMS_DEFAULT_RETENTION)\""
165               	CUSTOMSW := $(CUSTOMSW) -DDRMS_DEFAULT_RETENTION=$(DRMS_DEFAULT_RETENTION)
166               endif
167               
168 arta     1.91 # Due to legacy code, the name __LOCALIZED_DEFS__ must be used for NetDRMS builds.
169               # Despite the name, this macro has nothing to do with localized definitions. It means
170               # "not Stanford JSOC-SDP" (it essentially means NetDRMS). So, if __LOCALIZED_DEFS__ is set, then
171               # the binaries were built for use outside of Stanford.
172 arta     1.80 # For future use, we also define the NETDRMS_BUILD as a synonym, but with a more appropriate name.
173               # __LOCALIZED_DEFS__ is deprecated and should not be used in new code.
174               ifeq ($(BUILD_TYPE),NETDRMS)
175               CUSTOMSW := $(CUSTOMSW) -DNETDRMS_BUILD -D__LOCALIZED_DEFS__
176               endif
177               
178               # Stanford builds are marked by the JSOC_SDP_BUILD  macro.
179               ifeq ($(BUILD_TYPE),JSOC_SDP)
180               CUSTOMSW := $(CUSTOMSW) -DJSOC_SDP_BUILD
181 arta     1.36 endif
182               
183 arta     1.1  #
184 arta     1.46 #***********************************************************************************************#
185 arta     1.1  
186 arta     1.57 #***********************************************************************************************#
187               #
188               # Global flags
189               #
190 arta     1.91 # All modules must be able to find libdsds.so. The define DRMS_LIBDIR specifies the path to
191 arta     1.57 # all libraries.
192               
193 arta     1.92 GLOBALSW = -DDRMS_ARCH="\"$(MACH)\"" -DDRMS_MAKE_ROOT_DIRECTORY="\"$(SRCDIR)\""
194 arta     1.57 #
195               #***********************************************************************************************#
196 arta     1.1  
197 arta     1.46 #***********************************************************************************************#
198               #
199               # WARNINGS
200               #
201 arta     1.91 # NO LONGER USED - Disable several warnings/remarks when compiling with icc - icc's Wall is a bit picky, it
202 arta     1.1  # complains about extern declarations in .c files.
203               #   1418 (remark) - external function definition with no prior declaration
204               #   1419 (warning) - external declaration in primary source file
205               #   310 (remark) - old style function declaration (pre-ANSI)
206 arta     1.52 #   279 ?
207 arta     1.1  #   981 (remark) - operands are evaluted in unspecified order
208               
209 arta     1.51 # list of warnings to turn into errors
210               ICC_WARNTOERR = -we266
211               
212 arta     1.1  ifeq ($(WARN), 1)
213               # Show warnings (always true for a debug build).
214 arta     1.55 ICC_WARN = $(ICC_WARNMORE)
215               GCC_WARN = -Wno-comment
216 arta     1.46 FCOMPILER_WARN =
217 arta     1.1  else
218               # Don't show warnings.
219 arta     1.51 ICC_WARN = -w0 -vec-report0 -Wno-comment $(ICC_WARNTOERR)
220 arta     1.1  GCC_WARN = -Wno-comment
221 arta     1.46 ifeq ($(FCOMPILER), ifort)
222               FCOMPILER_WARN = -vec-report0
223               else
224               FCOMPILER_WARN =
225               endif
226 arta     1.1  endif
227 arta     1.51 
228 arta     1.46 #***********************************************************************************************#
229               
230               
231               #***********************************************************************************************#
232               #
233               # GLOBAL LINK FLAGS
234               #
235               # Link flags for all targets
236               #
237 kehcheng 1.93 ifeq ($(JSOC_MACHINE), linux_avx2)
238               LL_ALL		= $(SYSLIBS) -lcurl -ltirpc
239               else
240 arta     1.86 LL_ALL		= $(SYSLIBS) -lcurl
241 kehcheng 1.93 endif
242 arta     1.89 
243 kehcheng 1.93 ifeq ($(JSOC_MACHINE), linux_avx2)
244               GCC_LF_ALL	= $(STATIC) -Wl,--copy-dt-needed-entries
245               ICC_LF_ALL	= $(STATIC) -qopenmp -Wl,-export-dynamic -Wl,--copy-dt-needed-entries
246               else ifeq ($(JSOC_MACHINE), linux_avx)
247 arta     1.88 GCC_LF_ALL	= $(STATIC) -Wl,--copy-dt-needed-entries
248               ICC_LF_ALL	= -diag-disable 10237 $(STATIC) -openmp -static-intel -Wl,-export-dynamic -Wl,--copy-dt-needed-entries
249 arta     1.89 else
250               GCC_LF_ALL      = $(STATIC)
251               ICC_LF_ALL      = -diag-disable 10237 $(STATIC) -openmp -static-intel -Wl,-export-dynamic
252               endif
253 arta     1.46 
254               # Fortran global LINK flags
255 arta     1.75 ifeq ($(FCOMPILER), ifort)
256 kehcheng 1.93 ifeq ($(JSOC_MACHINE), linux_avx2)
257               F_LF_ALL        = -nofor-main -qopenmp -Wl,-export-dynamic
258               else
259 kehcheng 1.78 F_LF_ALL	= -diag-disable 10237 -nofor-main  -openmp -static-intel -Wl,-export-dynamic
260 arta     1.75 endif
261 kehcheng 1.93 endif
262 arta     1.46 #***********************************************************************************************#
263               
264               #***********************************************************************************************#
265               #
266               # GLOBAL COMPILE FLAGS
267               #
268 arta     1.91 GCC_CF_GCCCOMP  = -DGCCCOMP
269 kehcheng 1.93 ifeq ($(JSOC_MACHINE), linux_avx2)
270               ICC_CF_ICCCOMP  = -DICCCOMP -qopenmp
271               else
272 kehcheng 1.60 ICC_CF_ICCCOMP  = -DICCCOMP -openmp
273 kehcheng 1.93 endif
274 arta     1.1  
275 arta     1.7  # can't figure out how to get stupid make to do if/else if/else
276 arta     1.1  ifeq ($(DEBUG), 0)
277 arta     1.84   GCC_CF_ALL	= -I$(SRCDIR)/base/include -std=gnu99 -O2 $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
278 arta     1.7  
279 arta     1.1    ifeq ($(JSOC_MACHINE), linux_x86_64)
280 arta     1.84     ICC_CF_ALL = -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
281                   GCC_CF_ALL	= -I$(SRCDIR)/base/include -std=gnu99 -O2 -march=opteron $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW)
282 arta     1.7    endif
283               
284 kehcheng 1.93   ifeq ($(JSOC_MACHINE), linux_avx2)
285                   ICC_CF_ALL = -diag-disable=cpu-dispatch,warn,10441 -axcore-avx512,core-avx2 -I/usr/include/tirpc -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
286                 endif
287               
288 kehcheng 1.78   ifeq ($(JSOC_MACHINE), linux_avx)
289 arta     1.84     ICC_CF_ALL = -xavx -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
290 kehcheng 1.78   endif
291               
292 arta     1.7    ifeq ($(JSOC_MACHINE), linux_ia64)
293 arta     1.84     ICC_CF_ALL	= -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
294 arta     1.7    endif
295               
296                 ifeq ($(JSOC_MACHINE), linux_ia32)
297 arta     1.84     GCC_CF_ALL	= -I$(SRCDIR)/base/include -std=gnu99 -O2 -march=i686 $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW) -DNDEBUG
298 arta     1.91   endif
299 arta     1.1  
300               else
301 arta     1.46 # -g tells the icc and gcc compilers to generate full debugging information
302 kehcheng 1.93   ifeq ($(JSOC_MACHINE), linux_avx2)
303                   GCC_CF_ALL = -I/usr/include/tirpc -I$(SRCDIR)/base/include -std=gnu99 -g $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW)
304                   ICC_CF_ALL = -I/usr/include/tirpc -I$(SRCDIR)/base/include -std=c99 -g -D_GNU_SOURCE $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW)
305                 else
306                   GCC_CF_ALL = -I$(SRCDIR)/base/include -std=gnu99 -g $(GCC_WARN) $(GCC_CF_GCCCOMP) $(CUSTOMSW) $(GLOBALSW)
307                   ICC_CF_ALL = -I$(SRCDIR)/base/include -std=c99 -D_GNU_SOURCE -g $(ICC_WARN) $(ICC_CF_ICCCOMP) $(CUSTOMSW) $(GLOBALSW)
308                 endif
309 arta     1.46 endif
310 arta     1.1  
311 arta     1.46 # Fortran global COMPILE flags
312 kehcheng 1.93 ifeq ($(JSOC_MACHINE), linux_avx2)
313                 ifeq ($(FCOMPILER), ifort)
314                   F_CF_ALL := -diag-disable=cpu-dispatch,warn -axcore-avx512,core-avx2 -qopenmp
315                 endif
316               endif
317               
318 kehcheng 1.78 ifeq ($(JSOC_MACHINE), linux_avx)
319                 ifeq ($(FCOMPILER), ifort)
320                   F_CF_ALL := -xavx -openmp
321                 endif
322               endif
323               
324 arta     1.46 ifeq ($(JSOC_MACHINE), linux_x86_64)
325                 ifeq ($(FCOMPILER), ifort)
326 kehcheng 1.60     F_CF_ALL := -openmp
327 arta     1.46   endif
328 arta     1.1  endif
329               
330 arta     1.46 # Other compiler-specific Fortran COMPILE flags
331               ifeq ($(FCOMPILER), ifort)
332 arta     1.49   FCFLAGS_INIT := -ftrapuv
333 arta     1.46 else
334                 # must be gfortran
335 arta     1.91   FCFLAGS_INIT  :=
336 arta     1.46 endif
337 arta     1.1  
338               ifeq ($(DEBUG), 0)
339 arta     1.46 # -xW optimizes ifort compilation for Pentium 4
340 arta     1.91 # -ftrapuv initializes stack local variables to an unusual value to aid error detection.
341 arta     1.61   F_CF_ALL	:= $(F_CF_ALL) $(FCOMPILER_WARN)
342 arta     1.1  else
343 arta     1.49   F_CF_ALL	:= $(F_CF_ALL) -g $(FCFLAGS_INIT) $(FCOMPILER_WARN)
344 arta     1.1  endif
345 arta     1.46 #***********************************************************************************************#
346               
347 arta     1.1  
348 arta     1.46 #***********************************************************************************************#
349               #
350               # BUILD TOOLS
351 arta     1.91 #
352 arta     1.1  # The C compiler named here must output full (header) dependencies in $(@).d.
353               # It may be necessary to create a script similar to ccd-gcc for your compiler.
354 arta     1.91 #
355 arta     1.1  GCC_CMPLR	= $(SRCDIR)/build/ccd-gcc
356               ICC_CMPLR	= $(SRCDIR)/build/ccd-icc
357               ARCHIVE		= ar crus $@ $^
358               
359               ECPG		= ecpg -o $@ -c $<
360 karen    1.17 SWIG		= swig -perl5 -o $@ $<
361 arta     1.1  
362               GCC_COMP	= $(GCC_CMPLR) $(GCC_CF_ALL) $(CF_TGT) -o $@ -c $<
363               ICC_COMP	= $(ICC_CMPLR) $(ICC_CF_ALL) $(CF_TGT) -o $@ -c $<
364               
365               GCC_LINK	= $(GCC_CMPLR) $(GCC_LF_ALL) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LL_ALL)
366               ICC_LINK	= $(ICC_CMPLR) $(ICC_LF_ALL) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LL_ALL)
367               
368               GCC_COMPLINK	= $(GCC_CMPLR) $(GCC_CF_ALL) $(CF_TGT) $(GCC_LF_ALL) $(LF_TGT) -o $@ $< $(LL_TGT) $(LL_ALL)
369               ICC_COMPLINK	= $(ICC_CMPLR) $(GCC_CF_ALL) $(CF_TGT) $(ICC_LF_ALL) $(LF_TGT) -o $@ $< $(LL_TGT) $(LL_ALL)
370               
371               ifneq ($(COMPILER), icc)
372                 COMP 		= $(GCC_COMP)
373                 LINK		= $(GCC_LINK)
374                 COMPLINK	= $(GCC_COMPLINK)
375               else
376                 COMP 		= $(ICC_COMP)
377                 LINK		= $(ICC_LINK)
378                 COMPLINK	= $(ICC_COMPLINK)
379               endif
380               
381 arta     1.46 FCOMP		= $(FCOMPILER) $(F_CF_ALL) $(FF_TGT) -o $@ -c $<
382               FLINK		= $(FCOMPILER) $(F_LF_ALL) $(LF_TGT) -o $@ $^ $(LL_TGT) $(LL_ALL)
383 arta     1.1  
384 arta     1.58 SLBIN           = ln -sf ../../_$(MACH)/$@ ../bin/$(MACH)/
385               SLLIB		= ln -sf ../../_$(MACH)/$@ ../lib/$(MACH)/
386 arta     1.46 #***********************************************************************************************#
387               
388 arta     1.1  
389 arta     1.46 #***********************************************************************************************#
390               #
391               # LIBRARY COLLECTIONS
392               #
393 arta     1.91 ALL_LIBS_FPIC = $(LIBDRMSCLIENT_FPIC) $(LIBDBCLIENT_FPIC) $(LIBCMDPARAMS_FPIC) $(LIBTHREADUTIL_FPIC) $(LIBRICECOMP_FPIC) $(LIBDEFS_FPIC) $(LIBMISC_FPIC) $(LIBDSTRUCT_FPIC) $(LIBTIMEIO_FPIC) $(LIBFITSRW_FPIC)
394               ALL_LIBS_PY_FPIC = $(LIBDRMS_SERVER_FPIC) $(LIBDB_SERVER_FPIC) $(LIBCMDPARAMS_FPIC) $(LIBTHREADUTIL_FPIC) $(LIBRICECOMP_FPIC) $(LIBDEFS_FPIC) $(LIBMISC_FPIC) $(LIBDSTRUCT_FPIC) $(LIBTIMEIO_FPIC) $(LIBFITSRW_FPIC)
395 arta     1.1  
396               ### Standard parts
397               #
398               include	$(SRCDIR)/Rules.mk
399               
400               # Libraries from src/util linked with all programs.
401 arta     1.12 ifneq ($(COMPILER), icc)
402 arta     1.87   SYSLIBS = -lz -ldl -lpthread -lm -lutil
403 arta     1.12 else
404 arta     1.87   SYSLIBS = -lz -ldl -lpthread -lutil
405 arta     1.12 endif
406 arta     1.77 SRCLIBS = $(LIBTHREADUTIL) $(LIBRICECOMP) $(LIBCMDPARAMS) $(LIBTIMEIO) $(LIBFITSRW) $(LIBERRLOG) $(LIBEXPDRMS) $(LIBEXPUTL) $(LIBMISC) $(LIBDSTRUCT) $(LIBSTATS)
407               FSRCLIBS = $(LIBTHREADUTIL) $(LIBRICECOMP) $(LIBCMDPARAMSF) $(LIBTIMEIO) $(LIBFITSRW) $(LIBERRLOG) $(LIBEXPDRMS) $(LIBEXPUTL) $(LIBMISC) $(LIBDSTRUCT) $(LIBSTATS)
408 arta     1.1  
409               ########## Libraries to link for server executables,    ##############
410               ########## standalone executables and pipeline modules. ##############
411               
412 arta     1.91 # SERVERLIBS: Libraries linked with "server" programs that
413 arta     1.1  # need direct access to the DRMS databases.
414 arta     1.84 SERVERLIBS = $(LIBDRMS) $(LIBDEFSSERVER) $(LIBDB) $(LIBSUMSAPI) $(LIBCJSON) $(SRCLIBS)
415 arta     1.1  
416               # EXELIBS: Libraries linked with standalone executables.
417 arta     1.35 EXELIBS = $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(SRCLIBS)
418 arta     1.1  
419               # MODLIBS: Libraries linked with DRMS modules.
420               MODLIBS = $(LIBJSOC_MAIN) $(SERVERLIBS)
421               
422               # MODLIBS_SOCK: Libraries linked with DRMS modules with socket connection to a drms_server
423 arta     1.84 MODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK) $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(LIBSUMSAPI) $(LIBCJSON) $(SRCLIBS)
424 arta     1.1  
425               # FMODLIBS: Libraries linked with DRMS Fortran modules
426 arta     1.35 FMODLIBS_SOCK = $(LIBJSOC_MAIN_SOCK_F) $(LIBINTHANDLESF) $(LIBDRMSCLIENT) $(LIBDEFSCLIENT) $(LIBDBCLIENT) $(FSRCLIBS)
427 arta     1.46 #***********************************************************************************************#
428               
429 arta     1.1  
430 arta     1.46 #***********************************************************************************************#
431               #
432               # PROJECT MAKE RULES
433               #
434 arta     1.1  # Make rules that apply to all projects outside of the base DRMS/SUMS system
435 arta     1.69 -include $(SRCDIR)/$(LOCALIZATIONDIR)/make_basic.mk
436 arta     1.46 #***********************************************************************************************#
437 arta     1.1  
438 arta     1.46 
439               #***********************************************************************************************#
440               #
441               # MODULE TYPES
442               #
443 arta     1.1  # Make rules that apply to all projects, inside and outside of the base DRMS/SUMS system
444               $(CEXE):	%:	%.o $(EXELIBS)
445               		$(LINK)
446               		$(SLBIN)
447               
448 arta     1.91 $(FEXE):	%:	%.o
449 arta     1.1  		$(FLINK)
450               		$(SLBIN)
451               
452 arta     1.56 $(SERVEREXE):   LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
453 arta     1.1  $(SERVEREXE):	%:	%.o $(SERVERLIBS)
454               			$(LINK)
455               			$(SLBIN)
456               
457 arta     1.56 $(MODEXE):      LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
458 arta     1.1  $(MODEXE):	%:	%.o $(MODLIBS)
459               			$(LINK)
460               			$(SLBIN)
461               
462 arta     1.73 $(MODEXE_SOCK):	LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
463 arta     1.1  $(MODEXE_SOCK): %_sock: %.o $(MODLIBS_SOCK)
464               			$(LINK)
465               			$(SLBIN)
466 arta     1.42 # FMODEXE_SOCK contains all Fortran modules - the DoIt() function is defined inside a .f file.
467 arta     1.39 # These are socket-connect modules only. Assume they use third-party Fortran libraries
468               # (although this may not be the case).
469 arta     1.87 $(FMODEXE_SOCK):	LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
470               $(FMODEXE_SOCK):     %_sock:	%.o $(FMODLIBS_SOCK)
471 arta     1.1  			$(FLINK)
472               			$(SLBIN)
473 tplarson 1.20 
474 arta     1.39 # MODEXE_USEF contains all C direct-connect modules that use third-party Fortran libraries.
475 arta     1.87 $(MODEXE_USEF):	LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
476 tplarson 1.20 $(MODEXE_USEF):     %:	%.o $(MODLIBS)
477               			$(FLINK)
478               			$(SLBIN)
479 arta     1.39 # MODEXE_USEF contains all C socket-connect modules that use third-party Fortran libraries.
480 arta     1.87 $(MODEXE_USEF_SOCK):	LL_TGT := $(LL_TGT) $(PGLIBS) $(CFITSIOLIBS)
481 tplarson 1.20 $(MODEXE_USEF_SOCK): %_sock: %.o $(MODLIBS_SOCK)
482               			$(FLINK)
483               			$(SLBIN)
484 arta     1.46 #***********************************************************************************************#

Karen Tian
Powered by
ViewCVS 0.9.4