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 1514 by tim, Thu Sep 30 15:41:35 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 <        /usr/include \
63 <        /usr/local/include
62 >        @SPRNG_INC_DIR@ \
63 >        @MPI_INC_DIR@
64  
65   LibraryDirs = \
66 <        /usr/lib \
67 <        /usr/local/mpich/lib \
81 <        /usr/local/lib \
82 <        /usr/local/intel/compiler80/lib \
66 >        @SPRNG_LIB_DIR@ \
67 >        @MPI_LIB_DIR@
68  
69   Libraries = \
70 <        mpich \
71 <        sprng \
72 <        ifcore \
70 >        @SPRNG_LIB@ \
71 >        @MPI_LIB@ \
72 >        @MPI_F90_LIB@
73  
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 96 | 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 114 | 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 165 | 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 200 | Line 201 | ifneq  "$(words $(ObjectFiles) $(ParallelObjectFiles))
201      Executable             = $(BinDir)/$(Main)
202      ParallelExecutable     = $(BinDir)/$(Main)_MPI
203    else
204 <    SharedLibrary          = $(LibDir)/lib$(subst /,,$(Package)).so
205 <    StaticLibrary          = $(LibDir)/lib$(subst /,,$(Package)).a
206 <    ParallelSharedLibrary  = $(LibDir)/lib$(subst /,,$(Package))_MPI.so
207 <    ParallelStaticLibrary  = $(LibDir)/lib$(subst /,,$(Package))_MPI.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 213 | Line 214 | LocalLibs        = $(subst /,,$(PackageLibs))
214   JavaPackageNames = $(subst /,.,$(JavaPackages))
215   IncludePath      = -I$(SourceDir) $(IncludeDirs:%=-I%)
216   LibDirs          = -L$(LibDir)    $(LibraryDirs:%=-L%)
217 < LocalLibs        = $(subst /,,$(PackageLibs))
218 < LibList          = $(LocalLibs:%=-l%) $(Libraries:%=-l%)
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 250 | Line 255 | Lex                    = @LEX@
255   List                   = cat
256   Yacc                   = @YACC@
257   Lex                    = @LEX@
258 + Ranlib                 = @RANLIB@
259  
260  
261   MakeOptions            = -k
# Line 260 | Line 266 | FortranOptions         =
266   JniOptions             =
267   RmiOptions             = -d $(TargetDir) -classpath $(ClassPath) \
268                           -sourcepath $(SourceDir)
269 + COptions               = $(FrcDeclare)
270 + CParallelOptions       = $(FrcDeclare) $(ParallelDeclare)
271 + CppOptions             = $(FrcDeclare)
272 + CppParallelOptions     = $(FrcDeclare) $(ParallelDeclare)
273   FortranOptions         =
274 < F90Options             =  -I$(SourceDir) -module $(TargetDir)
274 > F90Options             =  @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) -module $(TargetDir)
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 304 | 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 361 | 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)
368 <        $(MAKE) $(MakeOptions) $(LibDir)/$@
369 <
370 < $(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  
380 %.so : $(ObjectFiles)
381        $(MAKE) $(MakeOptions) $(LibDir)/$@
382
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 418 | 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) $(LibList) $(ParallelObjectFiles) -o $@
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) : $(CombinedStaticLib) $(ObjectFiles)
490 +        $(Linker) $(ObjectFiles) $(LinkOptions) $(LibDirs) $(CombinedStaticLib) $(Libraries) -o $@
491 +
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)/%
497          $(Print) $@
# Line 436 | Line 503 | _buildall : \
503  
504   _all : _buildall
505  
506 + ifeq "$(UseMPI)" "yes"
507   _buildall : \
508          $(DependencyFile) \
509          $(PackageTargetDir) \
510          $(ObjectFiles) \
511 +        $(ParallelObjectFiles) \
512          $(JavaClassFiles) \
513          $(RmiStubFiles) \
514          $(RmiSkeletonFiles) \
515          $(OtherTargetFiles) \
447        $(SharedLibrary) \
516          $(StaticLibrary) \
517 +        $(ParallelStaticLibrary) \
518          $(JarFile) \
519 <        $(Executable)
520 <        
519 >        $(Executable) \
520 >        $(ParallelExecutable)
521 > else
522 > _buildall : \
523 >        $(DependencyFile) \
524 >        $(PackageTargetDir) \
525 >        $(ObjectFiles) \
526 >        $(JavaClassFiles) \
527 >        $(RmiStubFiles) \
528 >        $(RmiSkeletonFiles) \
529 >        $(OtherTargetFiles) \
530 >        $(StaticLibrary) \
531 >        $(JarFile) \
532 >        $(Executable)
533 > endif
534  
535 +
536   # make clean
537   clean : $(PackageListLoop)
538          $(Print) Done clean.    
# Line 464 | Line 547 | _distcleanall :
547   _distcleanall :
548          $(Delete) $(ObjectFiles) \
549                    $(ParallelObjectFiles) \
550 <                  $(JarFile) \
550 >                        $(JarFile) \
551                    $(SharedLibrary) \
552                    $(StaticLibrary) \
553                    $(ParallelSharedLibrary) \
554                    $(ParallelStaticLibrary) \
555                    $(Executable) \
556                    $(ParallelExecutable) \
557 <                  $(DependencyFile)
557 >                  $(DependencyFile)
558  
559  
560   # make depend
# Line 484 | Line 567 | $(DependencyFile) : $(DerivedSource)
567          $(Print) $@
568          @cd $(PackageSourceDir)
569  
570 <        touch Make.ctemp
571 <        touch Make.ctemp
570 >        @touch Make.ctemp
571 >        @touch Make.ctemp
572  
573   ifneq "$(words $(CppFiles))" "0"
574          $(CppCompiler) $(IncludePath) -MM $(CppFiles)  > Make.cpptemp
# Line 501 | Line 584 | ifneq "$(words $(F90Files))" "0"
584   endif
585  
586   ifneq "$(words $(F90Files))" "0"
587 <        $(DEV_ROOT)/scripts/sfmakedepend  -I $(DEV_ROOT)/src -d '$$(DEV_ROOT)/obj' -f ./Make.ftemp -h *.F90
587 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/obj/' -D__FORTRAN90  $(F90Files) > Make.ftemp
588 >        $(DEV_ROOT)/scripts/filepp  -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/MPIobj/' -DIS_MPI -D__FORTRAN90  $(F90Files) >> Make.ftemp
589          cat Make.ftemp >> $(DependencyFile)
590   endif
591          $(Delete) Make.cpptemp Make.ctemp Make.ftemp
# Line 533 | Line 617 | pure : $(Executable).pure
617  
618   pure : $(Executable).pure
619  
620 + #make cvslog
621 + cvslog:
622 +        $(DEV_ROOT)/scripts/cvs2cl.pl
623 +
624   # Execute
625   _runexe :
626          $(Executable) $(RunParameters)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines