From 4037d0d6de497c897e67c0f83b93f54e9ac48c31 Mon Sep 17 00:00:00 2001
From: "Mulas, Giacomo" <gmulas@oa-cagliari.inaf.it>
Date: Mon, 12 Feb 2024 17:56:51 +0100
Subject: [PATCH] update Makefiles to build libnptm library, then link to it

---
 {src/objects => build/libnptm}/.gitkeep |  0
 src/Makefile                            | 37 ++++++++++++------
 src/cluster/Makefile                    | 29 ++++++++++----
 src/libnptm/Makefile                    | 51 +++++++++++++++++++++++++
 src/make.inc                            | 23 +++++++++++
 src/sphere/Makefile                     | 29 ++++++++++----
 src/testing/Makefile                    | 30 +++++++++++----
 src/trapping/Makefile                   | 28 ++++++++++----
 8 files changed, 187 insertions(+), 40 deletions(-)
 rename {src/objects => build/libnptm}/.gitkeep (100%)
 create mode 100644 src/libnptm/Makefile

diff --git a/src/objects/.gitkeep b/build/libnptm/.gitkeep
similarity index 100%
rename from src/objects/.gitkeep
rename to build/libnptm/.gitkeep
diff --git a/src/Makefile b/src/Makefile
index 0f1c7078..dd65769a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -4,9 +4,17 @@ OBJDIR=$(SRCDIR)/objects
 ifndef BUILDDIR
 override BUILDDIR=$(SRCDIR)/../build
 endif
+ifndef BUILDDIR_NPTM
+override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
+endif
+ifndef LIBNPTM
+# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
+#override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
+override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.so
+endif
 DOCSDIR=$(SRCDIR)/../doc
 
-all: $(SUBDIRS) $(BUILDDIR)
+all: $(BUILDDIR) $(SUBDIRS) 
 
 docs:
 	cd $(DOCSDIR)/src; doxygen config.dox
@@ -14,20 +22,27 @@ docs:
 $(BUILDDIR):
 	mkdir -p $(BUILDDIR)
 
-$(SUBDIRS): $(BUILDDIR)
-	$(MAKE) -C $@
+$(LIBNPTM):
+	#echo "BUILDDIR_NPTM in libnptm is $(BUILDDIR_NPTM)"
+	#echo "LIBNPTM in libnptm is $(LIBNPTM)"
+	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) LIBNPTM=$(LIBNPTM) $(MAKE) -C libnptm $@
+
+$(SUBDIRS): $(BUILDDIR) $(LIBNPTM)
+	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) LIBNPTM=$(LIBNPTM) $(MAKE) -C $@
 
 clean: $(BUILDDIR)
-	$(MAKE) -C cluster clean
-	$(MAKE) -C sphere clean
-	$(MAKE) -C trapping clean
-	$(MAKE) -C testing clean
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C cluster clean
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C sphere clean
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C trapping clean
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C testing clean
+	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) $(MAKE) -C libnptm clean
 
 wipe: $(BUILDDIR)
-	$(MAKE) -C cluster wipe
-	$(MAKE) -C sphere wipe
-	$(MAKE) -C trapping wipe
-	$(MAKE) -C testing wipe
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C cluster wipe
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C sphere wipe
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C trapping wipe
+	BUILDDIR=$(BUILDDIR) $(MAKE) -C testing wipe
+	BUILDDIR=$(BUILDDIR) BUILDDIR_NPTM=$(BUILDDIR_NPTM) $(MAKE) -C libnptm 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 a8da6ac5..7aa295bd 100644
--- a/src/cluster/Makefile
+++ b/src/cluster/Makefile
@@ -5,7 +5,15 @@ ifndef BUILDDIR_CLU
 override BUILDDIR_CLU=$(BUILDDIR)/cluster
 endif
 ifndef OBJDIR
-override OBJDIR=../objects
+override OBJDIR=./objects
+endif
+ifndef BUILDDIR_NPTM
+override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
+endif
+ifndef LIBNPTM
+# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
+override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
+#override LIBNPTM=$(BUILDDIR_NPTM)/libnpTm.so
 endif
 
 include ../make.inc
@@ -13,22 +21,29 @@ include ../make.inc
 
 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 $(OBJDIR)/TransitionMatrix.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 $(OBJDIR)/TransitionMatrix.o
+CXX_CLU_OBJS=$(OBJDIR)/np_cluster.o $(OBJDIR)/cluster.o $(LIBNPTM)
+
+
+all: $(LIBNPTM) $(BUILDDIR_CLU)/clu $(BUILDDIR_CLU)/edfb_clu $(BUILDDIR_CLU)/np_cluster
 
+$(OBJDIR):
+	mkdir -p $(OBJDIR)
 
-all: $(BUILDDIR_CLU)/clu $(BUILDDIR_CLU)/edfb_clu $(BUILDDIR_CLU)/np_cluster
+$(LIBNPTM):
+	$(MAKE) -C ../libnptm $@
 
 $(BUILDDIR_CLU):
 	mkdir -p $(BUILDDIR_CLU)
 
-$(BUILDDIR_CLU)/clu: $(OBJDIR)/clu.o $(BUILDDIR_CLU)
+$(BUILDDIR_CLU)/clu: $(OBJDIR) $(OBJDIR)/clu.o $(BUILDDIR_CLU)
 	$(FC) $(FCFLAGS) -o $(BUILDDIR_CLU)/clu $(OBJDIR)/clu.o $(LDFLAGS)
 
-$(BUILDDIR_CLU)/edfb_clu: $(OBJDIR)/edfb_clu.o $(BUILDDIR_CLU)
+$(BUILDDIR_CLU)/edfb_clu: $(OBJDIR) $(OBJDIR)/edfb_clu.o $(BUILDDIR_CLU)
 	$(FC) $(FCFLAGS) -o $(BUILDDIR_CLU)/edfb_clu $(OBJDIR)/edfb_clu.o $(LDFLAGS)
 
-$(BUILDDIR_CLU)/np_cluster: $(CXX_CLU_OBJS) $(BUILDDIR_CLU)
-	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_CLU)/np_cluster $(CXX_CLU_OBJS) $(CXXLDFLAGS) 
+$(BUILDDIR_CLU)/np_cluster: $(OBJDIR) $(CXX_CLU_OBJS) $(BUILDDIR_CLU) $(LIBNPTM)
+	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_CLU)/np_cluster $(CXX_CLU_OBJS) $(LIBNPTM) $(CXXLDFLAGS) 
 
 clean:
 	rm -f $(F_CLU_OBJS) $(CXX_CLU_OBJS)
diff --git a/src/libnptm/Makefile b/src/libnptm/Makefile
new file mode 100644
index 00000000..e7e4cdf1
--- /dev/null
+++ b/src/libnptm/Makefile
@@ -0,0 +1,51 @@
+ifndef BUILDDIR
+override BUILDDIR=../../build
+endif
+ifndef BUILDDIR_NPTM
+override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
+endif
+ifndef LIBNPTM
+# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
+override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
+#override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.so
+endif
+ifndef OBJDIR
+override OBJDIR=./objects
+endif
+ifndef DYNOBJDIR
+override DYNOBJDIR=./dynobjects
+endif
+
+include ../make.inc
+
+
+CXX_NPTM_OBJS=$(OBJDIR)/Commons.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/sph_subs.o $(OBJDIR)/clu_subs.o $(OBJDIR)/tra_subs.o $(OBJDIR)/TransitionMatrix.o
+
+CXX_NPTM_DYNOBJS=$(DYNOBJDIR)/Commons.o $(DYNOBJDIR)/Configuration.o $(DYNOBJDIR)/file_io.o $(DYNOBJDIR)/Parsers.o $(DYNOBJDIR)/sph_subs.o $(DYNOBJDIR)/clu_subs.o $(DYNOBJDIR)/tra_subs.o $(DYNOBJDIR)/TransitionMatrix.o
+
+
+all: $(BUILDDIR_NPTM)/libnptm.a $(BUILDDIR_NPTM)/libnptm.so
+
+$(OBJDIR):
+	mkdir -p $(OBJDIR)
+
+$(DYNOBJDIR):
+	mkdir -p $(DYNOBJDIR)
+
+$(BUILDDIR_NPTM):
+	mkdir -p $(BUILDDIR_NPTM)
+
+$(BUILDDIR_NPTM)/libnptm.a: $(BUILDDIR_NPTM) $(OBJDIR) $(CXX_NPTM_OBJS) 
+	$(AR) $(ARFLAGS) $(BUILDDIR_NPTM)/libnptm.a $(CXX_NPTM_OBJS)
+
+$(BUILDDIR_NPTM)/libnptm.so: $(BUILDDIR_NPTM) $(DYNOBJDIR) $(CXX_NPTM_DYNOBJS) 
+	$(CXX) $(CXXFLAGS) $(PICFLAGS) $(SOFLAGS) -o $(BUILDDIR_NPTM)/libnptm.so $(CXX_NPTM_DYNOBJS)
+
+clean:
+	rm -f $(CXX_NPTM_OBJS) $(CXX_NPTM_DYNOBJS)
+
+wipe:
+	#echo "BUILDDIR_NPTM in libnptm is $(BUILDDIR_NPTM)"
+	#echo "LIBNPTM in libnptm is $(LIBNPTM)"
+	rm -f $(BUILDDIR_NPTM)/libnptm.a $(BUILDDIR_NPTM)/libnptm.so $(CXX_NPTM_OBJS) $(CXX_NPTM_DYNOBJS) 
+
diff --git a/src/make.inc b/src/make.inc
index 83639562..b1536f10 100644
--- a/src/make.inc
+++ b/src/make.inc
@@ -8,6 +8,21 @@ ifndef FCFLAGS
 override FCFLAGS=-std=legacy -O3
 endif
 
+# AR defines the command to create static library files
+ifndef AR
+override AR=ar
+endif
+
+# ARFLAGS defines the flags for AR to create static library files
+ifndef ARFLAGS
+override ARFLAGS=-rs
+endif
+
+# PICFLAGS defines the additional flags for the c++ compiler to create objects suitable for shared library creation
+ifndef PICFLAGS
+override PICFLAGS=-fPIC
+endif
+
 # LDFLAGS defines the default linker flags
 ifndef LDFLAGS
 override LDFLAGS=
@@ -40,6 +55,11 @@ override CXXLDFLAGS=-L/usr/lib64 -L$(HDF5_LIB) -lhdf5 $(LDFLAGS)
 #override CXXLDFLAGS=-L/usr/lib64 -L$(HDF5_LIB) -lhdf5 $(CXXLDFLAGS)
 endif
 
+#SOFLAGS defines the additional flags for the c++ compiler to create a shared object file
+ifndef SOFLAGS
+override SOFLAGS=-shared
+endif
+
 %.o : %.f
 	$(FC) $(FCFLAGS) -c -o $@ $<
 
@@ -52,5 +72,8 @@ $(OBJDIR)/%.o : %.f
 $(OBJDIR)/%.o : %.cpp
 	$(CXX) $(CXXFLAGS) -c -o $@ $<
 
+$(DYNOBJDIR)/%.o : %.cpp
+	$(CXX) $(CXXFLAGS) $(PICFLAGS) -c -o $@ $<
+
 $(OBJDIR)/%.o : ../libnptm/%.cpp
 	$(CXX) $(CXXFLAGS) -c -o $@ $<
diff --git a/src/sphere/Makefile b/src/sphere/Makefile
index d012622e..a2b56691 100644
--- a/src/sphere/Makefile
+++ b/src/sphere/Makefile
@@ -5,7 +5,15 @@ ifndef BUILDDIR_SPH
 override BUILDDIR_SPH=$(BUILDDIR)/sphere
 endif
 ifndef OBJDIR
-override OBJDIR=../objects
+override OBJDIR=./objects
+endif
+ifndef BUILDDIR_NPTM
+override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
+endif
+ifndef LIBNPTM
+# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
+override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
+#override LIBNPTM=$(BUILDDIR_NPTM)/libnpTm.so
 endif
 
 include ../make.inc
@@ -13,21 +21,28 @@ include ../make.inc
 
 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 $(OBJDIR)/TransitionMatrix.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 $(OBJDIR)/TransitionMatrix.o
+CXX_SPH_OBJS=$(OBJDIR)/np_sphere.o $(OBJDIR)/sphere.o
+
+all: $(LIBNPTM) $(BUILDDIR_SPH)/edfb_sph $(BUILDDIR_SPH)/sph $(BUILDDIR_SPH)/np_sphere
+
+$(OBJDIR):
+	mkdir -p $(OBJDIR)
 
-all: $(BUILDDIR_SPH)/edfb_sph $(BUILDDIR_SPH)/sph $(BUILDDIR_SPH)/np_sphere
+$(LIBNPTM):
+	$(MAKE) -C ../libnptm $@
 
 $(BUILDDIR_SPH):
 	mkdir -p $(BUILDDIR_SPH)
 
-$(BUILDDIR_SPH)/edfb_sph: $(OBJDIR)/edfb_sph.o $(BUILDDIR_SPH)
+$(BUILDDIR_SPH)/edfb_sph: $(OBJDIR) $(OBJDIR)/edfb_sph.o $(BUILDDIR_SPH)
 	$(FC) $(FCFLAGS) -o $(BUILDDIR_SPH)/edfb_sph $(OBJDIR)/edfb_sph.o $(LDFLAGS)
 
-$(BUILDDIR_SPH)/sph: $(OBJDIR)/sph.o $(BUILDDIR_SPH)
+$(BUILDDIR_SPH)/sph: $(OBJDIR) $(OBJDIR)/sph.o $(BUILDDIR_SPH)
 	$(FC) $(FCFLAGS) -o $(BUILDDIR_SPH)/sph $(OBJDIR)/sph.o $(LDFLAGS)
 
-$(BUILDDIR_SPH)/np_sphere: $(CXX_SPH_OBJS) $(BUILDDIR_SPH)
-	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_SPH)/np_sphere $(CXX_SPH_OBJS) $(CXXLDFLAGS) 
+$(BUILDDIR_SPH)/np_sphere: $(OBJDIR) $(CXX_SPH_OBJS) $(BUILDDIR_SPH) $(LIBNPTM)
+	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_SPH)/np_sphere $(CXX_SPH_OBJS) $(LIBNPTM) $(CXXLDFLAGS) 
 
 clean:
 	rm -f $(F_SPH_OBJS) $(CXX_SPH_OBJS)
diff --git a/src/testing/Makefile b/src/testing/Makefile
index 9fff52e8..4e3f4abe 100644
--- a/src/testing/Makefile
+++ b/src/testing/Makefile
@@ -5,26 +5,40 @@ ifndef BUILDDIR_TEST
 override BUILDDIR_TEST=$(BUILDDIR)/testing
 endif
 ifndef OBJDIR
-override OBJDIR=../objects
+override OBJDIR=./objects
+endif
+ifndef BUILDDIR_NPTM
+override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
+endif
+ifndef LIBNPTM
+# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
+override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
+#override LIBNPTM=$(BUILDDIR_NPTM)/libnpTm.so
 endif
 
 include ../make.inc
 
 
-CXX_TEDF_OBJS=$(OBJDIR)/test_TEDF.o $(OBJDIR)/Configuration.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o
+CXX_TEDF_OBJS=$(OBJDIR)/test_TEDF.o 
+
+CXX_TTMS_OBJS=$(OBJDIR)/test_TTMS.o 
+
+all: $(LIBNPTM) $(BUILDDIR_TEST)/test_TEDF $(BUILDDIR_TEST)/test_TTMS
 
-CXX_TTMS_OBJS=$(OBJDIR)/test_TTMS.o $(OBJDIR)/file_io.o $(OBJDIR)/Parsers.o $(OBJDIR)/TransitionMatrix.o
+$(OBJDIR):
+	mkdir -p $(OBJDIR)
 
-all: $(BUILDDIR_TEST)/test_TEDF $(BUILDDIR_TEST)/test_TTMS
+$(LIBNPTM):
+	$(MAKE) -C ../libnptm $@
 
 $(BUILDDIR_TEST):
 	mkdir -p $(BUILDDIR_TEST)
 
-$(BUILDDIR_TEST)/test_TEDF: $(CXX_TEDF_OBJS) $(BUILDDIR_TEST)
-	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_TEST)/test_TEDF $(CXX_TEDF_OBJS) $(CXXLDFLAGS) 
+$(BUILDDIR_TEST)/test_TEDF: $(OBJDIR) $(CXX_TEDF_OBJS) $(BUILDDIR_TEST) $(LIBNPTM)
+	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_TEST)/test_TEDF $(CXX_TEDF_OBJS) $(LIBNPTM) $(CXXLDFLAGS) 
 
-$(BUILDDIR_TEST)/test_TTMS: $(CXX_TTMS_OBJS) $(BUILDDIR_TEST)
-	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_TEST)/test_TTMS $(CXX_TTMS_OBJS) $(CXXLDFLAGS) 
+$(BUILDDIR_TEST)/test_TTMS: $(OBJDIR) $(CXX_TTMS_OBJS) $(BUILDDIR_TEST) $(LIBNPTM)
+	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_TEST)/test_TTMS $(CXX_TTMS_OBJS) $(LIBNPTM) $(CXXLDFLAGS) 
 
 clean:
 	rm -f $(CXX_TEDF_OBJS) $(CXX_TTMS_OBJS)
diff --git a/src/trapping/Makefile b/src/trapping/Makefile
index bf595535..624a0607 100644
--- a/src/trapping/Makefile
+++ b/src/trapping/Makefile
@@ -5,7 +5,15 @@ ifndef BUILDDIR_TRA
 override BUILDDIR_TRA=$(BUILDDIR)/trapping
 endif
 ifndef OBJDIR
-override OBJDIR=../objects
+override OBJDIR=./objects
+endif
+ifndef BUILDDIR_NPTM
+override BUILDDIR_NPTM=$(BUILDDIR)/libnptm
+endif
+ifndef LIBNPTM
+# choose one of the two following lines, depending on whether a static or dynamic libnptm is wanted
+override LIBNPTM=$(BUILDDIR_NPTM)/libnptm.a
+#override LIBNPTM=$(BUILDDIR_NPTM)/libnpTm.so
 endif
 
 include ../make.inc
@@ -13,21 +21,27 @@ include ../make.inc
 
 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
+CXX_TRAP_OBJS=$(OBJDIR)/np_trapping.o $(OBJDIR)/cfrfme.o $(OBJDIR)/clffft.o
+
+all: $(LIBNPTM) $(BUILDDIR_TRA)/frfme $(BUILDDIR_TRA)/lffft $(BUILDDIR_TRA)/np_trapping
+
+$(OBJDIR):
+	mkdir -p $(OBJDIR)
 
-all: $(BUILDDIR_TRA)/frfme $(BUILDDIR_TRA)/lffft $(BUILDDIR_TRA)/np_trapping
+$(LIBNPTM):
+	$(MAKE) -C ../libnptm $@
 
 $(BUILDDIR_TRA):
 	mkdir -p $(BUILDDIR_TRA)
 
-$(BUILDDIR_TRA)/frfme: $(OBJDIR)/frfme.o $(BUILDDIR_TRA)
+$(BUILDDIR_TRA)/frfme: $(OBJDIR) $(OBJDIR)/frfme.o $(BUILDDIR_TRA)
 	$(FC) $(FCFLAGS) -o $(BUILDDIR_TRA)/frfme $(OBJDIR)/frfme.o $(LDFLAGS)
 
-$(BUILDDIR_TRA)/lffft: $(OBJDIR)/lffft.o $(BUILDDIR_TRA)
+$(BUILDDIR_TRA)/lffft: $(OBJDIR) $(OBJDIR)/lffft.o $(BUILDDIR_TRA)
 	$(FC) $(FCFLAGS) -o $(BUILDDIR_TRA)/lffft $(OBJDIR)/lffft.o $(LDFLAGS)
 
-$(BUILDDIR_TRA)/np_trapping: $(CXX_TRAP_OBJS) $(BUILDDIR_TRA)
-	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_TRA)/np_trapping $(CXX_TRAP_OBJS) $(CXXLDFLAGS) 
+$(BUILDDIR_TRA)/np_trapping: $(OBJDIR) $(CXX_TRAP_OBJS) $(BUILDDIR_TRA) $(LIBNPTM)
+	$(CXX) $(CXXFLAGS) -o $(BUILDDIR_TRA)/np_trapping $(CXX_TRAP_OBJS) $(LIBNPTM) $(CXXLDFLAGS) 
 
 clean:
 	rm -f $(F_TRAP_OBJS) $(CXX_TRAP_OBJS)
-- 
GitLab