164269Seric#!/bin/sh 264269Seric 364269Seric# Copyright (c) 1993 Eric P. Allman 464269Seric# Copyright (c) 1993 The Regents of the University of California. 564269Seric# All rights reserved. 664269Seric# 764269Seric# %sccs.include.redist.sh% 864269Seric# 9*68746Seric# @(#)makesendmail 8.16 (Berkeley) 04/08/95 1064269Seric# 1164269Seric 1264269Seric# 1364269Seric# A quick-and-dirty script to compile sendmail in the presence of 1464269Seric# multiple architectures and Makefiles. 1564269Seric# 1664269Seric 1768154Sericif [ -d /LocalApps -a ! -f /bin/uname -a ! -f /usr/bin/uname ] 1868154Sericthen 1968154Seric # probably a NeXT box 2068154Seric arch=NeXT 2168154Seric os=Mach 2268154Seric rel=`strings /mach | grep Mach | sed -e 's/.* Mach //' -e 's/:.*//'` 2368154Sericelse 2468154Seric arch=`uname -m | sed -e 's/ //g'` 2568154Seric os=`uname -s` 2668154Seric rel=`uname -r` 2768154Sericfi 2868154Seric 2968154Seric# tweak machine architecture 3064269Sericcase $arch 3164269Sericin 3264269Seric sun4*) arch=sun4;; 3365868Seric 3465868Seric 9000/*) arch=`echo $arch | sed -e 's/9000.//' -e 's/..$/xx/'`;; 3564269Sericesac 3664269Seric 3768154Seric# tweak operating system type 3868032Sericcase $os 3968032Sericin 4068032Seric DYNIX/ptx) os=PTX;; 4168084Seric Paragon*) os=Paragon;; 4268032Sericesac 4364269Seric 4468154Seric# tweak operating system release 4565868Sericrbase=`echo $rel | sed 's/\..*//''` 4664269Seric 4768032Seric# heuristic tweaks to clean up names 4868040Sericif [ "$os" = "unix" ] 4968040Sericthen 5068040Seric # might be Altos System V 5168040Seric case $rel 5268040Seric in 5368040Seric 5.3*) os=Altos;; 5468040Seric esac 5568090Sericfi 5668040Seric 5768032Sericif [ -r /unix -a -r /usr/lib/libseq.a -a -r /lib/cpp ] 5868032Sericthen 5968032Seric # might be a DYNIX/ptx 2.x system, which has a broken uname 6068032Seric if strings /lib/cpp | grep _SEQUENT_ > /dev/null 6168032Seric then 6268032Seric os=PTX 6368032Seric fi 6468032Sericfi 6568032Seric 66*68746Seric# see if there is a "user suffix" specified 67*68746Sericif [ "${SUFFIX-}x" = "x" ] 68*68746Sericthen 69*68746Seric sfx="" 70*68746Sericelse 71*68746Seric sfx=".${SUFFIX}" 72*68746Sericfi 73*68746Seric 7464269Seric# now try to find a reasonable object directory 75*68746Sericif [ -r obj.$os.$rel.$arch$sfx ]; then 76*68746Seric obj=obj.$os.$rel.$arch$sfx 77*68746Sericelif [ -r obj.$os.$rel.$arch ]; then 7868588Seric obj=obj.$os.$rel.$arch 79*68746Sericelif [ -r obj.$os.$rbase.x.$arch$sfx ]; then 80*68746Seric obj=obj.$os.$rbase.x.$arch$sfx 8168588Sericelif [ -r obj.$os.$rbase.x.$arch ]; then 8268588Seric obj=obj.$os.$rbase.x.$arch 83*68746Sericelif [ -r obj.$os.$rel$sfx ]; then 84*68746Seric obj=obj.$os.$rel$sfx 8564269Sericelif [ -r obj.$os.$rel ]; then 8664269Seric obj=obj.$os.$rel 87*68746Sericelif [ -r obj.$os.$rbase.x$sfx ]; then 88*68746Seric obj=obj.$os.$rbase.x$sfx 8965868Sericelif [ -r obj.$os.$rbase.x ]; then 9065868Seric obj=obj.$os.$rbase.x 91*68746Sericelif [ -r obj.$os.$arch$sfx ]; then 92*68746Seric obj=obj.$os.$arch$sfx 9364269Sericelif [ -r obj.$os.$arch ]; then 9464269Seric obj=obj.$os.$arch 95*68746Sericelif [ -r obj.$rel.$arch$sfx ]; then 96*68746Seric obj=obj.$rel.$arch$sfx 9768588Sericelif [ -r obj.$rel.$arch ]; then 9868588Seric obj=obj.$rel.$arch 99*68746Sericelif [ -r obj.$rbase.x.$arch$sfx ]; then 100*68746Seric obj=obj.$rbase.x.$arch$sfx 10168588Sericelif [ -r obj.$rbase.x.$arch ]; then 10268588Seric obj=obj.$rbase.x.$arch 103*68746Sericelif [ -r obj.$os$sfx ]; then 104*68746Seric obj=obj.$os$sfx 10564269Sericelif [ -r obj.$os ]; then 10664269Seric obj=obj.$os 107*68746Sericelif [ -r obj.$arch$sfx ]; then 108*68746Seric obj=obj.$arch$sfx 10964269Sericelif [ -r obj.$arch ]; then 11064269Seric obj=obj.$arch 111*68746Sericelif [ -r obj.$rel$sfx ]; then 112*68746Seric obj=obj.$rel$sfx 11364269Sericelif [ -r obj.$rel ]; then 11464269Seric obj=obj.$rel 115*68746Sericelif [ -r obj$sfx ]; then 116*68746Seric obj=obj$sfx 11765868Sericelse 11865868Seric # no existing obj directory -- try to create one if Makefile found 119*68746Seric obj=obj.$os.$rel.$arch$sfx 120*68746Seric if [ -r Makefiles/Makefile.$os.$rel.$arch$sfx ]; then 121*68746Seric makefile=Makefile.$os.$rel.$arch$sfx 122*68746Seric elif [ -r Makefiles/Makefile.$os.$rel.$arch ]; then 12368588Seric makefile=Makefile.$os.$rel.$arch 124*68746Seric elif [ -r Makefiles/Makefile.$os.$rbase.x.$arch$sfx ]; then 125*68746Seric makefile=Makefile.$os.$rbase.x.$arch$sfx 12668588Seric elif [ -r Makefiles/Makefile.$os.$rbase.x.$arch ]; then 12768588Seric makefile=Makefile.$os.$rbase.x.$arch 128*68746Seric elif [ -r Makefiles/Makefile.$os.$rel$sfx ]; then 129*68746Seric makefile=Makefile.$os.$rel$sfx 13067855Seric elif [ -r Makefiles/Makefile.$os.$rel ]; then 13165868Seric makefile=Makefile.$os.$rel 132*68746Seric elif [ -r Makefiles/Makefile.$os.$rbase.x$sfx ]; then 133*68746Seric makefile=Makefile.$os.$rbase.x$sfx 13467855Seric elif [ -r Makefiles/Makefile.$os.$rbase.x ]; then 13566281Seric makefile=Makefile.$os.$rbase.x 136*68746Seric elif [ -r Makefiles/Makefile.$os.$arch$sfx ]; then 137*68746Seric makefile=Makefile.$os.$arch$sfx 13867855Seric elif [ -r Makefiles/Makefile.$os.$arch ]; then 13965868Seric makefile=Makefile.$os.$arch 140*68746Seric elif [ -r Makefiles/Makefile.$rel.$arch$sfx ]; then 141*68746Seric makefile=Makefile.$rel.$arch$sfx 14268588Seric elif [ -r Makefiles/Makefile.$rel.$arch ]; then 14368588Seric makefile=Makefile.$rel.$arch 144*68746Seric elif [ -r Makefiles/Makefile.$rbase.x.$arch$sfx ]; then 145*68746Seric makefile=Makefile.$rbase.x.$arch$sfx 14668588Seric elif [ -r Makefiles/Makefile.$rbase.x.$arch ]; then 14768588Seric makefile=Makefile.$rbase.x.$arch 148*68746Seric elif [ -r Makefiles/Makefile.$os$sfx ]; then 149*68746Seric makefile=Makefile.$os$sfx 15067855Seric elif [ -r Makefiles/Makefile.$os ]; then 15165868Seric makefile=Makefile.$os 152*68746Seric elif [ -r Makefiles/Makefile.$arch$sfx ]; then 153*68746Seric makefile=Makefile.$arch$sfx 15467855Seric elif [ -r Makefiles/Makefile.$arch ]; then 15565868Seric makefile=Makefile.$arch 156*68746Seric elif [ -r Makefiles/Makefile.$rel$sfx ]; then 157*68746Seric makefile=Makefile.$rel$sfx 15867855Seric elif [ -r Makefiles/Makefile.$rel ]; then 15965868Seric makefile=Makefile.$rel 160*68746Seric elif [ -r Makefiles/Makefile.$rel$sfx ]; then 161*68746Seric makefile=Makefile.$rel$sfx 16265868Seric else 16365868Seric echo "Cannot determine how to support $arch.$os.$rel" 16465868Seric exit 1 16565868Seric fi 16665868Seric echo "Creating $obj using $makefile" 16764269Seric mkdir $obj 16867855Seric (cd $obj; ln -s ../*.[ch158] ../sendmail.hf .; ln -s ../Makefiles/$makefile Makefile) 16964269Sericfi 17064269Sericecho "Making in $obj" 17164269Sericcd $obj 17268143Sericif [ $# = 0 ] 17368143Sericthen 17468143Seric exec ${MAKE-make} 17568143Sericelse 17668143Seric exec ${MAKE-make} "$@" 17768143Sericfi 178