diff --git a/src/Makefile b/src/Makefile index 3a14917951ad612c4c27ac9ba792e0572a209704..d0d09a0684cbec1fd17cd5421c09762f3ce779c1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,25 +1,31 @@ SUBDIRS := cluster sphere trapping SRCDIR=$(PWD) OBJDIR=$(SRCDIR)/objects -BUILDDIR=$(SRCDIR)/../build +ifndef BUILDDIR +override BUILDDIR=$(SRCDIR)/../build +endif DOCSDIR=$(SRCDIR)/../doc -all: $(SUBDIRS) +all: $(SUBDIRS) $(BUILDDIR) docs: cd $(DOCSDIR)/src; doxygen config.dox -$(SUBDIRS): +$(BUILDDIR): + mkdir -p $(BUILDDIR) + +$(SUBDIRS): $(BUILDDIR) $(MAKE) -C $@ -clean: - rm -f $(OBJDIR)/*.o +clean: $(BUILDDIR) + $(MAKE) -C cluster clean + $(MAKE) -C sphere clean + $(MAKE) -C trapping clean -wipe: - rm -f $(BUILDDIR)/cluster/* - rm -f $(BUILDDIR)/sphere/* - rm -f $(BUILDDIR)/trapping/* - rm -f $(OBJDIR)/*.o +wipe: $(BUILDDIR) + $(MAKE) -C cluster wipe + $(MAKE) -C sphere wipe + $(MAKE) -C trapping wipe if [ -d $(DOCSDIR)/build/html ]; then rm -r $(DOCSDIR)/build/html; fi if [ -d $(DOCSDIR)/build/latex ]; then rm -r $(DOCSDIR)/build/latex; fi diff --git a/src/cluster/Makefile b/src/cluster/Makefile index 6053b980f007f72b410aa7d009e550b09f00ab49..d7a38585693a236fb7a84669f120a8d110de90e8 100644 --- a/src/cluster/Makefile +++ b/src/cluster/Makefile @@ -1,5 +1,8 @@ ifndef BUILDDIR -override BUILDDIR=../../build/cluster +override BUILDDIR=../../build +endif +ifndef BUILDDIR_CLU +override BUILDDIR_CLU=$(BUILDDIR)/cluster endif ifndef OBJDIR override OBJDIR=../objects @@ -13,20 +16,23 @@ F_CLU_OBJS=$(OBJDIR)/clu.o $(OBJDIR)/edfb_clu.o CXX_CLU_OBJS=$(OBJDIR)/np_cluster.o $(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/cluster.o -all: $(BUILDDIR)/clu $(BUILDDIR)/edfb_clu $(BUILDDIR)/np_cluster +all: $(BUILDDIR_CLU)/clu $(BUILDDIR_CLU)/edfb_clu $(BUILDDIR_CLU)/np_cluster + +$(BUILDDIR_CLU): + mkdir -p $(BUILDDIR_CLU) -$(BUILDDIR)/clu: $(OBJDIR)/clu.o - $(FC) $(FCFLAGS) -o $(BUILDDIR)/clu $(OBJDIR)/clu.o $(LDFLAGS) +$(BUILDDIR_CLU)/clu: $(OBJDIR)/clu.o $(BUILDDIR_CLU) + $(FC) $(FCFLAGS) -o $(BUILDDIR_CLU)/clu $(OBJDIR)/clu.o $(LDFLAGS) -$(BUILDDIR)/edfb_clu: $(OBJDIR)/edfb_clu.o - $(FC) $(FCFLAGS) -o $(BUILDDIR)/edfb_clu $(OBJDIR)/edfb_clu.o $(LDFLAGS) +$(BUILDDIR_CLU)/edfb_clu: $(OBJDIR)/edfb_clu.o $(BUILDDIR_CLU) + $(FC) $(FCFLAGS) -o $(BUILDDIR_CLU)/edfb_clu $(OBJDIR)/edfb_clu.o $(LDFLAGS) -$(BUILDDIR)/np_cluster: $(CXX_CLU_OBJS) - $(CXX) $(CXXFLAGS) -o $(BUILDDIR)/np_cluster $(CXX_CLU_OBJS) $(CXXLDFLAGS) +$(BUILDDIR_CLU)/np_cluster: $(CXX_CLU_OBJS) $(BUILDDIR_CLU) + $(CXX) $(CXXFLAGS) -o $(BUILDDIR_CLU)/np_cluster $(CXX_CLU_OBJS) $(CXXLDFLAGS) clean: rm -f $(F_CLU_OBJS) $(CXX_CLU_OBJS) wipe: - rm -f $(BUILDDIR)/clu $(BUILDDIR)/edfb_clu $(F_CLU_OBJS) $(CXX_CLU_OBJS) + rm -f $(BUILDDIR_CLU)/clu $(BUILDDIR_CLU)/edfb_clu $(BUILDDIR_CLU)/np_cluster $(F_CLU_OBJS) $(CXX_CLU_OBJS) diff --git a/src/sphere/Makefile b/src/sphere/Makefile index d1f1c4dbc420b4fb4f6bea9c03b4ccad48bcb634..305ee34a3ba3abceece74146a12cf0f412fbdfdf 100644 --- a/src/sphere/Makefile +++ b/src/sphere/Makefile @@ -1,5 +1,8 @@ ifndef BUILDDIR -override BUILDDIR=../../build/sphere +override BUILDDIR=../../build +endif +ifndef BUILDDIR_SPH +override BUILDDIR_SPH=$(BUILDDIR)/sphere endif ifndef OBJDIR override OBJDIR=../objects @@ -13,20 +16,23 @@ F_SPH_OBJS=$(OBJDIR)/edfb_sph.o $(OBJDIR)/sph.o CXX_SPH_OBJS=$(OBJDIR)/np_sphere.o $(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/sphere.o -all: $(BUILDDIR)/edfb_sph $(BUILDDIR)/sph $(BUILDDIR)/np_sphere +all: $(BUILDDIR_SPH)/edfb_sph $(BUILDDIR_SPH)/sph $(BUILDDIR_SPH)/np_sphere + +$(BUILDDIR_SPH): + mkdir -p $(BUILDDIR_SPH) -$(BUILDDIR)/edfb_sph: $(OBJDIR)/edfb_sph.o - $(FC) $(FCFLAGS) -o $(BUILDDIR)/edfb_sph $(OBJDIR)/edfb_sph.o $(LDFLAGS) +$(BUILDDIR_SPH)/edfb_sph: $(OBJDIR)/edfb_sph.o $(BUILDDIR_SPH) + $(FC) $(FCFLAGS) -o $(BUILDDIR_SPH)/edfb_sph $(OBJDIR)/edfb_sph.o $(LDFLAGS) -$(BUILDDIR)/sph: $(OBJDIR)/sph.o - $(FC) $(FCFLAGS) -o $(BUILDDIR)/sph $(OBJDIR)/sph.o $(LDFLAGS) +$(BUILDDIR_SPH)/sph: $(OBJDIR)/sph.o $(BUILDDIR_SPH) + $(FC) $(FCFLAGS) -o $(BUILDDIR_SPH)/sph $(OBJDIR)/sph.o $(LDFLAGS) -$(BUILDDIR)/np_sphere: $(CXX_SPH_OBJS) - $(CXX) $(CXXFLAGS) -o $(BUILDDIR)/np_sphere $(CXX_SPH_OBJS) $(CXXLDFLAGS) +$(BUILDDIR_SPH)/np_sphere: $(CXX_SPH_OBJS) $(BUILDDIR_SPH) + $(CXX) $(CXXFLAGS) -o $(BUILDDIR_SPH)/np_sphere $(CXX_SPH_OBJS) $(CXXLDFLAGS) clean: rm -f $(F_SPH_OBJS) $(CXX_SPH_OBJS) wipe: - rm -f $(BUILDDIR)/edfb_sph $(BUILDDIR)/sph $(F_SPH_OBJS) $(CXX_SPH_OBJS) + rm -f $(BUILDDIR_SPH)/edfb_sph $(BUILDDIR_SPH)/sph $(BUILDDIR_SPH)/np_sphere $(F_SPH_OBJS) $(CXX_SPH_OBJS) diff --git a/src/trapping/Makefile b/src/trapping/Makefile index e9f114c692b2b985c7f34f9131e3bd70d4dff9d4..bf595535a3e401a2cb3fa84e949a89c157553bc5 100644 --- a/src/trapping/Makefile +++ b/src/trapping/Makefile @@ -1,5 +1,8 @@ ifndef BUILDDIR -override BUILDDIR=../../build/trapping +override BUILDDIR=../../build +endif +ifndef BUILDDIR_TRA +override BUILDDIR_TRA=$(BUILDDIR)/trapping endif ifndef OBJDIR override OBJDIR=../objects @@ -12,20 +15,23 @@ F_TRAP_OBJS=$(OBJDIR)/frfme.o $(OBJDIR)/lffft.o CXX_TRAP_OBJS=$(OBJDIR)/np_trapping.o $(OBJDIR)/cfrfme.o $(OBJDIR)/clffft.o $(OBJDIR)/Parsers.o $(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/sph_subs.o $(OBJDIR)/tra_subs.o -all: $(BUILDDIR)/frfme $(BUILDDIR)/lffft $(BUILDDIR)/np_trapping +all: $(BUILDDIR_TRA)/frfme $(BUILDDIR_TRA)/lffft $(BUILDDIR_TRA)/np_trapping + +$(BUILDDIR_TRA): + mkdir -p $(BUILDDIR_TRA) -$(BUILDDIR)/frfme: $(OBJDIR)/frfme.o - $(FC) $(FCFLAGS) -o $(BUILDDIR)/frfme $(OBJDIR)/frfme.o $(LDFLAGS) +$(BUILDDIR_TRA)/frfme: $(OBJDIR)/frfme.o $(BUILDDIR_TRA) + $(FC) $(FCFLAGS) -o $(BUILDDIR_TRA)/frfme $(OBJDIR)/frfme.o $(LDFLAGS) -$(BUILDDIR)/lffft: $(OBJDIR)/lffft.o - $(FC) $(FCFLAGS) -o $(BUILDDIR)/lffft $(OBJDIR)/lffft.o $(LDFLAGS) +$(BUILDDIR_TRA)/lffft: $(OBJDIR)/lffft.o $(BUILDDIR_TRA) + $(FC) $(FCFLAGS) -o $(BUILDDIR_TRA)/lffft $(OBJDIR)/lffft.o $(LDFLAGS) -$(BUILDDIR)/np_trapping: $(CXX_TRAP_OBJS) - $(CXX) $(CXXFLAGS) -o $(BUILDDIR)/np_trapping $(CXX_TRAP_OBJS) $(CXXLDFLAGS) +$(BUILDDIR_TRA)/np_trapping: $(CXX_TRAP_OBJS) $(BUILDDIR_TRA) + $(CXX) $(CXXFLAGS) -o $(BUILDDIR_TRA)/np_trapping $(CXX_TRAP_OBJS) $(CXXLDFLAGS) clean: rm -f $(F_TRAP_OBJS) $(CXX_TRAP_OBJS) wipe: - rm -f $(BUILDDIR)/frfme $(BUILDDIR)/lffft $(F_TRAP_OBJS) $(CXX_TRAP_OBJS) + rm -f $(BUILDDIR_TRA)/frfme $(BUILDDIR_TRA)/lffft $(BUILDDIR_TRA)/np_trapping $(F_TRAP_OBJS) $(CXX_TRAP_OBJS)