diff --git a/contribs/pmi2/Makefile.am b/contribs/pmi2/Makefile.am index 89dc14ecef6e4ed69fc2e276eaaa6e5d4e61ed3e..8ebff5144e05285c315a2c3ff42972f8d4842c4d 100644 --- a/contribs/pmi2/Makefile.am +++ b/contribs/pmi2/Makefile.am @@ -5,10 +5,33 @@ AUTOMAKE_OPTIONS = foreign pkginclude_HEADERS = slurm/pmi2.h -PLUGIN_FLAGS = -module -avoid-version --export-dynamic +if WITH_GNU_LD +PMI2_VERSION_SCRIPT = \ + pmi2_version.map +PMI2_OTHER_FLAGS = \ + -Wl,--version-script=$(PMI2_VERSION_SCRIPT) +endif +libpmi2_current = 0 +libpmi2_age = 0 +libpmi2_rev = 0 + +BUILT_SOURCES = $(PMI2_VERSION_SCRIPT) lib_LTLIBRARIES = libpmi2.la -libpmi2_la_SOURCES = pmi2_api.c pmi2_util.c slurm/pmi2.h -libpmi2_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) +libpmi2_la_SOURCES = pmi2_api.c pmi2_util.c slurm/pmi2.h +libpmi2_la_LDFLAGS = $(LIB_LDFLAGS) -version-info $(libpmi2_current):$(libpmi2_rev):$(libpmi2_age) \ + $(PMI2_OTHER_FLAGS) + +$(PMI2_VERSION_SCRIPT) : + (echo "{ global:"; \ + echo " PMI2_*;"; \ + echo " local: *;"; \ + echo "};") > $(PMI2_VERSION_SCRIPT) + +CLEANFILES = \ + $(PMI_VERSION_SCRIPT) + +DISTCLEANFILES = \ + $(PMI_VERSION_SCRIPT) diff --git a/contribs/pmi2/Makefile.in b/contribs/pmi2/Makefile.in index e01d538d699ae81f4ef7c0d83075f0e502578811..2f5120a0bdbb17a5174450e066404ad08fdeeb25 100644 --- a/contribs/pmi2/Makefile.in +++ b/contribs/pmi2/Makefile.in @@ -397,11 +397,29 @@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = foreign pkginclude_HEADERS = slurm/pmi2.h -PLUGIN_FLAGS = -module -avoid-version --export-dynamic +@WITH_GNU_LD_TRUE@PMI2_VERSION_SCRIPT = \ +@WITH_GNU_LD_TRUE@ pmi2_version.map + +@WITH_GNU_LD_TRUE@PMI2_OTHER_FLAGS = \ +@WITH_GNU_LD_TRUE@ -Wl,--version-script=$(PMI2_VERSION_SCRIPT) + +libpmi2_current = 0 +libpmi2_age = 0 +libpmi2_rev = 0 +BUILT_SOURCES = $(PMI2_VERSION_SCRIPT) lib_LTLIBRARIES = libpmi2.la libpmi2_la_SOURCES = pmi2_api.c pmi2_util.c slurm/pmi2.h -libpmi2_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS) -all: all-am +libpmi2_la_LDFLAGS = $(LIB_LDFLAGS) -version-info $(libpmi2_current):$(libpmi2_rev):$(libpmi2_age) \ + $(PMI2_OTHER_FLAGS) + +CLEANFILES = \ + $(PMI_VERSION_SCRIPT) + +DISTCLEANFILES = \ + $(PMI_VERSION_SCRIPT) + +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj @@ -610,13 +628,15 @@ distdir: $(DISTFILES) fi; \ done check-am: all-am -check: check-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(pkgincludedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done -install: install-am +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am @@ -638,14 +658,17 @@ install-strip: mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ @@ -717,7 +740,7 @@ ps-am: uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS -.MAKE: install-am install-strip +.MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ @@ -735,6 +758,12 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS uninstall-libLTLIBRARIES uninstall-pkgincludeHEADERS +$(PMI2_VERSION_SCRIPT) : + (echo "{ global:"; \ + echo " PMI2_*;"; \ + echo " local: *;"; \ + echo "};") > $(PMI2_VERSION_SCRIPT) + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: