diff --git a/src/Makefile.shlib b/src/Makefile.shlib index 294d10f61864237ebdea3e8fedc4830b257017d1..c7a2f5ff9182740e3d8b2b2e578049fe772403ca 100644 --- a/src/Makefile.shlib +++ b/src/Makefile.shlib @@ -284,6 +284,7 @@ ifeq ($(PORTNAME), unixware) endif ifeq ($(PORTNAME), cygwin) + LINK.shared = $(CC) -shared ifdef SO_MAJOR_VERSION shlib = cyg$(NAME)$(DLSUFFIX) endif @@ -374,6 +375,16 @@ else # PORTNAME == cygwin || PORTNAME == win32 # If SHLIB_EXPORTS is set, the rules below will build a .def file from # that. Else we build a temporary one here. +ifeq ($(PORTNAME), cygwin) +$(shlib): $(OBJS) | $(SHLIB_PREREQS) + $(CC) $(CFLAGS) -shared -o $@ $(OBJS) $(LDFLAGS) $(LDFLAGS_SL) $(SHLIB_LINK) $(LIBS) $(LDAP_LIBS_BE) + +$(stlib): $(OBJS) | $(SHLIB_PREREQS) + $(LINK.static) $@ $^ + $(RANLIB) $@ + + +else ifeq (,$(SHLIB_EXPORTS)) DLL_DEFFILE = lib$(NAME)dll.def exports_file = $(DLL_DEFFILE) @@ -390,6 +401,7 @@ $(shlib): $(OBJS) $(DLL_DEFFILE) | $(SHLIB_PREREQS) $(stlib): $(shlib) $(DLL_DEFFILE) | $(SHLIB_PREREQS) $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib $@ +endif # PORTNAME == cygwin endif # PORTNAME == cygwin || PORTNAME == win32 endif # enable_shared diff --git a/src/makefiles/Makefile.cygwin b/src/makefiles/Makefile.cygwin index 052ce22ddbf0f2a85ce9530ae251eebb0e22910f..46899a2d042405aebc71cebb425370a53a9cd9fa 100644 --- a/src/makefiles/Makefile.cygwin +++ b/src/makefiles/Makefile.cygwin @@ -1,6 +1,5 @@ -# src/makefiles/Makefile.cygwin DLLTOOL= dlltool -DLLWRAP= dllwrap +# src/makefiles/Makefile.cygwin ifdef PGXS BE_DLLLIBS= -L$(libdir) -lpostgres else @@ -40,6 +39,4 @@ endif # Rule for building a shared library from a single .o file %.dll: %.o - $(DLLTOOL) --export-all --output-def $*.def $< - $(DLLWRAP) -o $@ --def $*.def $< $(LDFLAGS) $(LDFLAGS_SL) $(BE_DLLLIBS) - rm -f $*.def + $(CC) $(CFLAGS) -shared -o $@ $< $(LDFLAGS) $(LDFLAGS_SL) $(BE_DLLLIBS)