1#!/bin/sh 2 3#sysname=$1 4 5while [ $# != 0 ]; do 6 if [ x$1 = x--with-nsupdate ]; then 7 echo "nsupdate is always built now." 8 elif [ x$1 = x--print-sysname ]; then 9 print_sysname=yes 10 elif [ x$1 = x--work-dir ]; then 11 workname=$2 12 shift 13 elif [ x$1 = x--dirs ]; then 14 dirs=$2 15 shift 16 elif [ x$1 = x--no-links ]; then 17 nolinks=YES 18 elif [ x$1 = x--copts ]; then 19 copts=$2 20 shift 21 elif [ x$sysname = x ]; then 22 sysname=$1 23 else 24 echo "Unexpected argument: $1" 25 fi 26 shift 27done 28 29uname=`uname -s` 30machine=`uname -m` 31 32if [ "$sysname" = "" ]; then 33 case $uname in 34 SCO_SV) 35 IFS=":" 36 for foo in $PATH; do 37 if [ x$gcc_path = x ] && [ -x $foo/gcc ]; then 38 gcc_path=$foo/gcc 39 fi 40 done 41 IFS=" " 42 if [ x$gcc_path = x ]; then 43 sysname=sco-cc 44 sysname_print=sco 45 else 46 sysname=sco-gcc 47 sysname_print=sco 48 fi 49 ;; 50 AIX) 51 sysname=aix;; 52 Darwin) 53 sysname=darwin;; 54 Rhapsody) 55 sysname=rhapsody;; 56 ULTRIX) 57 sysname=ultrix;; 58 BSD/OS) 59 release=`uname -r` 60 minor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'` 61 major=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'` 62 63 case $major in 64 [123]) sysname=bsdos ;; 65 *) case $minor in 66 0) sysname=bsdos ;; 67 *) sysname=bsdos-4.1 ;; 68 esac;; 69 esac;; 70 OSF1) 71 if [ $machine = 'alpha' ]; then 72 sysname=alphaosf 73 # OSF1 has libc snprintf/vsnprintf support as of 4.0F. There is 74 # no v4 & v5 portable compile-time way of knowing the system's 75 # version (we can #include a version-identing file, but it is only 76 # present in v5). 77 # 78 # So we rely on a system command, 'sizer', and default to 79 # no-snprintf if we can't find it. 80 if [ -x /usr/sbin/sizer ] ; then 81 release=`/usr/sbin/sizer -v | cut -d ' ' -f 4 | cut -c 2-` 82 major=`echo $release | cut -d . -f 1` 83 minor=`echo $release | cut -d . -f 2` 84 incr=`echo $minor | sed 's/[0-9]//g' | tr '[A-Z]' '[0-9]'` 85 minor=`echo $minor | sed 's/[A-Z]//g'` 86 87 if [ $major -gt 4 -o \ 88 $major -eq 4 -a $minor -gt 0 -o \ 89 $major -eq 4 -a $minor -eq 0 -a $incr -gt 5 ]; then 90 copts="$copts -DHAVE_SNPRINTF" 91 fi 92 fi 93 fi;; 94 Linux) 95 release=`uname -r` 96 minor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'` 97 major=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'` 98 99 case $major in 100 1) sysname=linux-1 ;; 101 2) case $minor in 102 0) sysname=linux-2.0 ;; 103 1) sysname=linux-2.1 ;; 104 2) sysname=linux-2.2 ;; 105 *) sysname=linux-2.2 ;; 106 esac;; 107 esac;; 108 SunOS) 109 release=`uname -r` 110 minor=`echo $release |sed -e 's/.*[0-9]*\.\([0-9][0-9]*\).*$/\1/'` 111 major=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'` 112 IFS=":" 113 for foo in $PATH; do 114 if [ x$gcc_path = x ] && [ -x $foo/gcc ]; then 115 gcc_path=$foo/gcc 116 fi 117 done 118 IFS=" " 119 120 case $major in 121 4) 122 if [ x$gcc_path = x ]; then 123 echo SunOS 4 build will not work without the GNU C Compiler. 124 exit 1 125 fi 126 sysname=sunos4;; 127 5) 128 if [ x$gcc_path = x ]; then 129 sysname=sunos5-cc 130 sysname_print=sunos5 131 else 132 sysname=sunos5-gcc 133 sysname_print=sunos5 134 fi;; 135 esac;; 136 NetBSD) 137 sysname=netbsd;; 138 OpenBSD) 139 sysname=openbsd;; 140 FreeBSD) 141 sysname=freebsd;; 142 hpux) 143 IFS=":" 144 for foo in $PATH; do 145 if [ x$gcc_path = x ] && [ -x $foo/gcc ]; then 146 gcc_path=$foo/gcc 147 fi 148 done 149 IFS=" " 150 151 if [ x$gcc_path = x ]; then 152 sysname=hpux-cc 153 sysname_print=hpux 154 else 155 sysname=hpux-gcc 156 sysname_print=hpux 157 fi;; 158 HP-UX) 159 IFS=":" 160 for foo in $PATH; do 161 if [ x$gcc_path = x ] && [ -x $foo/gcc ]; then 162 gcc_path=$foo/gcc 163 fi 164 done 165 IFS=" " 166 167 if [ x$gcc_path = x ]; then 168 sysname=hpux-cc 169 sysname_print=hpux 170 else 171 sysname=hpux-gcc 172 sysname_print=hpux 173 fi;; 174 QNX) 175 release=`uname -r` 176 major=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'` 177 case $major in 178 6) 179 sysname=qnxnto;; 180 *) 181 sysname=qnx;; 182 esac;; 183 NEXTSTEP) 184 sysname=nextstep;; 185 UnixWare) 186 sysname=uw7;; 187 esac 188fi 189 190if [ "$sysname" = "" ]; then 191 if [ x$print_sysname = xyes ]; then 192 echo "unknown" 193 else 194 echo "UNIX name: $uname machine: $machine" 195 echo 196 echo "Unknown system. If this is an SCO system running ODT 3.0 or" 197 echo "higher, type \`\`./configure sco''. Otherwise, this is a" 198 echo "configuration that isn't supported or hasn't been tested." 199 echo 200 echo "Supported configurations are:" 201 echo " aix AIX 4.1.5.0" 202 echo " ultrix ULTRIX 4.2A or higher" 203 echo " bsdos BSDI BSD/OS 2.1" 204 echo " alphaosf DEC Alpha OSF/1" 205 echo " linux Linux" 206 echo " sunos4 Sunos 4.1.4 (earlier releases may work)" 207 echo " sunos5-cc Solaris 2.4 or higher with Sun cc" 208 echo " sunos5-gcc Solaris 2.4 or higher with gcc" 209 echo " netbsd NetBSD 1.1 or higher" 210 echo " freebsd FreeBSD" 211 echo " openbsd OpenBSD (i386/alpha)" 212 echo " hpux HP-UX" 213 echo " qnx QNX 4.2 or higher" 214 echo " NEXTSTEP NeXTSTEP" 215 echo " sco SCO Open Server" 216 exit 1; 217 fi 218fi 219 220if [ x$print_sysname = xyes ]; then 221 if [ x$sysname_print != x ]; then 222 echo $sysname_print 223 else 224 echo $sysname 225 fi 226 exit 0 227fi 228 229if [ x$workname = x ]; then 230 if [ x$sysname_print != x ]; then 231 workname=work.${sysname_print} 232 else 233 workname=work.${sysname} 234 fi 235fi 236 237echo "System Type: $sysname" 238 239if [ x$major != x ] && [ x$minor != x ]; then 240 majversubst="-e /^##--majver--/,/^##--majver--/s/MajorVersion/$major/" 241 minversubst="-e /^##--minver--/,/^##--minver--/s/MinorVersion/$minor/" 242fi 243 244if [ ! -d $workname ]; then 245 mkdir $workname 246fi 247 248if [ x"$dirs" = x ]; then 249 dirs=". client server relay common omapip dhcpctl minires dst" 250fi 251 252for foo in $dirs; do 253 bar=`basename $foo` 254 if [ ! -d ${workname}/$bar ]; then 255 mkdir ${workname}/$bar 256 fi 257 (sed $majversubst $minversubst \ 258 -e "/^##--${sysname}--/,/^##--${sysname}--/s/^#//" \ 259 <Makefile.conf; \ 260 cat site.conf; \ 261 echo "TOP = `pwd`"; \ 262 echo CC_OPTIONS = $copts; \ 263 cat $foo/Makefile.dist) \ 264 >${workname}/$bar/Makefile 265done 266 267# Make the link tree in which to actually build. 268if [ x$nolinks = x ]; then 269 make links 270fi 271 272exit 0 273