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