# @(#)makefile 4.9 (Berkeley) 5/8/91 # Makefile for tn3270 and friends... # # This is the makefile for tn3270. Note that we use the 4.3+ telnet # (compiled with special options; see below) to provide the telnet # support we need. # # The following are the defines that may be passed (via the cc # -D option) to the compiler. # # TN3270 - This is to be linked with tn3270. Necessary # for creating tn3270. Only for compiling # telnet. # # NOT43 - Allows the program to compile and run on # a 4.2BSD system. # # PUTCHAR - Within tn3270, on a NOT43 system, # allows the use of the 4.3 curses # (greater speed updating the screen). # You need the 4.3 curses for this to work. # # FD_SETSIZE - On whichever system, if this isn't defined, # we patch over the FD_SET, etc., macros with # some homebrewed ones. # # SO_OOBINLINE - This is a socket option which we would like # to set to allow TCP urgent data to come # to us "inline". This is NECESSARY for # CORRECT operation, and desireable for # simpler operation. # # LNOFLSH - Detects the presence of the LNOFLSH bit # in the tty structure. # # # # TERMCAP - Define this if your system is termcap based, # otherwise a terminfo based system is assumed. # # SRCRT - Includes code to allow you to specify # source routes. # Format is: # [!]@hop1@hop2...[@|:]dst # Leading ! means strict source route. # # NOSTRNCASECMP - Define this if you do not have strncasecmp() in # your C libarary. # # USE_TERMIO - Define this if you have System V termio # structures. What is here is how things # are on Cray computers. # # KLUDGELINEMODE - Define this to get the kludged up version # of linemode that was in 4.3BSD. This is a # good thing to have around for talking to # older systems. # # # Here are some which are used throughout the system: # # unix - Compiles in unix specific stuff. # # msdos - Compiles in msdos specific stuff. # # msdos versus unix defines O = .o #PC_O = .obj X = #PC_X = .exe L = #PC_L = -link CC = cc #PC_CC = cl MV = mv #PC_MV = rename RM = rm -f #PC_RM= erase LINT_ARGS = #PC_LINT_ARGS = -DLINT_ARGS DEBUG_FLAGS = #-g #PC_DEBUG_FLAGS = -Zi -Od AR = ar AR1 = cr AR2 = AR3 = #PC_AR = lib #PC_AR1 = #PC_AR2 = + #PC_AR3 = ";" RANLIB = ranlib #PC_RANLIB = echo "Done with " PRINT = print ACTION = @sccs tell DEFINES= ${LINT_ARGS} -DTERMCAP -DSRCRT -DKLUDGELINEMODE -DUSE_TERMIO INCLUDES = -I. -I.. -I../../lib -I../../../lib OPTIMIZE = -O OPTIMIZE = ${DEBUG_FLAGS} CFLAGS = $(OPTIMIZE) $(INCLUDES) $(DEFINES) # Lint flags LINTFLAGS = -hbxaz # How to install the bloody thing... DESTDIR= BINDIR = $(DESTDIR)/usr/bin MAN1DIR = $(DESTDIR)/usr/share/man/cat1 MAN5DIR = $(DESTDIR)/usr/share/man/cat5 # Names for the terminal libraries... LIBCURSES = -lcurses LIBTERM = -ltermlib #PC_LIBCURSES = #PC_LIBTERM = # The source files... ALLH = telextrn.h MSMAIN = ${.CURDIR}/ascii/mset.c ALLC = ALLO = mset$O ALLHC= ${ALLH} ${ALLC} ALLPRINT = ${ALLHC} ALLSOURCE = ${ALLPRINT} makefile makefile.mak makefile_4.2 README \ mset.1 tn3270.1 map3270.5 SYS = sys_curses #PC_SYS = sys_dos # The places where the various components live... SUBDIR = ${.CURDIR}/api ${.CURDIR}/ascii ${.CURDIR}/ctlr \ ${.CURDIR}/general ${.CURDIR}/${SYS} ${.CURDIR}/telnet # The following are directories we don't do regular make's in, but # we do make everywhere, print, and sourcelist in. EXTRADIR = ${.CURDIR}/tools # The libraries we use. The order here is important. # syslib.a and ctlrlib.a should come first, then the rest. SUBLIB = ${SYS}/syslib.a ctlr/ctlrlib.a \ ascii/asciilib.a general/generallib.a .s.o: /lib/cpp -E $< | as -o $@ #.c.obj: # ${CC} ${CFLAGS} -c $< all: FRC tn3270$X mset$X FRC: for i in ${SUBDIR}; \ do (cd $$i; make ${MFLAGS} "CFLAGS=${CFLAGS}"); done tn3270$X: telnet/telprog.o ${SUBLIB} api/libapi.a ${CC} ${CFLAGS} -o tn3270 telnet/telprog.o \ $L ${SUBLIB} api/libapi.a $(LIBCURSES) $(LIBTERM) \ -ltelnet #PC_tn3270$X: #PC_ link <@< #PC_ telnet #PC_ tn3270 #PC_ nul #PC_ ${SUBLIB} api/libapi.a+ #PC_ \lib\ublib\ubtcp #PC_ _PC_< mset$X: mset$O ascii/map3270$O ${CC} ${CFLAGS} -o mset mset$O ascii/map3270$O $L api/libapi.a mset$O: $(MSMAIN) $(CC) $(CFLAGS) -c $(MSMAIN) install: tn3270$X mset$X tn3270.0 mset.0 map3270.0 install -m 755 -o bin -g bin -s tn3270 $(BINDIR) install -m 755 -o bin -g bin -s mset $(BINDIR) install -c -o bin -g bin -m 444 tn3270.0 mset.0 $(MAN1DIR) install -c -o bin -g bin -m 444 map3270.0 $(MAN5DIR) action: ${ACTION} clist: ${ALLHC} @for i in ${SUBDIR}; \ do (cd $$i; make ${MFLAGS} "DIRPATH=${DIRPATH}$$i/" \ clist); done hclist: ${ALLHC} @for i in ${SUBDIR}; \ do (cd $$i; make ${MFLAGS} "DIRPATH=${DIRPATH}$$i/" \ hclist); done everywhere: action for i in ${SUBDIR} ${EXTRADIR}; \ do (echo "[$$i]"; cd $$i; make ${MFLAGS} action \ "ACTION=${ACTION}"); done cleandir clean: for i in $(ALLO) mset tn3270 errs makefile.bak; \ do (${RM} $$i); done for i in ${SUBDIR} ${EXTRADIR}; \ do (cd $$i; make ${MFLAGS} clean); done sccsclean: -sccs clean -sccs get makefile for i in ${SUBDIR} ${EXTRADIR}; \ do (cd $$i; make ${MFLAGS} sccsclean); done print: ${PRINT} ${ALLPRINT} for i in ${SUBDIR} ${EXTRADIR}; \ do (cd $$i; make ${MFLAGS} "PRINT=${PRINT}" print); done tags: ${ALLC} ${ALLH} ctags -t `make ${MFLAGS} hclist` sourcelist: ${ALLSOURCE} @for i in ${ALLSOURCE}; \ do (echo ${DIRPATH}$$i); done @for i in ${SUBDIR} ${EXTRADIR}; \ do (cd $$i; make ${MFLAGS} "DIRPATH=${DIRPATH}$$i/" \ sourcelist); done lint: lint ${LINTFLAGS} -Itelnet ${INCLUDES} ${DEFINES} -DTN3270 \ `make clist` -lcurses lintmset: lint ${LINTFLAGS} ${INCLUDES} ${DEFINES} ${MSMAIN} \ ascii/map3270.c -lcurses makefiles.pc: tools/mkmake for i in . ${SUBDIR} ${EXTRADIR}; \ do (sed -e "s/lib\.a/.lib/g" -e "s/^#PC_//" < $$i/makefile | \ ./tools/mkmake | \ sed -e "sx/x\\\\xg" -e "s/[ ]*_PC_//" > $$i/makefile.mak); \ done tools/mkmake: (cd tools; make mkmake) .DEFAULT: sccs get $< depend: thisdepend for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} depend); done thisdepend: echo > eddep.c grep '^#include' ${ALLC} eddep.c | grep -v '<' | \ sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \ -e 's/\.c/$$O/' | \ awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \ else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \ else rec = rec " " $$2 } } \ END { print rec } ' > makedep echo '$$r makedep' >>eddep echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep echo '$$r makedep' >>eddep echo 'w' >>eddep -rm -f makefile.bak cp makefile makefile.bak ed - makefile < eddep rm eddep makedep eddep.c # DO NOT DELETE THIS LINE