]> granicus.if.org Git - postgresql/commitdiff
Clean up MinGW def file generation
authorPeter Eisentraut <peter@eisentraut.org>
Sun, 20 Oct 2019 08:19:13 +0000 (10:19 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Sun, 20 Oct 2019 08:19:13 +0000 (10:19 +0200)
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

src/Makefile.shlib
src/interfaces/ecpg/compatlib/Makefile
src/interfaces/ecpg/ecpglib/Makefile
src/interfaces/ecpg/pgtypeslib/Makefile
src/interfaces/libpq/Makefile

index c4893edfc3894b34011a1ffaffc8b408cbd2fe4a..526361f31bbb3130bfeaf5484fd666bd88cf7aa3 100644 (file)
@@ -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
index cd9879ba75ab94f6a7a4c1ce5a39cd133aabc1db..b9a4fbe9c012232c05a1eecba4f59b291d28874b 100644 (file)
@@ -54,4 +54,4 @@ uninstall: uninstall-lib
 clean distclean: clean-lib
        rm -f $(OBJS)
 
-maintainer-clean: distclean maintainer-clean-lib
+maintainer-clean: distclean
index 8827a17fecb01a5e5096779ff4fcb3fa5d3aa88f..e888205dee5b6be813473f1ab4b3e09895407199 100644 (file)
@@ -57,4 +57,4 @@ uninstall: uninstall-lib
 clean distclean: clean-lib
        rm -f $(OBJS)
 
-maintainer-clean: distclean maintainer-clean-lib
+maintainer-clean: distclean
index fcc18c193cdd53027ad4e59016ac8ddc51656c55..899ff40cf696f38dca381fc404247287c35b8a00 100644 (file)
@@ -44,4 +44,4 @@ uninstall: uninstall-lib
 clean distclean: clean-lib
        rm -f $(OBJS)
 
-maintainer-clean: distclean maintainer-clean-lib
+maintainer-clean: distclean
index 4b0a8c719db15b4f01b4f479a3a30d033131ae13..6626f87e760f31d77124147c49a9fc463eec47f0 100644 (file)
@@ -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