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 1523 by tim, Mon Oct 4 20:56:51 2004 UTC vs.
Revision 1530 by tim, Wed Oct 6 18:53:05 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 81 | Line 68 | Libraries = \
68  
69   Libraries = \
70          @SPRNG_LIB@ \
71 <        @MPI_LIB@
71 >        @MPI_LIB@ \
72 >        @MPI_F90_LIB@
73  
86 LinkOptions = \
87        @F90LIBS@
88
74   OopseHome       = @OOPSE_HOME@
75   ForceParamDir   = @OOPSE_HOME@/share/forceFields/
76   SampleSimDir    = @OOPSE_HOME@/share/samples/
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 103 | Line 94 | MakeDir           = $(DEV_ROOT)/make
94   TargetDir         = $(DEV_ROOT)/obj
95   ParallelTargetDir = $(DEV_ROOT)/MPIobj
96   LibDir            = $(DEV_ROOT)/lib
97 + ParallelLibDir    = $(DEV_ROOT)/MPIlib
98   MakeDir           = $(DEV_ROOT)/make
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 121 | 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 172 | Line 166 | ObjectFiles            = $(CFiles:%.c=        $(Packag
166   JniHeaders             = $(JniSource:%.java=  $(PackageSourceDir)/%.h)
167   ObjectFiles            = $(CFiles:%.c=        $(PackageTargetDir)/%.o)\
168                           $(CppFiles:%.cpp=    $(PackageTargetDir)/%.o)\
169 <                                     $(FortranFiles:%.f=  $(PackageTargetDir)/%.o)\
170 <                                     $(F90Files:%.F90=    $(PackageTargetDir)/%.o)\
171 <                                     $(LexFiles:%.l=      $(PackageTargetDir)/%.o)\
172 <                                     $(YaccFiles:%.y=     $(PackageTargetDir)/%.o)
169 >                         $(FortranFiles:%.f=  $(PackageTargetDir)/%.o)\
170 >                         $(F90Files:%.F90=    $(PackageTargetDir)/%.o)\
171 >                         $(LexFiles:%.l=      $(PackageTargetDir)/%.o)\
172 >                         $(YaccFiles:%.y=     $(PackageTargetDir)/%.o)
173   ParallelObjectFiles    = $(CFiles:%.c=        $(PackageParallelTargetDir)/%.o)\
174 <                                     $(CppFiles:%.cpp=    $(PackageParallelTargetDir)/%.o)\
175 <                                     $(FortranFiles:%.f=  $(PackageParallelTargetDir)/%.o)\
176 <                                     $(F90Files:%.F90=    $(PackageParallelTargetDir)/%.o)\
177 <                                     $(LexFiles:%.l=      $(PackageParallelTargetDir)/%.o)\
178 <                                     $(YaccFiles:%.y=     $(PackageParallelTargetDir)/%.o)
174 >                         $(CppFiles:%.cpp=    $(PackageParallelTargetDir)/%.o)\
175 >                         $(FortranFiles:%.f=  $(PackageParallelTargetDir)/%.o)\
176 >                         $(F90Files:%.F90=    $(PackageParallelTargetDir)/%.o)\
177 >                         $(LexFiles:%.l=      $(PackageParallelTargetDir)/%.o)\
178 >                         $(YaccFiles:%.y=     $(PackageParallelTargetDir)/%.o)
179  
180   DerivedSource          = $(YaccFiles:%.y=    %.h) \
181 <                               $(YaccFiles:%.y=    %.c) \
182 <                               $(LexFiles:%.l=     %.c)
181 >                         $(YaccFiles:%.y=    %.c) \
182 >                         $(LexFiles:%.l=     %.c)
183  
184   DerivedCFiles          = $(YaccFiles:%.y=    %.c) \
185 <                               $(LexFiles:%.l=     %.c)
185 >                         $(LexFiles:%.l=     %.c)
186  
187   OtherTargetFiles       = $(OtherSourceFiles:%=$(PackageTargetDir)/%)
188  
# Line 207 | 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
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
# Line 220 | Line 214 | LocalLibs        = $(subst /,,$(patsubst %, oopse_%, $
214   JavaPackageNames = $(subst /,.,$(JavaPackages))
215   IncludePath      = -I$(SourceDir) $(IncludeDirs:%=-I%)
216   LibDirs          = -L$(LibDir)    $(LibraryDirs:%=-L%)
217 < LocalLibs        = $(subst /,,$(patsubst %, oopse_%, $(PackageLibs)))
217 > LocalLibs        = $(subst /,,$(patsubst %, oopse_%_UP, $(PackageLibs)))
218   ParallelLocalLibs= $(subst /,,$(patsubst %, oopse_%_MPI, $(PackageLibs)))
219   LibList          = $(LocalLibs:%=-l%) $(Libraries)
220 < ParallelLibList  = $(LocalLibs:%=-l%) $(Libraries)
220 > LibNames         = $(LocalLibs:%=$(LibDir)/lib%.a)
221 > ParallelLibList  = $(ParallelLocalLibs:%=-l%) $(Libraries)
222 > ParallelLibNames = $(ParallelLocalLibs:%=$(LibDir)/lib%.a)
223  
224  
225   #---------------------------------------------------------------------------
# Line 259 | Line 255 | Lex                    = @LEX@
255   List                   = cat
256   Yacc                   = @YACC@
257   Lex                    = @LEX@
258 + Ranlib                 = @RANLIB@
259  
260  
261   MakeOptions            = -k
# Line 275 | Line 272 | F90ParallelOptions     =  @PREPFLAG@ @F90FLAGS@ @MODDI
272   CppParallelOptions     = $(FrcDeclare) $(ParallelDeclare)
273   FortranOptions         =
274   F90Options             =  @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) -module $(TargetDir)
275 < F90ParallelOptions     =  @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) -module $(TargetDir)  @PREPDEFFLAG@$(ParallelDeclare)
275 > F90ParallelOptions     =  @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) -module $(ParallelTargetDir)  @PREPDEFFLAG@$(ParallelDeclare)
276   JavaCompilerOptions    = -d $(TargetDir) -classpath $(ClassPath) \
277                           -sourcepath $(SourceDir) -deprecation
278   JavaRunOptions         = -classpath $(ClassPath)
# Line 318 | Line 315 | $(PackageTargetDir)/%.o : %.c
315          $(Print) $@
316          $(CCompiler) $(COptions) -c $(IncludePath) $< -o $@
317  
318 + $(PackageParallelTargetDir)/%.o : %.c
319 +        $(Print) $@
320 +        $(CCompiler) $(CParallelOptions) -c $(IncludePath) $< -o $@
321 +
322 + ifeq "$(UseMPI)" "yes"
323   %.o : %.c
324          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
325 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
326 + else
327 + %.o : %.c
328 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
329 + endif
330  
331   # .cpp -> .o
332   $(PackageTargetDir)/%.o : %.cpp
333          $(CppCompiler) $(CppOptions) -c $(IncludePath) $< -o $@
334  
335 + $(PackageParallelTargetDir)/%.o : %.cpp
336 +        $(CppCompiler) $(CppParallelOptions) -c $(IncludePath) $< -o $@
337 +
338 + ifeq "$(UseMPI)" "yes"
339   %.o : %.cpp
340          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
341 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
342 + else
343 + %.o : %.cpp
344 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
345 + endif
346  
347   # .f -> .o
348   $(PackageTargetDir)/%.o : %.f
349          $(FortranCompiler) $(FortranOptions) -c $< -o $@
350  
351 + $(PackageParallelTargetDir)/%.o : %.f
352 +        $(FortranCompiler) $(FortranParallelOptions) -c $< -o $@
353 +
354 + ifeq "$(UseMPI)" "yes"
355   %.o : %.f
356          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
357 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
358 + else
359 + %.o : %.f
360 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
361 + endif
362  
363   # .F90 -> .o
364   $(PackageTargetDir)/%.o : %.F90
365 <        $(F90Compiler) $(F90Options) -c $< -o $@
365 >        $(F90Compiler) $(F90Options) $(IncludePath) -c $< -o $@
366  
367 + $(PackageParallelTargetDir)/%.o : %.F90
368 +        $(F90Compiler) $(F90ParallelOptions) $(IncludePath) -c $< -o $@
369 +
370 + ifeq "$(UseMPI)" "yes"
371   %.o : %.F90
372          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
373 +        $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@
374 + else
375 + %.o : %.F90
376 +        $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
377 + endif
378  
379 +
380   # .java -> .class
381   $(PackageTargetDir)/%.class : $(PackageSourceDir)/%.java
382          $(JavaCompiler) $(JavaCompilerOptions) $<
# Line 375 | Line 410 | $(LibDir)/%.a : $(ObjectFiles)
410          @$(Lex) -o$@ $?
411  
412   # .o -> .a
413 < $(LibDir)/%.a : $(ObjectFiles)
413 >
414 > $(LibDir)/%_UP.a : $(ObjectFiles)
415          $(StaticArchiver) $(StaticArchiverOptions) $@ $(ObjectFiles)
416 +        @touch $(LibDir)/.stamp_UP
417  
418 < %.a : $(ObjectFiles)
382 <        $(MAKE) $(MakeOptions) $(LibDir)/$@
383 <
384 < $(LibDir)/%_MPI.a : $(ParallelObjectFiles)
418 > $(LibDir)/%_MPI.a: $(ParallelObjectFiles)
419          $(StaticArchiver) $(StaticArchiverOptions) $@ $(ParallelObjectFiles)
420 +        @touch $(LibDir)/.stamp_MPI
421  
422 + %_UP.a : $(ObjectFiles)
423 +        $(MAKE) $(MakeOptions) $(LibDir)/$@
424 +
425   %_MPI.a : $(ParallelObjectFiles)
426          $(MAKE) $(MakeOptions) $(LibDir)/$@
427  
428   # .o -> .so
429 < $(LibDir)/%.so : $(ObjectFiles)
429 > $(LibDir)/%_UP.so : $(ObjectFiles)
430          $(DynamicArchiver) $(ObjectFiles) $(DynamicArchiverOptions) -o $@
431  
394 %.so : $(ObjectFiles)
395        $(MAKE) $(MakeOptions) $(LibDir)/$@
396
432   $(LibDir)/%_MPI.so : $(ParallelObjectFiles)
433          $(DynamicArchiver) $(ParallelObjectFiles) $(DynamicArchiverOptions) -o $@
434  
435 + %_UP.so : $(ObjectFiles)
436 +        $(MAKE) $(MakeOptions) $(LibDir)/$@
437 +
438   %_MPI.so : $(ParallelObjectFiles)
439          $(MAKE) $(MakeOptions) $(LibDir)/$@
440  
# Line 432 | Line 470 | $(PackageTargetDir)/%_Skel.class : $(PackageTargetDir)
470   %_Skel.class : %.class
471          $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@
472  
473 < # Executable
474 < $(Executable) : $(ObjectFiles)
475 <        $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ObjectFiles) -o $@
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 < $(ParallelExecutable) : $(ParallelObjectFiles)
481 <        $(Linker) $(LinkOptions) $(LibDirs) $(ParallelLibList) $(ParallelObjectFiles) -o $@
480 > $(CombinedStaticLib) : $(LibDir)/.stamp_UP
481 >        $(Print) create $@      
482 >        $(foreach thisLib,$(LibNames),$(call do_create,$(thisLib),$@))
483 >        $(Ranlib) $(CombinedStaticLib)
484  
485 + $(CombinedParallelStaticLib) : $(LibDir)/.stamp_MPI
486 +        $(Print) create $@
487 +        $(foreach thisLib,$(ParallelLibNames), $(call do_create, $(thisLib), $@))
488 +        $(Ranlib) $(CombinedParallelStaticLib)
489 +
490 + # Executable
491 + $(Executable) : $(CombinedStaticLib) $(ObjectFiles)
492 +        $(Linker) $(ObjectFiles) $(LinkOptions) $(LibDirs) $(CombinedStaticLib) $(Libraries) -o $@
493 +
494 + $(ParallelExecutable) : $(CombinedParallelStaticLib) $(ParallelObjectFiles)
495 +        $(Linker) $(ParallelObjectFiles) $(ParallelLinkOptions) $(LibDirs) $(CombinedParallelStaticLib) $(Libraries) -o $@
496 +
497   # Anything else is just copied from source to target
498   $(PackageTargetDir)/% : $(PackageSourceDir)/%
499          $(Print) $@
# Line 450 | Line 505 | _buildall : \
505  
506   _all : _buildall
507  
508 + ifeq "$(UseMPI)" "yes"
509   _buildall : \
510          $(DependencyFile) \
511          $(PackageTargetDir) \
512          $(ObjectFiles) \
513 +        $(ParallelObjectFiles) \
514          $(JavaClassFiles) \
515          $(RmiStubFiles) \
516          $(RmiSkeletonFiles) \
517          $(OtherTargetFiles) \
461        $(SharedLibrary) \
518          $(StaticLibrary) \
519 +        $(ParallelStaticLibrary) \
520          $(JarFile) \
521 <        $(Executable)
522 <        
521 >        $(Executable) \
522 >        $(ParallelExecutable)
523 > else
524 > _buildall : \
525 >        $(DependencyFile) \
526 >        $(PackageTargetDir) \
527 >        $(ObjectFiles) \
528 >        $(JavaClassFiles) \
529 >        $(RmiStubFiles) \
530 >        $(RmiSkeletonFiles) \
531 >        $(OtherTargetFiles) \
532 >        $(StaticLibrary) \
533 >        $(JarFile) \
534 >        $(Executable)
535 > endif
536  
537 +
538   # make clean
539   clean : $(PackageListLoop)
540          $(Print) Done clean.    
# Line 515 | Line 586 | ifneq "$(words $(F90Files))" "0"
586   endif
587  
588   ifneq "$(words $(F90Files))" "0"
589 <        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/obj/' -D__F90   $(F90Files) > Make.ftemp
590 <        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/MPIobj/' -DIS_MPI -D__F90   $(F90Files) >> Make.ftemp
589 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/obj/' -D__FORTRAN90  $(F90Files) > Make.ftemp
590 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/MPIobj/' -DIS_MPI -D__FORTRAN90  $(F90Files) >> Make.ftemp
591          cat Make.ftemp >> $(DependencyFile)
592   endif
593          $(Delete) Make.cpptemp Make.ctemp Make.ftemp
# Line 534 | Line 605 | _statisticsall :
605  
606   # make statistics
607   _statisticsall :
608 <        @$(Print) $(SourceFiles) >> $(DEV_ROOT)/files.tmp
608 >        @$(Print) $(patsubst %,$(CurrentDir)/%,$(SourceFiles)) >> $(DEV_ROOT)/files.tmp
609  
610   statistics : $(PackageListLoop)
611          @$(List) $(DEV_ROOT)/files.tmp | xargs $(WordCount) $(WordCountOptions)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines