Hi,
I checked libatomicqueue[1] and realised that only a static library is
built. Any idea how to create a shared library in addition.
--- a/Makefile
+++ b/Makefile
@@ -10,6 +10,7 @@
TOOLSET := gcc
build_dir := ${CURDIR}/build/${BUILD}/${TOOLSET}
+build_dir_shared := ${CURDIR}/build_shared/${BUILD}/${TOOLSET}
cxx.gcc := g++
cc.gcc := gcc
@@ -66,13 +67,17 @@
all : ${exes}
-${exes} : % : ${build_dir}/%
+${exes} : % : ${build_dir}/% ${build_dir_shared}/libatomic_queue.so
ln -sf ${<:${CURDIR}/%=%}
${build_dir}/libatomic_queue.a : $(addprefix ${build_dir}/,cpu_base_frequency.o huge_pages.o)
-include ${build_dir}/cpu_base_frequency.d
-include ${build_dir}/huge_pages.d
+${build_dir_shared}/libatomic_queue.so : $(addprefix ${build_dir_shared}/,cpu_base_frequency.o huge_pages.o)
+-include ${build_dir_shared}/cpu_base_frequency.d
+-include ${build_dir_shared}/huge_pages.d
+
${build_dir}/benchmarks : cppflags += ${cppflags.tbb} ${cppflags.moodycamel} ${cppflags.xenium}
${build_dir}/benchmarks : ldlibs += ${ldlibs.tbb} ${ldlibs.moodycamel} ${ldlibs.xenium} -ldl
${build_dir}/benchmarks : ${build_dir}/benchmarks.o ${build_dir}/libatomic_queue.a Makefile | ${build_dir}
@@ -85,8 +90,8 @@
$(strip ${LINK.EXE})
-include ${build_dir}/tests.d
-${build_dir}/%.so : cxxflags += -fPIC
-${build_dir}/%.so : Makefile | ${build_dir}
+${build_dir_shared}/%.so : cxxflags += -fPIC
+${build_dir_shared}/%.so : Makefile | ${build_dir}
$(strip ${LINK.SO})
${build_dir}/%.a : Makefile | ${build_dir}
@@ -108,6 +113,13 @@
${build_dir}/%.o : src/%.c Makefile | ${build_dir}
$(strip ${COMPILE.C})
+${build_dir_shared}/%.o : src/%.cc Makefile | ${build_dir_shared}
+ $(strip ${COMPILE.CXX})
+
+${build_dir_shared}/%.o : src/%.c Makefile | ${build_dir_shared}
+ $(strip ${COMPILE.C})
+
+
%.S : cppflags += ${cppflags.tbb} ${cppflags.moodycamel} ${cppflags.xenium}
%.S : src/%.cc Makefile | ${build_dir}
$(strip ${COMPILE.S})
@@ -118,6 +130,9 @@
${build_dir} :
mkdir -p $@
+${build_dir_shared} :
+ mkdir -p $@
+
rtags : clean
${MAKE} -nk | rc -c -; true