diff --git a/examples/plugins/CMakeLists.txt b/examples/plugins/CMakeLists.txt index 2fb8ca746f..74a1cd4e3b 100644 --- a/examples/plugins/CMakeLists.txt +++ b/examples/plugins/CMakeLists.txt @@ -53,4 +53,12 @@ target_link_libraries(nve2plugin PRIVATE lammps) add_library(helloplugin MODULE helloplugin.cpp) target_link_libraries(helloplugin PRIVATE lammps) -set_target_properties(morse2plugin nve2plugin helloplugin PROPERTIES PREFIX "") +set_target_properties(morse2plugin nve2plugin helloplugin PROPERTIES + PREFIX "" + LINK_FLAGS "-rdynamic") + +# MacOS seems to need this +if(CMAKE_SYSTEM_NAME STREQUAL Darwin) + set_target_properties(morse2plugin nve2plugin helloplugin PROPERTIES + LINK_FLAGS "-Wl,-undefined,dynamic_lookup") +endif() diff --git a/examples/plugins/Makefile b/examples/plugins/Makefile index bf6bc804be..dbb0023991 100644 --- a/examples/plugins/Makefile +++ b/examples/plugins/Makefile @@ -26,5 +26,5 @@ fix_nve2.o: fix_nve2.cpp fix_nve2.h nve2plugin.o: nve2plugin.cpp fix_nve2.h clean: - rm -f *~ *.so *.o log.lammps + rm -rf *~ *.so *.dylib *.o log.lammps CMakeCache.txt CMakeFiles diff --git a/examples/plugins/Makefile.macos b/examples/plugins/Makefile.macos new file mode 100644 index 0000000000..2490418a09 --- /dev/null +++ b/examples/plugins/Makefile.macos @@ -0,0 +1,30 @@ +CXX=mpicxx +CXXFLAGS=-I../../src -Wall -Wextra -O3 -fPIC -I../../src/USER-OMP +LD=$(CXX) -bundle -rdynamic -Wl,-undefined,dynamic_lookup + +default: morse2plugin.dylib nve2plugin.dylib helloplugin.dylib + +helloplugin.dylib: helloplugin.o + $(LD) -o $@ $^ + +morse2plugin.dylib: morse2plugin.o pair_morse2.o pair_morse2_omp.o + $(LD) -o $@ $^ + +nve2plugin.dylib: nve2plugin.o fix_nve2.o + $(LD) -o $@ $^ + +.cpp.o: + $(CXX) -o $@ $(CXXFLAGS) -c $< + +helloplugin.o: helloplugin.cpp + +pair_morse2.o: pair_morse2.cpp pair_morse2.h +pair_morse2_omp.o: pair_morse2_omp.cpp pair_morse2_omp.h pair_morse2.h +morse2plugin.o: morse2plugin.cpp pair_morse2.h pair_morse2_omp.h + +fix_nve2.o: fix_nve2.cpp fix_nve2.h +nve2plugin.o: nve2plugin.cpp fix_nve2.h + +clean: + rm -rf *~ *.dylib *.dylib *.o log.lammps CMakeCache.txt CMakeFiles +