From fa46ff4e4c2eda6dafeb0528f2c6fad32f33dc79 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 27 Apr 2018 12:32:31 +0200 Subject: [PATCH] Place built image files in separate directories for each target. Also move generated CONFIG > and SYSHST > files from the "src" directory to "out". This facilitates parallel builds, and deploying image files. --- .gitlab-ci.yml | 2 +- Makefile | 48 ++++++++++++++++++++++++------------------ build/build.tcl | 2 +- build/ka10/include.tcl | 3 ++- build/klh10/build.tcl | 1 + build/klh10/dskdmp.txt | 6 +++--- build/klh10/nsalv.ini | 6 +++--- build/ks10/include.tcl | 8 ++++--- build/simh/boot | 2 +- build/simh/build.tcl | 4 +++- build/simh/init | 6 +++--- build/sims/boot | 6 +++--- build/sims/boot2 | 4 ++-- build/sims/build.tcl | 1 + build/sims/init | 8 +++---- build/sims/run | 4 ++-- 16 files changed, 62 insertions(+), 49 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 13ce0748..d794a692 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,4 +13,4 @@ job1: - make artifacts: paths: - - out/ + - out/klh10/ diff --git a/Makefile b/Makefile index 3142ac8a..b21ef1f6 100644 --- a/Makefile +++ b/Makefile @@ -30,69 +30,74 @@ MAGFRM=${PWD}/tools/dasm/magfrm H3TEXT=$(shell cd build; ls h3text.*) SMF:=$(addprefix tools/,$(addsuffix /.gitignore,$(SUBMODULES))) +OUT=out/$(EMULATOR) -all: $(SMF) out/$(EMULATOR).stamp tools/supdup/supdup +all: $(SMF) $(OUT)/stamp tools/supdup/supdup -out/klh10.stamp out/simh.stamp: out/rp0.dsk +out/klh10/stamp out/simh/stamp: $(OUT)/rp0.dsk touch $@ -out/sims.stamp: out/rp03.2 out/rp03.3 +out/sims/stamp: $(OUT)/rp03.2 $(OUT)/rp03.3 touch $@ -out/rp0.dsk: build/simh/init out/minsys.tape out/salv.tape out/dskdmp.tape build/build.tcl out/sources.tape build/$(EMULATOR)/stamp +$(OUT)/rp0.dsk: build/simh/init $(OUT)/minsys.tape $(OUT)/salv.tape $(OUT)/dskdmp.tape build/build.tcl $(OUT)/sources.tape build/$(EMULATOR)/stamp PATH=${PWD}/tools/simh/BIN:$$PATH expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW) -out/rp03.2 out/rp03.3: out/ka-minsys.tape out/magdmp.tap out/sources.tape +$(OUT)/rp03.2 $(OUT)/rp03.3: $(OUT)/ka-minsys.tape $(OUT)/magdmp.tap $(OUT)/sources.tape expect -f build/$(EMULATOR)/build.tcl $(IP) $(GW) -out/magdmp.tap: $(MAGFRM) +$(OUT)/magdmp.tap: $(MAGFRM) cd bin/ka10/boot; $(MAGFRM) @.ddt @.salv > ../../../$@ -out/minsys.tape: $(ITSTAR) - mkdir -p out +$(OUT)/minsys.tape: $(ITSTAR) + mkdir -p $(OUT) cd bin/ks10; $(ITSTAR) -cf ../../$@ _ sys cd bin; $(ITSTAR) -rf ../$@ sys -out/ka-minsys.tape: $(ITSTAR) - mkdir -p out +$(OUT)/ka-minsys.tape: $(ITSTAR) + mkdir -p $(OUT) cd bin/ka10; $(ITSTAR) -cf ../../$@ _ sys cd bin; $(ITSTAR) -rf ../$@ sys -out/sources.tape: $(ITSTAR) build/$(EMULATOR)/stamp src/syshst/$(H3TEXT) - mkdir -p out +$(OUT)/sources.tape: $(ITSTAR) build/$(EMULATOR)/stamp $(OUT)/syshst/$(H3TEXT) + mkdir -p $(OUT) rm -f src/*/*~ cd src; $(ITSTAR) -cf ../$@ $(SRC) cd doc; $(ITSTAR) -rf ../$@ $(DOC) cd bin; $(ITSTAR) -rf ../$@ $(BIN) + cd $(OUT); $(ITSTAR) -rf ../../$@ system syshst -cd user; $(ITSTAR) -rf ../$@ * -out/salv.tape: $(WRITETAPE) $(RAM) $(NSALV) - mkdir -p out +$(OUT)/salv.tape: $(WRITETAPE) $(RAM) $(NSALV) + mkdir -p $(OUT) $(WRITETAPE) -n 2560 $@ $(RAM) $(NSALV) -out/dskdmp.tape: $(WRITETAPE) $(RAM) $(DSKDMP) - mkdir -p out +$(OUT)/dskdmp.tape: $(WRITETAPE) $(RAM) $(DSKDMP) + mkdir -p $(OUT) $(WRITETAPE) -n 2560 $@ $(RAM) $(DSKDMP) start: build/$(EMULATOR)/start ln -s $< $* build/klh10/stamp: $(KLH10) start build/klh10/dskdmp.ini + mkdir -p $(OUT)/system cp=0; ca=0; \ test $(CHAOS) != no && cp=1 && ca=$(CHAOS); \ x=`echo $(IP) | tr . ,`; \ sed -e "s/%IP%/$$x/" \ -e 's/%NETMASK%/$(NETMASK)/' \ -e "s/%CHAOSP%/$$cp/" \ - -e "s/%CHAOSA%/$$ca/" < build/klh10/config.203 > src/system/config.203 + -e "s/%CHAOSA%/$$ca/" < build/klh10/config.203 > $(OUT)/system/config.203 touch $@ build/simh/stamp: $(SIMH) start - cp build/simh/config.* src/system + mkdir -p $(OUT)/system + cp build/simh/config.* $(OUT)/system touch $@ build/sims/stamp: $(KA10) start - cp build/sims/config.* src/system + mkdir -p $(OUT)/system + cp build/sims/config.* $(OUT)/system touch $@ build/klh10/dskdmp.ini: build/klh10/dskdmp.txt Makefile @@ -103,7 +108,8 @@ build/klh10/dskdmp.ini: build/klh10/dskdmp.txt Makefile -e "s/%CHAOSP%/$$cp/" \ -e "s|%CHAOSA%|$$ca|" < $< > $@ -src/syshst/$(H3TEXT): build/$(H3TEXT) +$(OUT)/syshst/$(H3TEXT): build/$(H3TEXT) + mkdir -p $(OUT)/syshst test $(CHAOS) != no && c="CHAOS $(CHAOS), "; \ sed -e 's/%IP%/$(IP)/' \ -e 's/%HOSTNAME%/$(HOSTNAME)/' \ @@ -142,4 +148,4 @@ $(SMF): git submodule update --init `dirname $@` clean: - rm -rf out start build/*/stamp src/system/config.* src/syshst/h3text.* + rm -rf out start build/*/stamp diff --git a/build/build.tcl b/build/build.tcl index 8e063fec..c20d326e 100644 --- a/build/build.tcl +++ b/build/build.tcl @@ -471,7 +471,7 @@ bootable_tapes # make output.tape respond "*" $emulator_escape -create_tape "out/output.tape" +create_tape "$out/output.tape" type ":dump\r" respond "_" "dump links full list\r" respond "LIST DEV =" "tty\r" diff --git a/build/ka10/include.tcl b/build/ka10/include.tcl index f67cf041..29bdce0d 100644 --- a/build/ka10/include.tcl +++ b/build/ka10/include.tcl @@ -95,6 +95,7 @@ proc magdmp_switches {} { proc bootable_tapes {} { global emulator_escape + global out respond "*" ":midas .;magdmp bin.ka_syseng;magdmp\r" respond "PTRHRI=" "n\r" @@ -102,7 +103,7 @@ proc bootable_tapes {} { expect ":KILL" respond "*" $emulator_escape - create_tape "out/magdmp.tape" + create_tape "$out/magdmp.tape" type ":magfrm\r" respond "?" "KA\r" diff --git a/build/klh10/build.tcl b/build/klh10/build.tcl index 6e99179d..057aa24f 100644 --- a/build/klh10/build.tcl +++ b/build/klh10/build.tcl @@ -1,4 +1,5 @@ set build [pwd]/build +set out "out/$env(EMULATOR)" cd build/klh10 set emulator_prompt "KLH10" diff --git a/build/klh10/dskdmp.txt b/build/klh10/dskdmp.txt index da033811..09f9fc3f 100644 --- a/build/klh10/dskdmp.txt +++ b/build/klh10/dskdmp.txt @@ -5,11 +5,11 @@ devdef rh1 ub3 rh11 addr=772440 br=6 vec=224 ; Provide one disk, one tape in config ITS expects -devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=../../out/rp0.dsk iodly=0 +devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=../../out/klh10/rp0.dsk iodly=0 devdef mta0 rh1.0 tm02 fmtr=tm03 type=tu45 ;devdef mta1 rh1.1 tm02 fmtr=tm03 type=tu45 -;devmo mta0 ../../out/minsys.tape -;devmo mta1 ../../out/salv.tape +;devmo mta0 ../../out/klh10/minsys.tape +;devmo mta1 ../../out/klh10/salv.tape ; ITS wants a 60Hz clock, allow it. Need this until defaults OK. set clk_ithzfix=60 diff --git a/build/klh10/nsalv.ini b/build/klh10/nsalv.ini index ebb45a37..5950a36b 100644 --- a/build/klh10/nsalv.ini +++ b/build/klh10/nsalv.ini @@ -5,11 +5,11 @@ devdef rh1 ub3 rh11 addr=772440 br=6 vec=224 ; Provide one disk, one tape in config ITS expects -devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=../../out/rp0.dsk iodly=0 +devdef dsk0 rh0.0 rp type=rp06 format=dbd9 path=../../out/klh10/rp0.dsk iodly=0 devdef mta0 rh1.0 tm02 fmtr=tm03 type=tu45 devdef mta1 rh1.1 tm02 fmtr=tm03 type=tu45 -devmo mta0 ../../out/minsys.tape -devmo mta1 ../../out/salv.tape +devmo mta0 ../../out/klh10/minsys.tape +devmo mta1 ../../out/klh10/salv.tape ; ITS wants a 60Hz clock, allow it. Need this until defaults OK. set clk_ithzfix=60 diff --git a/build/ks10/include.tcl b/build/ks10/include.tcl index 5777ee77..b812c237 100644 --- a/build/ks10/include.tcl +++ b/build/ks10/include.tcl @@ -22,6 +22,7 @@ proc mark_packs {} { proc prepare_frontend {} { global emulator_escape + global out type ":ksfedr\r" respond "File not found" "create\r" @@ -55,7 +56,7 @@ proc prepare_frontend {} { respond "*" ":login db\r" sleep 1 type $emulator_escape - mount_tape "out/sources.tape" + mount_tape "$out/sources.tape" } proc frontend_bootstrap {} { @@ -133,11 +134,12 @@ proc magdmp_switches {} { proc bootable_tapes {} { global emulator_escape + global out respond "*" ":link kshack;good ram,.;ram ram\r" respond "*" ":link kshack;ddt bin,.;@ ddt\r" respond "*" $emulator_escape - create_tape "out/ndskdmp.tape" + create_tape "$out/ndskdmp.tape" type ":kshack;mtboot\r" respond "Write a tape?" "y" respond "Rewind tape first?" "y" @@ -146,7 +148,7 @@ proc bootable_tapes {} { expect ":KILL" respond "*" $emulator_escape - create_tape "out/nnsalv.tape" + create_tape "$out/nnsalv.tape" type ":kshack;mtboot\r" respond "Write a tape?" "y" respond "Rewind tape first?" "y" diff --git a/build/simh/boot b/build/simh/boot index 270172d9..349d8cd3 100644 --- a/build/simh/boot +++ b/build/simh/boot @@ -2,5 +2,5 @@ set cpu its set cpu idle set tim y2k set rp0 rp06 -at rp0 out/rp0.dsk +at rp0 out/simh/rp0.dsk b rp0 diff --git a/build/simh/build.tcl b/build/simh/build.tcl index f7c60246..8c1e820c 100644 --- a/build/simh/build.tcl +++ b/build/simh/build.tcl @@ -1,4 +1,5 @@ set build [pwd]/build +set out "out/$env(EMULATOR)" set emulator_escape "\005" proc start_salv {} { @@ -14,7 +15,8 @@ proc restart_nsalv {} { } proc start_dskdmp {} { - respond "sim>" "at tu2 out/dskdmp.tape\r" + global out + respond "sim>" "at tu2 $out/dskdmp.tape\r" respond "sim>" "b tu2\r" respond "MTBOOT" "\033g" } diff --git a/build/simh/init b/build/simh/init index 3b37f0b7..b6a61d10 100644 --- a/build/simh/init +++ b/build/simh/init @@ -1,6 +1,6 @@ set cpu its set tim y2k -at tu0 out/minsys.tape -at tu1 out/salv.tape +at tu0 out/simh/minsys.tape +at tu1 out/simh/salv.tape set rp0 rp06 -at rp0 out/rp0.dsk +at rp0 out/simh/rp0.dsk diff --git a/build/sims/boot b/build/sims/boot index 0e788944..6705f8e2 100644 --- a/build/sims/boot +++ b/build/sims/boot @@ -2,8 +2,8 @@ set cpu its set cpu 512k set pd off at ptr bin/ka10/boot/dskdmp.rim -at mta0 out/sources.tape -at dpa0 out/rp03.2 -at dpa1 out/rp03.3 +at mta0 out/sims/sources.tape +at dpa0 out/sims/rp03.2 +at dpa1 out/sims/rp03.3 set dpa noheaders b ptr diff --git a/build/sims/boot2 b/build/sims/boot2 index d035a186..639b3ae3 100644 --- a/build/sims/boot2 +++ b/build/sims/boot2 @@ -5,7 +5,7 @@ set pd off at ptr bin/ka10/boot/dskdmp.rim set mta mpx=7 set mta type=b -at dpa0 out/rp03.2 -at dpa1 out/rp03.3 +at dpa0 out/sims/rp03.2 +at dpa1 out/sims/rp03.3 set dpa noheaders b ptr diff --git a/build/sims/build.tcl b/build/sims/build.tcl index fa03fb90..1f36fc56 100644 --- a/build/sims/build.tcl +++ b/build/sims/build.tcl @@ -1,4 +1,5 @@ set build [pwd]/build +set out "out/$env(EMULATOR)" set emulator_escape "\005" proc start_salv {} { diff --git a/build/sims/init b/build/sims/init index 51663121..2d5f5ef4 100644 --- a/build/sims/init +++ b/build/sims/init @@ -1,9 +1,9 @@ set cpu its set cpu 512k at ptr bin/ka10/boot/magdmp.rim -at mta0 out/magdmp.tap -at mta5 out/ka-minsys.tape -at dpa0 out/rp03.2 -at dpa1 out/rp03.3 +at mta0 out/sims/magdmp.tap +at mta5 out/sims/ka-minsys.tape +at dpa0 out/sims/rp03.2 +at dpa1 out/sims/rp03.3 set dpa headers b ptr diff --git a/build/sims/run b/build/sims/run index e1271bad..44f66ef3 100644 --- a/build/sims/run +++ b/build/sims/run @@ -5,8 +5,8 @@ set cpu mpx set pd off set dpy enabled at ptr bin/ka10/boot/dskdmp.rim -at dpa0 out/rp03.2 -at dpa1 out/rp03.3 +at dpa0 out/sims/rp03.2 +at dpa1 out/sims/rp03.3 set mta mpx=7 set mta type=b set dt mpx=6