Commit | Line | Data |
---|---|---|
ee90f644 WJ |
1 | # @(#)makefile 4.9 (Berkeley) 5/8/91 |
2 | ||
3 | # Makefile for tn3270 and friends... | |
4 | # | |
5 | # This is the makefile for tn3270. Note that we use the 4.3+ telnet | |
6 | # (compiled with special options; see below) to provide the telnet | |
7 | # support we need. | |
8 | # | |
9 | # The following are the defines that may be passed (via the cc | |
10 | # -D option) to the compiler. | |
11 | # | |
12 | # TN3270 - This is to be linked with tn3270. Necessary | |
13 | # for creating tn3270. Only for compiling | |
14 | # telnet. | |
15 | # | |
16 | # NOT43 - Allows the program to compile and run on | |
17 | # a 4.2BSD system. | |
18 | # | |
19 | # PUTCHAR - Within tn3270, on a NOT43 system, | |
20 | # allows the use of the 4.3 curses | |
21 | # (greater speed updating the screen). | |
22 | # You need the 4.3 curses for this to work. | |
23 | # | |
24 | # FD_SETSIZE - On whichever system, if this isn't defined, | |
25 | # we patch over the FD_SET, etc., macros with | |
26 | # some homebrewed ones. | |
27 | # | |
28 | # SO_OOBINLINE - This is a socket option which we would like | |
29 | # to set to allow TCP urgent data to come | |
30 | # to us "inline". This is NECESSARY for | |
31 | # CORRECT operation, and desireable for | |
32 | # simpler operation. | |
33 | # | |
34 | # LNOFLSH - Detects the presence of the LNOFLSH bit | |
35 | # in the tty structure. | |
36 | # | |
37 | # | |
38 | # | |
39 | # TERMCAP - Define this if your system is termcap based, | |
40 | # otherwise a terminfo based system is assumed. | |
41 | # | |
42 | # SRCRT - Includes code to allow you to specify | |
43 | # source routes. | |
44 | # Format is: | |
45 | # [!]@hop1@hop2...[@|:]dst | |
46 | # Leading ! means strict source route. | |
47 | # | |
48 | # NOSTRNCASECMP - Define this if you do not have strncasecmp() in | |
49 | # your C libarary. | |
50 | # | |
51 | # USE_TERMIO - Define this if you have System V termio | |
52 | # structures. What is here is how things | |
53 | # are on Cray computers. | |
54 | # | |
55 | # KLUDGELINEMODE - Define this to get the kludged up version | |
56 | # of linemode that was in 4.3BSD. This is a | |
57 | # good thing to have around for talking to | |
58 | # older systems. | |
59 | # | |
60 | # | |
61 | # Here are some which are used throughout the system: | |
62 | # | |
63 | # unix - Compiles in unix specific stuff. | |
64 | # | |
65 | # msdos - Compiles in msdos specific stuff. | |
66 | # | |
67 | ||
68 | # msdos versus unix defines | |
69 | O = .o | |
70 | #PC_O = .obj | |
71 | ||
72 | X = | |
73 | #PC_X = .exe | |
74 | ||
75 | L = | |
76 | #PC_L = -link | |
77 | ||
78 | CC = cc | |
79 | #PC_CC = cl | |
80 | ||
81 | MV = mv | |
82 | #PC_MV = rename | |
83 | ||
84 | RM = rm -f | |
85 | #PC_RM= erase | |
86 | ||
87 | LINT_ARGS = | |
88 | #PC_LINT_ARGS = -DLINT_ARGS | |
89 | ||
90 | DEBUG_FLAGS = #-g | |
91 | #PC_DEBUG_FLAGS = -Zi -Od | |
92 | ||
93 | AR = ar | |
94 | AR1 = cr | |
95 | AR2 = | |
96 | AR3 = | |
97 | #PC_AR = lib | |
98 | #PC_AR1 = | |
99 | #PC_AR2 = + | |
100 | #PC_AR3 = ";" | |
101 | ||
102 | RANLIB = ranlib | |
103 | #PC_RANLIB = echo "Done with " | |
104 | ||
105 | ||
106 | PRINT = print | |
107 | ACTION = @sccs tell | |
108 | ||
109 | DEFINES= ${LINT_ARGS} -DTERMCAP -DSRCRT -DKLUDGELINEMODE -DUSE_TERMIO | |
110 | ||
111 | INCLUDES = -I. -I.. -I../../lib -I../../../lib | |
112 | ||
113 | OPTIMIZE = -O | |
114 | OPTIMIZE = ${DEBUG_FLAGS} | |
115 | ||
116 | CFLAGS = $(OPTIMIZE) $(INCLUDES) $(DEFINES) | |
117 | ||
118 | # Lint flags | |
119 | LINTFLAGS = -hbxaz | |
120 | # How to install the bloody thing... | |
121 | ||
122 | DESTDIR= | |
123 | ||
124 | BINDIR = $(DESTDIR)/usr/bin | |
125 | MAN1DIR = $(DESTDIR)/usr/share/man/cat1 | |
126 | MAN5DIR = $(DESTDIR)/usr/share/man/cat5 | |
127 | ||
128 | # Names for the terminal libraries... | |
129 | LIBCURSES = -lcurses | |
130 | LIBTERM = -ltermlib | |
131 | ||
132 | #PC_LIBCURSES = | |
133 | #PC_LIBTERM = | |
134 | ||
135 | # The source files... | |
136 | ALLH = telextrn.h | |
137 | ||
138 | MSMAIN = ${.CURDIR}/ascii/mset.c | |
139 | ||
140 | ALLC = | |
141 | ||
142 | ALLO = mset$O | |
143 | ||
144 | ALLHC= ${ALLH} ${ALLC} | |
145 | ALLPRINT = ${ALLHC} | |
146 | ||
147 | ALLSOURCE = ${ALLPRINT} makefile makefile.mak makefile_4.2 README \ | |
148 | mset.1 tn3270.1 map3270.5 | |
149 | ||
150 | SYS = sys_curses | |
151 | #PC_SYS = sys_dos | |
152 | ||
153 | # The places where the various components live... | |
154 | ||
155 | SUBDIR = ${.CURDIR}/api ${.CURDIR}/ascii ${.CURDIR}/ctlr \ | |
156 | ${.CURDIR}/general ${.CURDIR}/${SYS} ${.CURDIR}/telnet | |
157 | ||
158 | # The following are directories we don't do regular make's in, but | |
159 | # we do make everywhere, print, and sourcelist in. | |
160 | ||
161 | EXTRADIR = ${.CURDIR}/tools | |
162 | ||
163 | # The libraries we use. The order here is important. | |
164 | # syslib.a and ctlrlib.a should come first, then the rest. | |
165 | SUBLIB = ${SYS}/syslib.a ctlr/ctlrlib.a \ | |
166 | ascii/asciilib.a general/generallib.a | |
167 | ||
168 | .s.o: | |
169 | /lib/cpp -E $< | as -o $@ | |
170 | ||
171 | #.c.obj: | |
172 | # ${CC} ${CFLAGS} -c $< | |
173 | ||
174 | all: FRC tn3270$X mset$X | |
175 | ||
176 | FRC: | |
177 | for i in ${SUBDIR}; \ | |
178 | do (cd $$i; make ${MFLAGS} "CFLAGS=${CFLAGS}"); done | |
179 | ||
180 | tn3270$X: telnet/telprog.o ${SUBLIB} api/libapi.a | |
181 | ${CC} ${CFLAGS} -o tn3270 telnet/telprog.o \ | |
182 | $L ${SUBLIB} api/libapi.a $(LIBCURSES) $(LIBTERM) \ | |
183 | -ltelnet | |
184 | ||
185 | #PC_tn3270$X: | |
186 | #PC_ link <@< | |
187 | #PC_ telnet | |
188 | #PC_ tn3270 | |
189 | #PC_ nul | |
190 | #PC_ ${SUBLIB} api/libapi.a+ | |
191 | #PC_ \lib\ublib\ubtcp | |
192 | #PC_ _PC_< | |
193 | ||
194 | mset$X: mset$O ascii/map3270$O | |
195 | ${CC} ${CFLAGS} -o mset mset$O ascii/map3270$O $L api/libapi.a | |
196 | ||
197 | mset$O: $(MSMAIN) | |
198 | $(CC) $(CFLAGS) -c $(MSMAIN) | |
199 | ||
200 | install: tn3270$X mset$X tn3270.0 mset.0 map3270.0 | |
201 | install -m 755 -o bin -g bin -s tn3270 $(BINDIR) | |
202 | install -m 755 -o bin -g bin -s mset $(BINDIR) | |
203 | install -c -o bin -g bin -m 444 tn3270.0 mset.0 $(MAN1DIR) | |
204 | install -c -o bin -g bin -m 444 map3270.0 $(MAN5DIR) | |
205 | ||
206 | action: | |
207 | ${ACTION} | |
208 | ||
209 | clist: ${ALLHC} | |
210 | @for i in ${SUBDIR}; \ | |
211 | do (cd $$i; make ${MFLAGS} "DIRPATH=${DIRPATH}$$i/" \ | |
212 | clist); done | |
213 | ||
214 | hclist: ${ALLHC} | |
215 | @for i in ${SUBDIR}; \ | |
216 | do (cd $$i; make ${MFLAGS} "DIRPATH=${DIRPATH}$$i/" \ | |
217 | hclist); done | |
218 | ||
219 | everywhere: action | |
220 | for i in ${SUBDIR} ${EXTRADIR}; \ | |
221 | do (echo "[$$i]"; cd $$i; make ${MFLAGS} action \ | |
222 | "ACTION=${ACTION}"); done | |
223 | ||
224 | cleandir clean: | |
225 | for i in $(ALLO) mset tn3270 errs makefile.bak; \ | |
226 | do (${RM} $$i); done | |
227 | for i in ${SUBDIR} ${EXTRADIR}; \ | |
228 | do (cd $$i; make ${MFLAGS} clean); done | |
229 | ||
230 | sccsclean: | |
231 | -sccs clean | |
232 | -sccs get makefile | |
233 | for i in ${SUBDIR} ${EXTRADIR}; \ | |
234 | do (cd $$i; make ${MFLAGS} sccsclean); done | |
235 | ||
236 | print: | |
237 | ${PRINT} ${ALLPRINT} | |
238 | for i in ${SUBDIR} ${EXTRADIR}; \ | |
239 | do (cd $$i; make ${MFLAGS} "PRINT=${PRINT}" print); done | |
240 | ||
241 | tags: ${ALLC} ${ALLH} | |
242 | ctags -t `make ${MFLAGS} hclist` | |
243 | ||
244 | sourcelist: ${ALLSOURCE} | |
245 | @for i in ${ALLSOURCE}; \ | |
246 | do (echo ${DIRPATH}$$i); done | |
247 | @for i in ${SUBDIR} ${EXTRADIR}; \ | |
248 | do (cd $$i; make ${MFLAGS} "DIRPATH=${DIRPATH}$$i/" \ | |
249 | sourcelist); done | |
250 | ||
251 | lint: | |
252 | lint ${LINTFLAGS} -Itelnet ${INCLUDES} ${DEFINES} -DTN3270 \ | |
253 | `make clist` -lcurses | |
254 | ||
255 | lintmset: | |
256 | lint ${LINTFLAGS} ${INCLUDES} ${DEFINES} ${MSMAIN} \ | |
257 | ascii/map3270.c -lcurses | |
258 | ||
259 | makefiles.pc: tools/mkmake | |
260 | for i in . ${SUBDIR} ${EXTRADIR}; \ | |
261 | do (sed -e "s/lib\.a/.lib/g" -e "s/^#PC_//" < $$i/makefile | \ | |
262 | ./tools/mkmake | \ | |
263 | sed -e "sx/x\\\\xg" -e "s/[ ]*_PC_//" > $$i/makefile.mak); \ | |
264 | done | |
265 | ||
266 | tools/mkmake: | |
267 | (cd tools; make mkmake) | |
268 | ||
269 | .DEFAULT: | |
270 | sccs get $< | |
271 | ||
272 | depend: thisdepend | |
273 | for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} depend); done | |
274 | ||
275 | thisdepend: | |
276 | echo > eddep.c | |
277 | grep '^#include' ${ALLC} eddep.c | grep -v '<' | \ | |
278 | sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \ | |
279 | -e 's/\.c/$$O/' | \ | |
280 | awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \ | |
281 | else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \ | |
282 | else rec = rec " " $$2 } } \ | |
283 | END { print rec } ' > makedep | |
284 | echo '$$r makedep' >>eddep | |
285 | echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep | |
286 | echo '$$r makedep' >>eddep | |
287 | echo 'w' >>eddep | |
288 | -rm -f makefile.bak | |
289 | cp makefile makefile.bak | |
290 | ed - makefile < eddep | |
291 | rm eddep makedep eddep.c | |
292 | ||
293 | # DO NOT DELETE THIS LINE | |
294 |