50 |
|
Package = $(subst $(SourceDir)/,,$(CurrentDir)) |
51 |
|
PackageList = $(Package) |
52 |
|
PackageSourceDir = $(SourceDir)/$(Package) |
53 |
< |
PackageTargetDir = $(TargetDir)/$(Package) |
53 |
> |
PackageTargetDir = $(TargetDir) |
54 |
|
JavaMainClass = $(subst /,.,$(Package)).$(Main) |
55 |
|
else |
56 |
|
PackageList = $(Packages) $(JavaPackages) |
79 |
|
FortranFiles = $(filter %.f, $(Source)) |
80 |
|
F90Files = $(filter %.F90, $(Source)) |
81 |
|
CorbaFiles = $(filter %.idl, $(Source)) |
82 |
+ |
LexFiles = $(filter %.l, $(Source)) |
83 |
+ |
YaccFiles = $(filter %.y, $(Source)) |
84 |
|
OtherSourceFiles = $(filter-out $(JavaFiles) $(CppFiles) $(CFiles) \ |
85 |
< |
$(FortranFiles) $(F90Files) \ |
86 |
< |
$(CorbaFiles), \ |
85 |
> |
$(FortranFiles) $(F90Files) $(LexFiles) \ |
86 |
> |
$(YaccFiles) $(CorbaFiles), \ |
87 |
|
$(Source)) |
88 |
|
ManifestFile = $(PackageSourceDir)/Manifest |
89 |
|
SourceFiles = $(JavaFiles:%.java= $(PackageSourceDir)/%.java)\ |
90 |
|
$(CppFiles:%.cpp= $(PackageSourceDir)/%.cpp)\ |
91 |
|
$(CFiles:%.c= $(PackageSourceDir)/%.c)\ |
92 |
|
$(FortranFiles:%.f= $(PackageSourceDir)/%.f)\ |
93 |
< |
$(F90Files:%.F90= $(PackageSourceDir)/%.F90) |
93 |
> |
$(F90Files:%.F90= $(PackageSourceDir)/%.F90)\ |
94 |
> |
$(LexFiles:%.l= $(PackageSourceDir)/%.l)\ |
95 |
> |
$(YaccFiles:%.y= $(PackageSourceDir)/%.y)\ |
96 |
|
|
97 |
+ |
|
98 |
|
# Target |
99 |
|
JavaClassFiles = $(JavaFiles:%.java= $(PackageTargetDir)/%.class) |
100 |
|
JavaClassFilesRel = $(JavaFiles:%.java= $(Package)/%.class) |
105 |
|
ObjectFiles = $(CFiles:%.c= $(PackageTargetDir)/%.o)\ |
106 |
|
$(CppFiles:%.cpp= $(PackageTargetDir)/%.o)\ |
107 |
|
$(FortranFiles:%.f= $(PackageTargetDir)/%.o)\ |
108 |
< |
$(F90Files:%.F90= $(PackageTargetDir)/%.o) |
108 |
> |
$(F90Files:%.F90= $(PackageTargetDir)/%.o)\ |
109 |
> |
$(LexFiles:%.l= $(PackageTargetDir)/%.o)\ |
110 |
> |
$(YaccFiles:%.y= $(PackageTargetDir)/%.o) |
111 |
> |
|
112 |
> |
DerivedSource = $(YaccFiles:%.y= %.h) \ |
113 |
> |
$(YaccFiles:%.y= %.c) \ |
114 |
> |
$(LexFiles:%.l= %.c) |
115 |
> |
|
116 |
> |
DerivedCFiles = $(YaccFiles:%.y= %.c) \ |
117 |
> |
$(LexFiles:%.l= %.c) |
118 |
> |
|
119 |
|
OtherTargetFiles = $(OtherSourceFiles:%=$(PackageTargetDir)/%) |
120 |
|
|
121 |
|
ThirdPartyJarsTmp = $(patsubst %,$(LibDir)/%,$(JavaLibraries)) |
150 |
|
# |
151 |
|
#--------------------------------------------------------------------------- |
152 |
|
Print = @echo |
153 |
+ |
Move = mv |
154 |
|
Copy = cp |
155 |
< |
CCompiler = gcc |
156 |
< |
CppCompiler = gcc |
157 |
< |
Linker = gcc |
155 |
> |
CCompiler = icc |
156 |
> |
CppCompiler = icpc |
157 |
> |
Linker = icpc |
158 |
|
MakeDepend = makedepend |
159 |
|
MakeDir = mkdir -p |
160 |
|
Delete = rm -fr |
161 |
|
StaticArchiver = ar |
162 |
< |
DynamicArchiver = gcc |
163 |
< |
FortranCompiler = f77 |
164 |
< |
F90Compiler = f90 |
162 |
> |
DynamicArchiver = icc |
163 |
> |
FortranCompiler = ifort |
164 |
> |
F90Compiler = ifort |
165 |
|
JavaCompiler = $(JAVA_HOME)/bin/javac |
166 |
|
JavaArchiver = $(JAVA_HOME)/bin/jar |
167 |
|
JarSigner = $(JAVA_HOME)/bin/jarsigner |
172 |
|
Purify = purify |
173 |
|
WordCount = wc |
174 |
|
List = cat |
175 |
+ |
Yacc = bison -y |
176 |
+ |
Lex = flex |
177 |
|
|
178 |
+ |
|
179 |
|
MakeOptions = -k -s |
180 |
|
MakeDependOptions = |
181 |
|
StaticArchiverOptions = rc |
185 |
|
RmiOptions = -d $(TargetDir) -classpath $(ClassPath) \ |
186 |
|
-sourcepath $(SourceDir) |
187 |
|
FortranOptions = |
188 |
< |
F90Options = -I$(SourceDir) |
188 |
> |
F90Options = -I$(SourceDir) -module $(TargetDir) |
189 |
|
JavaCompilerOptions = -d $(TargetDir) -classpath $(ClassPath) \ |
190 |
|
-sourcepath $(SourceDir) -deprecation |
191 |
|
JavaRunOptions = -classpath $(ClassPath) |
224 |
|
$(MakeDir) $@ |
225 |
|
|
226 |
|
# .c -> .o |
227 |
< |
$(PackageTargetDir)/%.o : $(PackageTargetDir) $(PackageSourceDir)/%.c |
227 |
> |
$(PackageTargetDir)/%.o : $(PackageSourceDir)/%.c |
228 |
|
$(Print) $@ |
229 |
|
@$(CCompiler) $(COptions) -c $(IncludePath) $< -o $@ |
230 |
|
|
271 |
|
%.h : %.class |
272 |
|
$(MAKE) $(MakeOptions) $(PackageSourceDir)/$@ |
273 |
|
|
274 |
+ |
#.y -> .h |
275 |
+ |
$(PackageSourceDir)/%.h : $(PackageSourceDir)/%.y |
276 |
+ |
$(Print) $@ |
277 |
+ |
$(Print) @$(Yacc) -d $? |
278 |
+ |
@$(Yacc) -d $? |
279 |
+ |
@$(Move) y.tab.h $*.h |
280 |
+ |
@$(Delete) y.tab.c |
281 |
+ |
|
282 |
+ |
#.y -> .c |
283 |
+ |
$(PackageSourceDir)/%.c : $(PackageSourceDir)/%.y |
284 |
+ |
$(Print) $@ |
285 |
+ |
$(Print) @$(Yacc) -d $? |
286 |
+ |
@$(Yacc) -d $? |
287 |
+ |
@$(Move) y.tab.c $*.c |
288 |
+ |
@$(Delete) y.tab.h |
289 |
+ |
|
290 |
+ |
# .l -> .c |
291 |
+ |
$(PackageSourceDir)/%.c : $(PackageSourceDir)/%.l |
292 |
+ |
$(Print) $@ |
293 |
+ |
$(Print) @$(Lex) -o$@ $? |
294 |
+ |
@$(Lex) -o$@ $? |
295 |
+ |
|
296 |
|
# .o -> .a |
297 |
|
$(LibDir)/%.a : $(ObjectFiles) |
298 |
|
$(Print) $@ |
390 |
|
|
391 |
|
_dependall : $(DependencyFile) |
392 |
|
|
393 |
< |
$(DependencyFile) : |
394 |
< |
$(Print) $@ |
395 |
< |
@cd $(PackageSourceDir); \ |
396 |
< |
$(MakeDepend) $(MakeDependOptions) -f- -p$(PackageTargetDir)/ \ |
397 |
< |
$(IncludePath) $(Source) > $(DependencyFile) |
393 |
> |
$(DependencyFile) : $(DerivedSource) |
394 |
> |
$(Print) $@ |
395 |
> |
$(Print) $(DerivedSource) |
396 |
> |
@cd $(PackageSourceDir) |
397 |
> |
$(CppCompiler) $(IncludePath) -MM $(CppFiles) > Make.temp |
398 |
> |
$(CCompiler) $(IncludePath) -MM $(CFiles) $(DerivedCFiles) >> Make.temp |
399 |
> |
cat Make.temp | sed 's/^[a-zA-Z0-9]/$$\(DEV_ROOT\)\/obj\/&/g' >> $(DependencyFile) |
400 |
> |
cat Make.temp | sed 's/^[a-zA-Z0-9]/$$\(DEV_ROOT\)\/MPIobj\/&/g' >> $(DependencyFile) |
401 |
> |
#$(DEV_ROOT)/scripts/sfmakedepend -I $(DEV_ROOT)/src -d $(DEV_ROOT)/obj -f ./Make.ftemp -h *.F90 |
402 |
> |
#$(DEV_ROOT)/scripts/sfmakedepend -I $(DEV_ROOT)/src -d $(DEV_ROOT)/MPIobj -f ./Make.ftemp -h *.F90 |
403 |
> |
#cat Make.ftemp >> $(DependencyFile) |
404 |
> |
$(Delete) Make.temp Make.ftemp |
405 |
|
|
406 |
|
# make lib |
407 |
|
lib : $(PackageListLoop) |