Update the configuration of CygWin32 to use the new capabilities of
CygWin 1.3.x, which includes thread and shared library support.
Submitted by Corinna Vinschen <vinschen@redhat.com> and modified a
little bit.
diff --git a/Makefile.org b/Makefile.org
index 669361f..89f2747 100644
--- a/Makefile.org
+++ b/Makefile.org
@@ -240,6 +240,9 @@
done; \
fi; \
( set -x; rm -f lib$$i$(SHLIB_EXT) ); \
+ if [ "$(PLATFORM)" = "CygWin32" ]; then \
+ ( set -x; rm -f cyg$$i$(SHLIB_EXT) lib$$i$(SHLIB_EXT).a ); \
+ fi; \
done
link-shared:
@@ -286,6 +289,15 @@
echo "" ; \
done
+do_cygwin-shared:
+ libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
+ ( set -x; ${CC} -shared -o cyg$$i.dll \
+ -Wl,--whole-archive lib$$i.a \
+ -Wl,--out-implib,lib$$i.dll.a \
+ -Wl,--no-whole-archive $$libs ) || exit 1; \
+ libs="$$libs -l$$i"; \
+ done
+
# This assumes that GNU utilities are *not* used
do_alpha-osf1-shared:
if ${DETECT_GNU_LD}; then \
@@ -689,10 +701,18 @@
tmp="$(SHARED_LIBS)"; \
for i in $${tmp:-x}; \
do \
- if [ -f "$$i" ]; then \
+ if [ -f "$$i" -o -f "$$i.a" ]; then \
( echo installing $$i; \
- cp -f $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
- chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \
+ if [ "$(PLATFORM)" != "CygWin32" ]; then \
+ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
+ else \
+ c=`echo $$i | sed 's/^lib/cyg/'`; \
+ cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
+ chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \
+ cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \
+ fi ); \
fi \
done; \
( here="`pwd`"; \