summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Eisentraut2019-10-20 08:19:13 +0000
committerPeter Eisentraut2019-10-20 08:19:13 +0000
commitea9e06ac66d3e9584950f52878c8e4b71f963610 (patch)
treebd758488b863558399f540299f1cded5c7291edc
parent5d3587d14b753cb25b0ebcd549d95e1b6ceebce4 (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.shlib40
-rw-r--r--src/interfaces/ecpg/compatlib/Makefile2
-rw-r--r--src/interfaces/ecpg/ecpglib/Makefile2
-rw-r--r--src/interfaces/ecpg/pgtypeslib/Makefile2
-rw-r--r--src/interfaces/libpq/Makefile2
5 files changed, 13 insertions, 35 deletions
diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index c4893edfc38..526361f31bb 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 cd9879ba75a..b9a4fbe9c01 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 8827a17fecb..e888205dee5 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 fcc18c193cd..899ff40cf69 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 4b0a8c719db..6626f87e760 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