1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-11 23:53:12 +00:00
PDP-10.its/Makefile
Eric Swenson 3d2d79084f Updated build to make pdp10-ka-, pdp10-ks-, and pdp10-kl-based systems correctly set up IP network.
Now, KA, DB, and KL systems will set their IP address to the value of the IP make variable.
They wiil correctly define a host table entry for their machine.
They will correctly set up .mail.;names >.
They will correctly configure COMSAT for networking.

The resulting systems should allow COMSAT to come up, and with appropriate IMP configuration
in the "run" scripts to perform inbound and output IP network requests.
2024-09-02 08:32:40 -07:00

475 lines
13 KiB
Makefile

# Some important environment variables
EMULATOR ?= pdp10-ka
# Sometimes you _really_ need to use a different `touch` or `rm`.
TOUCH ?= touch
MKDIR ?= mkdir -p
EXPECT ?= expect
CP ?= cp
RM ?= rm
LN ?= ln
SED ?= sed
TEST ?= test
GIT ?= git
CAT ?= cat
WGET ?= wget
TAR ?= tar
EGREP ?= grep -E
ifeq ($(EMULATOR),pdp10-ka)
MCHN ?= KA
else
ifeq ($(EMULATOR),pdp10-kl)
MCHN ?= KL
else
MCHN ?= DB
endif
endif
IMAGES=http://hactrn.kostersitz.com/images
SIMHV3_URL=http://simh.trailing-edge.com/sources
include conf/network
# if user hasn't changed HOSTNAME, and MCHN is not DB, then update HOSTNAME
ifeq ($(HOSTNAME),DB-ITS.EXAMPLE.COM)
ifneq ($(MCHN),DB)
HOSTNAME = $(MCHN)-ITS.EXAMPLE.COM
endif
endif
# The directores listed in SRC, DOC, and BIN are put on the sources tape.
SRC = syseng sysen1 sysen2 sysen3 sysnet kshack dragon channa \
_teco_ emacs emacs1 rms klh syshst sra mrc ksc eak gren \
bawden l lisp libdoc comlap lspsrc nilcom rwk chprog rg \
inquir acount gz sys decsys ecc alan sail kcc kcc_sy c games archy dcp \
spcwar rwg libmax rat z emaxim rz maxtul aljabr cffk das ell ellen \
jim jm jpg macrak maxdoc maxsrc mrg munfas paulw reh rlb rlb% share \
tensor transl wgd zz graphs lmlib pratt quux scheme gsb ejs mudsys \
draw wl taa tj6 budd sharem ucode rvb kldcp math as imsrc gls demo \
macsym lmcons dmcg hibou agb gt40 rug maeda ms kle aap common \
fonts lcf 11logo kmp info aplogo bkph bbn pdp11 chsncp sca music1 \
moon teach ken lmio1 llogo a2deh chsgtv clib sys3 lmio turnip \
mits_s rab stan_k bs cstacy kp dcp2 -pics- victor imlac rjl mb bh \
lars drnil radia gjd maint bolio cent shrdlu vis cbf digest prs jsf \
decus bsg muds54 hello rrs 2500 minsky danny survey librm3 librm4 \
klotz atlogo clusys cprog r eb cpm mini nova sits nlogo bee gld mprog2 \
cfs libmud librm1 librm2 mprog mprog1 mudbug mudsav _batch combat \
mits_b minits spacy _xgpr_
DOC = info _info_ sysdoc sysnet syshst kshack _teco_ emacs emacs1 c kcc \
chprog sail draw wl pc tj6 share _glpr_ _xgpr_ inquir mudman system \
xfont maxout ucode moon acount alan channa fonts games graphs humor \
kldcp libdoc lisp _mail_ midas quux scheme manual wp chess ms macdoc \
aplogo _temp_ pdp11 chsncp cbf rug bawden llogo eak clib teach pcnet \
combat pdl minits mits_s chaos hal -pics- imlac maint cent ksc klh \
digest prs decus bsg madman hur lmdoc rrs danny netwrk klotz hello \
clu r mini nova sits jay rjl nlogo mprog2 mudbug cfs hudini shrdlu
BIN = sys sys1 sys2 emacs _teco_ lisp liblsp alan sail comlap \
c decsys graphs draw datdrw fonts fonts1 fonts2 games macsym \
maint _www_ gt40 llogo bawden sysbin -pics- lmman shrdlu imlac \
pdp10 madman survey rrs clu clucmp rws mini mudsav mudsys libmud \
librm1 librm2 librm3 librm4 mbprog mprog1 mprog mprog2 mudbug mudtmp \
_batch
MINSRC = midas system $(DDT) $(SALV) $(KSFEDR) $(DUMP)
# These are not included on the tape.
DOCIGNORE=-e '\.(jpeg|pdf|info|md)$$' -e '^(dcg|github)$$'
# These are on the minsys tape.
BINIGNORE=-e '^(ka10|kl10|ks10|minsys)$$'
# These are on the minsrc tape.
SRCIGNORE=-e '^(system|midas)$$'
SUBMODULES = dasm itstar klh10 mldev simh sims supdup cbridge \
tapeutils tv11 pdp6 vt05 tek4010 chaosnet-tools
# These files are used to create bootable tape images.
RAM = bin/ks10/boot/ram.262
NSALV = bin/ks10/boot/salv.rp06
DSKDMP = bin/ks10/boot/dskdmp.rp06
KLH10=tools/klh10/tmp/bld-ks-its/kn10-ks-its
SIMH=tools/simh/BIN/pdp10
KA10=tools/sims/BIN/pdp10-ka
KL10=tools/sims/BIN/pdp10-kl
KS10=tools/sims/BIN/pdp10-ks
SIMHV3=tools/simhv3/BIN/pdp10
ITSTAR=tools/itstar/itstar
WRITETAPE=tools/tapeutils/tapewrite
MAGFRM=tools/dasm/magfrm
GT40=tools/simh/BIN/pdp11 $(OUT)/bootvt.img
TV11=tools/tv11/tv11
XGP11=tools/tv11/xgp11
PDP6=tools/pdp6/emu/pdp6
KLFEDR=tools/dasm/klfedr
DATAPOINT=tools/vt05/dp3300
VT52=tools/vt05/vt52
TEK=tools/tek4010/tek4010
SIMH_IMLAC=tools/simh/BIN/imlac $(OUT)/ssv22.iml
H3TEXT=$(shell cd build; ls h3text.*)
NAMES=$(shell cd build; ls names.*)
DDT=$(shell cd src; ls sysen1/ddt.* syseng/lsrtns.* syseng/msgs.* syseng/datime.* syseng/ntsddt.*)
SALV=$(shell cd src; ls kshack/nsalv.* syseng/format.* syseng/rfn.*)
KSFEDR=$(shell cd src; ls kshack/ksfedr.*)
DUMP=$(shell cd src; ls syseng/dump.* sysnet/netwrk.*)
SMF:=$(addprefix tools/,$(addsuffix /.gitignore,$(SUBMODULES)))
OUT=out/$(EMULATOR)
all: its $(OUT)/stamp/test $(OUT)/stamp/emulators \
tools/supdup/supdup tools/cbridge/cbridge \
tools/chaosnet-tools/shutdown
its: $(SMF) $(OUT)/stamp/its
download: $(SMF) $(OUT)/stamp/pdp10
$(WGET) $(IMAGES)/$(EMULATOR).tgz
$(TAR) xzf $(EMULATOR).tgz
$(MKDIR) $(OUT)/stamp
$(TOUCH) $(OUT)/stamp/touch
$(CP) -r $(EMULATOR)/syshst $(OUT)
$(CP) -r $(EMULATOR)/system $(OUT)
$(CP) $(EMULATOR)/*.tape $(OUT)
$(CP) $(EMULATOR)/rp0* $(OUT)
-$(CP) $(EMULATOR)/*.rim $(OUT)
$(CP) $(EMULATOR)/dskdmp* $(OUT)
$(TOUCH) $(OUT)/stamp/its
check: all check-dirs
out/klh10/stamp/its: $(OUT)/rp0.dsk
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/klh10/stamp/emulators:
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/simh/stamp/its: $(OUT)/rp0.dsk
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/simh/stamp/emulators: $(GT40) $(VT52)
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-ka/stamp/its: $(OUT)/rp03.2 $(OUT)/rp03.3
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-ka/stamp/emulators: $(GT40) $(TV11) $(XGP11) $(PDP6) $(DATAPOINT) $(VT52) $(TEK) $(SIMH_IMLAC)
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-kl/stamp/its: $(OUT)/rp04.1
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-kl/stamp/emulators: $(VT52) $(TEK)
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-ks/stamp/its: $(OUT)/rp0.dsk
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-ks/stamp/emulators: $(GT40) $(VT52)
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/simhv3/stamp/its: $(OUT)/rp0.dsk
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/simhv3/stamp/emulators: $(GT40) $(VT52)
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
$(OUT)/rp0.dsk: build/simh/init $(OUT)/minsys.tape $(OUT)/minsrc.tape $(OUT)/salv.tape $(OUT)/dskdmp.tape build/build.tcl $(OUT)/sources.tape $(OUT)/stamp/pdp10
PATH="$(CURDIR)/tools/$(EMULATOR)/BIN:$$PATH" expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
$(OUT)/rp03.2 $(OUT)/rp03.3: $(OUT)/ka-minsys.tape $(OUT)/minsrc.tape $(OUT)/magdmp.tap $(OUT)/sources.tape
$(EXPECT) -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
$(OUT)/rp04.1: $(OUT)/kl-minsys.tape $(OUT)/minsrc.tape $(OUT)/kl-magdmp.tap $(OUT)/sources.tape
$(EXPECT) -f build/$(EMULATOR)/build.tcl $(IP) $(GW)
$(OUT)/magdmp.tap: $(MAGFRM)
cd bin/ka10/boot; ../../../$(MAGFRM) magdmp.bin @.ddt salv.bin > ../../../$@
$(OUT)/kl-magdmp.tap: $(MAGFRM)
cd bin/kl10/boot; ../../../$(MAGFRM) magdmp.bin @.ddt salv.bin > ../../../$@
$(OUT)/stamp/touch: build/timestamps.txt
build/stamp.sh $<
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
$(OUT)/minsrc.tape: $(OUT)/stamp/touch $(ITSTAR)
$(MKDIR) $(OUT)
$(ITSTAR) -cf $@ -C src $(MINSRC)
$(ITSTAR) -rf $@ -C $(OUT) system
$(OUT)/minsys.tape: $(OUT)/stamp/touch $(ITSTAR) $(OUT)/system
$(MKDIR) $(OUT)
$(ITSTAR) -cf $@ -C bin/ks10 _ sys
$(ITSTAR) -rf $@ -C bin/minsys sys
$(OUT)/ka-minsys.tape: $(OUT)/stamp/touch $(ITSTAR) $(OUT)/system
$(MKDIR) $(OUT)
$(ITSTAR) -cf $@ -C bin/ka10 _ sys
$(ITSTAR) -rf $@ -C bin/minsys sys
leftparen:=(
rightparen:=)
KLDCPDIR=$(OUT)/_klfe_/kldcp.$(leftparen)dir$(rightparen)
$(OUT)/kl-minsys.tape: $(OUT)/stamp/touch $(ITSTAR) $(OUT)/system $(KLDCPDIR)
$(MKDIR) $(OUT)
$(ITSTAR) -cf $@ -C $(OUT) _klfe_
$(ITSTAR) -rf $@ -C bin/kl10 _ sys
$(ITSTAR) -rf $@ -C bin/minsys sys
$(KLDCPDIR): $(KLFEDR)
$(MKDIR) $(OUT)/_klfe_
$(KLFEDR) > "$(OUT)/_klfe_/kldcp.$(leftparen)dir$(rightparen)"
$(OUT)/sources.tape: $(OUT)/stamp/touch $(ITSTAR) $(OUT)/stamp/pdp10 $(OUT)/syshst/$(H3TEXT) $(OUT)/_mail_/$(NAMES)
$(MKDIR) $(OUT)
$(RM) -f src/*/*~
$(ITSTAR) -cf $@ -C src $(SRC)
$(ITSTAR) -rf $@ -C doc $(DOC)
$(ITSTAR) -rf $@ -C bin $(BIN)
$(ITSTAR) -rf $@ -C $(OUT) syshst
$(ITSTAR) -rf $@ -C $(OUT) _mail_
$(OUT)/salv.tape: $(WRITETAPE) $(RAM) $(NSALV)
$(MKDIR) $(OUT)
$(WRITETAPE) -n 2560 $@ $(RAM) $(NSALV)
$(OUT)/dskdmp.tape: $(WRITETAPE) $(RAM) $(DSKDMP)
$(MKDIR) $(OUT)
$(WRITETAPE) -n 2560 $@ $(RAM) $(DSKDMP)
$(OUT)/bootvt.bin $(OUT)/aplogo.ptp $(OUT)/ssv22.iml: $(OUT)/output.tape
$(RM) -rf $(OUT)/tmp
$(MKDIR) -p $(OUT)/tmp
$(ITSTAR) -xf $< -C $(OUT)/tmp
$(CP) $(OUT)/tmp/gt40/bootvt.bin $(OUT)/bootvt.bin
-$(CP) $(OUT)/tmp/imlac/ssv22.iml $(OUT)/ssv22.iml
-$(CP) $(OUT)/tmp/aplogo/logo.ptp $(OUT)/aplogo.ptp
$(RM) -rf $(OUT)/tmp
tools/dasm/palx: tools/dasm/palx.c
$(MAKE) -C tools/dasm palx
$(OUT)/bootvt.img: $(OUT)/bootvt.bin tools/dasm/palx
$(MKDIR) out/gt40
tools/dasm/palx -I < $< > $@
out/pdp10-ka/stamp/test: out/pdp10-ka/stamp/its
$(KA10) build/pdp10-ka/hhtest.simh
$(TOUCH) $@
out/simh/stamp/test:
out/klh10/stamp/test:
out/pdp10-kl/stamp/test:
out/pdp10-ks/stamp/test:
out/simhv3/stamp/test:
start: build/$(EMULATOR)/start
$(LN) -s $< $*
out/klh10/stamp/pdp10:: $(KLH10) start out/klh10/dskdmp.ini
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/simh/stamp/pdp10: $(SIMH) start out/simh/boot
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-ka/stamp/pdp10: $(KA10) start out/pdp10-ka/run
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-kl/stamp/pdp10: $(KL10) start out/pdp10-kl/run
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/pdp10-ks/stamp/pdp10: $(KS10) start out/pdp10-ks/run
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/simhv3/stamp/pdp10: $(SIMHV3) start
$(MKDIR) $(OUT)/stamp
$(TOUCH) $@
out/klh10/system:
$(MKDIR) $(OUT)/system
x=`echo $(IP) | tr . ,`; \
$(SED) -e "s/%IP%/$$x/" \
-e 's/%NETMASK%/$(NETMASK)/' < build/klh10/config.203 > $(OUT)/system/config.203
out/simh/system:
$(MKDIR) $(OUT)/system
cp build/simh/config.* $(OUT)/system
out/pdp10-ka/system:
$(MKDIR) $(OUT)/system
x=`echo $(IP) | tr . ,`; \
$(SED) -e "s/%IP%/$$x/" \
-e 's/%NETMASK%/$(NETMASK)/' < build/pdp10-ka/config.202 > $(OUT)/system/config.202
out/pdp10-kl/system:
$(MKDIR) $(OUT)/system
x=`echo $(IP) | tr . ,`; \
$(SED) -e "s/%IP%/$$x/" \
-e 's/%NETMASK%/$(NETMASK)/' < build/pdp10-kl/config.203 > $(OUT)/system/config.203
out/pdp10-ks/system:
$(MKDIR) $(OUT)/system
x=`echo $(IP) | tr . ,`; \
$(SED) -e "s/%IP%/$$x/" \
-e 's/%NETMASK%/$(NETMASK)/' < build/pdp10-ks/config.202 > $(OUT)/system/config.202
out/simhv3/system:
$(MKDIR) $(OUT)/system
cp build/simhv3/config.* $(OUT)/system
out/klh10/dskdmp.ini: build/mchn/$(MCHN)/dskdmp.txt Makefile
$(MKDIR) $(OUT)/stamp
$(SED) -e 's/%IP%/$(IP)/' \
-e 's/%GW%/$(GW)/' < $< > $@
out/simh/boot: build/mchn/$(MCHN)/boot
$(MKDIR) $(OUT)/stamp
cp $< $@
out/pdp10-ka/run: build/mchn/$(MCHN)/run
$(MKDIR) $(OUT)/stamp
$(SED) -e 's/%IP%/$(IP)/' \
-e 's/%GW%/$(GW)/' < $< > $@
out/pdp10-kl/run: build/mchn/$(MCHN)/run
$(MKDIR) $(OUT)/stamp
$(SED) -e 's/%IP%/$(IP)/' \
-e 's/%GW%/$(GW)/' < $< > $@
out/pdp10-ks/run: build/pdp10-ks/run
$(MKDIR) $(OUT)/stamp
$(SED) -e 's/%IP%/$(IP)/' \
-e 's/%GW%/$(GW)/' < $< > $@
$(OUT)/syshst/$(H3TEXT): build/$(H3TEXT)
$(MKDIR) $(OUT)/syshst
$(SED) -e 's/%IP%/$(IP)/' \
-e 's/%HOSTNAME%/$(HOSTNAME)/' \
-e 's/%MCHN%/$(MCHN)/' < $< > $@
$(CAT) conf/hosts >> $@
$(OUT)/_mail_/$(NAMES): build/$(NAMES)
$(MKDIR) $(OUT)/_mail_
$(SED) -e 's/%MCHN%/$(MCHN)/' < $< > $@
$(KLH10):
cd tools/klh10; \
$(RM) -rf tmp; \
./autogen.sh; \
$(MKDIR) tmp; \
cd tmp; \
export CONFFLAGS_USR="-DKLH10_DEV_DPTM03=0 $$CONFFLAGS_USR"; \
../configure --bindir="$(CURDIR)/build/klh10"; \
$(MAKE) -C bld-ks-its; \
$(MAKE) -C bld-ks-its install
$(SIMH):
$(MAKE) -C tools/simh pdp10
$(KA10):
$(MAKE) -C tools/sims pdp10-ka
$(KL10):
$(MAKE) -C tools/sims pdp10-kl
$(KS10):
$(MAKE) -C tools/sims pdp10-ks
$(SIMHV3): tools/simhv3
$(MAKE) -C tools/simhv3 pdp10
tools/simhv3: simhv312-4.zip
unzip $<
mv sim $@
simhv312-4.zip:
$(WGET) $(SIMHV3_URL)/$@ || $(WGET) $(SIMHV3_URL)/archive/$@
$(ITSTAR):
$(MAKE) -C tools/itstar
$(WRITETAPE):
$(MAKE) -C tools/tapeutils
$(MAGFRM) $(KLFEDR):
$(MAKE) -C tools/dasm
$(TV11):
$(MAKE) -C tools/tv11 tv11 CFLAGS=-O3
$(MAKE) -C tools/tv11/tvcon
$(XGP11):
$(MAKE) -C tools/tv11 xgp11 CFLAGS=-O3
$(PDP6):
$(MAKE) -C tools/pdp6/emu
$(DATAPOINT):
$(MAKE) -C tools/vt05 dp3300
$(VT52):
$(MAKE) -C tools/vt05 vt52
tek-hack:
rm -f $(TEK)
$(TEK): tek-hack
$(MAKE) -C tools/tek4010 tek4010
tools/supdup/supdup:
$(MAKE) -C tools/supdup
tools/cbridge/cbridge:
$(MAKE) -C tools/cbridge
tools/chaosnet-tools/shutdown:
$(MAKE) -C tools/chaosnet-tools
$(SMF):
$(GIT) submodule sync --recursive `dirname $@`
$(GIT) submodule update --recursive --init `dirname $@`
tools/simh/BIN/pdp11:
$(MAKE) -C tools/simh pdp11
tools/simh/BIN/imlac:
$(MAKE) -C tools/simh imlac
check-dirs: Makefile
mkdir -p $(OUT)/check
echo $(SRC) | tr ' ' '\n' | sort > $(OUT)/check/src1
cd src; ls -1 | $(EGREP) -v $(SRCIGNORE) > ../$(OUT)/check/src2
diff -u $(OUT)/check/src1 $(OUT)/check/src2 > $(OUT)/check/src.diff
echo $(DOC) | tr ' ' '\n' | sort > $(OUT)/check/doc1
cd doc; ls -1d -- */ | tr -d / | sort | \
$(EGREP) -v $(DOCIGNORE) > ../$(OUT)/check/doc2
diff -u $(OUT)/check/doc1 $(OUT)/check/doc2 > $(OUT)/check/doc.diff
echo $(BIN) | tr ' ' '\n' | sort > $(OUT)/check/bin1
cd bin; ls -1 | $(EGREP) -v $(BINIGNORE) > ../$(OUT)/check/bin2
diff -u $(OUT)/check/bin1 $(OUT)/check/bin2 > $(OUT)/check/bin.diff
clean:
$(RM) -rf out start build/*/stamp