--- trunk/OOPSE-2.0/make/Makefile.in 2004/10/04 20:56:51 1523 +++ trunk/OOPSE-2.0/make/Makefile.in 2004/10/05 19:35:59 1525 @@ -81,7 +81,8 @@ Libraries = \ Libraries = \ @SPRNG_LIB@ \ - @MPI_LIB@ + @MPI_LIB@ \ + @MPI_F90_LIB@ LinkOptions = \ @F90LIBS@ @@ -91,8 +92,8 @@ ParallelDeclare = -DIS_MPI SampleSimDir = @OOPSE_HOME@/share/samples/ FrcDeclare = -DFRC_PATH="$(ForceParamDir)" ParallelDeclare = -DIS_MPI +UseMPI = @USE_MPI@ - #--------------------------------------------------------------------------- # # Directories @@ -103,6 +104,7 @@ 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 @@ -172,23 +174,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 +211,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,10 +222,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_%_MPI, $(PackageLibs))) +ParallelLocalLibs= $(subst /,,$(patsubst %, oopse_%, $(PackageLibs))) LibList = $(LocalLibs:%=-l%) $(Libraries) -ParallelLibList = $(LocalLibs:%=-l%) $(Libraries) +ParallelLibList = $(ParallelLocalLibs:%=-l%) $(Libraries) #--------------------------------------------------------------------------- @@ -275,7 +278,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) @@ -318,30 +321,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) $< @@ -375,30 +416,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) @@ -434,10 +482,10 @@ $(Executable) : $(ObjectFiles) # Executable $(Executable) : $(ObjectFiles) - $(Linker) $(LinkOptions) $(LibDirs) $(LibList) $(ObjectFiles) -o $@ + $(Linker) $(ObjectFiles) $(LinkOptions) $(LibDirs) $(LibList) $(LibList) $(LibList) -o $@ $(ParallelExecutable) : $(ParallelObjectFiles) - $(Linker) $(LinkOptions) $(LibDirs) $(ParallelLibList) $(ParallelObjectFiles) -o $@ + $(Linker) $(ParallelObjectFiles) $(LinkOptions) $(ParallelLibDirs) $(ParallelLibList) $(ParallelLibList) $(ParallelLibList) -o $@ # Anything else is just copied from source to target $(PackageTargetDir)/% : $(PackageSourceDir)/% @@ -450,20 +498,36 @@ _buildall : \ _all : _buildall +ifeq "$(UseMPI)" "yes" _buildall : \ $(DependencyFile) \ $(PackageTargetDir) \ $(ObjectFiles) \ + $(ParallelObjectFiles) \ $(JavaClassFiles) \ $(RmiStubFiles) \ $(RmiSkeletonFiles) \ $(OtherTargetFiles) \ - $(SharedLibrary) \ $(StaticLibrary) \ + $(ParallelStaticLibrary) \ $(JarFile) \ - $(Executable) - + $(Executable) \ + $(ParallelExecutable) +else +_buildall : \ + $(DependencyFile) \ + $(PackageTargetDir) \ + $(ObjectFiles) \ + $(JavaClassFiles) \ + $(RmiStubFiles) \ + $(RmiSkeletonFiles) \ + $(OtherTargetFiles) \ + $(StaticLibrary) \ + $(JarFile) \ + $(Executable) +endif + # make clean clean : $(PackageListLoop) $(Print) Done clean. @@ -515,8 +579,8 @@ ifneq "$(words $(F90Files))" "0" endif ifneq "$(words $(F90Files))" "0" - $(DEV_ROOT)/scripts/filepp -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/obj/' -D__F90 $(F90Files) > Make.ftemp - $(DEV_ROOT)/scripts/filepp -I $(DEV_ROOT)/src -od '$$(DEV_ROOT)/MPIobj/' -DIS_MPI -D__F90 $(F90Files) >> 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