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