Makefile improvements

Improve readme
Add instructions for new sc64 deployer.
Improve .gitignore
This commit is contained in:
Robin Jones 2023-03-13 00:46:13 +00:00
parent 828c2416d0
commit 48da3bc912
5 changed files with 27 additions and 23 deletions

4
.gitignore vendored
View File

@ -2,3 +2,7 @@
/build /build
/output /output
tools/sc64/sc64.exe tools/sc64/sc64.exe
tools/sc64/sc64deployer.exe
# There should never be ROMs uploaded, but just incase, make sure they are excluded.
**/*.n64
**/*.z64

View File

@ -1,6 +1,7 @@
.DEFAULT_GOAL := menu
EXE_NAME = N64FlashcartMenu PROJECT_NAME = N64FlashcartMenu
.DEFAULT_GOAL := $(PROJECT_NAME)
SOURCE_DIR = src SOURCE_DIR = src
BUILD_DIR = build BUILD_DIR = build
@ -28,18 +29,18 @@ SRCS = \
OBJS = $(addprefix $(BUILD_DIR)/, $(addsuffix .o,$(basename $(SRCS)))) OBJS = $(addprefix $(BUILD_DIR)/, $(addsuffix .o,$(basename $(SRCS))))
$(BUILD_DIR)/$(EXE_NAME).elf: $(OBJS) $(BUILD_DIR)/$(PROJECT_NAME).elf: $(OBJS)
$(EXE_NAME).z64: N64_ROM_TITLE=$(EXE_NAME) $(PROJECT_NAME).z64: N64_ROM_TITLE=$(PROJECT_NAME)
menu: $(EXE_NAME).z64 $(PROJECT_NAME): $(PROJECT_NAME).z64
$(shell mkdir -p $(OUTPUT_DIR)) $(shell mkdir -p $(OUTPUT_DIR))
$(shell mv $(EXE_NAME).z64 $(OUTPUT_DIR)) $(shell mv $(PROJECT_NAME).z64 $(OUTPUT_DIR))
sc64_minify: sc64_minify: $(PROJECT_NAME)
$(shell python3 ./tools/sc64/minify.py $(BUILD_DIR)/$(EXE_NAME).elf $(OUTPUT_DIR)/N64FlashcartMenu.z64 $(OUTPUT_DIR)/sc64menu.n64) $(shell python3 ./tools/sc64/minify.py $(BUILD_DIR)/$(PROJECT_NAME).elf $(OUTPUT_DIR)/$(PROJECT_NAME).z64 $(OUTPUT_DIR)/sc64menu.n64)
all: menu sc64_minify all: sc64_minify
.PHONY: all .PHONY: all
clean: clean:
@ -48,6 +49,7 @@ clean:
.PHONY: clean .PHONY: clean
# run: # run:
# $(shell sc64deployer --boot direct-rom %~dp0$(OUTPUT_DIR))\$(PROJECT_NAME).z64)
# test: # test:

View File

@ -61,15 +61,15 @@ You can use a dev container in VSCode to ease development.
Note: the dev container currently downloads and installs the latest available libdragon from the stable branch, rather than use the repos submodule. Note: the dev container currently downloads and installs the latest available libdragon from the stable branch, rather than use the repos submodule.
To deploy: To deploy:
* Download the deployer [here](https://github.com/Polprzewodnikowy/SummerCart64/releases/download/v2.12.1/sc64-windows-v2.12.1.zip) * Download the deployer [here](https://github.com/Polprzewodnikowy/SummerCart64/releases/download/v2.14.0/sc64-deployer-windows-v2.14.0.zip)
* Extract and place `sc64.exe` in the `tools/sc64` directory * Extract and place `sc64deployer.exe` in the `tools/sc64` directory
* For the moment, deployment cannot happen within the dev container and you must do it from a terminal on the host. * For the moment, deployment cannot happen within the dev container and you must do it from a terminal on the host.
* Run `./deploy.bat` from the terminal (in windows) * Run `./deploy.bat` from the terminal (in windows)
* Toggle the N64 power switch to load the ROM. * Toggle the N64 power switch to load the ROM.
`ms-vscode.makefile-tools` will help (installed automatically in dev container). `ms-vscode.makefile-tools` will help (installed automatically in dev container).
TODO: it does not yet work with `F5`: see https://devblogs.microsoft.com/cppblog/now-announcing-makefile-support-in-visual-studio-code/ TODO: it does not yet work with `F5`: see https://devblogs.microsoft.com/cppblog/now-announcing-makefile-support-in-visual-studio-code/
WORKAROUND: in the dev container terminal, use make directly `make all` WORKAROUND: in the dev container terminal, use make directly, i.e.: `make`
The ROM can be found in the `build` directory. The ROM can be found in the `output` directory.
NOTE: a "release" version of the ROM is called `sc64menu.n64` is created for when you want to add it directly to the SDCard. NOTE: a "release" version of the SC64 menu is called `sc64menu.n64` and can be created for when you want to add it directly to the SDCard. This is generated by running `make all` or running `make sc64_minify`.

View File

@ -4,13 +4,13 @@ cd %~dp0tools\sc64\
:: Make sure we are connected :: Make sure we are connected
echo Detecting SC64... echo Detecting SC64...
sc64 --print-state sc64deployer --print-state
echo: echo:
echo: echo:
:: Load the ROM :: Load the ROM
echo Loading ROM... echo Loading ROM...
sc64 --boot direct-rom %~dp0output\N64FlashcartMenu.z64 sc64deployer --boot direct-rom %~dp0output\N64FlashcartMenu.z64
echo: echo:
echo: echo:

View File

@ -1,14 +1,12 @@
# Source # Source
https://github.com/Polprzewodnikowy/SummerCart64 This Directory.
# License # License
GPL-3.0 license See root directory.
# Description # Description
Used for build and deployment `minify.py`
Removes unnecessary null bytes from the end of ROM file to cut on menu load time from SD card.
# Notes # Notes
It might be preferable to change to a submodule. The deployer `sc64deployer` needs to be downloaded from https://github.com/Polprzewodnikowy/SummerCart64/releases/tag/v2.14.0 and placed in this folder.
But `finalize.py` is independent.
The deployer needs to be downloaded from https://github.com/Polprzewodnikowy/SummerCart64/releases/tag/v2.12.1 and placed in this folder.