This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Advertise Tie::File.
[perl5.git] / hints / dgux.sh
CommitLineData
8e9464f1 1# $Id: dgux.sh,v 1.9 2001-05-07 00:06:00-05 Takis Exp $
c07a80fd 2
8e9464f1
JH
3# This is a hints file for DGUX, which is EMC's Data General's Unix. It
4# was originally developed with version 5.4.3.10 of the OS, and then was
735aabf6
RS
5# later updated running under version 4.11.2 (running on m88k hardware).
6# The gross features should work with versions going back to 2.nil but
7# some tweaking will probably be necessary.
a0d0e21e 8#
d1be9408 9# DGUX is an SVR4 derivative. It ships with gcc as the standard
735aabf6 10# compiler. Since version 3.0 it has shipped with Perl 4.036
c07a80fd 11# installed in /usr/bin, which is kind of neat. Be careful when you
12# install that you don't overwrite the system version, though (by
13# answering yes to the question about installing perl as /usr/bin/perl),
14# as it would suck to try to get support if the vendor learned that you
15# were physically replacing the system binaries.
a0d0e21e 16#
54310121 17# -Roderick Schertler <roderick@argon.org>
a0d0e21e 18
c07a80fd 19# The standard system compiler is gcc, but invoking it as cc changes its
20# behavior. I have to pick one name or the other so I can get the
21# dynamic loading switches right (they vary depending on this). I'm
22# picking gcc because there's no way to get at the optimization options
23# and so on when you call it cc.
8e9464f1
JH
24
25##########################################
26# Modified by Takis Psarogiannakopoulos
27# Universirty of Cambridge
28# Centre for Mathematical Sciences
29# Department of Pure Mathematics
30# Wilberforce road
31# Cambridge CB3 0WB , UK
32# e-mail <takis@xfree86.org>
33# Use GCC-2.95.2/3 rev (DG/UX) for threads
34# This compiler supports the -pthread switch
35# to link correctly DG/UX 's -lthread.
36###########################################
37
38cc=gcc
39ccflags="-DDGUX -D_DGUX_SOURCE"
40# Debug build with GNU as,ld and -gstabs+
41# ccflags="-DDGUX -D_DGUX_SOURCE -gstabs+"
42# Dummy ; always compile with -O2 on GCC 2.95.2/3 rev (DG/UX)
43optimize="-mno-legend -O2"
44
45archname="ix86-dgux"
46libpth="/usr/lib"
47
48#####################################
49# <takis@xfree86.org>
50# Change this if you want.
51# prefix =/usr/local
52#####################################
53
54prefix=/usr/local
55perlpath="$prefix/bin/perl57"
56startperl="#! $prefix/bin/perl57"
57privlib="$prefix/lib/perl57"
58man1dir="$prefix/man/man1"
59man3dir="$prefix/man/man3"
60
61sitearch="$prefix/lib/perl57/$archname"
62sitelib="$prefix/lib/perl57"
63
64#Do not overwrite by default /usr/bin/perl of DG/UX
65installusrbinperl="$undef"
66
67# Configure may fail to find lstat()
68# function in <sys/stat.h>.
69d_lstat=define
70
71# Internal malloc is needed for correct operation
72# of perl-5.7.x
73# DG/UX native malloc is causing problems.
74# Some perl tests they failing badly.
75# I have no time to investigate more.
76# <takis@xfree86.org>
77
78case "$usemymalloc" in
79'') usemymalloc='y' ;;
c07a80fd 80esac
81
8e9464f1
JH
82case "$uselongdouble" in
83'') uselongdouble='y' ;;
84esac
85
86#### No for threads ???? #####
87#usevfork=true
88usevfork=false
c07a80fd 89
90# DG has this thing set up with symlinks which point to different places
91# depending on environment variables (see elink(5)) and the compiler and
92# related tools use them to access different development environments
93# (COFF, ELF, m88k BCS and so on), see sde(5). The upshot, however, is
94# that when a normal program tries to access one of these elinks it sees
95# no such file (like stat()ting a mis-directed symlink). Setting
96# $plibpth to explicitly include the place to which the elinks point
97# allows Configure to find libraries which vary based on the development
98# environment.
735aabf6
RS
99#
100# Starting with version 4.10 (the first time the OS supported Intel
101# hardware) all libraries are accessed with this mechanism.
102#
103# The default $TARGET_BINARY_INTERFACE changed with version 4.10. The
104# system now comes with a link named /usr/sde/default which points to
105# the proper entry, but older versions lacked this and used m88kdgux
106# directly.
107
108: && sde_path=${SDE_PATH:-/usr}/sde # hide from Configure
109while : # dummy loop
110do
111 if [ -n "$TARGET_BINARY_INTERFACE" ]
112 then set X "$TARGET_BINARY_INTERFACE"
113 else set X default dg m88k_dg ix86_dg m88kdgux m88kdguxelf
114 fi
115 shift
116 default_sde=$1
117 for sde
118 do
119 [ -d "$sde_path/$sde" ] && break 2
120 done
68dc0745 121 cat <<END >&2
735aabf6
RS
122
123NOTE: I can't figure out what SDE is used by default on this machine (I
124didn't find a likely directory under $sde_path). This is bad news. If
125this is a R4.10 or newer system I'm not going to be able to find any of
126your libraries, if this system is R3.10 or older I won't be able to find
127the math library. You should re-run Configure with the environment
128variable TARGET_BINARY_INTERFACE set to the proper value for this
129machine, see sde(5) and the notes in hints/dgux.sh.
130
131END
132 sde=$default_sde
133 break
134done
135
136plibpth="$plibpth $sde_path/$sde/usr/lib"
137unset sde_path default_sde sde
c07a80fd 138
8e9464f1
JH
139#####################################
140# <takis@xfree86.org>
141#####################################
142
143libperl="libperl57.so"
144
c07a80fd 145# Many functions (eg, gethostent(), killpg(), getpriority(), setruid()
146# dbm_*(), and plenty more) are defined in -ldgc. Usually you don't
147# need to know this (it seems that libdgc.so is searched automatically
148# by ld), but Configure needs to check it otherwise it will report all
149# those functions as missing.
8e9464f1
JH
150
151#####################################
152# <takis@xfree86.org>
153#####################################
154
155# libswanted="dgc gdbm $libswanted"
156#libswanted="dbm posix $libswanted"
157# Remove malloc since we use the internal perl one.
158libswanted="dbm posix resolv socket nsl dl m"
159
160#####################################
161# <takis@xfree86.org>
162#####################################
163
164mydomain='.localhost'
165cf_by=`(whoami) 2>/dev/null`
166cf_email="$cf_by@localhost"
c07a80fd 167
168# Dynamic loading works using the dlopen() functions. Note that dlfcn.h
735aabf6
RS
169# used to be broken, it declared _dl*() rather than dl*(). This was the
170# case up to 3.10, it has been fixed in 4.11. I'm not sure if it was
171# fixed in 4.10. If you have the older header just ignore the warnings
172# (since pointers and integers have the same format on m88k).
8e9464f1
JH
173
174# usedl=true
175usedl=false
176
c07a80fd 177# For cc rather than gcc the flags would be `-K PIC' for compiling and
178# -G for loading. I haven't tested this.
8e9464f1
JH
179
180#####################################
181# <takis@xfree86.org>
182# Use -fPIC instead -fpic
183#####################################
184
185cccdlflags=-fPIC
186#We must use gcc
187ld="gcc"
188lddlflags="-shared"
189
190############################################################################
191# DGUX Posix 4A Draft 10 Thread support
192# <takis@xfree86.org>
193# use Configure -Dusethreads to enable
194############################################################################
195
196cat > UU/usethreads.cbu <<'EOCBU'
197case "$usethreads" in
198$define|true|[yY]*)
199 ccflags="$ccflags"
200 shift
201 # DG/UX's sched_yield is in -lrte
202 # Remove malloc since we use the internal perl one.
203 libswanted="dbm posix resolv socket nsl dl m rte"
204 archname="ix86-dgux-thread"
205 sitearch="$prefix/lib/perl57/$archname"
206 sitelib="$prefix/lib/perl57"
207 case "$cc" in
208 *gcc*)
209 #### Use GCC -2.95.2/3 rev (DG/UX) and -pthread
210 #### Otherwise take out the switch -pthread
211 #### And add manually the -D_POSIX4A_DRAFT10_SOURCE flag.
212 ld="gcc"
213 ccflags="$ccflags -D_POSIX4A_DRAFT10_SOURCE"
214 # Debug build : use -DS flag on command line perl
215 # ccflags="$ccflags -DDEBUGGING -D_POSIX4A_DRAFT10_SOURCE -pthread"
216 cccdlflags='-fPIC'
217 lddlflags="-shared"
218 #### Use GCC -2.95.2/3 rev (DG/UX) and -pthread
219 #### Otherwise take out the switch -pthread
220 #### And add manually the -lthread library.
221 ldflags="$ldflags -pthread"
222 ;;
223
224 *)
225 echo "Not supported DG/UX cc and threads !"
226 ;;
227 esac
228esac
229EOCBU
230
231# "./Configure -d" can't figure this out easily
232d_suidsafe='define'
233
234###################################################