| 1 | #! /local/gnu/bin/bash |
| 2 | # Hints for the CX/UX 7.1 operating system running on Concurrent (formerly |
| 3 | # Harris) NightHawk machines. written by Tom.Horsley@mail.ccur.com |
| 4 | # |
| 5 | # This config is setup for dynamic linking and the Concurrent C compiler. |
| 6 | |
| 7 | # Check some things and print warnings if this isn't going to work... |
| 8 | # |
| 9 | case ${SDE_TARGET:-ELF} in |
| 10 | [Cc][Oo][Ff][Ff]|[Oo][Cc][Ss]) echo '' |
| 11 | echo '' >&2 |
| 12 | echo WARNING: Do not build perl 5 with the SDE_TARGET set to >&2 |
| 13 | echo generate coff object - perl 5 must be built in the ELF >&2 |
| 14 | echo environment. >&2 |
| 15 | echo '' >&2 |
| 16 | echo '';; |
| 17 | [Ee][Ll][Ff]) : ;; |
| 18 | *) echo '' >&2 |
| 19 | echo 'Unknown SDE_TARGET value: '$SDE_TARGET >&2 |
| 20 | echo '' >&2 ;; |
| 21 | esac |
| 22 | |
| 23 | case `uname -r` in |
| 24 | [789]*) : ;; |
| 25 | *) echo '' |
| 26 | echo '' >&2 |
| 27 | echo WARNING: Perl 5 requires shared library support, it cannot >&2 |
| 28 | echo be built on releases of CX/UX prior to 7.0 with this hints >&2 |
| 29 | echo file. You\'ll have to do a separate port for the statically >&2 |
| 30 | echo linked COFF environment. >&2 |
| 31 | echo '' >&2 |
| 32 | echo '';; |
| 33 | esac |
| 34 | |
| 35 | # Internally at Concurrent, we use a source management tool which winds up |
| 36 | # giving us read-only copies of source trees that are mostly symbolic links. |
| 37 | # That upsets the perl build process when it tries to edit opcode.h and |
| 38 | # embed.h or touch perly.c or perly.h, so turn those files into "real" files |
| 39 | # when Configure runs. (If you already have "real" source files, this won't |
| 40 | # do anything). |
| 41 | # |
| 42 | if [ -x /usr/local/mkreal ] |
| 43 | then |
| 44 | for i in '.' '..' |
| 45 | do |
| 46 | for j in embed.h opcode.h perly.h perly.c |
| 47 | do |
| 48 | if [ -h $i/$j ] |
| 49 | then |
| 50 | ( cd $i ; /usr/local/mkreal $j ; chmod 666 $j ) |
| 51 | fi |
| 52 | done |
| 53 | done |
| 54 | fi |
| 55 | |
| 56 | # We DO NOT want -lmalloc |
| 57 | # |
| 58 | libswanted=`echo ' '$libswanted' ' | sed -e 's/ malloc / /'` |
| 59 | |
| 60 | # Stick the low-level elf library path in first. |
| 61 | # |
| 62 | glibpth="/usr/sde/elf/usr/lib $glibpth" |
| 63 | |
| 64 | # Need to use Concurrent cc for most of these options to be meaningful (if |
| 65 | # you want to get this to work with gcc, you're on your own :-). Passing |
| 66 | # -Bexport to the linker when linking perl is important because it leaves |
| 67 | # the interpreter internal symbols visible to the shared libs that will be |
| 68 | # loaded on demand (and will try to reference those symbols). The -u option |
| 69 | # to drag 'sigaction' into the perl main program is to make sure it gets |
| 70 | # defined for the posix shared library (for some reason sigaction is static, |
| 71 | # rather than being defined in libc.so.1). The 88110compat option makes sure |
| 72 | # the code will run on both 88100 and 88110 machines. |
| 73 | # |
| 74 | cc='/bin/cc -Xa -Qtarget=M88110compat' |
| 75 | cccdlflags='-Zelf -Zpic' |
| 76 | ccdlflags='-Zelf -Zlink=dynamic -Wl,-Bexport -u sigaction' |
| 77 | lddlflags='-Zlink=so' |
| 78 | |
| 79 | # Configure imagines that it sees a pw_quota field, but it is really in a |
| 80 | # different structure than the one it thinks it is looking at. |
| 81 | d_pwquota='undef' |
| 82 | |
| 83 | # Configure sometimes finds what it believes to be ndbm header files on the |
| 84 | # system and imagines that we have the NDBM library, but we really don't. |
| 85 | # There is something there that once resembled ndbm, but it is purely |
| 86 | # for internal use in some tool and has been hacked beyond recognition |
| 87 | # (or even function :-) |
| 88 | # |
| 89 | i_ndbm='undef' |
| 90 | |
| 91 | # Don't use the perl malloc |
| 92 | # |
| 93 | d_mymalloc='undef' |
| 94 | usemymalloc='n' |
| 95 | |
| 96 | cat <<'EOM' >&4 |
| 97 | |
| 98 | WARNING: If you are using ksh to run the Configure script, you may find it |
| 99 | failing in mysterious ways (such as failing to find library routines which |
| 100 | are known to exist). Configure seems to push ksh beyond its limits |
| 101 | sometimes. Try using env to strip unnecessary things out of the environment |
| 102 | and run Configure with /sbin/sh. That sometimes seems to produce more |
| 103 | accurate results. |
| 104 | |
| 105 | EOM |