From 9dd13d7047755fc1b11de4ca5c36f9cc2eba820b Mon Sep 17 00:00:00 2001 From: Greg King Date: Sun, 6 Feb 2022 04:21:53 -0500 Subject: [PATCH] Moved the platform-test enumerations from Github Actions over to makefiles. Now, we can run those tests locally, as well as on Github. --- .github/workflows/build-on-pull-request.yml | 130 +----------------- .github/workflows/snapshot-on-push-master.yml | 3 +- samples/Makefile | 52 ++++++- targettest/Makefile | 58 +++++++- 4 files changed, 106 insertions(+), 137 deletions(-) diff --git a/.github/workflows/build-on-pull-request.yml b/.github/workflows/build-on-pull-request.yml index 307cbd048..2203e43dd 100644 --- a/.github/workflows/build-on-pull-request.yml +++ b/.github/workflows/build-on-pull-request.yml @@ -33,135 +33,9 @@ jobs: shell: bash run: make test QUIET=1 - name: Test that the samples can be built. - shell: bash - run: | - make SYS=apple2 -C samples - make SYS=apple2 -C samples clean - make SYS=apple2enh -C samples - make SYS=apple2enh -C samples clean - make SYS=atari -C samples - make SYS=atari -C samples clean - make SYS=atarixl -C samples - make SYS=atarixl -C samples clean - make SYS=atari2600 -C samples - make SYS=atari2600 -C samples clean - make SYS=atari5200 -C samples - make SYS=atari5200 -C samples clean - make SYS=atmos -C samples - make SYS=atmos -C samples clean - make SYS=bbc -C samples - make SYS=bbc -C samples clean - make SYS=c128 -C samples - make SYS=c128 -C samples clean - make SYS=c16 -C samples - make SYS=c16 -C samples clean - make SYS=c64 -C samples - make SYS=c64 -C samples clean - make SYS=cbm510 -C samples - make SYS=cbm510 -C samples clean - make SYS=cbm610 -C samples - make SYS=cbm610 -C samples clean - make SYS=creativision -C samples - make SYS=creativision -C samples clean - make SYS=cx16 -C samples - make SYS=cx16 -C samples clean - make SYS=gamate -C samples - make SYS=gamate -C samples clean - make SYS=geos-apple -C samples - make SYS=geos-apple -C samples clean - make SYS=geos-cbm -C samples - make SYS=geos-cbm -C samples clean - make SYS=lunix -C samples - make SYS=lunix -C samples clean - make SYS=lynx -C samples - make SYS=lynx -C samples clean - make SYS=nes -C samples - make SYS=nes -C samples clean - make SYS=osic1p -C samples - make SYS=osic1p -C samples clean - make SYS=pce -C samples - make SYS=pce -C samples clean - make SYS=pet -C samples - make SYS=pet -C samples clean - make SYS=plus4 -C samples - make SYS=plus4 -C samples clean - make SYS=sim6502 -C samples - make SYS=sim6502 -C samples clean - make SYS=sim65c02 -C samples - make SYS=sim65c02 -C samples clean - make SYS=supervision -C samples - make SYS=supervision -C samples clean - make SYS=sym1 -C samples - make SYS=sym1 -C samples clean - make SYS=telestrat -C samples - make SYS=telestrat -C samples clean - make SYS=vic20 -C samples - make SYS=vic20 -C samples clean + run: make -C samples platforms - name: Test that the targettest programs can be built. - shell: bash - run: | - make SYS=apple2 -C targettest - make SYS=apple2 -C targettest clean - make SYS=apple2enh -C targettest - make SYS=apple2enh -C targettest clean - make SYS=atari -C targettest - make SYS=atari -C targettest clean - make SYS=atarixl -C targettest - make SYS=atarixl -C targettest clean - make SYS=atari2600 -C targettest - make SYS=atari2600 -C targettest clean - make SYS=atari5200 -C targettest - make SYS=atari5200 -C targettest clean - make SYS=atmos -C targettest - make SYS=atmos -C targettest clean - make SYS=bbc -C targettest - make SYS=bbc -C targettest clean - make SYS=c128 -C targettest - make SYS=c128 -C targettest clean - make SYS=c16 -C targettest - make SYS=c16 -C targettest clean - make SYS=c64 -C targettest - make SYS=c64 -C targettest clean - make SYS=cbm510 -C targettest - make SYS=cbm510 -C targettest clean - make SYS=cbm610 -C targettest - make SYS=cbm610 -C targettest clean - make SYS=creativision -C targettest - make SYS=creativision -C targettest clean - make SYS=cx16 -C targettest - make SYS=cx16 -C targettest clean - make SYS=gamate -C targettest - make SYS=gamate -C targettest clean - make SYS=geos-apple -C targettest - make SYS=geos-apple -C targettest clean - make SYS=geos-cbm -C targettest - make SYS=geos-cbm -C targettest clean - make SYS=lunix -C targettest - make SYS=lunix -C targettest clean - make SYS=lynx -C targettest - make SYS=lynx -C targettest clean - make SYS=nes -C targettest - make SYS=nes -C targettest clean - make SYS=osic1p -C targettest - make SYS=osic1p -C targettest clean - make SYS=pce -C targettest - make SYS=pce -C targettest clean - make SYS=pet -C targettest - make SYS=pet -C targettest clean - make SYS=plus4 -C targettest - make SYS=plus4 -C targettest clean - make SYS=sim6502 -C targettest - make SYS=sim6502 -C targettest clean - make SYS=sim65c02 -C targettest - make SYS=sim65c02 -C targettest clean - make SYS=supervision -C targettest - make SYS=supervision -C targettest clean - make SYS=sym1 -C targettest - make SYS=sym1 -C targettest clean - make SYS=telestrat -C targettest - make SYS=telestrat -C targettest clean - make SYS=vic20 -C targettest - make SYS=vic20 -C targettest clean + run: make -C targettest platforms - name: Build the document files. shell: bash run: make -j2 doc diff --git a/.github/workflows/snapshot-on-push-master.yml b/.github/workflows/snapshot-on-push-master.yml index 83f311568..914094567 100644 --- a/.github/workflows/snapshot-on-push-master.yml +++ b/.github/workflows/snapshot-on-push-master.yml @@ -29,9 +29,8 @@ jobs: run: msbuild src\cc65.sln -t:rebuild -property:Configuration=Release build_linux: - name: Build, Test and Snaphot (Linux) + name: Build, Test, and Snapshot (Linux) runs-on: ubuntu-latest - needs: build_windows steps: - name: Install Dependencies diff --git a/samples/Makefile b/samples/Makefile index 5b08d4bb0..18a663c1b 100644 --- a/samples/Makefile +++ b/samples/Makefile @@ -129,7 +129,7 @@ LDFLAGS_tgidemo_atarixl = --start-addr 0x4000 # -------------------------------------------------------------------------- # Generic rules -.PHONY: all mostlyclean clean install zip samples disk +.PHONY: samples all mostlyclean clean install zip disk platforms %: %.c %: %.s @@ -340,7 +340,7 @@ endif define SUBDIR_recipe -@$(MAKE) -C $(dir) --no-print-directory $@ +@+$(MAKE) -C $(dir) --no-print-directory $@ endef # SUBDIR_recipe @@ -360,6 +360,54 @@ disk: $(DISK_$(SYS)) all: +# -------------------------------------------------------------------------- +# List of every supported platform +TARGETS := \ + apple2 \ + apple2enh \ + atari \ + atarixl \ + atari2600 \ + atari5200 \ + atmos \ + bbc \ + c128 \ + c16 \ + c64 \ + cbm510 \ + cbm610 \ + creativision \ + cx16 \ + gamate \ + geos-apple \ + geos-cbm \ + lunix \ + lynx \ + nes \ + osic1p \ + pce \ + pet \ + plus4 \ + sim6502 \ + sim65c02 \ + supervision \ + sym1 \ + telestrat \ + vic20 + +# -------------------------------------------------------------------------- +# Rule to make the binaries for every platform + +define TARGET_recipe + +@$(MAKE) -j2 SYS:=$(T) +@$(MAKE) --no-print-directory clean SYS:=$(T) + +endef # TARGET_recipe + +platforms: + $(foreach T,$(TARGETS),$(TARGET_recipe)) + # -------------------------------------------------------------------------- # Overlay rules. Overlays need special ld65 configuration files. Also, the # overlay file-names are shortenned to fit the Atari's 8.3-character limit. diff --git a/targettest/Makefile b/targettest/Makefile index 55b4660fc..3e8698c34 100644 --- a/targettest/Makefile +++ b/targettest/Makefile @@ -108,7 +108,7 @@ DISK_atarixl = testcode.atr # -------------------------------------------------------------------------- # Generic rules -.PHONY: all mostlyclean clean zip testcode disk +.PHONY: testcode all mostlyclean clean zip disk platforms %: %.c %: %.s @@ -404,7 +404,7 @@ EXELIST_plus4 = \ strqtok-test \ uname-test -# omitted: seek clock-test mouse-test ser-test +# omitted: seek clock-test mouse-test ser-test EXELIST_vic20 = \ minimal \ arg-test \ @@ -616,7 +616,7 @@ EXELIST_nes = \ EXELIST_pce = \ minimal \ conio - + # omitted: arg-test clock-test clock cpeek-test conio cprintf deb dir-test div-test # em-test exec-test1 exec-test2 fileio-test ft getopt-test heaptest joy-test moddiv-test # mouse-test posixio-test rename-test scanf-test seek ser-test strdup-test strnlen @@ -659,7 +659,7 @@ EXELIST_sim6502 = \ scanf-test \ strnlen \ strqtok-test - + EXELIST_sim65c02 = $(EXELIST_sim6502) @@ -699,7 +699,7 @@ endif define SUBDIR_recipe -@$(MAKE) -C $(dir) --no-print-directory $@ +@+$(MAKE) -C $(dir) --no-print-directory $@ endef # SUBDIR_recipe @@ -719,6 +719,54 @@ disk: $(DISK_$(SYS)) all: +# -------------------------------------------------------------------------- +# List of every supported platform +TARGETS := \ + apple2 \ + apple2enh \ + atari \ + atarixl \ + atari2600 \ + atari5200 \ + atmos \ + bbc \ + c128 \ + c16 \ + c64 \ + cbm510 \ + cbm610 \ + creativision \ + cx16 \ + gamate \ + geos-apple \ + geos-cbm \ + lunix \ + lynx \ + nes \ + osic1p \ + pce \ + pet \ + plus4 \ + sim6502 \ + sim65c02 \ + supervision \ + sym1 \ + telestrat \ + vic20 + +# -------------------------------------------------------------------------- +# Rule to make the binaries for every platform + +define TARGET_recipe + +@$(MAKE) -j2 SYS:=$(T) +@$(MAKE) --no-print-directory clean SYS:=$(T) + +endef # TARGET_recipe + +platforms: + $(foreach T,$(TARGETS),$(TARGET_recipe)) + # -------------------------------------------------------------------------- # some programs link against getsp.o