This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
SvUTF8_off() in do_join can be unconditional.
[perl5.git] / hints / cygwin.sh
index de48cdf..aca6998 100644 (file)
@@ -1,46 +1,59 @@
 #! /bin/sh
 # cygwin.sh - hints for building perl using the Cygwin environment for Win32
 #
-# Many of these inflexible settings should be changed to allow command-
-# line overrides and allow for variations in local set-ups.
-# I have made first guesses at some of these, but would welcome 
-# corrections from someone actually using Cygwin.
-#  Andy Dougherty  <doughera@lafayette.edu> Tue Sep 28 12:39:38 EDT 1999
 
-_exe='.exe'
+# not otherwise settable
 exe_ext='.exe'
-# work around case-insensitive file names
 firstmakefile='GNUmakefile'
-sharpbang='#!'
-startsh='#!/bin/sh'
+case "$ldlibpthname" in
+'') ldlibpthname=PATH ;;
+esac
+archobjs='cygwin.o'
 
-archname='cygwin'
+# mandatory (overrides incorrect defaults)
 test -z "$cc" && cc='gcc'
-libpth='/usr/i586-cygwin32/lib /usr/lib /usr/local/lib'
+if test -z "$plibpth"
+then
+    plibpth=`gcc -print-file-name=libc.a`
+    plibpth=`dirname $plibpth`
+    plibpth=`cd $plibpth && pwd`
+fi
 so='dll'
-libs='-lcygwin -lm -lkernel32'
-#optimize='-g'
-# Is -I/usr/include *really* needed?
-# Is -I/usr/local/include *really* needed?  I thought gcc always looked there.
-ccflags="$ccflags -DCYGWIN -I/usr/include -I/usr/local/include"
-# Is -L/usr/lib *really* needed?
-ldflags="$ldflags -L/usr/i586-cygwin32/lib -L/usr/lib -L/usr/local/lib"
-test -z "$usemymalloc" && usemymalloc='n'
-dlsrc='dl_cygwin.xs'
+# - eliminate -lc, implied by gcc and a symlink to libcygwin.a
+libswanted=`echo " $libswanted " | sed -e 's/ c / /g'`
+# - eliminate -lm, symlink to libcygwin.a
+libswanted=`echo " $libswanted " | sed -e 's/ m / /g'`
+# - eliminate -lutil, symbols are all in libcygwin.a
+libswanted=`echo " $libswanted " | sed -e 's/ util / /g'`
+# - add libgdbm_compat $libswanted
+# - libcygipc doesn't work much at all with
+#   the Perl SysV IPC tests so not adding it --jhi 2003-08-09
+#   (with cygwin 1.5.7, cygipc is deprecated in favor of the builtin cygserver)
+libswanted="$libswanted gdbm_compat"
+test -z "$optimize" && optimize='-O2'
+ccflags="$ccflags -DPERL_USE_SAFE_PUTENV"
+# - otherwise i686-cygwin
+archname='cygwin'
+
+# dynamic loading
+# - otherwise -fpic
 cccdlflags=' '
 ld='ld2'
-# Is -L/usr/local/lib *really* needed?
-lddlflags="$lddlflags -L/usr/local/lib"
-useshrplib='true'
-libperl='libperl.a'
-dlext='dll'
-dynamic_ext=' '
 
-# What if they aren't using $prefix=/usr/local ??
-# Why is this needed at all?  Doesn't Configure suggest this?
-test -z "$man1dir" && man1dir=/usr/local/man/man1
-test -z "$man3dir" && man3dir=/usr/local/man/man3
+case "$osvers" in
 
-case "$ldlibpthname" in
-'') ldlibpthname=PATH ;;
-esac
+# Configure gets these wrong if the IPC server isn't yet running:
+# only use for 1.5.7 and onwards
+[2-9]*|1.[6-9]*|1.[1-5][0-9]*|1.5.[7-9]*|1.5.[1-6][0-9]*)
+        d_semctl_semid_ds='define'
+        d_semctl_semun='define'
+        ;;
+esac;
+
+# Win9x problem with non-blocking read from a closed pipe
+d_eofnblk='define'
+
+# strip exe's and dll's
+#ldflags="$ldflags -s"
+#ccdlflags="$ccdlflags -s"
+#lddlflags="$lddlflags -s"