diff options
author | Peter Eisentraut | 2019-10-20 08:19:13 +0000 |
---|---|---|
committer | Peter Eisentraut | 2019-10-20 08:19:13 +0000 |
commit | ea9e06ac66d3e9584950f52878c8e4b71f963610 (patch) | |
tree | bd758488b863558399f540299f1cded5c7291edc | |
parent | 5d3587d14b753cb25b0ebcd549d95e1b6ceebce4 (diff) |
Clean up MinGW def file generation
There were some leftovers from ancient ad-hoc ways to build on
Windows, prior to the standardization on MSVC and MinGW. We don't
need to build a lib$(NAME)ddll.def (debug build, as opposed to
lib$(NAME)dll.def) for MinGW, since nothing uses that. We also don't
need to build the regular .def file during distprep, since the MinGW
build environment is perfectly capable of creating that normally at
build time.
Discussion: https://www.postgresql.org/message-id/flat/0f9db9f8-47b8-a48b-6ccc-15b22b412316%402ndquadrant.com
-rw-r--r-- | src/Makefile.shlib | 40 | ||||
-rw-r--r-- | src/interfaces/ecpg/compatlib/Makefile | 2 | ||||
-rw-r--r-- | src/interfaces/ecpg/ecpglib/Makefile | 2 | ||||
-rw-r--r-- | src/interfaces/ecpg/pgtypeslib/Makefile | 2 | ||||
-rw-r--r-- | src/interfaces/libpq/Makefile | 2 |
5 files changed, 13 insertions, 35 deletions
diff --git a/src/Makefile.shlib b/src/Makefile.shlib index c4893edfc3..526361f31b 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -49,7 +49,6 @@ # installdirs-lib create installation directory $(libdir) # uninstall-lib remove the libraries from $(libdir) # clean-lib delete the static and shared libraries from the build dir -# maintainer-clean-lib delete .def files built for win32 # # Typically you would add `all-lib' to the `all' target so that `make all' # builds the libraries. In the most simple case it would look like this: @@ -374,6 +373,13 @@ DLL_DEFFILE = lib$(NAME)dll.def $(shlib): $(OBJS) $(DLL_DEFFILE) | $(SHLIB_PREREQS) $(CC) $(CFLAGS) -shared -static-libgcc -o $@ $(OBJS) $(DLL_DEFFILE) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK) $(LIBS) -Wl,--out-implib=$(stlib) + +UC_NAME = $(shell echo $(NAME) | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') + +$(DLL_DEFFILE): $(SHLIB_EXPORTS) + echo 'LIBRARY LIB$(UC_NAME).dll' >$@ + echo 'EXPORTS' >>$@ + sed -e '/^#/d' -e 's/^\(.*[ ]\)\([0-9][0-9]*\)/ \1@ \2/' $< >>$@ endif endif # PORTNAME == cygwin @@ -397,32 +403,6 @@ endif # PORTNAME == cygwin || PORTNAME == win32 echo 'Libs.private: $(sort $(filter-out -L.% -L$(top_srcdir)/%,$(filter -L%,$(LDFLAGS) $(SHLIB_LINK)))) $(filter-out $(PKG_CONFIG_REQUIRES_PRIVATE:lib%=-l%),$(filter -l%,$(SHLIB_LINK)))' >>$@ -# We need several not-quite-identical variants of .DEF files to build -# DLLs for Windows. These are made from the single source file -# exports.txt. Since we can't assume that Windows boxes will have -# sed, the .DEF files are always built and included in distribution -# tarballs. - -ifneq (,$(SHLIB_EXPORTS)) -distprep: lib$(NAME)dll.def lib$(NAME)ddll.def - -UC_NAME = $(shell echo $(NAME) | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') - -lib$(NAME)dll.def: $(SHLIB_EXPORTS) - echo '; DEF file for Makefile.shlib (MinGW)' >$@ - echo 'LIBRARY LIB$(UC_NAME).dll' >>$@ - echo 'EXPORTS' >>$@ - sed -e '/^#/d' -e 's/^\(.*[ ]\)\([0-9][0-9]*\)/ \1@ \2/' $< >>$@ - -lib$(NAME)ddll.def: $(SHLIB_EXPORTS) - echo '; DEF file for Makefile.shlib (MinGW)' >$@ - echo 'LIBRARY LIB$(UC_NAME)D.dll' >>$@ - echo 'EXPORTS' >>$@ - sed -e '/^#/d' -e 's/^\(.*[ ]\)\([0-9][0-9]*\)/ \1@ \2/' $< >>$@ - -endif # SHLIB_EXPORTS - - ## ## INSTALL ## @@ -505,8 +485,6 @@ endif # no soname .PHONY: clean-lib clean-lib: rm -f $(shlib) $(shlib_bare) $(shlib_major) $(stlib) $(exports_file) lib$(NAME).pc - -ifneq (,$(SHLIB_EXPORTS)) -maintainer-clean-lib: - rm -f lib$(NAME)dll.def lib$(NAME)ddll.def +ifneq (,$(DLL_DEFFILE)) + rm -f $(DLL_DEFFILE) endif diff --git a/src/interfaces/ecpg/compatlib/Makefile b/src/interfaces/ecpg/compatlib/Makefile index cd9879ba75..b9a4fbe9c0 100644 --- a/src/interfaces/ecpg/compatlib/Makefile +++ b/src/interfaces/ecpg/compatlib/Makefile @@ -54,4 +54,4 @@ uninstall: uninstall-lib clean distclean: clean-lib rm -f $(OBJS) -maintainer-clean: distclean maintainer-clean-lib +maintainer-clean: distclean diff --git a/src/interfaces/ecpg/ecpglib/Makefile b/src/interfaces/ecpg/ecpglib/Makefile index 8827a17fec..e888205dee 100644 --- a/src/interfaces/ecpg/ecpglib/Makefile +++ b/src/interfaces/ecpg/ecpglib/Makefile @@ -57,4 +57,4 @@ uninstall: uninstall-lib clean distclean: clean-lib rm -f $(OBJS) -maintainer-clean: distclean maintainer-clean-lib +maintainer-clean: distclean diff --git a/src/interfaces/ecpg/pgtypeslib/Makefile b/src/interfaces/ecpg/pgtypeslib/Makefile index fcc18c193c..899ff40cf6 100644 --- a/src/interfaces/ecpg/pgtypeslib/Makefile +++ b/src/interfaces/ecpg/pgtypeslib/Makefile @@ -44,4 +44,4 @@ uninstall: uninstall-lib clean distclean: clean-lib rm -f $(OBJS) -maintainer-clean: distclean maintainer-clean-lib +maintainer-clean: distclean diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile index 4b0a8c719d..6626f87e76 100644 --- a/src/interfaces/libpq/Makefile +++ b/src/interfaces/libpq/Makefile @@ -139,6 +139,6 @@ clean distclean: clean-lib # Remove files we (may have) symlinked in from other places rm -f encnames.c wchar.c -maintainer-clean: distclean maintainer-clean-lib +maintainer-clean: distclean $(MAKE) -C test $@ rm -f libpq-dist.rc |