devdaily home | apple | java | perl | unix | directory | blog

What this is

This file is included in the DevDaily.com "Bourne Shell Source Code Warehouse" project. The intent of this project is to help you "Learn Bourne Shell by Example" TM.

Other links

The source code

# hints/dcosx.sh
# Last modified:  Thu Jan 16 11:38:12 EST 1996
# Stephen Zander  
# hints for DC/OSx (Pyramid) & SINIX (Seimens: dc/osx rebadged)
# Based on the hints/solaris_2.sh file

# See man vfork.
usevfork=false

d_suidsafe=define

# Avoid all libraries in /usr/ucblib.
set `echo $glibpth | sed -e 's@/usr/ucblib@@'`
glibpth="$*"

# Remove bad libraries.
# -lucb contains incompatible routines.
set `echo " $libswanted " | sed -e 's@ ucb @ @'`
libswanted="$*"

# Here's another draft of the perl5/solaris/gcc sanity-checker. 

case $PATH in
*/usr/ucb*:/usr/bin:*|*/usr/ucb*:/usr/bin) cat <&2

NOTE:  /usr/ucb/cc does not function properly.
Remove /usr/ucb from your PATH.

END
;;
esac


# Check that /dev/fd is mounted.  If it is not mounted, let the
# user know that suid scripts may not work.
/usr/bin/df /dev/fd 2>&1 > /dev/null
case $? in
0) ;;
*)
      cat <&4

NOTE: Your system does not have /dev/fd mounted.  If you want to
be able to use set-uid scripts you must ask your system administrator
to mount /dev/fd.

END
      ;;
esac


# See if libucb can be found in /usr/lib.  If it is, warn the user
# that this may cause problems while building Perl extensions.
/usr/bin/ls /usr/lib/libucb* >/dev/null 2>&1
case $? in
0)
      cat <&4

NOTE: libucb has been found in /usr/lib.  libucb should reside in
/usr/ucblib.  You may have trouble while building Perl extensions.

END
;;
esac


# See if make(1) is GNU make(1).
# If it is, make sure the setgid bit is not set.
make -v > make.vers 2>&1
if grep GNU make.vers > /dev/null 2>&1; then
    tmp=`/usr/bin/ksh -c "whence make"`
    case "`/usr/bin/ls -l $tmp`" in
    ??????s*)
          cat <&2
      
NOTE: Your PATH points to GNU make, and your GNU make has the set-group-id
bit set.  You must either rearrange your PATH to put /usr/ccs/bin before the
GNU utilities or you must ask your system administrator to disable the
set-group-id bit on GNU make.

END
          ;;
    esac
fi
rm -f make.vers

# If the C compiler is gcc:
#   - check the fixed-includes
#   - check as(1) and ld(1), they should not be GNU
# If the C compiler is not gcc:
#   - check as(1) and ld(1), they should not be GNU
#   - increase the optimizing level to prevent object size warnings
#
# Watch out in case they have not set $cc.
case "`${cc:-cc} -v 2>&1`" in
*gcc*)
      #
      # Using gcc.
      #
      #echo Using gcc

      # Get gcc to share its secrets.
      echo 'main() { return 0; }' > try.c
      verbose=`${cc:-cc} -v -o try try.c 2>&1`
      rm -f try try.c
      tmp=`echo "$verbose" | grep '^Reading' |
              awk '{print $NF}'  | sed 's/specs$/include/'`

      # Determine if the fixed-includes look like they'll work.
      # Doesn't work anymore for gcc-2.7.2.

      # See if as(1) is GNU as(1).  GNU as(1) won't work for this job.
      case $verbose in
      */usr/ccs/bin/as*) ;;
      *)
          cat <&2

NOTE: You are using GNU as(1).  GNU as(1) will not build Perl.
You must arrange to use /usr/ccs/bin/as, perhaps by setting
GCC_EXEC_PREFIX or by including -B/usr/ccs/bin in your cc command.

END
      ;;
      esac

      # See if ld(1) is GNU ld(1).  GNU ld(1) won't work for this job.
      case $verbose in
      */usr/ccs/bin/ld*) ;;
      *)
          cat <&2

NOTE: You are using GNU ld(1).  GNU ld(1) will not build Perl.
You must arrange to use /usr/ccs/bin/ld, perhaps by setting
GCC_EXEC_PREFIX or by including -B/usr/ccs/bin in your cc command.

END
      ;;
      esac

      ;; #using gcc
*)
      optimize='-O -K Olimit:3064'
      #
      # Not using gcc.
      #
      #echo Not using gcc

      # See if as(1) is GNU as(1).  GNU as(1) won't work for this job.
      case `as --version < /dev/null 2>&1` in
      *GNU*)
              cat <&2

NOTE: You are using GNU as(1).  GNU as(1) will not build Perl.
You must arrange to use /usr/ccs/bin, perhaps by adding it to the
beginning of your PATH.

END
              ;;
      esac

      # See if ld(1) is GNU ld(1).  GNU ld(1) won't work for this job.
      case `ld --version < /dev/null 2>&1` in
      *GNU*)
              cat <&2

NOTE: You are using GNU ld(1).  GNU ld(1) will not build Perl.
You must arrange to use /usr/ccs/bin, perhaps by adding it to the
beginning of your PATH

END
              ;;
      esac

      ;; #not using gcc
esac

# as --version or ld --version might dump core.
rm -f core

# DC/OSx hides certain functions in a libc that looks dynamic but isn't
# because of this we reinclude -lc when building dynamic extenstions
libc='/usr/ccs/lib/libc.so'
lddlflags='-G -lc'

# DC/OSx gets overenthusiastic with symbol removal when building dynamically
ccdlflags='-Blargedynsym'

# System malloc is safer when using third part libs
usemymalloc='n'




Copyright 1998-2008 Alvin Alexander
All Rights Reserved.
 
devdaily.com is based in louisville, kentucky, and this web site is hosted by godaddy.com