xref: /freebsd/contrib/ntp/sntp/scripts/genHardFlags (revision f0574f5cf69e168cc4ea71ebbe5fdec9ec9a3dfe)
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