From ba2fe6b79ee5f02ac08248232efb48231b95c9de Mon Sep 17 00:00:00 2001 From: Lourens Veen Date: Wed, 20 Aug 2025 20:28:52 +0200 Subject: [PATCH] Build all the vader workers, not just the default one --- src/amuse_vader/Makefile | 17 ++++++++---- src/amuse_vader/Makefile_vader | 27 +++++++++---------- src/amuse_vader/interface.py | 2 +- .../packages/amuse-vader/pyproject.toml | 2 +- 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/amuse_vader/Makefile b/src/amuse_vader/Makefile index 937730e68b..caaef81f89 100644 --- a/src/amuse_vader/Makefile +++ b/src/amuse_vader/Makefile @@ -19,10 +19,14 @@ src: vader.tar.gz mkdir -p src tar -xvf $< -C src cp -r src/MJCWilhelm-vader-$(VERSION)/vader_csrc/* src - cp Makefile_vader src/Makefile + rm -f src/Makefile + ln -s ../Makefile_vader src/Makefile # Building the code into a static library +PROBS := none cmzdisk cmzdisk2 gidisk pedisk ring ringrad selfsim +USERFUNCS := $(patsubst %,src/prob/userFunc_%.o,$(PROBS)) + DEPFLAGS += $(GSL_FLAGS) CFLAGS += $(DEPFLAGS) @@ -35,11 +39,14 @@ LDLIBS += $(GSL_LIBS) CODELIB = src/libvader.a .PHONY: $(CODELIB) -$(CODELIB): | src - $(MAKE) -C src -j $(CPU_COUNT) all MPICC='$(MPICC)' CXXFLAGS='$(CFLAGS)' +$(CODELIB) $(USERFUNCS) &: | src + $(MAKE) -C src -j $(CPU_COUNT) all MPICC='$(MPICC)' CXXFLAGS='$(CFLAGS)' PROBS='$(PROBS)' # Building the workers + +WORKERS := $(patsubst %,vader_%_worker,$(PROBS)) + vader_worker.h: interface.py amusifier --type=H interface.py VaderInterface -o $@ @@ -52,12 +59,12 @@ interface.o: interface.cc $(CODELIB) vader_worker.o: vader_worker.cc vader_worker.h $(MPICXX) -c -o $@ $(CFLAGS) $< -vader_worker: vader_worker.o interface.o $(CODELIB) +vader_%_worker: vader_worker.o interface.o $(CODELIB) src/prob/userFunc_%.o $(MPICXX) -o $@ $(LDFLAGS) $^ $(LDLIBS) # Which packages contain which workers? -amuse-vader_contains: vader_worker +amuse-vader_contains: $(WORKERS) # Building and installing packages diff --git a/src/amuse_vader/Makefile_vader b/src/amuse_vader/Makefile_vader index eaa632f2fe..df4aade3d5 100644 --- a/src/amuse_vader/Makefile_vader +++ b/src/amuse_vader/Makefile_vader @@ -7,34 +7,33 @@ LDFLAGS += -lm $(MUSE_LD_FLAGS) AA_M = 0 CXXFLAGS += -DAA_M=$(AA_M) -CODELIB = libvader.a +USERFUNCS := $(patsubst %,prob/userFunc_%.o,$(PROBS)) -CODEOBJS = advanceBE.o advanceCN.o applyBC.o checkpoint.o driver.o getNextIterate.o init.o ppmExtrap.o rotCurveSpline.o testingMode.o userFunc.o vader.o +CODELIB = libvader.a -AR = ar ruv -RANLIB = ranlib -RM = rm +CODEOBJS = advanceBE.o advanceCN.o applyBC.o checkpoint.o driver.o getNextIterate.o init.o ppmExtrap.o rotCurveSpline.o testingMode.o vader.o -PROB = none +AR ?= ar +RANLIB ?= ranlib +RM ?= rm -all: $(CODELIB) +all: $(CODELIB) $(USERFUNCS) clean: $(RM) -f *.o *.a -userFunc.c: prob/userFunc_$(PROB).c - cp $< $@ - $(CODELIB): $(CODEOBJS) - $(RM) -f userFunc.c $(RM) -f $@ - $(AR) $@ $(CODEOBJS) + $(AR) ruv $@ $(CODEOBJS) $(RANLIB) $@ .cc.o: $< - $(MPICC) $(CXXFLAGS) -c -o $@ $< + $(MPICC) $(CXXFLAGS) -c -o $@ $< .c.o: $< - $(MPICC) $(CXXFLAGS) -c -o $@ $< + $(MPICC) $(CXXFLAGS) -c -o $@ $< + +prob/%.o: prob/%.c + $(MPICC) $(CXXFLAGS) -I. -c -o $@ $< diff --git a/src/amuse_vader/interface.py b/src/amuse_vader/interface.py index b63be9c4b0..690ee7bb64 100644 --- a/src/amuse_vader/interface.py +++ b/src/amuse_vader/interface.py @@ -18,7 +18,7 @@ class VaderInterface(CodeInterface, def __init__(self, mode = 'none', **keyword_arguments): CodeInterface.__init__(self, - name_of_the_worker="vader_worker", + name_of_the_worker=f"vader_{mode}_worker", **keyword_arguments) LiteratureReferencesMixIn.__init__(self) diff --git a/src/amuse_vader/packages/amuse-vader/pyproject.toml b/src/amuse_vader/packages/amuse-vader/pyproject.toml index 9a0e3e5d1d..f196f95d60 100644 --- a/src/amuse_vader/packages/amuse-vader/pyproject.toml +++ b/src/amuse_vader/packages/amuse-vader/pyproject.toml @@ -35,7 +35,7 @@ exclude = [ "amuse_vader/src", "amuse_vader/tests" ] -artifacts = ["amuse_vader/vader_worker"] +artifacts = ["amuse_vader/vader_*_worker"] [tool.pytest.ini_options] pythonpath = ["amuse_vader/tests/"]