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