diff options
author | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2011-04-22 22:40:24 +0000 |
---|---|---|
committer | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2011-04-22 22:40:24 +0000 |
commit | 75edfc7e5b26ac5f07ce456035c1ff68a9541915 (patch) | |
tree | 9efefca0cb8c925a2954cd275a9a55e214e35322 /lib/make/make.config.rules.in | |
parent | cafed2018c1d03097e30d758ab77c20101e34632 (diff) |
Reorder CUDA makefile rules
The rules to build CUDA source files are very similar to those for C
and C++, and different from those for the Fortran. Reorder reorder
these makefile rules to make the code easier to understand.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4700 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/make/make.config.rules.in')
-rw-r--r-- | lib/make/make.config.rules.in | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/lib/make/make.config.rules.in b/lib/make/make.config.rules.in index a909e367..4140696b 100644 --- a/lib/make/make.config.rules.in +++ b/lib/make/make.config.rules.in @@ -53,6 +53,11 @@ define CXX_DEPENDENCIES $(DEPENDENCY_FIXER) endef +define CU_DEPENDENCIES + $(CU_DEPEND) $< $(INCLUDE_LINE) $(EXTRA_DEFINES:%=-D%) -DCCODE $(CU_DEPEND_OUT) + $(DEPENDENCY_FIXER) +endef + define F77_DEPENDENCIES $(F77_DEPEND) $(INCLUDE_LINE) $(EXTRA_DEFINES:%=-D%) -DFCODE $< $(F77_DEPEND_OUT) $(DEPENDENCY_FIXER) @@ -70,11 +75,6 @@ define F90_DEPENDENCIES current_wd=`$(GET_WD)` ; { if test $(F_LINE_DIRECTIVES) = 'yes'; then echo '#line 1 "'$<'"'; fi; cat $<; } | $(PERL) -p -e 's.//.CCTK_AUTOMATICALLY_GENERATED_CONCATENATION_PROTECTION.g' | $(FPP) $(FPPFLAGS) $(INCLUDE_LINE) $(EXTRA_DEFINES:%=-D%) -DFCODE -DF90CODE | $(PERL) -p -e 's.CCTK_AUTOMATICALLY_GENERATED_CONCATENATION_PROTECTION.//.g' | $(PERL) $(F_DEPEND_MODULES) $< $(basename $(notdir $<)).F90.o $(SRCDIR) $(USESTHORNS:%=$$current_wd/../%) $(F_DEPEND_MODULES_OUT) || { rm $@; exit 1; } endef -define CU_DEPENDENCIES - $(CU_DEPEND) $< $(INCLUDE_LINE) $(EXTRA_DEFINES:%=-D%) -DCCODE $(CU_DEPEND_OUT) - $(DEPENDENCY_FIXER) -endef - # No preprocessing, just create empty dependency file define f77_DEPENDENCIES echo "" > $@ @@ -91,21 +91,7 @@ define f90_DEPENDENCIES current_wd=`$(GET_WD)` ; cat $< | $(PERL) $(F_DEPEND_MODULES) $< $(basename $(notdir $<)).f90.o $(SRCDIR) $(USESTHORNS:%=$$current_wd/../%) $(F_DEPEND_MODULES_OUT) || { rm $@; exit 1; } endef -##################################################################### -# Define how to do a CUDA compilation -# preporcess and postprocess are currently set the same as C. -define PREPROCESS_CU -{ if test $(C_LINE_DIRECTIVES) = 'yes'; then echo '#line 1 "'$<'"'; fi; cat $<; } | $(PERL) -s $(C_FILE_PROCESSOR) -line_directives=$(C_LINE_DIRECTIVES) -source_file_name=$< $(CONFIG) > $(notdir $<) -#{ if test $(C_LINE_DIRECTIVES) = 'yes'; then echo '#line 1 "'$<'"'; fi; cat $<; } | $(CUCC) -E $< $(INCLUDE_LINE) > $(notdir $<) -endef - -define COMPILE_CU -current_wd=`$(GET_WD)` ; cd $(SCRATCH_BUILD) ; $(CUCC) $(CUCCFLAGS) $(CCOMPILEONLY)$(OPTIONSEP)$$current_wd$(DIRSEP)$@ $$current_wd$(DIRSEP)$(notdir $<) $(INCLUDE_LINE) $(EXTRA_DEFINES:%=-D%) -DCCODE -endef -define POSTPROCESS_CU -$(CU_POSTPROCESSING) -endef # Define how to do a C compilation define PREPROCESS_C @@ -133,6 +119,19 @@ define POSTPROCESS_CXX $(CXX_POSTPROCESSING) endef +# Define how to do a CUDA compilation +define PREPROCESS_CU +{ if test $(C_LINE_DIRECTIVES) = 'yes'; then echo '#line 1 "'$<'"'; fi; cat $<; } | $(PERL) -s $(C_FILE_PROCESSOR) -line_directives=$(C_LINE_DIRECTIVES) -source_file_name=$< $(CONFIG) > $(notdir $<) +endef + +define COMPILE_CU +current_wd=`$(GET_WD)` ; cd $(SCRATCH_BUILD) ; $(CUCC) $(CUCCFLAGS) $(CCOMPILEONLY)$(OPTIONSEP)$$current_wd$(DIRSEP)$@ $$current_wd$(DIRSEP)$(notdir $<) $(INCLUDE_LINE) $(EXTRA_DEFINES:%=-D%) -DCCODE +endef + +define POSTPROCESS_CU +$(CU_POSTPROCESSING) +endef + # Define how to do a F77 compilation define PREPROCESS_F77 { if test $(F_LINE_DIRECTIVES) = 'yes'; then echo '#line 1 "'$<'"'; fi; cat $<; } | $(PERL) -p -e 's.//.CCTK_AUTOMATICALLY_GENERATED_CONCATENATION_PROTECTION.g' | $(FPP) $(FPPFLAGS) $(INCLUDE_LINE) $(EXTRA_DEFINES:%=-D%) -DFCODE | $(PERL) -p -e 's.CCTK_AUTOMATICALLY_GENERATED_CONCATENATION_PROTECTION.//.g' | $(PERL) -p -e 's/__FORTRANFILE__/\"$(basename $(notdir $<)).F77\"/g' | $(PERL) -s $(F_FILE_PROCESSOR) -line_directives=$(F_LINE_DIRECTIVES) -source_file_name=$< > $(basename $(notdir $<)).f @@ -172,7 +171,6 @@ define POSTPROCESS_F90 $(F90_POSTPROCESSING) endef - # Define how to do a f77 compilation define PREPROCESS_f77 cat $< > $(basename $(notdir $<)).f @@ -188,19 +186,7 @@ define PREPROCESS_f90 cat $< > $(basename $(notdir $<)).$(F90_SUFFIX) endef -# Build rules for CUDA - -%.cu.o: $(SRCDIR)/%.cu - @echo Preprocessing $< - $(PREPROCESS_CU) - @echo Compiling $< - $(COMPILE_CU) - @echo Postprocessing $< - $(POSTPROCESS_CU) - @echo $(DIVIDER) -%.cu.d: $(SRCDIR)/%.cu - $(CU_DEPENDENCIES) # Build rules for C @@ -239,7 +225,6 @@ endef $(POSTPROCESS_CXX) @echo $(DIVIDER) - %.C.d: $(SRCDIR)/%.C $(CXX_DEPENDENCIES) @@ -265,10 +250,23 @@ endef $(POSTPROCESS_CXX) @echo $(DIVIDER) - %.cxx.d: $(SRCDIR)/%.cxx $(CXX_DEPENDENCIES) +# Build rules for CUDA + +%.cu.o: $(SRCDIR)/%.cu + @echo Preprocessing $< + $(PREPROCESS_CU) + @echo Compiling $< + $(COMPILE_CU) + @echo Postprocessing $< + $(POSTPROCESS_CU) + @echo $(DIVIDER) + +%.cu.d: $(SRCDIR)/%.cu + $(CU_DEPENDENCIES) + # Build rules for F77 %.F77.o: $(SRCDIR)/%.F77 |