blob: 4b45c64670d05e4343e67144542bb2e0bd2afb20 (
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
#
# Makefile for tormenta/carrier driver and utilities
#
BASEADDR=0xd0000
DEFAULTZONE=0
#
# Okay, the people at RedHat have to break everything they can possibly even attempt to.
# So, we have to look in /usr/src/linux-2.4/include for header files given their brain dead
# crappy installation. (Mind you, I'm a RedHat user myself, so I suppose I'm just as
# stupid as they are). Everyone else who is mildly sane of course links /usr/include/linux
# to their working kernel source directory, the way God himself does, of course
# (assuming He's running Linux -- which we all know He must).
#
KINCLUDES=$(shell if [ -d /usr/src/linux-2.4/include ]; then echo /usr/src/linux-2.4/include ; else echo /usr/src/linux/include ; fi)
CFLAGS+=-I. -O4 -g -Wall -DBUILDING_TONEZONE #-DTONEZONE_DRIVER
LCFLAGS=-fPIC $(CFLAGS) -DBUILDING_TONEZONE
KFLAGS+=-I/usr/src/linux-2.4/include -O6
KFLAGS+=-DMODULE -D__KERNEL__ -DEXPORT_SYMTAB -I/usr/src/linux/drivers/net \
-Wall -I. -Wstrict-prototypes -fomit-frame-pointer -I/usr/src/linux/drivers/net/wan -I /usr/src/linux/include -I/usr/src/linux/include/net
KFLAGS+=$(shell [ -f $(KINCLUDES)/linux/modversions.h ] && echo "-DMODVERSIONS -include $(KINCLUDES)/linux/modversions.h")
#
# Features
#
# Uncomment -DCONFIG_ZAPATA_NET to enable PPP, CiscoHDLC, and Frame Relay
# support.
#
#KFLAGS+=-DCONFIG_ZAPATA_NET
KFLAGS+=-DDEFAULT_TONE_ZONE=$(DEFAULTZONE)
KFLAGS+=-DTORMENTA_BASE=$(BASEADDR)
KFLAGS+=-DSTANDALONE_ZAPATA
MODCONF=$(shell if [ -f /etc/modules.conf ]; then echo /etc/modules.conf; else echo /etc/conf.modules ; fi)
TZOBJS=zonedata.lo tonezone.lo
LIBTONEZONE=libtonezone.so.1.0
MODULES=zaptel.o tor2.o torisa.o wcfxsusb.o wcfxo.o
MODULES+=$(shell if [ -f wct1xxp.c ]; then echo wct1xxp.o; fi)
PRIMARY=wcfxsusb
#PRIMARY=torisa
#PRIMARY=wcfxo
all: $(MODULES) ztcfg torisatool makefw
devel: tor2ee
tests: patgen pattest
tor2.o: tor2.c tor2-hw.h tor.h tor2fw.h
gcc $(KFLAGS) -c tor2.c
zaptel.o: zaptel.c zaptel.h digits.h
gcc $(KFLAGS) -c zaptel.c
torisa.o: torisa.c zaptel.h torisa.h
gcc $(KFLAGS) -c torisa.c
wcfxsusb.o: wcfxsusb.c wcfxsusb.h zaptel.h
gcc $(KFLAGS) -c wcfxsusb.c
wcfxo.o: wcfxo.c zaptel.h
gcc $(KFLAGS) -c wcfxo.c
wct1xxp.o:wct1xxp.c
gcc $(KFLAGS) -c wct1xxp.c
tor2ee.o: tor2-hw.h
tor2ee: tor2ee.o
gcc $(CFLAGS) -o tor2ee tor2ee.o -lpci
zonedata.lo: zonedata.c
$(CC) -c $(LCFLAGS) -o zonedata.lo zonedata.c
tonezone.lo: tonezone.c
$(CC) -c $(LCFLAGS) -o tonezone.lo tonezone.c
torisatool: torisatool.o
$(CC) -o torisatool torisatool.o
tones.h: gendigits
./gendigits
tor2fw.h: makefw tormenta2.rbt
./makefw tormenta2.rbt tor2fw > tor2fw.h
gendigits: gendigits.o
$(CC) -o gendigits gendigits.o -lm
zaptel.c: tones.h
$(LIBTONEZONE): $(TZOBJS)
$(CC) -shared -Wl,-soname,libtonezone.so.1 -lm -o $@ $(TZOBJS)
/sbin/ldconfig -n .
ln -sf libtonezone.so.1 libtonezone.so
ztcfg.c: ztcfg.h
ztcfg: ztcfg.o $(LIBTONEZONE)
$(CC) -o ztcfg ztcfg.o -L. -ltonezone
devices:
mkdir -p /dev/zap
rm -f /dev/zap/ctl
rm -f /dev/zap/channel
rm -f /dev/zap/pseudo
mknod /dev/zap/ctl c 196 0
mknod /dev/zap/channel c 196 254
mknod /dev/zap/pseudo c 196 255
N=1; \
while [ $$N -lt 253 ]; do \
rm -f /dev/zap/$$N; \
mknod /dev/zap/$$N c 196 $$N; \
N=$$[$$N+1]; \
done
install: all devices
install -m 755 ztcfg /sbin
mkdir -p /lib/modules/`uname -r`/misc
for x in $(MODULES); do \
install -m 644 $$x /lib/modules/`uname -r`/misc ; \
done
mkdir -p /usr/lib
install -m 755 $(LIBTONEZONE) /usr/lib
install -m 644 zaptel.h /usr/include/linux
install -m 644 torisa.h /usr/include/linux
install -m 644 tonezone.h /usr/include
( cd /usr/lib ; rm -f libtonezone.so ; ln -sf $(LIBTONEZONE) libtonezone.so )
/sbin/ldconfig
mv -f $(MODCONF) $(MODCONF).bak
cat $(MODCONF).bak | grep -v "alias char-major-250" | \
grep -v "post-install torisa /sbin/ztcfg" | \
grep -v "post-install wcfxsusb /sbin/ztcfg" > $(MODCONF)
if ! grep "options torisa" $(MODCONF); then \
echo "options torisa base=$(BASEADDR)" >> $(MODCONF); \
fi
if ! grep "alias char-major-196" $(MODCONF); then \
echo "alias char-major-196 $(PRIMARY)" >> $(MODCONF); \
fi
if ! grep "post-install wcfxsusb" $(MODCONF); then \
echo "post-install wcfxsusb /sbin/ztcfg" >> $(MODCONF); \
fi
if ! grep "post-install torisa" $(MODCONF); then \
echo "post-install torisa /sbin/ztcfg" >> $(MODCONF); \
fi
if ! grep "post-install tor2" $(MODCONF); then \
echo "post-install tor2 /sbin/ztcfg" >> $(MODCONF); \
fi
if ! grep "post-install wcfxo" $(MODCONF); then \
echo "post-install wcfxo /sbin/ztcfg" >> $(MODCONF); \
fi
/sbin/depmod -a
[ -f /etc/zaptel.conf ] || install -m 644 zaptel.conf.sample /etc/zaptel.conf
clean:
rm -f torisatool makefw tor2fw.h
rm -f *.o ztcfg tzdriver sethdlc
rm -f $(TZOBJS) $(LIBTONEZONE) *.lo
rm -f gendigits tones.h
rm -f libtonezone*
rm -f tor2ee
rm -f core
|