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

Comparing trunk/OOPSE-2.0/make/Makefile.in (file contents):
Revision 1525 by tim, Tue Oct 5 19:35:59 2004 UTC vs.
Revision 1529 by tim, Wed Oct 6 18:18:47 2004 UTC

# Line 34 | Line 34 | IS_UNIX=1
34   #
35   #---------------------------------------------------------------------------
36   IS_UNIX=1
37 #packages to be made
38 Packages = \
39        utils \
40        math \
41        types \
42        primitives \
43        visitors \
44        UseTheForce/DarkSide \
45        UseTheForce \
46        brains \
47        io \
48        integrators \
49        minimizers \
50        constraints \
51        profiling \
52        restraints \
53        applications/oopse \
54        applications/dump2Xyz \
55        applications/simpleBuilder \
37  
38 < #packages contain libraries
38 > #packages containing libraries
39   PackageLibs = \
40          utils \
41          math \
# Line 71 | Line 52 | IncludeDirs = \
52          profiling \
53          restraints \
54  
55 + #packages containing applications
56 + Applications = \
57 +        applications/oopse \
58 +        applications/dump2Xyz \
59 +        applications/simpleBuilder
60 +
61   IncludeDirs = \
62          @SPRNG_INC_DIR@ \
63          @MPI_INC_DIR@
# Line 83 | Line 70 | Libraries = \
70          @SPRNG_LIB@ \
71          @MPI_LIB@ \
72          @MPI_F90_LIB@
86
87 LinkOptions = \
88        @F90LIBS@
73  
74   OopseHome       = @OOPSE_HOME@
75   ForceParamDir   = @OOPSE_HOME@/share/forceFields/
# Line 93 | Line 77 | UseMPI          = @USE_MPI@
77   FrcDeclare      = -DFRC_PATH="$(ForceParamDir)"
78   ParallelDeclare = -DIS_MPI
79   UseMPI          = @USE_MPI@
80 + LinkOptions = \
81 +        @F90LIBS@
82  
83 + ParallelLinkOptions = \
84 +        @F90LIBS@
85 +
86 +
87   #---------------------------------------------------------------------------
88   #
89   #  Directories
# Line 109 | Line 99 | CurrentDir        = $(CURDIR)
99   BinDir            = $(DEV_ROOT)/bin
100   DocsDir           = $(DEV_ROOT)/docs
101   CurrentDir        = $(CURDIR)
102 + CombinedStaticLib = $(LibDir)/libOOPSE.a
103 + CombinedParallelStaticLib = $(LibDir)/libOOPSE_MPI.a
104  
105   ifdef Source
106   #get the relative path of current package to source directory
# Line 123 | Line 115 | PackageList              = $(Packages) $(JavaPackages)
115   PackageParallelTargetDir = $(ParallelTargetDir)
116   JavaMainClass            = $(subst /,.,$(Package)).$(Main)
117   else
118 < PackageList              = $(Packages) $(JavaPackages)
118 > PackageList              = $(PackageLibs) $(JavaPackages) $(Applications)
119   endif
120  
121   PackageListLoop          = $(patsubst %,$(SourceDir)/%/.loop,$(PackageList))
# Line 209 | Line 201 | ifneq  "$(words $(ObjectFiles) $(ParallelObjectFiles))
201      Executable             = $(BinDir)/$(Main)
202      ParallelExecutable     = $(BinDir)/$(Main)_MPI
203    else
204 <    SharedLibrary          = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).so
205 <    StaticLibrary          = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).a
206 <    ParallelSharedLibrary  = $(ParallelLibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).so
207 <    ParallelStaticLibrary  = $(ParallelLibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).a
204 >    SharedLibrary          = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_UP.so
205 >    StaticLibrary          = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_UP.a
206 >    ParallelSharedLibrary  = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_MPI.so
207 >    ParallelStaticLibrary  = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_MPI.a
208    endif
209   endif
210   #
# Line 222 | Line 214 | ParallelLibDirs  = -L$(ParallelLibDir)  $(LibraryDirs:
214   JavaPackageNames = $(subst /,.,$(JavaPackages))
215   IncludePath      = -I$(SourceDir) $(IncludeDirs:%=-I%)
216   LibDirs          = -L$(LibDir)    $(LibraryDirs:%=-L%)
217 < ParallelLibDirs  = -L$(ParallelLibDir)  $(LibraryDirs:%=-L%)
218 < LocalLibs        = $(subst /,,$(patsubst %, oopse_%, $(PackageLibs)))
227 < ParallelLocalLibs= $(subst /,,$(patsubst %, oopse_%, $(PackageLibs)))
217 > LocalLibs        = $(subst /,,$(patsubst %, oopse_%_UP, $(PackageLibs)))
218 > ParallelLocalLibs= $(subst /,,$(patsubst %, oopse_%_MPI, $(PackageLibs)))
219   LibList          = $(LocalLibs:%=-l%) $(Libraries)
220 + LibNames         = $(LocalLibs:%=$(LibDir)/lib%.a)
221   ParallelLibList  = $(ParallelLocalLibs:%=-l%) $(Libraries)
222 + ParallelLibNames = $(ParallelLocalLibs:%=$(LibDir)/lib%.a)
223  
224  
225   #---------------------------------------------------------------------------
# Line 262 | Line 255 | Lex                    = @LEX@
255   List                   = cat
256   Yacc                   = @YACC@
257   Lex                    = @LEX@
258 + Ranlib                 = @RANLIB@
259  
260  
261   MakeOptions            = -k
# Line 417 | Line 411 | $(LibDir)/%.a : $(ObjectFiles)
411  
412   # .o -> .a
413  
414 < $(LibDir)/%.a : $(ObjectFiles)
414 > $(LibDir)/%_UP.a : $(ObjectFiles)
415          $(StaticArchiver) $(StaticArchiverOptions) $@ $(ObjectFiles)
416 +        touch $(LibDir)/.stamp_UP
417  
418 < $(ParallelLibDir)/%.a: $(ParallelObjectFiles)
418 > $(LibDir)/%_MPI.a: $(ParallelObjectFiles)
419          $(StaticArchiver) $(StaticArchiverOptions) $@ $(ParallelObjectFiles)
420 +        touch $(LibDir)/.stamp_MPI
421  
422 < ifeq "$(UseMPI)" "yes"
427 < %.a : $(ObjectFiles) $(ParallelObjectFiles)
422 > %_UP.a : $(ObjectFiles)
423          $(MAKE) $(MakeOptions) $(LibDir)/$@
424 <        $(MAKE) $(MakeOptions) $(ParallelLibDir)/$@
425 < else
431 < %.a : $(ObjectFiles)
424 >
425 > %_MPI.a : $(ParallelObjectFiles)
426          $(MAKE) $(MakeOptions) $(LibDir)/$@
433 endif
427  
428   # .o -> .so
429 < $(LibDir)/%.so : $(ObjectFiles)
429 > $(LibDir)/%_UP.so : $(ObjectFiles)
430          $(DynamicArchiver) $(ObjectFiles) $(DynamicArchiverOptions) -o $@
431  
432 < $(ParallelLibDir)/%.so : $(ParallelObjectFiles)
432 > $(LibDir)/%_MPI.so : $(ParallelObjectFiles)
433          $(DynamicArchiver) $(ParallelObjectFiles) $(DynamicArchiverOptions) -o $@
434  
435 < ifeq "$(UseMPI)" "yes"
443 < %.so : $(ObjectFiles) $(ParallelObjectFiles)
435 > %_UP.so : $(ObjectFiles)
436          $(MAKE) $(MakeOptions) $(LibDir)/$@
437 <        $(MAKE) $(MakeOptions) $(ParallelLibDir)/$@
438 < else
447 < %.so : $(ObjectFiles)
437 >
438 > %_MPI.so : $(ParallelObjectFiles)
439          $(MAKE) $(MakeOptions) $(LibDir)/$@
449 endif
440  
441   # .class -> .jar
442   $(LibDir)/%.jar : $(JavaClassFiles) $(OtherTargetFiles)
# Line 480 | Line 470 | $(PackageTargetDir)/%_Skel.class : $(PackageTargetDir)
470   %_Skel.class : %.class
471          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
472  
473 + #GUN make funtions to merge the libraries
474 + find_objs = $(shell $(StaticArchiver) -t $(1))
475 + extract_objs = $(shell $(StaticArchiver) -x $(1) $(call find_objs, $(1)))
476 + create_archive = $(shell  $(StaticArchiver) $(StaticArchiverOptions) $(2) $(call find_objs, $(1)))
477 + remove_objs = $(shell $(Delete) $(call find_objs, $(1)))
478 + do_create = $(call extract_objs,$(1))$(call create_archive,$(1),$(2))$(call remove_objs,$(1))  
479 +
480 + $(CombinedStaticLib) : $(LibDir)/.stamp_UP
481 +        $(foreach thisLib,$(LibNames),$(call do_create,$(thisLib),$@))
482 +        $(Ranlib) $(CombinedStaticLib)
483 +
484 + $(CombinedParallelStaticLib) : $(LibDir)/.stamp_MPI
485 +        $(foreach thisLib,$(ParallelLibNames), $(call do_create, $(thisLib), $@))
486 +        $(Ranlib) $(CombinedParallelStaticLib)
487 +
488   # Executable
489 < $(Executable) : $(ObjectFiles)
490 <        $(Linker) $(ObjectFiles) $(LinkOptions) $(LibDirs) $(LibList) $(LibList) $(LibList) -o $@
489 > $(Executable) : $(CombinedStaticLib) $(ObjectFiles)
490 >        $(Linker) $(ObjectFiles) $(LinkOptions) $(LibDirs) $(CombinedStaticLib) $(Libraries) -o $@
491  
492 < $(ParallelExecutable) : $(ParallelObjectFiles)
493 <        $(Linker) $(ParallelObjectFiles) $(LinkOptions) $(ParallelLibDirs) $(ParallelLibList) $(ParallelLibList) $(ParallelLibList) -o $@
492 > $(ParallelExecutable) : $(CombinedParallelStaticLib) $(ParallelObjectFiles)
493 >        $(Linker) $(ParallelObjectFiles) $(ParallelLinkOptions) $(LibDirs) $(CombinedParallelStaticLib) $(Libraries) -o $@
494  
495   # Anything else is just copied from source to target
496   $(PackageTargetDir)/% : $(PackageSourceDir)/%

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines