Add in PC stuff.
[unix-history] / usr / src / usr.bin / tn3270 / makefile
index d4b77d7..d5314bc 100644 (file)
@@ -13,8 +13,6 @@
 #      TN3270          -       This is to be linked with tn3270.  Necessary
 #                              for creating tn3270.
 #
 #      TN3270          -       This is to be linked with tn3270.  Necessary
 #                              for creating tn3270.
 #
-#      DEBUG           -       Allow for some extra debugging operations.
-#
 #      NOT43           -       Allows the program to compile and run on
 #                              a 4.2BSD system.
 #
 #      NOT43           -       Allows the program to compile and run on
 #                              a 4.2BSD system.
 #
 #
 #      Here are some which are used throughout the system:
 #
 #
 #      Here are some which are used throughout the system:
 #
-#      SLOWSCREEN      -       If SLOWSCREEN is defined, we generate code
-#                              that attempts to optimize the line between
-#                              the computer (on which tn3270 runs) and the
-#                              user's terminal (which line may be 1200 baud,
-#                              or some such) at the cost of CPU time on
-#                              the above referenced computer.
-#
 #      unix            -       Compiles in unix specific stuff.
 #
 #      msdos           -       Compiles in msdos specific stuff.
 #
 
 #      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
 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
 PRINT  = print
+ACTION = sccs tell
 
 
-DEFINES = -DSLOWSCREEN
-DEFINES = -DSLOWSCREEN -DDEBUG
+DEFINES = ${LINT_ARGS}
 
 
-INCLUDES = -I.
+INCLUDES = -I. -I..
 
 OPTIMIZE = -O
 
 OPTIMIZE = -O
-OPTIMIZE = -g
+OPTIMIZE = ${DEBUG_FLAGS}
 
 CFLAGS = $(OPTIMIZE) $(INCLUDES) $(DEFINES)
 
 
 CFLAGS = $(OPTIMIZE) $(INCLUDES) $(DEFINES)
 
@@ -78,55 +106,75 @@ MANDIR             = $(DESTDIR)/usr/man/man
 LIBCURSES      = -lcurses
 LIBTERM                = -ltermlib
 
 LIBCURSES      = -lcurses
 LIBTERM                = -ltermlib
 
+#PC_LIBCURSES  =
+#PC_LIBTERM    =
+
 # The source files...
 # The source files...
-ALLH = general.h
+ALLH = telnet.ext
 
 TNMAIN = ../telnet.c
 TNMAIN = telnet.c
 
 TNMAIN = ../telnet.c
 TNMAIN = telnet.c
-MSMAIN = keyboard/mset.c
+MSMAIN = ascii/mset.c
+
+ALLC = ${TNMAIN}
+
+ALLO   = telnet$O mset$O
+
+ALLPRINT =     ${ALLH} ${ALLC}
+
+ALLSOURCE =    ${ALLPRINT} makefile makefile.mak README
+
+SYS    = sys_curses
+#PC_SYS        = sys_dos
 
 # The places where the various components live...
 
 # The places where the various components live...
-SUBDIR =       ascii ctlr keyboard screen system
-SUBLIB =       ascii/asciilib ctlr/ctlrlib keyboard/keyboardlib \
-                       screen/screenlib system/systemlib
 
 
+SUBDIR =       api apilib ascii ctlr general ${SYS}
 
 
-ALLC = ${TNMAIN} ${MSMAIN}
+# The following are directories we don't do regular make's in, but
+# we do make everywhere, print, and sourcelist in.
 
 
-ALLO   = telnet.o mset.o
+EXTRADIR =     arpa sys_dos tools utilities
+
+# The libraries we use.  The order here is important.
+# ctlrlib.a and syslib.a should come first, then apiliblib.a
+# then the rest.
+SUBLIB =       ctlr/ctlrlib.a ${SYS}/syslib.a \
+               api/apilib.a \
+               ascii/asciilib.a general/generallib.a
 
 .s.o:
        /lib/cpp -E $< | as -o $@
 
 
 .s.o:
        /lib/cpp -E $< | as -o $@
 
-all:   ${SUBDIR} tn3270.a tn3270 mset
-
-tn3270.a: ${SUBLIB}
-       -mkdir tmp
-       for i in ${SUBDIR}; do (cd tmp; ar x ../$$i/$${i}lib); done
-       ls tmp/*.o | sort -t/ +1 > t1
-       ar cr tn3270.a `lorder \`cat t1\` | tsort`
-       rm -f t1 tmp/*
-       ranlib tn3270.a
-#      for i in ${SUBDIR}; do (cd tmp; ar x ../$$i/$${i}lib_p); done
-#      ls tmp/*.o | sort -t/ +1 > t1
-#      ar cr tn3270_p.a `lorder \`cat t1\` | tsort`
-#      rm -rf t1 tmp
+.c.obj:
+       ${CC} ${CFLAGS} -c $<
 
 
-${SUBDIR}: FRC
-       cd $@; make ${MFLAGS} "CFLAGS=${CFLAGS}"
+all:   FRC tn3270$X mset$X
 
 FRC:
 
 FRC:
+       for i in ${SUBDIR}; \
+               do (cd $$i; make ${MFLAGS} "CFLAGS=${CFLAGS}"); done
+
+tn3270$X:      telnet$O ${SUBLIB}
+       ${CC} ${CFLAGS} -o tn3270 telnet$O \
+               $L ${SUBLIB} apilib/apiliblib.a $(LIBCURSES) $(LIBTERM)
 
 
-tn3270:        telnet.o tn3270.a
-       ${CC} ${CFLAGS} -o tn3270 telnet.o tn3270.a $(LIBCURSES) $(LIBTERM)
+#PC_tn3270$X:
+#PC_   link <@<
+#PC_   telnet
+#PC_   telnet
+#PC_   nul
+#PC_   ${SUBLIB} apilib/apiliblib.a+
+#PC_   \lib\ublib\ubtcp
+#PC_   _PC_<
 
 
-mset:  mset.o tn3270.a
-       ${CC} ${CFLAGS} -o mset mset.o keyboard/map3270.o $(LIBCURSES)
+mset$X:        mset$O ascii/map3270$O
+       ${CC} ${CFLAGS} -o mset mset$O ascii/map3270$O $L apilib/apiliblib.a
 
 
-telnet.o:      $(TNMAIN)
+telnet$O:      $(TNMAIN)
        $(CC) $(CFLAGS) -DTN3270 -c $(TNMAIN)
 
        $(CC) $(CFLAGS) -DTN3270 -c $(TNMAIN)
 
-mset.o:        $(MSMAIN)
+mset$O:        $(MSMAIN)
        $(CC) $(CFLAGS) -c $(MSMAIN)
 
 install:
        $(CC) $(CFLAGS) -c $(MSMAIN)
 
 install:
@@ -139,26 +187,56 @@ install:
 #      install -c -m 444 man/mset.1 $(MANDIR)1/mset.1
 #      install -c -m 444 man/map3270.5 $(MANDIR)5/map3270.5
 
 #      install -c -m 444 man/mset.1 $(MANDIR)1/mset.1
 #      install -c -m 444 man/map3270.5 $(MANDIR)5/map3270.5
 
+action:
+       ${ACTION}
+
+everywhere:    action
+       for i in ${SUBDIR} ${EXTRADIR}; \
+               do (echo "[$$i]"; cd $$i; make ${MFLAGS} action \
+                                               "ACTION=${ACTION}"); done
+
 clean:
 clean:
-       rm -f $(ALLO) mset tn3270 errs makefile.bak tn3270.a
-       for i in ${SUBDIR} tools; do (cd $$i; make ${MFLAGS} clean); done
-       rm -f t1 tmp/*.o
-       -rmdir tmp
+       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:
-       ${PRINT} ${ALLH} ${MSMAIN} ${TNMAIN}
-       for i in ${SUBDIR}; \
+       ${PRINT} ${ALLPRINT}
+       for i in ${SUBDIR} ${EXTRADIR}; \
                        do (cd $$i; make ${MFLAGS} "PRINT=${PRINT}" print); done
                        do (cd $$i; make ${MFLAGS} "PRINT=${PRINT}" print); done
-       cd tools; make ${MFLAGS} "PRINT=${PRINT}" print
 
 tags:  ${ALLC} ${ALLH}
        ctags -t ${ALLC} ${ALLH}
 
 
 tags:  ${ALLC} ${ALLH}
        ctags -t ${ALLC} ${ALLH}
 
+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} ${INCLUDES} ${DEFINES} -DTN3270 \
                                ${TNMAIN} -lcurses
        lint ${LINTFLAGS} ${INCLUDES} ${DEFINES} ${MSMAIN} map3270.c -lcurses
 
 lint:
        lint ${LINTFLAGS} ${INCLUDES} ${DEFINES} -DTN3270 \
                                ${TNMAIN} -lcurses
        lint ${LINTFLAGS} ${INCLUDES} ${DEFINES} ${MSMAIN} 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 $<
 
 .DEFAULT:
        sccs get $<
 
@@ -166,9 +244,10 @@ depend:    thisdepend
        for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} depend); done
 
 thisdepend:
        for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} depend); done
 
 thisdepend:
-       grep '^#include' ${ALLC} | grep -v '<' | \
+       echo > eddep.c
+       grep '^#include' ${ALLC} eddep.c | grep -v '<' | \
        sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \
        sed -e 's/:[^"]*"\([^"]*\)".*/: \1/' \
-           -e 's/\.c/.o/' | \
+           -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 } } \
        awk ' { if ($$1 != prev) { print rec; rec = $$0; prev = $$1; } \
                else { if (length(rec $$2) > 78) { print rec; rec = $$0; } \
                       else rec = rec " " $$2 } } \
@@ -177,13 +256,12 @@ thisdepend:
        echo '/^# DO NOT DELETE THIS LINE/+1,$$d' >eddep
        echo '$$r makedep' >>eddep
        echo 'w' >>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
        cp makefile makefile.bak
        ed - makefile < eddep
-       rm eddep makedep
+       rm eddep makedep eddep.c
 
 # DO NOT DELETE THIS LINE
 
 
 # DO NOT DELETE THIS LINE
 
-telnet.o: ctlr/screen.h system/globals.h telnet.ext ctlr/options.ext
-telnet.o: ctlr/outbound.ext keyboard/termin.ext
-keyboard/mset.o: keyboard/state.h keyboard/m4.out ../system/globals.h
-keyboard/mset.o: keyboard/map3270.ext
+telnet$O: ascii/termin.ext ctlr/screen.h ctlr/oia.h ctlr/options.ext
+telnet$O: ctlr/outbound.ext general/globals.h telnet.ext general/general.h