1
0
mirror of https://github.com/PDP-10/klh10.git synced 2026-02-06 08:25:37 +00:00
Files
PDP-10.klh10/src/Makefile.mk
Olaf Seibert 03be37db7c Add initial VDE (libvde2) support.
I have compile-tested this on a virtual FreeBSD 10.2 but not run it.
2016-01-21 23:50:27 +01:00

795 lines
24 KiB
Makefile

# KLH10 Makefile.
# $Id: Makefile.mk,v 2.6 2002/03/21 09:44:05 klh Exp $
#
# Copyright © 1992, 1993, 2001 Kenneth L. Harrenstien
# All Rights Reserved
#
# This file is part of the KLH10 Distribution. Use, modification, and
# re-distribution is permitted subject to the terms in the file
# named "LICENSE", which contains the full text of the legal notices
# and should always accompany this Distribution.
#
# This software is provided "AS IS" with NO WARRANTY OF ANY KIND.
#
# This notice (including the copyright and warranty disclaimer)
# must be included in all copies or derivations of this software.
#
#####################################################################
# KLH10 Makefile scheme
#
# <dist>/src/
# Makefile - Top-level makefile for in-src build (not recommended)
# Makefile.mk - All generic rules and definitions
# Mk-<plat>.mk - Platform-specific definitions
#
# <dist>/bld/<plat>
# Makefile -> ../../src/Mk-<plat>.mk
# (or local version thereof)
# [any locally munged .h files]
#
# Each top-level makefile should define at least the following:
# SRC = <location of source dir>
#
#####################################################################
# Basic default definitions.
# Normally these will be overridden by build-specific make
# invocations, by any of:
# (1) concatenation fragments generated by the configure script
# in front of this Makefile.mk
# (2) concatenation of a platform-specific makefile of the
# form "Mk-<plat>.mk"
# (the most recent defs override these defaults)
# (3) command line definitions, which override those from any files.
# Generic compile/link flags
# Suitable for plain vanilla Unix but normally overridden.
CC ?= cc
CFLAGS ?= -c -I. -I$(SRC)
CFLAGS_AUX ?=
CFLAGS_LINT ?=
LINKER ?= $(CC)
LDFLAGS ?=
LDOUTF ?= -o
LIBS ?=
NETLIBS ?= -lpcap
# Variables specific to this makefile setup
# SRC and MAKE_CENV are normally overridden.
SRC ?= ../../src
MAKE_CENV ?=
CENVFLAGS ?=
CONFFLAGS ?=
CONFFLAGS_AUX ?=
MAKEFILE ?= $(SRC)/Makefile.mk
MAKER = make -f $(MAKEFILE) $(MAKE_CENV)
BUILDMOD = $(CC) $(CFLAGS) $(CFLAGS_AUX) \
$(CENVFLAGS) $(CONFFLAGS) $(CONFFLAGS_AUX)
## Default if no target given to make.
##
default:
@echo 'Intended to be invoked from a bld/<conf>/ directory, look'
@echo 'at bld/*/Makefile for examples.'
## Default if no target given to bld/<conf> invocation
##
usage:
@echo 'Use "make <target>", eg "make base-kl"'
@echo 'Normally the target is one of these 3 base configs:'
@echo ' base-kl KL10 version for TOPS (kn10-kl and utils)'
@echo ' base-ks KS10 version for TOPS (kn10-ks and utils)'
@echo ' base-ks-its KS10 version for ITS (kn10-ks-its and utils)'
@echo 'Or these utilities:'
@echo ' tapedd Tape copy & conversion'
@echo ' vdkfmt Virtual disk copy & conversion'
@echo ' wxtest Test w10_t internals'
@echo ' enaddr Show and manage ether interfaces'
@echo 'Or these actions:'
@echo ' clean Clean binaries from build directory'
@echo ' install Install binaries in $$KLH10_HOME'
## Help for makefile debugging
##
showdefs:
@echo "Showing target defs:"
@echo "SRC = $(SRC)"
@echo "BLDSRC = $(BLDSRC)"
@echo "MAKER = $(MAKER)"
@echo "CFLAGS = $(CFLAGS)"
@echo "CFLAGS_AUX = $(CFLAGS_AUX)"
@echo "LDFLAGS = $(LDFLAGS)"
@echo "LIBS = $(LIBS)"
@echo "NETLIBS = $(NETLIBS)"
@echo "CENVFLAGS = $(CENVFLAGS)"
@echo "CONFFLAGS = $(CONFFLAGS)"
@echo "CONFFLAGS_AUX = $(CONFFLAGS_AUX)"
@echo "BUILDMOD = $(BUILDMOD)"
@echo "KLH10_HOME = $(KLH10_HOME)"
# Generally applicable rules
# It would be nice to use the .c.o inference rule for all the .o files,
# but the DECOSF "make" chokes when sources are in a different directory,
# never even invoking .c.o at all. Their /usr/bin/posix/make loses too
# because its MAKEARGS macro prevents recursive makes from accepting
# args with spaces in them.
#
# Thus, for max portability every module target must have explicit
# build commands, and due to the same DECOSF lossage cannot use $<
# in those commands. Sigh!
.SUFFIXES: $(SUFFIXES) .i
.c.o:
$(BUILDMOD) $<
.c.s:
$(BUILDMOD) -S $<
.c.i:
$(BUILDMOD) -E $< > $*.i
# Don't flush these files if interrupted.
# Currently no intermediate source files are generated, so
# this can be empty, but hang on to last binary anyway.
.PRECIOUS: kn10-ks kn10-ks-its kn10-kl
depend:
mkdep $(CFLAGS) $(CFLAGS_AUX) $(CENVFLAGS) *.c
#######################################################################
##
## Define sources constituting the KLH10. I have not bothered
## to derive a full set of dependencies for each module since
## there are too many possible combinations; safest to always
## recompile everything.
##
## Also, note the KS and KL have two independent module lists in order
## to allow controlling the order in which modules are loaded; this
## can help improve locality.
# Generic header files
CONFS = cenv.h klh10.h word10.h wfio.h fecmd.h feload.h \
kn10mac.h kn10def.h kn10pag.h kn10clk.h kn10dev.h kn10ops.h \
opcods.h opdefs.h osdsup.h \
dvcty.h dvuba.h dvrh11.h dvlhdh.h dvdz11.h dvch11.h \
dvrh20.h dvrpxx.h dvtm03.h dvni20.h dvhost.h dvlites.h \
vmtape.h vdisk.h config.h
# Modules needed for KL10 version.
OFILES_KL = klh10.o prmstr.o fecmd.o feload.o wfio.o osdsup.o \
kn10cpu.o kn10pag.o kn10clk.o opdata.o kn10ops.o \
inmove.o inhalf.o inblsh.o intest.o \
infix.o inflt.o inbyte.o injrst.o \
inexts.o inio.o kn10dev.o \
dvcty.o dvdte.o \
vdisk.o dvrpxx.o dvrh20.o \
vmtape.o dvtm03.o \
dvni20.o dpsup.o \
dvhost.o dvlites.o
# Modules needed for KS10 version.
OFILES_KS = klh10.o prmstr.o fecmd.o feload.o wfio.o osdsup.o \
kn10cpu.o kn10pag.o kn10clk.o opdata.o kn10ops.o \
inmove.o inhalf.o inblsh.o intest.o \
infix.o inflt.o inbyte.o injrst.o \
inexts.o inio.o kn10dev.o dvuba.o \
dvcty.o \
vdisk.o dvrpxx.o dvrh11.o \
vmtape.o dvtm03.o \
dvlhdh.o dvdz11.o dvch11.o \
dpsup.o \
dvhost.o dvlites.o
# Device Processes (DPs) built concurrently with KN10
DPROCS_KL = dprpxx dptm03 dpni20
DPROCS_KS = dprpxx dptm03
DPROCS_KSITS = dprpxx dptm03 dpimp
# Base utility programs, independent of KN10
# (there are others not included in the base configs)
BASE_UTILS = wfconv tapedd vdkfmt wxtest
ALL_UTILS = $(BASE_UTILS) udlconv uexbconv enaddr
############################################################
## KLH10 config - helper definitions
##
# Subflags for fully synchronous time emulation
# These are good for debugging, or on a slow machine.
TSYNCFLAGS = \
-DKLH10_RTIME_SYNCH=1 \
-DKLH10_ITIME_SYNCH=1 \
-DKLH10_QTIME_SYNCH=1
# Subflags for fully OS-interrupt-driven time emulation
# These are best for high performance on a fast machine.
TINTFLAGS = \
-DKLH10_RTIME_OSGET=1 \
-DKLH10_ITIME_INTRP=1 \
-DKLH10_QTIME_OSVIRT=1
# Subflags for synchronous polling versions of certain device drivers.
# These are good for debugging.
DSYNCFLAGS = \
-DKLH10_IMPIO_INT=0 \
-DKLH10_CTYIO_INT=0
# Subflags for interrupt-driven versions of certain device drivers.
# These are best for high performance.
DINTFLAGS = \
-DKLH10_IMPIO_INT=1 \
-DKLH10_CTYIO_INT=1
####################################################################
##
## Basic KN10 configurations
##
kn10-ks: $(OFILES_KS)
$(LINKER) $(LDFLAGS) $(LDOUTF) kn10-ks $(OFILES_KS) $(LIBS)
kn10-ks-its: $(OFILES_KS)
$(LINKER) $(LDFLAGS) $(LDOUTF) kn10-ks-its $(OFILES_KS) $(LIBS)
kn10-kl: $(OFILES_KL)
$(LINKER) $(LDFLAGS) $(LDOUTF) kn10-kl $(OFILES_KL) $(LIBS)
####################################################################
## Auxiliary action targets
clean:
@rm -f kn10-ks kn10-ks-its kn10-kl *.o \
$(DPROCS_KL) $(DPROCS_KS) $(DPROCS_KSITS) \
$(ALL_UTILS)
# Install. This should really use a shell script instead.
#
install:
@echo "Copying binaries into ${KLH10_HOME}"
@-rm -rf ${KLH10_HOME}/flushed
@-mkdir ${KLH10_HOME}/flushed
@if [ -x ${KLH10_HOME}/kn10-ks ]; then \
mv ${KLH10_HOME}/kn10-ks ${KLH10_HOME}/flushed; fi
@if [ -x ${KLH10_HOME}/kn10-ks-its ]; then \
mv ${KLH10_HOME}/kn10-ks-its ${KLH10_HOME}/flushed; fi
@if [ -x ${KLH10_HOME}/kn10-kl ]; then \
mv ${KLH10_HOME}/kn10-kl ${KLH10_HOME}/flushed; fi
@if [ -x ${KLH10_HOME}/dprpxx ]; then \
mv ${KLH10_HOME}/dprpxx ${KLH10_HOME}/flushed; fi
@if [ -x ${KLH10_HOME}/dptm03 ]; then \
mv ${KLH10_HOME}/dptm03 ${KLH10_HOME}/flushed; fi
@if [ -x ${KLH10_HOME}/dpni20 ]; then \
mv ${KLH10_HOME}/dpni20 ${KLH10_HOME}/flushed; fi
@if [ -x ${KLH10_HOME}/dpimp ]; then \
mv ${KLH10_HOME}/dpimp ${KLH10_HOME}/flushed; fi
@if [ -x kn10-ks ]; then cp -p kn10-ks ${KLH10_HOME}/; fi
@if [ -x kn10-ks-its ]; then cp -p kn10-ks-its ${KLH10_HOME}/; fi
@if [ -x kn10-kl ]; then cp -p kn10-kl ${KLH10_HOME}/; fi
@if [ -x dprpxx ]; then cp -p dprpxx ${KLH10_HOME}/; fi
@if [ -x dptm03 ]; then cp -p dptm03 ${KLH10_HOME}/; fi
@if [ -x dpni20 ]; then cp -p dpni20 ${KLH10_HOME}/; fi
@if [ -x dpimp ]; then cp -p dpimp ${KLH10_HOME}/; fi
@if [ -x enaddr ]; then cp -p enaddr ${KLH10_HOME}/; fi
@if [ -x tapedd ]; then cp -p tapedd ${KLH10_HOME}/; fi
@if [ -x udlconv ]; then cp -p udlconv ${KLH10_HOME}/; fi
@if [ -x uexbconv ]; then cp -p uexbconv ${KLH10_HOME}/; fi
@if [ -x vdkfmt ]; then cp -p vdkfmt ${KLH10_HOME}/; fi
@if [ -x wfconv ]; then cp -p wfconv ${KLH10_HOME}/; fi
@if [ -x wxtest ]; then cp -p wxtest ${KLH10_HOME}/; fi
@echo "Done!"
####################################################################
## Specific KLH10 configurations
##
## Provided as a convenience, not intended to satisfy all
## possible platforms or configurations.
# Standard setup for KS ITS
#
base-ks-its:
$(MAKER) kn10-ks-its $(DPROCS_KSITS) $(BASE_UTILS) udlconv \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = \
-DKLH10_CPU_KS=1 \
-DKLH10_SYS_ITS=1 \
-DKLH10_EVHS_INT=1 \
-DKLH10_DEV_DPTM03=1 \
-DKLH10_DEV_DPRPXX=1 \
-DKLH10_DEV_DPIMP=1 \
-DKLH10_SIMP=0 \
-DKLH10_MEM_SHARED=1 \
$(TINTFLAGS) \
$(DINTFLAGS) \
-DKLH10_APRID_SERIALNO=4097 -DKLH10_DEVMAX=12 \
-DKLH10_CLIENT=\\\"MyITS\\\" \
$(CONFFLAGS_AUX) \
-DVMTAPE_ITSDUMP=1 "
# Standard setup for KS (TOPS-20, maybe TOPS-10)
#
base-ks:
$(MAKER) kn10-ks $(DPROCS_KS) $(BASE_UTILS) \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = \
-DKLH10_CPU_KS=1 \
-DKLH10_SYS_T20=1 \
-DKLH10_EVHS_INT=1 \
-DKLH10_DEV_DPTM03=1 \
-DKLH10_DEV_DPRPXX=1 \
-DKLH10_MEM_SHARED=1 \
$(TINTFLAGS) \
$(DINTFLAGS) \
-DKLH10_APRID_SERIALNO=4097 -DKLH10_DEVMAX=12 \
-DKLH10_CLIENT=\\\"MyKS\\\" \
$(CONFFLAGS_AUX) "
# Standard setup for KL (TOPS-10 and TOPS-20)
#
base-kl:
$(MAKER) kn10-kl $(DPROCS_KL) $(BASE_UTILS) uexbconv \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = \
-DKLH10_CPU_KLX=1 \
-DKLH10_SYS_T20=1 \
-DKLH10_EVHS_INT=1 \
-DKLH10_DEV_DPNI20=1 \
-DKLH10_DEV_DPTM03=1 \
-DKLH10_DEV_DPRPXX=1 \
-DKLH10_MEM_SHARED=1 \
-DKLH10_RTIME_OSGET=1 \
-DKLH10_ITIME_INTRP=1 \
-DKLH10_CTYIO_INT=1 \
-DKLH10_APRID_SERIALNO=3600 \
-DKLH10_CLIENT=\\\"MyKL\\\" \
$(CONFFLAGS_AUX) "
###
# On Sat, 26 Dec 2009, Jean-Marc Bourguet posted:
#
# > [DTE: Bad to-10 BP 442200,,733000][dte_10xfrbeg: 10cnt left: 4086][dte_10xfrbeg: out of data, no I bit]
#
# This is a known problem on some Linux systems with high performance
# hardware. As far as I know, Ken has not found a fix for it.
#
# The workaround is to rebuild klh10 with a special configuration that
# avoids the esoteric real-time-interrupt mechanisms.
#
# In klh20-2.0h/src/Makefile, lines 357 and 358, you will find:
# -DKLH10_ITIME_INTRP=1 \
# -DKLH10_CTYIO_INT=1 \
#
# Change both of these lines so they now read:
# -DKLH10_ITIME_SYNC=1 \
# -DKLH10_CTYIO_INT=0 \
#
# You should only do this on a system which has this problem. It will run
# on other systems, but will eat up CPU unnecessarily.
#
# -- Mark --
####################################################################
## Lintish versions to see how many compiler warnings we can generate
##
lint-ks-its:
$(MAKER) kn10-ks-its $(DPROCS_KSITS) $(BASE_UTILS) udlconv \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX) $(CFLAGS_LINT)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = $(CONFFLAGS) $(CONFFLAGS_AUX)"
lint-ks:
$(MAKER) kn10-ks $(DPROCS_KS) $(BASE_UTILS) \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX) $(CFLAGS_LINT)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = $(CONFFLAGS) $(CONFFLAGS_AUX)"
lint-kl:
$(MAKER) kn10-kl $(DPROCS_KL) $(BASE_UTILS) uexbconv \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX) $(CFLAGS_LINT)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = $(CONFFLAGS) $(CONFFLAGS_AUX)"
####################################################################
## KLH10 versions for diagnostics and debugging.
##
# "Port"-friendly KS, for helping port to a new platform.
# Simplest possible configuration:
# No shared memory
# No device subprocs
# No realtime interrupts or clock - synchronous emulation
port-ks:
$(MAKER) kn10-ks $(BASE_UTILS) \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = \
-DKLH10_CPU_KS=1 \
-DKLH10_SYS_T20=1 \
-DKLH10_RTIME_SYNCH=1 \
-DKLH10_APRID_SERIALNO=4097 -DKLH10_DEVMAX=12 \
-DKLH10_CLIENT=\\\"MyKS\\\" \
$(CONFFLAGS_AUX) "
# Build KL0 with KI paging, for running diagnostics.
# Two versions, one synch and one realtime.
# Note: The diags tend to fail miserably when faced with a KLX using KI
# paging, so don't try that.
# KL0 with KI paging - synchronous, good for debugging with diagnostics.
# NOTE: CFLAGS for this one should be set up for NO optimization!!!
kl0i-sync:
$(MAKER) kn10-kl $(DPROCS_KL) \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = \
-DKLH10_CPU_KL0=1 \
-DKLH10_SYS_T10=1 \
-DKLH10_PAG_KI=1 \
-DKLH10_EVHS_INT=1 \
-DKLH10_DEV_DPNI20=1 \
-DKLH10_DEV_DPTM03=1 \
-DKLH10_DEV_DPRPXX=1 \
-DKLH10_RTIME_SYNCH=1 \
-DKLH10_ITIME_SYNCH=1 \
-DKLH10_CTYIO_INT=0 \
$(CONFFLAGS_AUX) "
# KL0 with KI paging - Realtime & optimized, good for timing diagnostics.
#
kl0i-rtmopt:
$(MAKER) kn10-kl $(DPROCS_KL) \
"SRC = $(SRC)" \
"CC = $(CC)" \
"CFLAGS = $(CFLAGS) $(CFLAGS_AUX)" \
"LDFLAGS = $(LDFLAGS)" \
"LIBS = $(LIBS)" \
"NETLIBS = $(NETLIBS)" \
"CENVFLAGS = $(CENVFLAGS)" \
"CONFFLAGS = \
-DKLH10_CPU_KL0=1 \
-DKLH10_SYS_T10=1 \
-DKLH10_PAG_KI=1 \
-DKLH10_EVHS_INT=1 \
-DKLH10_DEV_DPNI20=1 \
-DKLH10_DEV_DPTM03=1 \
-DKLH10_DEV_DPRPXX=1 \
-DKLH10_RTIME_OSGET=1 \
-DKLH10_ITIME_INTRP=1 \
-DKLH10_CTYIO_INT=0 \
$(CONFFLAGS_AUX) "
####################################################################
## Device Process (DP) programs
##
## These cannot be made individually - they are expected to be
## built as byproducts of building the KLH10, in order to share
## a common set of config parameters.
##
# --------- RPXX disk drive subprocess
#
dprpxx.o: $(SRC)/dprpxx.c $(SRC)/dprpxx.h $(SRC)/dpsup.h $(SRC)/vdisk.c \
$(SRC)/klh10.h $(SRC)/rcsid.h $(SRC)/cenv.h $(SRC)/word10.h \
$(SRC)/osdsup.h $(SRC)/vdisk.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dprpxx.c
dprpxx: dprpxx.o dpsup.o
$(LINKER) $(LDFLAGS) $(LDOUTF) dprpxx dprpxx.o dpsup.o $(LIBS)
# --------- TM03 tape drive subprocess
#
dptm03.o: $(SRC)/dptm03.c $(SRC)/dptm03.h $(SRC)/dpsup.h $(SRC)/vmtape.c \
$(SRC)/klh10.h $(SRC)/rcsid.h $(SRC)/cenv.h \
$(SRC)/osdsup.h $(SRC)/word10.h $(SRC)/prmstr.h \
$(SRC)/dptm03.h $(SRC)/vmtape.h $(SRC)/wfio.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dptm03.c
OFILES_DPTM03=dptm03.o dpsup.o wfio.o prmstr.o
dptm03: $(OFILES_DPTM03)
$(LINKER) $(LDFLAGS) $(LDOUTF) dptm03 $(OFILES_DPTM03) $(LIBS)
# --------- NI20 Network Interface subprocess (KL only)
#
dpni20.o: $(SRC)/dpni20.c $(SRC)/dpni20.h $(SRC)/dpsup.h \
$(SRC)/klh10.h $(SRC)/rcsid.h $(SRC)/cenv.h \
$(SRC)/osdnet.h $(SRC)/osdsup.h $(SRC)/word10.h \
$(SRC)/osdnet.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dpni20.c
dpni20: dpni20.o dpsup.o
$(LINKER) $(LDFLAGS) $(LDOUTF) dpni20 dpni20.o dpsup.o $(NETLIBS) $(LIBS)
# --------- IMP subprocess (ITS KS only; counterpart for dvlhdh)
#
dpimp.o: $(SRC)/dpimp.c $(SRC)/dpimp.h $(SRC)/dpsup.h \
$(SRC)/klh10.h $(SRC)/rcsid.h $(SRC)/cenv.h $(SRC)/osdnet.h \
$(SRC)/dpsup.h $(SRC)/osdsup.h $(SRC)/word10.h $(SRC)/osdnet.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dpimp.c
dpimp: dpimp.o dpsup.o
$(LINKER) $(LDFLAGS) $(LDOUTF) dpimp dpimp.o dpsup.o $(NETLIBS) $(LIBS)
####################################################################
## UTILITIES
##
## These can be built independently, and normally do not require
## any CONFFLAGS.
##
## TAPEDD - Tape device-to-device copy
## Needs CONFFLAGS just for optional VMTAPE_ITSDUMP.
##
tapedd.o: $(SRC)/tapedd.c $(SRC)/vmtape.c $(SRC)/vmtape.h $(BLDSRC)/config.h
$(CC) $(CFLAGS) $(CENVFLAGS) $(CONFFLAGS) $(SRC)/tapedd.c
tapedd: tapedd.o wfio.o prmstr.o
$(LINKER) $(LDFLAGS) $(LDOUTF) tapedd tapedd.o wfio.o prmstr.o $(LIBS)
## VDKFMT - Virtual Disk Format & copy
##
vdkfmt.o: $(SRC)/vdkfmt.c $(SRC)/vdisk.c $(SRC)/vdisk.h $(BLDSRC)/config.h
$(CC) $(CFLAGS) $(CENVFLAGS) $(SRC)/vdkfmt.c
vdkfmt: vdkfmt.o
$(LINKER) $(LDFLAGS) $(LDOUTF) vdkfmt vdkfmt.o $(LIBS)
## WXTEST - word10.h tester
##
wxtest.o: $(SRC)/wxtest.c $(SRC)/word10.h $(BLDSRC)/config.h
$(CC) $(CFLAGS) $(CENVFLAGS) $(SRC)/wxtest.c
wxtest: wxtest.o
$(LINKER) $(LDFLAGS) $(LDOUTF) wxtest wxtest.o $(LIBS)
## WFCONV - Word-File Conversion
##
wfconv.o: $(SRC)/wfconv.c $(SRC)/wfio.c $(SRC)/wfio.h $(SRC)/word10.h $(BLDSRC)/config.h
$(CC) $(CFLAGS) $(CENVFLAGS) $(SRC)/wfconv.c
wfconv: wfconv.o
$(LINKER) $(LDFLAGS) $(LDOUTF) wfconv wfconv.o $(LIBS)
## UDLCONV - DIR.LIST Conversion (of ITS interest only)
##
udlconv.o: $(SRC)/udlconv.c $(BLDSRC)/config.h
$(CC) $(CFLAGS) $(CENVFLAGS) $(SRC)/udlconv.c
udlconv: udlconv.o
$(LINKER) $(LDFLAGS) $(LDOUTF) udlconv udlconv.o $(LIBS)
## UEXBCONV - Convert .EXB file into .SAV (of KL interest only)
##
uexbconv.o: $(SRC)/uexbconv.c $(SRC)/wfio.c $(SRC)/wfio.h $(SRC)/word10.h
$(CC) $(CFLAGS) $(CENVFLAGS) $(SRC)/uexbconv.c
uexbconv: uexbconv.o
$(LINKER) $(LDFLAGS) $(LDOUTF) uexbconv uexbconv.o $(LIBS)
## ENADDR - Ethernet interface test & manipulation
## May require CONFFLAGS to force a particular osdnet config.
enaddr.o: $(SRC)/enaddr.c $(SRC)/osdnet.h $(SRC)/osdnet.c $(BLDSRC)/config.h
$(CC) $(CFLAGS) $(CENVFLAGS) $(CONFFLAGS) $(SRC)/enaddr.c
enaddr: enaddr.o
$(LINKER) $(LDFLAGS) $(LDOUTF) enaddr enaddr.o $(NETLIBS) $(LIBS)
####################################################################
## KN10 modules. In order to build into a directory other than the
## one the sources are located, must specify the location of
## each and every source file. Ugh. Some but not all dependencies
## are included here.
##
## Sorted alphabetically.
##
dpsup.o: $(SRC)/dpsup.c $(SRC)/dpsup.h \
$(SRC)/klh10.h $(SRC)/rcsid.h $(SRC)/cenv.h \
$(SRC)/osdsup.h $(SRC)/word10.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dpsup.c
dvch11.o: $(SRC)/dvch11.c $(SRC)/dvch11.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvch11.c
dvcty.o: $(SRC)/dvcty.c $(SRC)/dvcty.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvcty.c
dvdte.o: $(SRC)/dvdte.c $(SRC)/dvdte.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvdte.c
dvdz11.o: $(SRC)/dvdz11.c $(SRC)/dvdz11.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvdz11.c
dvhost.o: $(SRC)/dvhost.c $(SRC)/dvhost.h $(SRC)/dvlites.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvhost.c
dvlites.o: $(SRC)/dvlites.c $(SRC)/dvlites.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvlites.c
dvlhdh.o: $(SRC)/dvlhdh.c $(SRC)/dvlhdh.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvlhdh.c
dvni20.o: $(SRC)/dvni20.c $(SRC)/dvni20.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvni20.c
dvrh11.o: $(SRC)/dvrh11.c $(SRC)/dvrh11.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvrh11.c
dvrh20.o: $(SRC)/dvrh20.c $(SRC)/dvrh20.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvrh20.c
dvrpxx.o: $(SRC)/dvrpxx.c $(SRC)/dvrpxx.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvrpxx.c
dvtm03.o: $(SRC)/dvtm03.c $(SRC)/dvtm03.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvtm03.c
dvuba.o: $(SRC)/dvuba.c $(SRC)/dvuba.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/dvuba.c
fecmd.o: $(SRC)/fecmd.c $(SRC)/fecmd.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/fecmd.c
feload.o: $(SRC)/feload.c $(SRC)/feload.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/feload.c
inblsh.o: $(SRC)/inblsh.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/inblsh.c
inbyte.o: $(SRC)/inbyte.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/inbyte.c
inexts.o: $(SRC)/inexts.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/inexts.c
infix.o: $(SRC)/infix.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/infix.c
inflt.o: $(SRC)/inflt.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/inflt.c
inhalf.o: $(SRC)/inhalf.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/inhalf.c
inio.o: $(SRC)/inio.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/inio.c
injrst.o: $(SRC)/injrst.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/injrst.c
inmove.o: $(SRC)/inmove.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/inmove.c
intest.o: $(SRC)/intest.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/intest.c
kn10clk.o: $(SRC)/kn10clk.c $(SRC)/kn10clk.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/kn10clk.c
kn10cpu.o: $(SRC)/kn10cpu.c $(SRC)/klh10.h $(SRC)/klh10s.h $(SRC)/klh10.c $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/kn10cpu.c
kn10dev.o: $(SRC)/kn10dev.c $(SRC)/kn10dev.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/kn10dev.c
kn10ops.o: $(SRC)/kn10ops.c $(SRC)/kn10ops.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/kn10ops.c
kn10pag.o: $(SRC)/kn10pag.c $(SRC)/kn10pag.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/kn10pag.c
klh10.o: $(SRC)/klh10.c $(SRC)/klh10.h $(SRC)/klh10s.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/klh10.c
opdata.o: $(SRC)/opdata.c $(SRC)/kn10def.h $(SRC)/opcods.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/opdata.c
osdsup.o: $(SRC)/osdsup.c $(SRC)/osdsup.h \
$(SRC)/klh10.h $(SRC)/rcsid.h $(SRC)/cenv.h $(SRC)/kn10def.h \
$(SRC)/word10.h $(SRC)/kn10pag.h $(SRC)/opdefs.h \
$(SRC)/opcods.h $(SRC)/kn10clk.h $(SRC)/kn10ops.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/osdsup.c
prmstr.o: $(SRC)/prmstr.c $(SRC)/prmstr.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/prmstr.c
vdisk.o: $(SRC)/vdisk.c $(SRC)/vdisk.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/vdisk.c
vmtape.o: $(SRC)/vmtape.c $(SRC)/vmtape.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/vmtape.c
wfio.o: $(SRC)/wfio.c $(SRC)/wfio.h $(BLDSRC)/config.h
$(BUILDMOD) $(SRC)/wfio.c
####################################################################
## OLD STUFF
## Misc crocks kept around just in case.
##
optest: optest.o
$(LINKER) $(LDFLAGS) -o optest optest.o $(LIBS)
# This is only for munching Alan's ITS DUMP tape info format
dlmunch: dlmunch.o lread.o
$(LINKER) -o dlmunch dlmunch.o lread.o
####################################################################