This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mktables: Add type_of() method to get range's type
[perl5.git] / hints / cygwin.sh
1 #! /bin/sh
2 # cygwin.sh - hints for building perl using the Cygwin environment for Win32
3 #
4
5 # not otherwise settable
6 exe_ext='.exe'
7 firstmakefile='GNUmakefile'
8 case "$ldlibpthname" in
9 '') ldlibpthname=PATH ;;
10 esac
11 archobjs='cygwin.o'
12
13 # mandatory (overrides incorrect defaults)
14 test -z "$cc" && cc='gcc'
15 if test -z "$plibpth"
16 then
17     plibpth=`gcc -print-file-name=libc.a`
18     plibpth=`dirname $plibpth`
19     plibpth=`cd $plibpth && pwd`
20 fi
21 so='dll'
22 # - eliminate -lc, implied by gcc and a symlink to libcygwin.a
23 libswanted=`echo " $libswanted " | sed -e 's/ c / /g'`
24 # - eliminate -lm, symlink to libcygwin.a
25 libswanted=`echo " $libswanted " | sed -e 's/ m / /g'`
26 # - eliminate -lutil, symbols are all in libcygwin.a
27 libswanted=`echo " $libswanted " | sed -e 's/ util / /g'`
28 # - add libgdbm_compat $libswanted
29 # - libcygipc doesn't work much at all with
30 #   the Perl SysV IPC tests so not adding it --jhi 2003-08-09
31 #   (with cygwin 1.5.7, cygipc is deprecated in favor of the builtin cygserver)
32 libswanted="$libswanted gdbm_compat"
33 test -z "$optimize" && optimize='-O3'
34 man3ext='3pm'
35 test -z "$use64bitint" && use64bitint='define'
36 test -z "$usethreads" && usethreads='define'
37 test -z "$usemymalloc" && usemymalloc='define'
38 ccflags="$ccflags -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__"
39 # - otherwise i686-cygwin
40 archname='cygwin'
41
42 # dynamic loading
43 # - otherwise -fpic
44 cccdlflags=' '
45 lddlflags=' --shared'
46 test -z "$ld" && ld='g++'
47
48 case "$osvers" in
49     # Configure gets these wrong if the IPC server isn't yet running:
50     # only use for 1.5.7 and onwards
51     [2-9]*|1.[6-9]*|1.[1-5][0-9]*|1.5.[7-9]*|1.5.[1-6][0-9]*)
52         d_semctl_semid_ds='define'
53         d_semctl_semun='define'
54         ;;
55 esac
56
57 case "$osvers" in
58     [2-9]*|1.[6-9]*)
59         # IPv6 only since 1.7
60         d_inetntop='define'
61         d_inetpton='define'
62         ;;
63     *)
64         # IPv6 not implemented before cygwin-1.7
65         d_inetntop='undef'
66         d_inetpton='undef'
67 esac
68
69 # compile Win32CORE "module" as static. try to avoid the space.
70 if test -z "$static_ext"; then
71   static_ext="Win32CORE"
72 else
73   static_ext="$static_ext Win32CORE"
74 fi
75
76 # Win9x problem with non-blocking read from a closed pipe
77 d_eofnblk='define'
78
79 # suppress auto-import warnings
80 ldflags="$ldflags -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--stack,8388608 -Wl,--enable-auto-image-base"
81 lddlflags="$lddlflags $ldflags"
82
83 # strip exe's and dll's, better do it afterwards
84 #ldflags="$ldflags -s"
85 #ccdlflags="$ccdlflags -s"
86 #lddlflags="$lddlflags -s"