blob: e49c559bf797e961586456811891d61819160dbd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
#!/bin/sh -
#
# Refclock configuration script
#
# batch configuration options (optional arg 1)
# pps related
# PPS - general PPS support
# CLK - CLK line discipline or streams module
# CD - ppsclock or ppsclockd streams module
# LINE - dedicated line
PATH=refclocks:${PATH}
export PATH
RCONFIG=rconf
DLOCAL=dlocal
REFCONF=${1-""}
. refclocks/setup
rcfg="`echo refclocks/rclk.*`"
if [ "$rcfg" = "refclocks/rclk.*" ]; then
echo "no reference clock configuration information available"
else
config="`egrep '^[ ]*CLOCKDEFS[ ]*=' Config.local | sed 's/\([^#]*\)#.*$/\1/g; s/[ ]*CLOCKDEFS[ ]*=//g; s/-D//g; s/[ ][ ]*/ /g; s/^ *//g; s/ *$//g;'`"
DEFS="`egrep '^[ ]*DEFS[ ]*=' Config | sed 's/\([^#]*\)#.*$/\1/g; s/[ ]*DEFS[ ]*=//g; s/-D//g; s/[ ][ ]*/ /g; s/^ *//g; s/ *$//g;'`"
DEFSLOCAL="`egrep '^[ ]*DEFS_LOCAL[ ]*=' Config.local | sed 's/\([^#]*\)#.*$/\1/g; s/[ ]*DEFS_LOCAL[ ]*=//g; s/-D//g; s/[ ][ ]*/ /g; s/^ *//g; s/ *$//g;'`"
if [ ! "$REFCONF" ]; then
echo
echo "Current configuration"
echo
if check "$DEFSLOCAL" '$0 ~ /MCAST/'; then
echo "==> MULTICAST SUPPORT (if available)"
echo
fi
for i in $rcfg
do
sh $i check "$config" "" "" "$DEFS" "$REFCONF"
done
echo
fi
if [ "$REFCONF" ] || query "Change Configuration" n; then
if [ ! "$REFCONF" ]; then
echo
echo 'Available reference clock drivers'
for i in $rcfg
do
sh $i info "" "" "" "$DEFS" "$REFCONF"
done
echo
fi
:>"$RCONFIG"
PPS=""
PPSFEATURES=""
PPSOK=0
if check "$REFCONF" '$0 ~ /PLL/' ||
( [ ! "$REFCONF" ] && query "Include support for Kernel PLL" n); then
PPS="-DKERNEL_PLL $PPS"
fi
if check "$REFCONF" '$0 ~ /[^A-Za-z]PPS/' ||
( [ ! "$REFCONF" ] && query "Do you have a PPS (pulse per second) signal" n); then
if check "$DEFS" '$0 ~ /HAVE_BSD_TTYS|STREAM/' &&
(check "$REFCONF" '$0 ~ /CLK/' ||
( [ ! "$REFCONF" ] && query "Is the clk line discipline available" n)); then
PPSFEATURES="CLK"
else
if check "$DEFS" '$0 ~ /STREAM/' &&
(check "$REFCONF" '$0 ~ /CD/' ||
( [ ! "$REFCONF" ] && query "Is the ppsclock or ppsclocd STREAMS module available" n)); then
PPSFEATURES="CD $PPSFEATURES"
fi
fi
if check "$PPSFEATURES" '$0 ~ /CLK|CD/' &&
(check "$REFCONF" '$0 ~ /LINE/' ||
( [ ! "$REFCONF" ] && query "Do you want to use a dedicated serial port for PPS signal" n)); then
if check "$PPSFEATURES" '$0 ~ /CLK/'; then
PPS="-DPPSCLK $PPS"
fi
if check "$PPSFEATURES" '$0 ~ /CD/'; then
PPS="-DPPSCD $PPS"
fi
else
PPSOK=1
PPS="-DPPS $PPS"
fi
fi
if (check "$REFCONF" '$0 ~ /MCAST/' ||
( [ ! "$REFCONF" ] && query "Do you want allow for multicast support (if available) ?" y)); then
MCAST="-DMCAST"
else
MCAST=""
fi
for i in $rcfg
do
sh $i config "$RCONFIG" "$PPSFEATURES" "$PPSOK" "$DEFS" "$REFCONF"
if [ "$PPSOK" -eq 1 ] && egrep -e '-D..*PPS' "$RCONFIG" >/dev/null 2>&1; then
PPSOK=0
fi
done
if egrep -e '-D..*PPS' "$RCONFIG" >/dev/null 2>&1; then
PPS="-DPPSPPS $PPS"
fi
CLOCKDEFS="`tr '\012' ' ' < $RCONFIG`"
if check "$CLOCKDEFS" '$0 !~ /^[ ]*$/'; then
PPS="-DREFCLOCK $PPS"
if [ ! "$REFCONF" ]; then
echo
echo "Do not forget to set up the appropriate device links in the /dev directory"
echo
fi
fi
if sed -e 's/^[ ]*CLOCKDEFS[ ]*=.*$/CLOCKDEFS='"$CLOCKDEFS"'/;' \
-e 's/^[ ]*DEFS_LOCAL[ ]*=.*$/DEFS_LOCAL= $(DEFS_OPT) '"$PPS $MCAST"'/;' \
Config.local > Config.local.new; then
mv Config.local Config.local.old &&
mv Config.local.new Config.local &&
rm -f Config.local.old
echo
echo "New configuration defines:"
echo " CLOCKDEFS=$CLOCKDEFS"
echo " DEFS_LOCAL="'$(DEFS_OPT)'" $PPS $MCAST"
echo
echo "Configuration updated"
else
echo "Configuration update FAILED"
fi
rm -f "$RCONFIG"
else
:;
fi
fi
|