xref: /netbsd-src/external/bsd/ntp/dist/sntp/scripts/genHardFlags (revision 3e3909fe3ffe5d33a1ab87329085041d20fd552e)
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