ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-3.0/make/Makefile.in
(Generate patch)

Comparing:
trunk/OOPSE-3.0/make/Makefile.in (file contents), Revision 1512 by tim, Wed Sep 29 21:54:03 2004 UTC vs.
branches/new_design/OOPSE-3.0/make/Makefile.in (file contents), Revision 1914 by tim, Tue Jan 11 15:46:22 2005 UTC

# Line 33 | Line 33
33   #  $<      - Current dependency
34   #
35   #---------------------------------------------------------------------------
36 + IS_UNIX=1
37  
38 < #---------------------------------------------------------------------------
39 < #
40 < #  Packages
41 < #
42 < #---------------------------------------------------------------------------
38 > #packages containing libraries
39 > PackageLibs = \
40 >        utils \
41 >        visitors \
42 >        math \
43 >        types \
44 >        primitives \
45 >        UseTheForce/DarkSide \
46 >        UseTheForce \
47 >        brains \
48 >        io \
49 >        integrators\
50  
51 < #packages to be made
52 < Packages = \
53 <        utils \
54 <        math \
55 <        types \
48 <        primitives \
49 <        visitors \
50 <        UseTheForce/DarkSide \
51 <        UseTheForce \
52 <        brains \
53 <        io \
54 <        integrators \
55 <        minimizers \
56 <        constraints \
57 <        profiling \
58 <        restraints \
59 <        applications
51 > #packages containing applications
52 > Applications = \
53 >        applications/oopse \
54 >        applications/dump2Xyz \
55 >        applications/simpleBuilder
56  
57 < #packages contain libraries
58 < PackageLibs = \
59 <              utils \
60 <              math \
61 <              types \
62 <              primitives \
63 <              visitors \
64 <        UseTheForce/DarkSide \
65 <              UseTheForce \
66 <        brains \
67 <              io \
68 <              integrators \
69 <              minimizers \
74 <              constraints \
75 <              profiling \
76 <              restraints
57 > Samples = \
58 >        samples/argon \
59 >        samples/water/dimer \
60 >        samples/water/spce \
61 >        samples/water/ssd \
62 >        samples/water/ssde \
63 >        samples/water/tip3p_ice \
64 >        samples/water/tip4p \
65 >        samples/lipid \
66 >        samples/alkane \
67 >        samples/minimizer \
68 >        samples/metals \
69 >        samples/zcons \
70  
71 + IncludeDirs = \
72 +        @SPRNG_INC_DIR@ \
73 +        @MPI_INC_DIR@
74 +
75 + LibraryDirs = \
76 +        @SPRNG_LIB_DIR@ \
77 +        @MPI_LIB_DIR@
78 +
79 + Libraries = \
80 +        @SPRNG_LIB@ \
81 +        @MPI_LIB@ \
82 +        @MPI_F90_LIB@
83 +
84 + OopseHome       = @OOPSE_HOME@
85 + ForceParamDir   = $(OopseHome)/share/forceFields
86 + SampleSimDir    = $(OopseHome)/share/samples
87 + InstallBinDir   = $(OopseHome)/bin
88 + DocDir          = $(OopseHome)/doc
89 + FrcDeclare      = -DFRC_PATH="$(ForceParamDir)"
90 + F90Declare      = -D__FORTRAN90
91 + ParallelDeclare = -DIS_MPI
92 + UseMPI          = @USE_MPI@
93 + ModuleCase      = @F90_MODULE_NAMES@
94 + ModSuffix       = @MOD@
95 + LinkOptions = \
96 +        @F90LIBS@
97 +
98 + ParallelLinkOptions = \
99 +        @F90LIBS@
100 +
101 +
102   #---------------------------------------------------------------------------
103   #
104   #  Directories
105   #
106   #---------------------------------------------------------------------------
107  
84 srcdir = @srcdir@
108   SourceDir         = $(DEV_ROOT)/src
109   TargetDir         = $(DEV_ROOT)/obj
110   ParallelTargetDir = $(DEV_ROOT)/MPIobj
# Line 90 | Line 113 | CurrentDir        = $(CURDIR)
113   BinDir            = $(DEV_ROOT)/bin
114   DocsDir           = $(DEV_ROOT)/docs
115   CurrentDir        = $(CURDIR)
116 + CombinedStaticLib = $(LibDir)/libOOPSE.a
117 + CombinedParallelStaticLib = $(LibDir)/libOOPSE_MPI.a
118  
119   ifdef Source
120   #get the relative path of current package to source directory
# Line 104 | Line 129 | PackageList              = $(Packages) $(JavaPackages)
129   PackageParallelTargetDir = $(ParallelTargetDir)
130   JavaMainClass            = $(subst /,.,$(Package)).$(Main)
131   else
132 < PackageList              = $(Packages) $(JavaPackages)
132 > PackageList              = $(PackageLibs) $(JavaPackages) $(Applications)
133   endif
134  
135   PackageListLoop          = $(patsubst %,$(SourceDir)/%/.loop,$(PackageList))
# Line 155 | Line 180 | ObjectFiles            = $(CFiles:%.c=        $(Packag
180   JniHeaders             = $(JniSource:%.java=  $(PackageSourceDir)/%.h)
181   ObjectFiles            = $(CFiles:%.c=        $(PackageTargetDir)/%.o)\
182                           $(CppFiles:%.cpp=    $(PackageTargetDir)/%.o)\
183 <                                     $(FortranFiles:%.f=  $(PackageTargetDir)/%.o)\
184 <                                     $(F90Files:%.F90=    $(PackageTargetDir)/%.o)\
185 <                                     $(LexFiles:%.l=      $(PackageTargetDir)/%.o)\
186 <                                     $(YaccFiles:%.y=     $(PackageTargetDir)/%.o)
183 >                         $(FortranFiles:%.f=  $(PackageTargetDir)/%.o)\
184 >                         $(F90Files:%.F90=    $(PackageTargetDir)/%.o)\
185 >                         $(LexFiles:%.l=      $(PackageTargetDir)/%.o)\
186 >                         $(YaccFiles:%.y=     $(PackageTargetDir)/%.o)
187   ParallelObjectFiles    = $(CFiles:%.c=        $(PackageParallelTargetDir)/%.o)\
188 <                                     $(CppFiles:%.cpp=    $(PackageParallelTargetDir)/%.o)\
189 <                                     $(FortranFiles:%.f=  $(PackageParallelTargetDir)/%.o)\
190 <                                     $(F90Files:%.F90=    $(PackageParallelTargetDir)/%.o)\
191 <                                     $(LexFiles:%.l=      $(PackageParallelTargetDir)/%.o)\
192 <                                     $(YaccFiles:%.y=     $(PackageParallelTargetDir)/%.o)
188 >                         $(CppFiles:%.cpp=    $(PackageParallelTargetDir)/%.o)\
189 >                         $(FortranFiles:%.f=  $(PackageParallelTargetDir)/%.o)\
190 >                         $(F90Files:%.F90=    $(PackageParallelTargetDir)/%.o)\
191 >                         $(LexFiles:%.l=      $(PackageParallelTargetDir)/%.o)\
192 >                         $(YaccFiles:%.y=     $(PackageParallelTargetDir)/%.o)
193  
194   DerivedSource          = $(YaccFiles:%.y=    %.h) \
195 <                               $(YaccFiles:%.y=    %.c) \
196 <                               $(LexFiles:%.l=     %.c)
195 >                         $(YaccFiles:%.y=    %.c) \
196 >                         $(LexFiles:%.l=     %.c)
197  
198   DerivedCFiles          = $(YaccFiles:%.y=    %.c) \
199 <                               $(LexFiles:%.l=     %.c)
199 >                         $(LexFiles:%.l=     %.c)
200  
201   OtherTargetFiles       = $(OtherSourceFiles:%=$(PackageTargetDir)/%)
202  
# Line 190 | Line 215 | ifneq  "$(words $(ObjectFiles) $(ParallelObjectFiles))
215      Executable             = $(BinDir)/$(Main)
216      ParallelExecutable     = $(BinDir)/$(Main)_MPI
217    else
218 <    SharedLibrary          = $(LibDir)/lib$(subst /,,$(Package)).so
219 <    StaticLibrary          = $(LibDir)/lib$(subst /,,$(Package)).a
220 <    ParallelSharedLibrary  = $(LibDir)/lib$(subst /,,$(Package))_MPI.so
221 <    ParallelStaticLibrary  = $(LibDir)/lib$(subst /,,$(Package))_MPI.a
218 >    SharedLibrary          = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_UP.so
219 >    StaticLibrary          = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_UP.a
220 >    ParallelSharedLibrary  = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_MPI.so
221 >    ParallelStaticLibrary  = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_MPI.a
222    endif
223   endif
224 +
225   #
226   # Misc
227   #
# Line 203 | Line 229 | LocalLibs        = $(subst /,,$(PackageLibs))
229   JavaPackageNames = $(subst /,.,$(JavaPackages))
230   IncludePath      = -I$(SourceDir) $(IncludeDirs:%=-I%)
231   LibDirs          = -L$(LibDir)    $(LibraryDirs:%=-L%)
232 < LocalLibs        = $(subst /,,$(PackageLibs))
233 < LibList          = $(LocalLibs:%=-l%) $(Libraries:%=-l%)
232 > LocalLibs        = $(subst /,,$(patsubst %, oopse_%_UP, $(PackageLibs)))
233 > ParallelLocalLibs= $(subst /,,$(patsubst %, oopse_%_MPI, $(PackageLibs)))
234 > LibList          = $(LocalLibs:%=-l%) $(Libraries)
235 > LibNames         = $(LocalLibs:%=$(LibDir)/lib%.a)
236 > ParallelLibList  = $(ParallelLocalLibs:%=-l%) $(Libraries)
237 > ParallelLibNames = $(ParallelLocalLibs:%=$(LibDir)/lib%.a)
238  
239  
240   #---------------------------------------------------------------------------
# Line 213 | Line 243 | Move                   = mv
243   #
244   #---------------------------------------------------------------------------
245   Print                  = @echo
246 < Move                   = mv
246 > Move                   = mv -f
247   Copy                   = cp
248   CCompiler              = @CC@
249   CppCompiler            = @CXX@
250   Linker                 = @CXX@
251   MakeDepend             = makedepend
252 < Install                = @INSTALL@
252 > INSTALL                = @INSTALL@
253   InstallProgram         = @INSTALL_PROGRAM@
254   InstallData            = @INSTALL_DATA@
255 < MakeDir                = @MKINSTALLDIRS@
255 > MkDir                = @MKINSTALLDIRS@
256   Delete                 = rm -fr
257   StaticArchiver         = @AR@
258   DynamicArchiver        = @CC@
# Line 240 | Line 270 | Lex                    = @LEX@
270   List                   = cat
271   Yacc                   = @YACC@
272   Lex                    = @LEX@
273 + Ranlib                 = @RANLIB@
274 + Doxygen                = @DOXYGEN@
275  
276 <
245 < MakeOptions            = -k -s
276 > MakeOptions            = -k
277   MakeDependOptions      =
278   StaticArchiverOptions  = rc
279   DynamicArchiverOptions = -shared
# Line 250 | Line 281 | FortranOptions         =
281   JniOptions             =
282   RmiOptions             = -d $(TargetDir) -classpath $(ClassPath) \
283                           -sourcepath $(SourceDir)
284 + COptions               = $(FrcDeclare) @CFLAGS@
285 + CParallelOptions       = $(FrcDeclare) $(ParallelDeclare) @CFLAGS@
286 + CppOptions             = $(FrcDeclare) @CXXFLAGS@
287 + CppParallelOptions     = $(FrcDeclare) $(ParallelDeclare) @CXXFLAGS@
288   FortranOptions         =
289 < F90Options             =  -I$(SourceDir) -module $(TargetDir)
289 > F90Options             =  @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) @MODDIRFLAG@$(TargetDir)
290 > F90ParallelOptions     =  @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) @MODDIRFLAG@$(ParallelTargetDir)  @PREPDEFFLAG@$(ParallelDeclare)
291   JavaCompilerOptions    = -d $(TargetDir) -classpath $(ClassPath) \
292                           -sourcepath $(SourceDir) -deprecation
293   JavaRunOptions         = -classpath $(ClassPath)
# Line 277 | Line 313 | Space                  = $(Empty) $(Empty)
313  
314   #---------------------------------------------------------------------------
315   #
316 + #  Install
317 + #
318 + #---------------------------------------------------------------------------
319 +
320 + ifneq "$(words $(SampleFiles))" "0"
321 +  MySample                 = $(subst $(shell cd $(DEV_ROOT)/samples; pwd)/,,$(CurrentDir))
322 +  MyInstallDir             = $(SampleSimDir)/$(MySample)
323 +  InstallFiles             = $(SampleFiles)
324 +  InstallCommand           = $(InstallData)
325 + endif
326 +
327 + ifneq "$(words $(Main))" "0"
328 +  MyInstallDir             = $(InstallBinDir)
329 +  ifeq "$(UseMPI)" "yes"
330 +    InstallFiles             = $(Executable) $(ParallelExecutable)
331 +  else
332 +    InstallFiles             = $(Executable)
333 +  endif
334 +  InstallCommand           = $(InstallProgram)
335 + endif
336 +
337 + ifneq "$(words $(ForcefieldFiles))" "0"
338 +  MyInstallDir             = $(ForceParamDir)
339 +  InstallFiles             = $(ForcefieldFiles)
340 +  InstallCommand           = $(InstallData)
341 + endif
342 +
343 + ifneq "$(words $(InstallFiles))" "0"
344 +  InstallList            =
345 + else
346 +  InstallList            = $(patsubst %,$(DEV_ROOT)/%,$(Samples)) $(DEV_ROOT)/forceFields $(patsubst %, $(SourceDir)/%,$(Applications))
347 + endif
348 +
349 + InstallListLoop          = $(patsubst %,$(SourceDir)/%/.install,$(PackageList))  $(patsubst %,%/.install,$(InstallList))
350 +
351 +
352 +
353 + #---------------------------------------------------------------------------
354 + #
355   # Rules
356   #
357   #---------------------------------------------------------------------------
# Line 292 | Line 367 | $(PackageTargetDir)/%.o : %.c
367   # .c -> .o
368   $(PackageTargetDir)/%.o : %.c
369          $(Print) $@
370 <        $(Print) $(CCompiler) $(COptions) -c $(IncludePath) $< -o $@
296 <        @$(CCompiler) $(COptions) -c $(IncludePath) $< -o $@
370 >        $(CCompiler) $(COptions) -c $(IncludePath) $< -o $@
371  
372 + $(PackageParallelTargetDir)/%.o : %.c
373 +        $(Print) $@
374 +        $(CCompiler) $(CParallelOptions) -c $(IncludePath) $< -o $@
375 +
376 + ifeq "$(UseMPI)" "yes"
377   %.o : %.c
378          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
379 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
380 + else
381 + %.o : %.c
382 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
383 + endif
384  
385   # .cpp -> .o
386   $(PackageTargetDir)/%.o : %.cpp
303        $(Print) $@
304        $(Print) $(CppCompiler) $(CppOptions) -c $(IncludePath) $< -o $@
387          $(CppCompiler) $(CppOptions) -c $(IncludePath) $< -o $@
388  
389 + $(PackageParallelTargetDir)/%.o : %.cpp
390 +        $(CppCompiler) $(CppParallelOptions) -c $(IncludePath) $< -o $@
391 +
392 + ifeq "$(UseMPI)" "yes"
393   %.o : %.cpp
394          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
395 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
396 + else
397 + %.o : %.cpp
398 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
399 + endif
400  
401   # .f -> .o
402   $(PackageTargetDir)/%.o : %.f
403 <        $(Print) $@
313 <        $(Print) $(FortranCompiler) $(FortranOptions) -c $< -o $@
314 <        @$(FortranCompiler) $(FortranOptions) -c $< -o $@
403 >        $(FortranCompiler) $(FortranOptions) -c $< -o $@
404  
405 + $(PackageParallelTargetDir)/%.o : %.f
406 +        $(FortranCompiler) $(FortranParallelOptions) -c $< -o $@
407 +
408 + ifeq "$(UseMPI)" "yes"
409 + %.o : %.f
410 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
411 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
412 + else
413   %.o : %.f
414          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
415 + endif
416  
417   # .F90 -> .o
418   $(PackageTargetDir)/%.o : %.F90
419 <        $(Print) $@
420 <        $(Print) $(F90Compiler) $(F90Options) -c $< -o $@
421 <        @$(F90Compiler) $(F90Options) -c $< -o $@
419 >        $(F90Compiler) $(F90Options) $(IncludePath) -c $< -o $@
420 >        if test -n "`ls *.$(ModSuffix)`"; then \
421 >          $(Move) `ls *.$(ModSuffix)` $(PackageTargetDir);\
422 >        fi
423  
424 + $(PackageParallelTargetDir)/%.o : %.F90
425 +        $(F90Compiler) $(F90ParallelOptions) $(IncludePath) -c $< -o $@
426 +        if test -n "`ls *.$(ModSuffix)`"; then \
427 +          $(Move) "`ls *.$(ModSuffix)`" (PackageParallelTargetDir);\
428 +        fi
429 +
430 + ifeq "$(UseMPI)" "yes"
431   %.o : %.F90
432          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
433 +        if test -f *.$(ModSuffix); then \
434 +          $(Move) *.$(ModSuffix) $(PackageTargetDir);\
435 +        fi
436  
437 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
438 +        if test -f *.$(ModSuffix); then \
439 +          $(Move) *.$(ModSuffix) $(PackageParallelTargetDir);\
440 +        fi
441 +
442 + else
443 + %.o : %.F90
444 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
445 +        if test -f *.$(ModSuffix); then \
446 +          $(Move) *.$(ModSuffix) $(PackageTargetDir);\
447 +        fi
448 +
449 + endif
450 +
451 +
452   # .java -> .class
453   $(PackageTargetDir)/%.class : $(PackageSourceDir)/%.java
454 <        $(Print) $@
331 <        $(Print) $(JavaCompiler) $(JavaCompilerOptions) $<
332 <        @$(JavaCompiler) $(JavaCompilerOptions) $<
454 >        $(JavaCompiler) $(JavaCompilerOptions) $<
455  
456   %.class : $(PackageSourceDir)/%.java
457          @$(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
458  
459   # .class -> .h
460   $(PackageSourceDir)/%.h : $(PackageTargetDir)/%.class
339        $(Print) $@
340        $(Print) $(JniCompiler) $(JniOptions) $(JavaPackageName).$*
461          $(JniCompiler) $(JniOptions) $(JavaPackageName).$*
462  
463   %.h : %.class
# Line 345 | Line 465 | $(PackageSourceDir)/%.h : $(PackageTargetDir)/%.class
465  
466   #.y -> .h
467   %.h : %.y
468 <        $(Print) $@
349 <        $(Print) @$(Yacc) -d $?
350 <        @$(Yacc) -d  $?
468 >        $(Yacc) -d  $?
469          @$(Move) y.tab.h $*.h
470          @$(Delete) y.tab.c
471  
472   #.y -> .c
473   %.c : %.y
474 <        $(Print) $@
357 <        $(Print) $(Yacc) -d $?
358 <        @$(Yacc) -d  $?
474 >        $(Yacc) -d  $?
475          @$(Move) y.tab.c $*.c
476          @$(Delete) y.tab.h
477  
# Line 366 | Line 482 | $(LibDir)/%.a : $(ObjectFiles)
482          @$(Lex) -o$@ $?
483  
484   # .o -> .a
369 $(LibDir)/%.a : $(ObjectFiles)
370        $(Print) $@
371        $(Print) $(StaticArchiver) $(StaticArchiverOptions) $@ $(ObjectFiles)
372        @$(StaticArchiver) $(StaticArchiverOptions) $@ $(ObjectFiles)
485  
486 < %.a : $(ObjectFiles)
487 <        $(MAKE) $(MakeOptions) $(LibDir)/$@
486 > $(LibDir)/%_UP.a : $(ObjectFiles)
487 >        $(StaticArchiver) $(StaticArchiverOptions) $@ $(ObjectFiles)
488 >        @touch $(LibDir)/.stamp_UP
489  
490 < $(LibDir)/%_MPI.a : $(ParallelObjectFiles)
491 <        $(Print) $@
492 <        $(Print) $(StaticArchiver) $(StaticArchiverOptions) $@ $(ParallelObjectFiles)
380 <        @$(StaticArchiver) $(StaticArchiverOptions) $@ $(ParallelObjectFiles)
490 > $(LibDir)/%_MPI.a: $(ParallelObjectFiles)
491 >        $(StaticArchiver) $(StaticArchiverOptions) $@ $(ParallelObjectFiles)
492 >        @touch $(LibDir)/.stamp_MPI
493  
494 + %_UP.a : $(ObjectFiles)
495 +        $(MAKE) $(MakeOptions) $(LibDir)/$@
496 +
497   %_MPI.a : $(ParallelObjectFiles)
498          $(MAKE) $(MakeOptions) $(LibDir)/$@
499  
500   # .o -> .so
501 < $(LibDir)/%.so : $(ObjectFiles)
387 <        $(Print) $@    
388 <        $(Print) $(DynamicArchiver) $(ObjectFiles) $(DynamicArchiverOptions) -o $@
501 > $(LibDir)/%_UP.so : $(ObjectFiles)
502          $(DynamicArchiver) $(ObjectFiles) $(DynamicArchiverOptions) -o $@
503  
391 %.so : $(ObjectFiles)
392        $(MAKE) $(MakeOptions) $(LibDir)/$@
393
504   $(LibDir)/%_MPI.so : $(ParallelObjectFiles)
395        $(Print) $@    
396        $(Print) $(DynamicArchiver) $(ParallelObjectFiles) $(DynamicArchiverOptions) -o $@
505          $(DynamicArchiver) $(ParallelObjectFiles) $(DynamicArchiverOptions) -o $@
506  
507 + %_UP.so : $(ObjectFiles)
508 +        $(MAKE) $(MakeOptions) $(LibDir)/$@
509 +
510   %_MPI.so : $(ParallelObjectFiles)
511          $(MAKE) $(MakeOptions) $(LibDir)/$@
512  
513   # .class -> .jar
514   $(LibDir)/%.jar : $(JavaClassFiles) $(OtherTargetFiles)
515          $(Print) $@
405        $(Print) $(JavaArchiver) -cf $@ $(JavaClassFilesRel) $(OtherTargetFiles)
516          @cd $(TargetDir); $(JavaArchiver) -cf $@ \
517          $(JavaClassFilesRel) $(OtherTargetFiles)
518  
# Line 432 | Line 542 | $(PackageTargetDir)/%_Skel.class : $(PackageTargetDir)
542   %_Skel.class : %.class
543          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
544  
545 + document :
546 +        $(Print) Generate Documentation for OOPSE-2.0
547 +        @cd $(DEV_ROOT)/src    
548 +        $(Doxygen) $(DEV_ROOT)/make/Doxyfile
549 +
550 + #GUN make funtions to merge the libraries
551 + find_objs = $(shell $(StaticArchiver) -t $(1))
552 + extract_objs = $(shell $(StaticArchiver) -x $(1) $(call find_objs, $(1)))
553 + create_archive = $(shell  $(StaticArchiver) $(StaticArchiverOptions) $(2) $(call find_objs, $(1)))
554 + remove_objs = $(shell $(Delete) $(call find_objs, $(1)))
555 + do_create = $(call extract_objs,$(1))$(call create_archive,$(1),$(2))$(call remove_objs,$(1))  
556 +
557 + $(CombinedStaticLib) : $(LibDir)/.stamp_UP
558 +        $(Print) create $@      
559 +        $(foreach thisLib,$(LibNames),$(call do_create,$(thisLib),$@))
560 +        $(Ranlib) $(CombinedStaticLib)
561 +
562 + $(CombinedParallelStaticLib) : $(LibDir)/.stamp_MPI
563 +        $(Print) create $@
564 +        $(foreach thisLib,$(ParallelLibNames), $(call do_create, $(thisLib), $@))
565 +        $(Ranlib) $(CombinedParallelStaticLib)
566 +
567   # Executable
568 < $(Executable) : $(ObjectFiles)
569 <        $(Print) $@
438 <        $(Print) $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ObjectFiles) -o $@
439 <        $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ObjectFiles) -o $@
568 > $(Executable) : $(CombinedStaticLib) $(ObjectFiles)
569 >        $(Linker) $(ObjectFiles) $(LinkOptions) $(LibDirs) $(CombinedStaticLib) $(Libraries) -o $@
570  
571 < $(ParallelExecutable) : $(ParallelObjectFiles)
572 <        $(Print) $@
443 <        $(Print) $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ParallelObjectFiles) -o $@
444 <        $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ParallelObjectFiles) -o $@
571 > $(ParallelExecutable) : $(CombinedParallelStaticLib) $(ParallelObjectFiles)
572 >        $(Linker) $(ParallelObjectFiles) $(ParallelLinkOptions) $(LibDirs) $(CombinedParallelStaticLib) $(Libraries) -o $@
573  
574   # Anything else is just copied from source to target
575   $(PackageTargetDir)/% : $(PackageSourceDir)/%
# Line 454 | Line 582 | _buildall : \
582  
583   _all : _buildall
584  
585 + _buildall :
586 + ifeq "$(UseMPI)" "yes"
587   _buildall : \
588          $(DependencyFile) \
589          $(PackageTargetDir) \
590          $(ObjectFiles) \
591 +        $(ParallelObjectFiles) \
592          $(JavaClassFiles) \
593          $(RmiStubFiles) \
594          $(RmiSkeletonFiles) \
595          $(OtherTargetFiles) \
465        $(SharedLibrary) \
596          $(StaticLibrary) \
597 +        $(ParallelStaticLibrary) \
598          $(JarFile) \
599 <        $(Executable)
599 >        $(Executable) \
600 >        $(ParallelExecutable)
601 > else
602 > _buildall : \
603 >        $(DependencyFile) \
604 >        $(PackageTargetDir) \
605 >        $(ObjectFiles) \
606 >        $(JavaClassFiles) \
607 >        $(RmiStubFiles) \
608 >        $(RmiSkeletonFiles) \
609 >        $(OtherTargetFiles) \
610 >        $(StaticLibrary) \
611 >        $(JarFile) \
612 >        $(Executable)
613 > endif
614  
615  
616   # make clean
# Line 473 | Line 618 | _cleanall :
618          $(Print) Done clean.    
619  
620   _cleanall :
621 <        $(Delete) $(PackageTargetDir)/* \
622 <                  $(JarFile) \
621 >        $(Delete) $(ObjectFiles) $(ParallelObjectFiles)
622 >
623 > # make distclean
624 > distclean : $(PackageListLoop)
625 >        $(Print) Done clean.    
626 >
627 > _distcleanall :
628 >        $(Delete) $(ObjectFiles) \
629 >                  $(ParallelObjectFiles) \
630 >                        $(JarFile) \
631                    $(SharedLibrary) \
632                    $(StaticLibrary) \
633 +                  $(ParallelSharedLibrary) \
634 +                  $(ParallelStaticLibrary) \
635                    $(Executable) \
636 <                  $(DependencyFile)
636 >                  $(ParallelExecutable) \
637 >                  $(DependencyFile)
638  
639  
640   # make depend
# Line 491 | Line 647 | $(DependencyFile) : $(DerivedSource)
647          $(Print) $@
648          @cd $(PackageSourceDir)
649  
494        touch Make.ctemp
495        touch Make.ctemp
496
650   ifneq "$(words $(CppFiles))" "0"
651 <        $(Print) Make dependencies for $(CppFiles)
652 <        $(Print) $(CppCompiler) $(IncludePath) -MM $(CppFiles)  > Make.cpptemp
653 <        $(CppCompiler) $(IncludePath) -MM $(CppFiles)  > Make.cpptemp
654 <        cat Make.cpptemp | sed 's/^[a-zA-Z0-9]/$$\(DEV_ROOT\)\/obj\/&/g' >> $(DependencyFile)
655 <        cat Make.cpptemp | sed 's/^[a-zA-Z0-9]/$$\(DEV_ROOT\)\/MPIobj\/&/g' >> $(DependencyFile)
651 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(TargetDir)/' -MM $(CppFiles)>> Make.cpptemp
652 >        @cat Make.cpptemp  >> $(DependencyFile)
653 >        $(Delete) Make.cpptemp
654 >
655 >  ifeq "$(UseMPI)" "yes"
656 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(ParallelTargetDir)/' $(ParallelDeclare) -MM $(CppFiles)>> Make.cpptemp
657 >        @cat Make.cpptemp  >> $(DependencyFile)
658 >        @$(Delete) Make.cpptemp
659 >  endif
660 >
661   endif
662  
663   ifneq "$(words $(CFiles))" "0"
664 <        $(Print) Make dependencies for $(CFiles)
665 <        $(Print) $(CCompiler)   $(IncludePath) -MM $(CFiles) $(DerivedCFiles)   > Make.ctemp
666 <        $(CCompiler)   $(IncludePath) -MM $(CFiles) $(DerivedCFiles)   > Make.ctemp
509 <        cat Make.ctemp | sed 's/^[a-zA-Z0-9]/$$\(DEV_ROOT\)\/obj\/&/g' >> $(DependencyFile)
510 <        cat Make.ctemp | sed 's/^[a-zA-Z0-9]/$$\(DEV_ROOT\)\/MPIobj\/&/g' >> $(DependencyFile)
664 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(TargetDir)/'  -MM $(CFiles) $(DerivedCFiles)  >> Make.ctemp
665 >        @cat Make.ctemp  >> $(DependencyFile)
666 >        $(Delete) Make.ctemp
667  
668 +  ifeq "$(UseMPI)" "yes"
669 +        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(ParallelTargetDir)/' $(ParallelDeclare) -MM $(CFiles) $(DerivedCFiles)  >> Make.ctemp
670 +        @cat Make.ctemp  >> $(DependencyFile)
671 +        @$(Delete) Make.ctemp
672 +  endif
673 +
674   endif
675  
676   ifneq "$(words $(F90Files))" "0"
677 <        $(Print) Make dependencies for $(F90Files)
678 <        $(DEV_ROOT)/scripts/sfmakedepend  -I $(DEV_ROOT)/src -d '$$(DEV_ROOT)/obj' -f ./Make.ftemp -h *.F90
679 <        cat Make.ftemp >> $(DependencyFile)
677 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(TargetDir)/' $(F90Declare) -MM -mc $(ModuleCase) -ms $(ModSuffix) $(F90Files) > Make.ftemp
678 >        @cat Make.ftemp >> $(DependencyFile)
679 >        @$(Delete) Make.ftemp
680 >
681 >  ifeq "$(UseMPI)" "yes"
682 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(ParallelTargetDir)/' $(ParallelDeclare) $(F90Declare) -MM -mc $(ModuleCase) -ms $(ModSuffix)  $(F90Files) >> Make.ftemp
683 >        @cat Make.ftemp >> $(DependencyFile)
684 >        @$(Delete) Make.ftemp
685 >  endif
686 >
687   endif
519        $(Delete) Make.cpptemp Make.ctemp Make.ftemp
688  
689   # make lib
690   lib    : $(PackageListLoop)
# Line 529 | Line 697 | jarsign : $(JarFile)
697   jarsign : $(JarFile)
698          $(JarSigner) -keystore GeoSoftKeystore $(JarFile) myself
699  
700 + #make install
701 + %.install :
702 +        @$(MAKE) $(MakeOptions) -C $(subst .install,,$@) _installall    
703 +
704 + install : $(InstallListLoop)
705 +        $(Print) Done Install
706 +
707 + _installall : _buildall _installdata
708 +
709 + $(MyInstallDir) :
710 +        $(MkDir) $@
711 +
712 + _installdata :  $(MyInstallDir)
713 +        $(Print) $(InstallFiles)
714 + ifneq "$(words $(InstallFiles))" "0"
715 +        $(InstallData) $(InstallFiles) $(MyInstallDir)
716 + endif      
717 +        
718   # make statistics
719   _statisticsall :
720 <        @$(Print) $(SourceFiles) >> $(DEV_ROOT)/files.tmp
720 >        @$(Print) $(patsubst %,$(CurrentDir)/%,$(SourceFiles)) >> $(DEV_ROOT)/files.tmp
721  
722   statistics : $(PackageListLoop)
723          @$(List) $(DEV_ROOT)/files.tmp | xargs $(WordCount) $(WordCountOptions)
# Line 545 | Line 731 | pure : $(Executable).pure
731  
732   pure : $(Executable).pure
733  
734 + #make cvslog
735 + cvslog:
736 +        $(DEV_ROOT)/scripts/cvs2cl.pl
737 +
738   # Execute
739   _runexe :
740          $(Executable) $(RunParameters)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines