1*3e3909feSchristos#! /bin/sh 2*3e3909feSchristos 3*3e3909feSchristosargs=`getopt d:f:v $*` 4*3e3909feSchristosset -- $args 5*3e3909feSchristos 6*3e3909feSchristosHF= 7*3e3909feSchristosV=": " 8*3e3909feSchristos 9*3e3909feSchristosfor i 10*3e3909feSchristosdo 11*3e3909feSchristos case "$i" in 12*3e3909feSchristos -d) sdir="$2" ; shift 2 ;; 13*3e3909feSchristos -f) hardenfile="$2" ; shift 2 ;; 14*3e3909feSchristos -v) V= ; shift ;; 15*3e3909feSchristos --) shift ; break ;; 16*3e3909feSchristos esac 17*3e3909feSchristosdone 18*3e3909feSchristos 19*3e3909feSchristoscase "$sdir" in 20*3e3909feSchristos '') 21*3e3909feSchristos sdir=. 22*3e3909feSchristosesac 23*3e3909feSchristos 24*3e3909feSchristoscase "$hardenfile" in 25*3e3909feSchristos */*) 26*3e3909feSchristos HF=$hardenfile 27*3e3909feSchristos ;; 28*3e3909feSchristos '') 29*3e3909feSchristos ;; 30*3e3909feSchristos *) 31*3e3909feSchristos hf=harden/$hardenfile 32*3e3909feSchristos if test -f $hf 33*3e3909feSchristos then 34*3e3909feSchristos HF=$hf 35*3e3909feSchristos fi 36*3e3909feSchristos ;; 37*3e3909feSchristosesac 38*3e3909feSchristos 39*3e3909feSchristos# If we have a file to use (ie, HF is not empty) then look for one. 40*3e3909feSchristoscase "$HF" in 41*3e3909feSchristos '') 42*3e3909feSchristos PATH=$PATH:libevent/build-aux 43*3e3909feSchristos export PATH 44*3e3909feSchristos set `scripts/cvo.sh @osname@ @osver@` || exit 1 45*3e3909feSchristos 46*3e3909feSchristos CVO_OSNAME=$1 47*3e3909feSchristos CVO_OSVER=$2 48*3e3909feSchristos 49*3e3909feSchristos x=$CVO_OSVER 50*3e3909feSchristos 51*3e3909feSchristos while true 52*3e3909feSchristos do 53*3e3909feSchristos case "$x" in 54*3e3909feSchristos '') break ;; 55*3e3909feSchristos esac 56*3e3909feSchristoshf=harden/$CVO_OSNAME$x 57*3e3909feSchristos${V}echo "Looking for <$hf>" >&2 58*3e3909feSchristos if test -f $hf 59*3e3909feSchristos then 60*3e3909feSchristos HF=$hf 61*3e3909feSchristos break 62*3e3909feSchristos fi 63*3e3909feSchristos case "$x" in 64*3e3909feSchristos *.*) x=`echo $x | sed -e 's/\.[^.]*$//'` ;; 65*3e3909feSchristos *) x= ;; 66*3e3909feSchristos esac 67*3e3909feSchristos done 68*3e3909feSchristos case "$HF" in 69*3e3909feSchristos '') 70*3e3909feSchristos hf=harden/$CVO_OSNAME 71*3e3909feSchristos${V}echo "Looking for <$hf>" >&2 72*3e3909feSchristos if test -f $hf 73*3e3909feSchristos then 74*3e3909feSchristos HF=$hf 75*3e3909feSchristos fi 76*3e3909feSchristos ;; 77*3e3909feSchristos esac 78*3e3909feSchristos # Handle some "aliases" 79*3e3909feSchristos case "$HF" in 80*3e3909feSchristos '') 81*3e3909feSchristos case "$CVO_OSNAME" in 82*3e3909feSchristos raspbian*) 83*3e3909feSchristos hf=harden/debian 84*3e3909feSchristos${V}echo "Looking for <$hf>" >&2 85*3e3909feSchristos if test -f $hf 86*3e3909feSchristos then 87*3e3909feSchristos HF=$hf 88*3e3909feSchristos fi 89*3e3909feSchristos ;; 90*3e3909feSchristos redhat* | fedora*) 91*3e3909feSchristos hf=harden/redhat 92*3e3909feSchristos${V}echo "Looking for <$hf>" >&2 93*3e3909feSchristos if test -f $hf 94*3e3909feSchristos then 95*3e3909feSchristos HF=$hf 96*3e3909feSchristos fi 97*3e3909feSchristos ;; 98*3e3909feSchristos esac 99*3e3909feSchristos ;; 100*3e3909feSchristos esac 101*3e3909feSchristos 102*3e3909feSchristos # This might be a good place to see if uname returns "Linux", 103*3e3909feSchristos # and if so, use a generic file for that. 104*3e3909feSchristos case "$HF" in 105*3e3909feSchristos '') 106*3e3909feSchristos case "`uname`" in 107*3e3909feSchristos Linux) 108*3e3909feSchristos hf=harden/linux 109*3e3909feSchristos${V}echo "Looking for <$hf>" >&2 110*3e3909feSchristos if test -f $hf 111*3e3909feSchristos then 112*3e3909feSchristos HF=$hf 113*3e3909feSchristos fi 114*3e3909feSchristos ;; 115*3e3909feSchristos esac 116*3e3909feSchristos ;; 117*3e3909feSchristos esac 118*3e3909feSchristos 119*3e3909feSchristos # Finally, 'default' 120*3e3909feSchristos case "$HF" in 121*3e3909feSchristos '') 122*3e3909feSchristos hf=harden/default 123*3e3909feSchristos${V}echo "Looking for <$hf>" >&2 124*3e3909feSchristos if test -f $hf 125*3e3909feSchristos then 126*3e3909feSchristos HF=$hf 127*3e3909feSchristos fi 128*3e3909feSchristos ;; 129*3e3909feSchristos esac 130*3e3909feSchristos 131*3e3909feSchristos case "$HF" in 132*3e3909feSchristos '') 133*3e3909feSchristos echo "No harden/XXX file found!" >&2 134*3e3909feSchristos exit 1 135*3e3909feSchristos ;; 136*3e3909feSchristos esac 137*3e3909feSchristos ;; 138*3e3909feSchristosesac 139*3e3909feSchristos 140*3e3909feSchristos${V}echo "Using <$HF>" >&2 141*3e3909feSchristosecho "GENHARDFLAGFILE=$HF" 142*3e3909feSchristos 143*3e3909feSchristos### 144*3e3909feSchristos 145*3e3909feSchristos. $HF 146*3e3909feSchristos 147*3e3909feSchristosecho "NTP_HARD_CFLAGS='$NTP_HARD_CFLAGS'" 148*3e3909feSchristosecho "NTP_HARD_CPPFLAGS='$NTP_HARD_CPPFLAGS'" 149*3e3909feSchristosecho "NTP_HARD_LDFLAGS='$NTP_HARD_LDFLAGS'" 150*3e3909feSchristosecho GENHARDFLAG=OK 151*3e3909feSchristos 152*3e3909feSchristosexit 0 153