--- trunk/OOPSE-2.0/make/Makefile.in 2004/10/04 16:06:18 1521 +++ trunk/OOPSE-2.0/make/Makefile.in 2004/10/05 22:57:01 1527 @@ -81,18 +81,16 @@ Libraries = \ Libraries = \ @SPRNG_LIB@ \ - @MPI_LIB@ + @MPI_LIB@ \ + @MPI_F90_LIB@ -LinkOptions = \ - @F90LIBS@ - OopseHome = @OOPSE_HOME@ ForceParamDir = @OOPSE_HOME@/share/forceFields/ SampleSimDir = @OOPSE_HOME@/share/samples/ FrcDeclare = -DFRC_PATH="$(ForceParamDir)" ParallelDeclare = -DIS_MPI +UseMPI = @USE_MPI@ - #--------------------------------------------------------------------------- # # Directories @@ -103,11 +101,21 @@ MakeDir = $(DEV_ROOT)/make TargetDir = $(DEV_ROOT)/obj ParallelTargetDir = $(DEV_ROOT)/MPIobj LibDir = $(DEV_ROOT)/lib +ParallelLibDir = $(DEV_ROOT)/MPIlib MakeDir = $(DEV_ROOT)/make BinDir = $(DEV_ROOT)/bin DocsDir = $(DEV_ROOT)/docs CurrentDir = $(CURDIR) +RPath = $(shell cd $(DEV_ROOT); pwd)/lib:$(OopseHome)/lib +ParallelRPath = $(shell cd $(DEV_ROOT); pwd)/MPIlib:$(OopseHome)/MPIlib +LinkOptions = \ + @F90LIBS@ \ + -Wl,-R$(RPath) +ParallelLinkOptions = \ + @F90LIBS@ \ + -Wl,-R$(ParallelRPath) + ifdef Source #get the relative path of current package to source directory # /home/maul/gezelter/src/code/src/UseTheForce/Darkside --> UseTheForce/Darkside @@ -172,23 +180,23 @@ ObjectFiles = $(CFiles:%.c= $(Packag JniHeaders = $(JniSource:%.java= $(PackageSourceDir)/%.h) ObjectFiles = $(CFiles:%.c= $(PackageTargetDir)/%.o)\ $(CppFiles:%.cpp= $(PackageTargetDir)/%.o)\ - $(FortranFiles:%.f= $(PackageTargetDir)/%.o)\ - $(F90Files:%.F90= $(PackageTargetDir)/%.o)\ - $(LexFiles:%.l= $(PackageTargetDir)/%.o)\ - $(YaccFiles:%.y= $(PackageTargetDir)/%.o) + $(FortranFiles:%.f= $(PackageTargetDir)/%.o)\ + $(F90Files:%.F90= $(PackageTargetDir)/%.o)\ + $(LexFiles:%.l= $(PackageTargetDir)/%.o)\ + $(YaccFiles:%.y= $(PackageTargetDir)/%.o) ParallelObjectFiles = $(CFiles:%.c= $(PackageParallelTargetDir)/%.o)\ - $(CppFiles:%.cpp= $(PackageParallelTargetDir)/%.o)\ - $(FortranFiles:%.f= $(PackageParallelTargetDir)/%.o)\ - $(F90Files:%.F90= $(PackageParallelTargetDir)/%.o)\ - $(LexFiles:%.l= $(PackageParallelTargetDir)/%.o)\ - $(YaccFiles:%.y= $(PackageParallelTargetDir)/%.o) + $(CppFiles:%.cpp= $(PackageParallelTargetDir)/%.o)\ + $(FortranFiles:%.f= $(PackageParallelTargetDir)/%.o)\ + $(F90Files:%.F90= $(PackageParallelTargetDir)/%.o)\ + $(LexFiles:%.l= $(PackageParallelTargetDir)/%.o)\ + $(YaccFiles:%.y= $(PackageParallelTargetDir)/%.o) DerivedSource = $(YaccFiles:%.y= %.h) \ - $(YaccFiles:%.y= %.c) \ - $(LexFiles:%.l= %.c) + $(YaccFiles:%.y= %.c) \ + $(LexFiles:%.l= %.c) DerivedCFiles = $(YaccFiles:%.y= %.c) \ - $(LexFiles:%.l= %.c) + $(LexFiles:%.l= %.c) OtherTargetFiles = $(OtherSourceFiles:%=$(PackageTargetDir)/%) @@ -209,8 +217,8 @@ ifneq "$(words $(ObjectFiles) $(ParallelObjectFiles)) else SharedLibrary = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).so StaticLibrary = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).a - ParallelSharedLibrary = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_MPI.so - ParallelStaticLibrary = $(LibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package)))_MPI.a + ParallelSharedLibrary = $(ParallelLibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).so + ParallelStaticLibrary = $(ParallelLibDir)/lib$(subst /,,$(patsubst %,oopse_%,$(Package))).a endif endif # @@ -220,8 +228,11 @@ LocalLibs = $(subst /,,$(patsubst %, oopse_%, $ JavaPackageNames = $(subst /,.,$(JavaPackages)) IncludePath = -I$(SourceDir) $(IncludeDirs:%=-I%) LibDirs = -L$(LibDir) $(LibraryDirs:%=-L%) +ParallelLibDirs = -L$(ParallelLibDir) $(LibraryDirs:%=-L%) LocalLibs = $(subst /,,$(patsubst %, oopse_%, $(PackageLibs))) +ParallelLocalLibs= $(subst /,,$(patsubst %, oopse_%, $(PackageLibs))) LibList = $(LocalLibs:%=-l%) $(Libraries) +ParallelLibList = $(ParallelLocalLibs:%=-l%) $(Libraries) #--------------------------------------------------------------------------- @@ -273,7 +284,7 @@ F90ParallelOptions = @PREPFLAG@ @F90FLAGS@ @MODDI CppParallelOptions = $(FrcDeclare) $(ParallelDeclare) FortranOptions = F90Options = @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) -module $(TargetDir) -F90ParallelOptions = @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) -module $(TargetDir) @PREPDEFFLAG@$(ParallelDeclare) +F90ParallelOptions = @PREPFLAG@ @F90FLAGS@ @MODDIRFLAG@$(SourceDir) -module $(ParallelTargetDir) @PREPDEFFLAG@$(ParallelDeclare) JavaCompilerOptions = -d $(TargetDir) -classpath $(ClassPath) \ -sourcepath $(SourceDir) -deprecation JavaRunOptions = -classpath $(ClassPath) @@ -316,30 +327,68 @@ $(PackageTargetDir)/%.o : %.c $(Print) $@ $(CCompiler) $(COptions) -c $(IncludePath) $< -o $@ +$(PackageParallelTargetDir)/%.o : %.c + $(Print) $@ + $(CCompiler) $(CParallelOptions) -c $(IncludePath) $< -o $@ + +ifeq "$(UseMPI)" "yes" %.o : %.c $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ + $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@ +else +%.o : %.c + $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ +endif # .cpp -> .o $(PackageTargetDir)/%.o : %.cpp $(CppCompiler) $(CppOptions) -c $(IncludePath) $< -o $@ +$(PackageParallelTargetDir)/%.o : %.cpp + $(CppCompiler) $(CppParallelOptions) -c $(IncludePath) $< -o $@ + +ifeq "$(UseMPI)" "yes" %.o : %.cpp $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ + $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@ +else +%.o : %.cpp + $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ +endif # .f -> .o $(PackageTargetDir)/%.o : %.f $(FortranCompiler) $(FortranOptions) -c $< -o $@ +$(PackageParallelTargetDir)/%.o : %.f + $(FortranCompiler) $(FortranParallelOptions) -c $< -o $@ + +ifeq "$(UseMPI)" "yes" %.o : %.f $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ + $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@ +else +%.o : %.f + $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ +endif # .F90 -> .o $(PackageTargetDir)/%.o : %.F90 - $(F90Compiler) $(F90Options) -c $< -o $@ + $(F90Compiler) $(F90Options) $(IncludePath) -c $< -o $@ +$(PackageParallelTargetDir)/%.o : %.F90 + $(F90Compiler) $(F90ParallelOptions) $(IncludePath) -c $< -o $@ + +ifeq "$(UseMPI)" "yes" %.o : %.F90 $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ + $(MAKE) $(MakeOptions) $(PackageParallelTargetDir)/$@ +else +%.o : %.F90 + $(MAKE) $(MakeOptions) $(PackageTargetDir)/$@ +endif + # .java -> .class $(PackageTargetDir)/%.class : $(PackageSourceDir)/%.java $(JavaCompiler) $(JavaCompilerOptions) $< @@ -373,30 +422,37 @@ $(LibDir)/%.a : $(ObjectFiles) @$(Lex) -o$@ $? # .o -> .a + $(LibDir)/%.a : $(ObjectFiles) $(StaticArchiver) $(StaticArchiverOptions) $@ $(ObjectFiles) -%.a : $(ObjectFiles) - $(MAKE) $(MakeOptions) $(LibDir)/$@ - -$(LibDir)/%_MPI.a : $(ParallelObjectFiles) +$(ParallelLibDir)/%.a: $(ParallelObjectFiles) $(StaticArchiver) $(StaticArchiverOptions) $@ $(ParallelObjectFiles) -%_MPI.a : $(ParallelObjectFiles) +ifeq "$(UseMPI)" "yes" +%.a : $(ObjectFiles) $(ParallelObjectFiles) $(MAKE) $(MakeOptions) $(LibDir)/$@ + $(MAKE) $(MakeOptions) $(ParallelLibDir)/$@ +else +%.a : $(ObjectFiles) + $(MAKE) $(MakeOptions) $(LibDir)/$@ +endif # .o -> .so $(LibDir)/%.so : $(ObjectFiles) $(DynamicArchiver) $(ObjectFiles) $(DynamicArchiverOptions) -o $@ -%.so : $(ObjectFiles) - $(MAKE) $(MakeOptions) $(LibDir)/$@ - -$(LibDir)/%_MPI.so : $(ParallelObjectFiles) +$(ParallelLibDir)/%.so : $(ParallelObjectFiles) $(DynamicArchiver) $(ParallelObjectFiles) $(DynamicArchiverOptions) -o $@ -%_MPI.so : $(ParallelObjectFiles) +ifeq "$(UseMPI)" "yes" +%.so : $(ObjectFiles) $(ParallelObjectFiles) $(MAKE) $(MakeOptions) $(LibDir)/$@ + $(MAKE) $(MakeOptions) $(ParallelLibDir)/$@ +else +%.so : $(ObjectFiles) + $(MAKE) $(MakeOptions) $(LibDir)/$@ +endif # .class -> .jar $(LibDir)/%.jar : $(JavaClassFiles) $(OtherTargetFiles) @@ -432,10 +488,10 @@ $(Executable) : $(ObjectFiles) # Executable $(Executable) : $(ObjectFiles) - $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ObjectFiles) -o $@ + $(Linker) $(ObjectFiles) $(LinkOptions) $(LibDirs) $(LibList) -o $@ $(ParallelExecutable) : $(ParallelObjectFiles) - $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ParallelObjectFiles) -o $@ + $(Linker) $(ParallelObjectFiles) $(ParallelLinkOptions) $(ParallelLibDirs) $(LibList) -o $@ # Anything else is just copied from source to target $(PackageTargetDir)/% : $(PackageSourceDir)/% @@ -448,20 +504,39 @@ _buildall : \ _all : _buildall +ifeq "$(UseMPI)" "yes" _buildall : \ $(DependencyFile) \ $(PackageTargetDir) \ $(ObjectFiles) \ + $(ParallelObjectFiles) \ $(JavaClassFiles) \ $(RmiStubFiles) \ $(RmiSkeletonFiles) \ $(OtherTargetFiles) \ $(SharedLibrary) \ $(StaticLibrary) \ + $(ParallelSharedLibrary) \ + $(ParallelStaticLibrary) \ $(JarFile) \ - $(Executable) - + $(Executable) \ + $(ParallelExecutable) +else +_buildall : \ + $(DependencyFile) \ + $(PackageTargetDir) \ + $(ObjectFiles) \ + $(JavaClassFiles) \ + $(RmiStubFiles) \ + $(RmiSkeletonFiles) \ + $(OtherTargetFiles) \ + $(SharedLibrary) \ + $(StaticLibrary) \ + $(JarFile) \ + $(Executable) +endif + # make clean clean : $(PackageListLoop) $(Print) Done clean. @@ -476,14 +551,14 @@ _distcleanall : _distcleanall : $(Delete) $(ObjectFiles) \ $(ParallelObjectFiles) \ - $(JarFile) \ + $(JarFile) \ $(SharedLibrary) \ $(StaticLibrary) \ $(ParallelSharedLibrary) \ $(ParallelStaticLibrary) \ $(Executable) \ $(ParallelExecutable) \ - $(DependencyFile) + $(DependencyFile) # make depend @@ -496,8 +571,8 @@ $(DependencyFile) : $(DerivedSource) $(Print) $@ @cd $(PackageSourceDir) - touch Make.ctemp - touch Make.ctemp + @touch Make.ctemp + @touch Make.ctemp ifneq "$(words $(CppFiles))" "0" $(CppCompiler) $(IncludePath) -MM $(CppFiles) > Make.cpptemp @@ -513,8 +588,8 @@ ifneq "$(words $(F90Files))" "0" endif ifneq "$(words $(F90Files))" "0" - $(DEV_ROOT)/scripts/filepp -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/obj/' -D__F90 *.F90 > Make.ftemp - $(DEV_ROOT)/scripts/filepp -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/MPIobj/' -DIS_MPI -D__F90 *.F90 >> Make.ftemp + $(DEV_ROOT)/scripts/filepp -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/obj/' -D__FORTRAN90 $(F90Files) > Make.ftemp + $(DEV_ROOT)/scripts/filepp -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/MPIobj/' -DIS_MPI -D__FORTRAN90 $(F90Files) >> Make.ftemp cat Make.ftemp >> $(DependencyFile) endif $(Delete) Make.cpptemp Make.ctemp Make.ftemp @@ -546,6 +621,10 @@ pure : $(Executable).pure pure : $(Executable).pure +#make cvslog +cvslog: + $(DEV_ROOT)/scripts/cvs2cl.pl + # Execute _runexe : $(Executable) $(RunParameters)