OpenBSD hints update from Todd Miller.
[p5sagit/p5-mst-13.2.git] / hints / openbsd.sh
CommitLineData
43051805 1# hints/openbsd.sh
2#
3# hints file for OpenBSD; Todd Miller <millert@openbsd.org>
4# Edited to allow Configure command-line overrides by
5# Andy Dougherty <doughera@lafcol.lafayette.edu>
6#
c347f277 7# To build with distribution paths, use:
48827ca2 8# ./Configure -des -Dopenbsd_distribution=defined
c347f277 9#
43051805 10
11# OpenBSD has a better malloc than perl...
12test "$usemymalloc" || usemymalloc='n'
13
14# Currently, vfork(2) is not a real win over fork(2) but this will
48827ca2 15# change starting with OpenBSD 2.7.
43051805 16usevfork='true'
17
18# setre?[ug]id() have been replaced by the _POSIX_SAVED_IDS versions
19# in 4.4BSD. Configure will find these but they are just emulated
20# and do not have the same semantics as in 4.3BSD.
1528c3db 21d_setregid=$undef
22d_setreuid=$undef
23d_setrgid=$undef
24d_setruid=$undef
43051805 25
26#
48827ca2 27# Not all platforms support dynamic loading...
e9c1fd70 28# For the case of "$openbsd_distribution", the hints file
29# needs to know whether we are using dynamic loading so that
30# it can set the libperl name appropriately.
31# Allow command line overrides.
43051805 32#
5c75dbfa 33ARCH=`arch | sed 's/^OpenBSD.//'`
34case "${ARCH}-${osvers}" in
aed526b9 35alpha-2.[0-8]|mips-*|vax-*|powerpc-2.[0-7]|m88k-*)
e9c1fd70 36 test -z "$usedl" && usedl=$undef
43051805 37 ;;
38*)
e9c1fd70 39 test -z "$usedl" && usedl=$define
5c75dbfa 40 # We use -fPIC here because -fpic is *NOT* enough for some of the
43051805 41 # extensions like Tk on some OpenBSD platforms (ie: sparc)
42 cccdlflags="-DPIC -fPIC $cccdlflags"
154d43cb 43 case "$osvers" in
44 [01].*|2.[0-7]|2.[0-7].*)
45 lddlflags="-Bshareable $lddlflags"
46 ;;
5c75dbfa 47 2.[8-9]|3.0)
154d43cb 48 ld=${cc:-cc}
eb9cd59d 49 lddlflags="-shared -fPIC $lddlflags"
154d43cb 50 ;;
5c75dbfa 51 *) # from 3.1 onwards
52 ld=${cc:-cc}
53 lddlflags="-shared -fPIC $lddlflags"
54 libswanted=`echo $libswanted | sed 's/ dl / /'`
55 ;;
154d43cb 56 esac
43051805 57 ;;
58esac
59
1528c3db 60#
61# Tweaks for various versions of OpenBSD
62#
63case "$osvers" in
642.5)
65 # OpenBSD 2.5 has broken odbm support
66 i_dbm=$undef
67 ;;
68esac
69
43051805 70# OpenBSD doesn't need libcrypt but many folks keep a stub lib
71# around for old NetBSD binaries.
72libswanted=`echo $libswanted | sed 's/ crypt / /'`
73
43051805 74# Configure can't figure this out non-interactively
1528c3db 75d_suidsafe=$define
43051805 76
77# cc is gcc so we can do better than -O
78# Allow a command-line override, such as -Doptimize=-g
5c75dbfa 79case ${ARCH} in
1bd427d5 80m88k)
81 optimize='-O0'
82 ;;
83*)
84 test "$optimize" || optimize='-O2'
85 ;;
86esac
43051805 87
619ffc2b 88# This script UU/usethreads.cbu will get 'called-back' by Configure
89# after it has prompted the user for whether to use threads.
90cat > UU/usethreads.cbu <<'EOCBU'
91case "$usethreads" in
92$define|true|[yY]*)
93 # any openbsd version dependencies with pthreads?
34163b21 94 ccflags="-pthread $ccflags"
95 ldflags="-pthread $ldflags"
938db3fa 96 # Add -lpthread. Also change from -lc to -lc_r
619ffc2b 97 libswanted="$libswanted pthread"
938db3fa 98 libswanted=`echo " $libswanted "| sed -e 's/ c / c_r /' -e 's/^ //' -e 's/ $//'`
34163b21 99 # This is strange.
100 usevfork="$undef"
619ffc2b 101esac
102EOCBU
103
c347f277 104# When building in the OpenBSD tree we use different paths
105# This is only part of the story, the rest comes from config.over
106case "$openbsd_distribution" in
48827ca2 107''|$undef|false) ;;
c347f277 108*)
109 # We put things in /usr, not /usr/local
110 prefix='/usr'
111 prefixexp='/usr'
112 sysman='/usr/share/man/man1'
c347f277 113 libpth='/usr/lib'
48827ca2 114 glibpth='/usr/lib'
eb9cd59d 115 # Local things, however, do go in /usr/local
116 siteprefix='/usr/local'
117 siteprefixexp='/usr/local'
48827ca2 118 # Ports installs non-std libs in /usr/local/lib so look there too
119 locincpth='/usr/local/include'
120 loclibpth='/usr/local/lib'
121 # Link perl with shared libperl
122 if [ "$usedl" = "$define" -a -r shlib_version ]; then
123 useshrplib=true
124 libperl=`. ./shlib_version; echo libperl.so.${major}.${minor}`
125 fi
c347f277 126 ;;
127esac
128
43051805 129# end