1#!/bin/sh 2 3# Copyright (c) 1993 Eric P. Allman 4# Copyright (c) 1993 The Regents of the University of California. 5# All rights reserved. 6# 7# %sccs.include.redist.sh% 8# 9# @(#)makesendmail 8.18 (Berkeley) 04/10/95 10# 11 12# 13# A quick-and-dirty script to compile sendmail in the presence of 14# multiple architectures and Makefiles. 15# 16 17if [ -d /LocalApps -a ! -f /bin/uname -a ! -f /usr/bin/uname ] 18then 19 # probably a NeXT box 20 arch=NeXT 21 os=Mach 22 rel=`strings /mach | grep 'Mach.*:' | sed -e 's/.* Mach //' -e 's/:.*//'` 23else 24 arch=`uname -m | sed -e 's/ //g'` 25 os=`uname -s | sed 's/\//-/g'` 26 rel=`uname -r` 27fi 28 29# tweak machine architecture 30case $arch 31in 32 sun4*) arch=sun4;; 33 34 9000/*) arch=`echo $arch | sed -e 's/9000.//' -e 's/..$/xx/'`;; 35esac 36 37# tweak operating system type 38case $os 39in 40 DYNIX-ptx) os=PTX;; 41 Paragon*) os=Paragon;; 42esac 43 44# tweak operating system release 45rbase=`echo $rel | sed 's/\..*//''` 46 47# heuristic tweaks to clean up names 48if [ "$os" = "unix" ] 49then 50 # might be Altos System V 51 case $rel 52 in 53 5.3*) os=Altos;; 54 esac 55fi 56 57if [ -r /unix -a -r /usr/lib/libseq.a -a -r /lib/cpp ] 58then 59 # might be a DYNIX/ptx 2.x system, which has a broken uname 60 if strings /lib/cpp | grep _SEQUENT_ > /dev/null 61 then 62 os=PTX 63 fi 64fi 65 66# see if there is a "user suffix" specified 67if [ "${SENDMAIL_SUFFIX-}x" = "x" ] 68then 69 sfx="" 70else 71 sfx=".${SENDMAIL_SUFFIX}" 72fi 73 74# now try to find a reasonable object directory 75if [ -r obj.$os.$rel.$arch$sfx ]; then 76 obj=obj.$os.$rel.$arch$sfx 77elif [ -r obj.$os.$rbase.x.$arch$sfx ]; then 78 obj=obj.$os.$rbase.x.$arch$sfx 79elif [ -r obj.$os.$rel$sfx ]; then 80 obj=obj.$os.$rel$sfx 81elif [ -r obj.$os.$rbase.x$sfx ]; then 82 obj=obj.$os.$rbase.x$sfx 83elif [ -r obj.$os.$arch$sfx ]; then 84 obj=obj.$os.$arch$sfx 85elif [ -r obj.$rel.$arch$sfx ]; then 86 obj=obj.$rel.$arch$sfx 87elif [ -r obj.$rbase.x.$arch$sfx ]; then 88 obj=obj.$rbase.x.$arch$sfx 89elif [ -r obj.$os$sfx ]; then 90 obj=obj.$os$sfx 91elif [ -r obj.$arch$sfx ]; then 92 obj=obj.$arch$sfx 93elif [ -r obj.$rel$sfx ]; then 94 obj=obj.$rel$sfx 95elif [ -r obj$sfx ]; then 96 obj=obj$sfx 97else 98 # no existing obj directory -- try to create one if Makefile found 99 obj=obj.$os.$rel.$arch$sfx 100 if [ -r Makefiles/Makefile.$os.$rel.$arch$sfx ]; then 101 makefile=Makefile.$os.$rel.$arch$sfx 102 elif [ -r Makefiles/Makefile.$os.$rel.$arch ]; then 103 makefile=Makefile.$os.$rel.$arch 104 elif [ -r Makefiles/Makefile.$os.$rbase.x.$arch$sfx ]; then 105 makefile=Makefile.$os.$rbase.x.$arch$sfx 106 elif [ -r Makefiles/Makefile.$os.$rbase.x.$arch ]; then 107 makefile=Makefile.$os.$rbase.x.$arch 108 elif [ -r Makefiles/Makefile.$os.$rel$sfx ]; then 109 makefile=Makefile.$os.$rel$sfx 110 elif [ -r Makefiles/Makefile.$os.$rel ]; then 111 makefile=Makefile.$os.$rel 112 elif [ -r Makefiles/Makefile.$os.$rbase.x$sfx ]; then 113 makefile=Makefile.$os.$rbase.x$sfx 114 elif [ -r Makefiles/Makefile.$os.$rbase.x ]; then 115 makefile=Makefile.$os.$rbase.x 116 elif [ -r Makefiles/Makefile.$os.$arch$sfx ]; then 117 makefile=Makefile.$os.$arch$sfx 118 elif [ -r Makefiles/Makefile.$os.$arch ]; then 119 makefile=Makefile.$os.$arch 120 elif [ -r Makefiles/Makefile.$rel.$arch$sfx ]; then 121 makefile=Makefile.$rel.$arch$sfx 122 elif [ -r Makefiles/Makefile.$rel.$arch ]; then 123 makefile=Makefile.$rel.$arch 124 elif [ -r Makefiles/Makefile.$rbase.x.$arch$sfx ]; then 125 makefile=Makefile.$rbase.x.$arch$sfx 126 elif [ -r Makefiles/Makefile.$rbase.x.$arch ]; then 127 makefile=Makefile.$rbase.x.$arch 128 elif [ -r Makefiles/Makefile.$os$sfx ]; then 129 makefile=Makefile.$os$sfx 130 elif [ -r Makefiles/Makefile.$os ]; then 131 makefile=Makefile.$os 132 elif [ -r Makefiles/Makefile.$arch$sfx ]; then 133 makefile=Makefile.$arch$sfx 134 elif [ -r Makefiles/Makefile.$arch ]; then 135 makefile=Makefile.$arch 136 elif [ -r Makefiles/Makefile.$rel$sfx ]; then 137 makefile=Makefile.$rel$sfx 138 elif [ -r Makefiles/Makefile.$rel ]; then 139 makefile=Makefile.$rel 140 elif [ -r Makefiles/Makefile.$rel$sfx ]; then 141 makefile=Makefile.$rel$sfx 142 else 143 echo "Cannot determine how to support $arch.$os.$rel" 144 exit 1 145 fi 146 echo "Creating $obj using $makefile" 147 mkdir $obj 148 (cd $obj; ln -s ../*.[ch158] ../sendmail.hf .; ln -s ../Makefiles/$makefile Makefile) 149fi 150echo "Making in $obj" 151cd $obj 152if [ $# = 0 ] 153then 154 exec ${MAKE-make} 155else 156 exec ${MAKE-make} "$@" 157fi 158