From 680133a15e6ac0b88a315400c4273d0e9fcc619a Mon Sep 17 00:00:00 2001 From: Guido Kanschat Date: Sun, 18 Jul 2010 15:20:53 +0000 Subject: [PATCH] allow for more parallel compiling git-svn-id: https://svn.dealii.org/trunk@21517 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/Makefile | 55 +++++++++++++++++++++++++++++++--------- deal.II/base/Makefile | 3 +++ deal.II/deal.II/Makefile | 11 +++++++- deal.II/lac/Makefile | 27 ++++++++++++-------- 4 files changed, 73 insertions(+), 23 deletions(-) diff --git a/deal.II/Makefile b/deal.II/Makefile index 1e83c7386e..b67a4c77d9 100644 --- a/deal.II/Makefile +++ b/deal.II/Makefile @@ -46,34 +46,65 @@ deps: cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) Makefile.dep cd $D/lib && $(MAKE) $(MAKEOPTIONS) external-links -baseg: deps contrib +# Targets for object files of sublibraries +baseog: deps + cd $D/base && $(MAKE) $(MAKEOPTIONS) objg +baseoo: deps + cd $D/base && $(MAKE) $(MAKEOPTIONS) objo + +lacog: deps + cd $D/lac && $(MAKE) $(MAKEOPTIONS) objg +lacoo: deps + cd $D/lac && $(MAKE) $(MAKEOPTIONS) objo + +1dog: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) obj1dg +2dog: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) obj2dg +3dog: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) obj3dg + +1doo: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) obj1do +2doo: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) obj2do +3doo: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) obj3do + +adog: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) objg +adoo: deps + cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) objo + +baseg: baseog contrib cd $D/base && $(MAKE) $(MAKEOPTIONS) libg -baseo: deps contrib +baseo: baseoo contrib cd $D/base && $(MAKE) $(MAKEOPTIONS) libo -lacg: deps baseg + +lacg: lacog baseg cd $D/lac && $(MAKE) $(MAKEOPTIONS) libg -laco: deps baseo +laco: lacoo baseo cd $D/lac && $(MAKE) $(MAKEOPTIONS) libo -1dg: deps baseg lacg +1dg: 1dog lacg baseg cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) 1dg -2dg: deps baseg lacg +2dg: 2dog lacg baseg cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) 2dg -3dg: deps baseg lacg +3dg: 3dog lacg baseg cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) 3dg -1do: deps baseo laco +1do: 1doo laco baseo cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) 1d -2do: deps baseo laco +2do: 2doo baseo laco cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) 2d -3do: deps baseo laco +3do: 3doo baseo laco cd $D/deal.II && $(MAKE) $(MAKEOPTIONS) 3d @@ -89,8 +120,8 @@ $(LIBDIR): baseg baseo base lacg laco lac 1dg 1do 1d 2dg 2do 2d 3dg 3do 3d all debug contrib functionparser : $(LIBDIR) deps all: debug optimized -debug: contrib baseg lacg 2dg 1dg 3dg -optimized: contrib baseo laco 2do 1do 3do +debug: adog lacog baseog contrib baseg lacg 2dg 1dg 3dg +optimized: adoo lacoo baseoo contrib baseo laco 2do 1do 3do # when HSL functions are used, we also compile the detached_ma27 diff --git a/deal.II/base/Makefile b/deal.II/base/Makefile index e59816695e..9f09356312 100644 --- a/deal.II/base/Makefile +++ b/deal.II/base/Makefile @@ -65,6 +65,9 @@ else deplibs.o = endif +# targets for object code without linking into library +objg: $(go-files) +objo: $(o-files) # rules for libraries lib: $(LIBDIR)/libbase.g$(lib-suffix) $(LIBDIR)/libbase$(lib-suffix) diff --git a/deal.II/deal.II/Makefile b/deal.II/deal.II/Makefile index 11e920bb26..a84078518a 100644 --- a/deal.II/deal.II/Makefile +++ b/deal.II/deal.II/Makefile @@ -127,7 +127,16 @@ else deplibs.o = endif - +# targets for object code without linking into libraries +objg: $(go-files) +objo: $(o-files) + +obj1dg: $(go-files-1d) +obj2dg: $(go-files-2d) +obj3dg: $(go-files-3d) +obj1do: $(o-files-1d) +obj2do: $(o-files-2d) +obj3do: $(o-files-3d) # rules how to make the libraries themselves $(LIBDIR)/libdeal_II_1d.g$(static-lib-suffix): $(go-files-1d) diff --git a/deal.II/lac/Makefile b/deal.II/lac/Makefile index e7b503ef4d..fb4d8fefc8 100644 --- a/deal.II/lac/Makefile +++ b/deal.II/lac/Makefile @@ -22,10 +22,13 @@ inst-files = $(inst-in-files:%.in=%) # if umfpack was configured, simply link all the umfpack files into liblac. # these object files should have been generated before we got to the present # directory +libo-files = $(o-files) +libgo-files = $(go-files) + ifeq ($(USE_CONTRIB_UMFPACK),yes) umfpack-files = $(sort $(shell echo $(LIBDIR)/contrib/umfpack/*.$(OBJEXT))) - o-files += $(umfpack-files) - go-files += $(umfpack-files) + libo-files += $(umfpack-files) + libgo-files += $(umfpack-files) endif @@ -41,6 +44,10 @@ source/%.inst : source/%.inst.in $D/common/template-arguments @echo "=====lac============================= $(@F)" @$D/common/scripts/expand_instantiations $D/common/template-arguments < $< > $@ +# targets for object code without linking into library +objg: $(go-files) +objo: $(o-files) + # rules lib: $(LIBDIR)/liblac.g$(lib-suffix) $(LIBDIR)/liblac$(lib-suffix) libg: $(LIBDIR)/liblac.g$(lib-suffix) @@ -103,25 +110,25 @@ else endif -$(LIBDIR)/liblac$(static-lib-suffix): $(o-files) +$(LIBDIR)/liblac$(static-lib-suffix): $(libo-files) @echo "=====lac==============optimized==$(MT)== Linking library: $(@F)" - @$(AR) ru $@ $(o-files) + @$(AR) ru $@ $(libo-files) @$(RANLIB) $@ -$(LIBDIR)/liblac.g$(static-lib-suffix): $(go-files) +$(LIBDIR)/liblac.g$(static-lib-suffix): $(libgo-files) @echo "=====lac==============debug======$(MT)== Linking library: $(@F)" - @$(AR) ru $@ $(go-files) + @$(AR) ru $@ $(libgo-files) @$(RANLIB) $@ -$(LIBDIR)/liblac$(shared-lib-suffix): $(o-files) +$(LIBDIR)/liblac$(shared-lib-suffix): $(libo-files) @echo "=====lac==============optimized==$(MT)== Linking library: $(@F)" - @$(SHLIBLD) $(LDFLAGS) $(SHLIBFLAGS) -o $(LIBDIR)/$(call DEAL_II_SHLIB_NAME,lac) $(call DEAL_II_ADD_SONAME,lac) $(o-files) $(deplibs.o) + @$(SHLIBLD) $(LDFLAGS) $(SHLIBFLAGS) -o $(LIBDIR)/$(call DEAL_II_SHLIB_NAME,lac) $(call DEAL_II_ADD_SONAME,lac) $(libo-files) $(deplibs.o) @ln -f -s $(call DEAL_II_SHLIB_NAME,lac) $@ -$(LIBDIR)/liblac.g$(shared-lib-suffix): $(go-files) +$(LIBDIR)/liblac.g$(shared-lib-suffix): $(libgo-files) @echo "=====lac==============debug======$(MT)== Linking library: $(@F)" - @$(SHLIBLD) $(LDFLAGS) $(SHLIBFLAGS) -o $(LIBDIR)/$(call DEAL_II_SHLIB_NAME,lac.g) $(call DEAL_II_ADD_SONAME,lac.g) $(go-files) $(deplibs.g) + @$(SHLIBLD) $(LDFLAGS) $(SHLIBFLAGS) -o $(LIBDIR)/$(call DEAL_II_SHLIB_NAME,lac.g) $(call DEAL_II_ADD_SONAME,lac.g) $(libgo-files) $(deplibs.g) @ln -f -s $(call DEAL_II_SHLIB_NAME,lac.g) $@ -- 2.39.5