Updated to zbuild 0.1.10.
This commit is contained in:
parent
3c25060671
commit
2059e828ba
722
zbuild.yaml
722
zbuild.yaml
@ -1,722 +0,0 @@
|
||||
---
|
||||
alias:
|
||||
# External tools
|
||||
# prettier-ignore
|
||||
as : mips-elf-as # GNU assembler (GNU Binutils) 2.39
|
||||
ld : mips-elf-ld # GNU assembler (GNU Binutils) 2.39
|
||||
objcopy : mips-elf-objcopy # GNU assembler (GNU Binutils) 2.39
|
||||
mkpsxiso : mkpsxiso # MKPSXISO 2.04
|
||||
cargo : cargo # cargo 1.82.0-nightly (b5d44db1d 2024-07-26)
|
||||
sed : sed # sed (GNU sed) 4.9
|
||||
sha256sum : sha256sum # sha256sum (GNU coreutils) 9.5
|
||||
rm : rm # rm (GNU coreutils) 9.5
|
||||
mkdir : mkdir # mkdir (GNU coreutils) 9.5
|
||||
cp : cp # cp (GNU coreutils) 9.5
|
||||
touch : touch # touch (GNU coreutils) 9.5
|
||||
truncate : truncate # truncate (GNU coreutils) 9.5
|
||||
python3-sys: python3 # Python 3.12.4
|
||||
yq : yq # yq 3.4.3
|
||||
|
||||
# Other tools
|
||||
generate_psx_iso_deps : tools/generate_psx_iso_deps.py
|
||||
generate_psx_iso_lba_bin: tools/generate_psx_iso_lba_bin.py
|
||||
generate_compare_deps : tools/generate_compare_deps.py
|
||||
generate_format_deps : tools/generate_format_deps.py
|
||||
mkraw_exe_from_toml : tools/mkraw_exe_from_toml.py
|
||||
mkraw_exe_from_toml_deps: tools/mkraw_exe_from_toml_deps.py
|
||||
elf_from_toml : tools/elf_from_toml.py
|
||||
elf_from_toml_deps : tools/elf_from_toml_deps.py
|
||||
lib_from_toml : tools/lib_from_toml.py
|
||||
lib_from_toml_deps : tools/lib_from_toml_deps.py
|
||||
process_path : tools/process_path.py
|
||||
format_all : tools/format_all.py
|
||||
get_elf_symbols : tools/get_elf_symbols.sh
|
||||
|
||||
# Python
|
||||
python3_venv: tools/.venv
|
||||
python3_reqs: tools/requirements.txt
|
||||
python3 : $(python3_venv)/bin/python3
|
||||
python3_pip : $(python3_venv)/bin/pip3
|
||||
|
||||
# Cargo tools
|
||||
mkpsexe : $(build_rust_tool_dir)/mkpsexe
|
||||
mkpsexe_deps : $(build_rust_tool_dir)/mkpsexe-deps
|
||||
mklang_file : $(build_rust_tool_dir)/mklang-file
|
||||
mkpack : $(build_rust_tool_dir)/mkpack
|
||||
mkpack_deps : $(build_rust_tool_dir)/mkpack-deps
|
||||
mktim : $(build_rust_tool_dir)/mktim
|
||||
mktim_deps : $(build_rust_tool_dir)/mktim-deps
|
||||
mkmap : $(build_rust_tool_dir)/mkmap
|
||||
mkmap_deps : $(build_rust_tool_dir)/mkmap-deps
|
||||
mkmap_tile : $(build_rust_tool_dir)/mkmap-tile
|
||||
mkmap_tile_deps: $(build_rust_tool_dir)/mkmap-tile-deps
|
||||
mkrlen : $(build_rust_tool_dir)/mkrlen
|
||||
mkrlen_deps : $(build_rust_tool_dir)/mkrlen-deps
|
||||
|
||||
# Directories
|
||||
build_dir : build
|
||||
build_rust_tool_dir : $(build_dir)/tools
|
||||
build_misc_dir : $(build_dir)/misc
|
||||
build_psx_iso_dir : $(build_dir)/iso
|
||||
build_asm_dir : $(build_dir)/asm
|
||||
build_elf_dir : $(build_dir)/elf
|
||||
build_lib_dir : $(build_dir)/lib
|
||||
build_psexe_dir : $(build_dir)/psexe
|
||||
build_rust_dir : $(build_dir)/rust
|
||||
build_raw_exe_dir : $(build_dir)/raw_exe
|
||||
build_lang_file_dir : $(build_dir)/lang_file
|
||||
build_pack_dir : $(build_dir)/pack
|
||||
build_tim_dir : $(build_dir)/tim
|
||||
build_map_dir : $(build_dir)/map
|
||||
build_map_tile_dir : $(build_dir)/map-tile
|
||||
build_rlen_dir : $(build_dir)/rlen
|
||||
|
||||
# Licenses
|
||||
license_psx_iso : licenses/psx-bin.dat
|
||||
license_psexe_eu: licenses/psexe-eu.dat
|
||||
license_psexe_na: licenses/psexe-na.dat
|
||||
|
||||
# Misc
|
||||
dummy_buffer: $(build_misc_dir)/dummy
|
||||
|
||||
# Compare
|
||||
compare_checksums: checksums.sha256
|
||||
compare_ok : $(build_dir)/compare.ok
|
||||
compare_deps : $(build_dir)/compare.d
|
||||
|
||||
# Format
|
||||
format_ok : $(build_dir)/format.ok
|
||||
format_deps: $(build_dir)/format.d
|
||||
|
||||
# Rust tool
|
||||
rust_tool : $(build_rust_tool_dir)/^(name::non_empty)
|
||||
rust_tool_deps: $(build_rust_tool_dir)/^(name).d
|
||||
rust_tool_src : tools/^(name)
|
||||
|
||||
# Psx iso
|
||||
# TODO: Move all LBA files to their own directory to remove
|
||||
# the need to name with weird extensions.
|
||||
dw2003_psx_iso : $(build_psx_iso_dir)/dw2003.bin
|
||||
psx_iso : $(build_psx_iso_dir)/^(path).bin
|
||||
psx_iso_cue : $(build_psx_iso_dir)/^(path).cue
|
||||
psx_iso_deps : $(build_psx_iso_dir)/^(path).bin.d
|
||||
psx_iso_lba : $(build_psx_iso_dir)/^(path).lba
|
||||
psx_iso_lba_deps : $(build_psx_iso_dir)/^(path).lba.d
|
||||
psx_iso_lba_offsets : $(build_psx_iso_dir)/^(path).lba-offsets
|
||||
psx_iso_lba_len_sectors: $(build_psx_iso_dir)/^(path).lba-len-sectors
|
||||
psx_iso_xml : ^(path).xml
|
||||
psx_iso_lba_list : iso/^(path)/lbas.toml
|
||||
|
||||
# Assembly
|
||||
asm_obj : $(build_asm_dir)/^(path).o
|
||||
asm_obj_deps: $(build_asm_dir)/^(path).d
|
||||
asm_src : asm/^(path).s
|
||||
|
||||
# Elf
|
||||
elf : $(build_elf_dir)/^(path).elf
|
||||
elf_deps : $(build_elf_dir)/^(path).d
|
||||
elf_linker_script: $(build_elf_dir)/^(path).ld
|
||||
elf_map : $(build_elf_dir)/^(path).map
|
||||
elf_symbols : $(build_elf_dir)/^(path).syms
|
||||
elf_toml : elf/^(path).toml
|
||||
|
||||
# Library
|
||||
lib : $(build_lib_dir)/^(path).elf
|
||||
lib_deps : $(build_lib_dir)/^(path).d
|
||||
lib_linker_script: $(build_lib_dir)/^(path).ld
|
||||
lib_map : $(build_lib_dir)/^(path).map
|
||||
lib_toml : lib/^(path).toml
|
||||
|
||||
# Psexe
|
||||
psexe : $(build_psexe_dir)/^(path).psexe
|
||||
psexe_deps: $(build_psexe_dir)/^(path).d
|
||||
psexe_toml: psexe/^(path).toml
|
||||
|
||||
# Raw exe
|
||||
raw_exe : $(build_raw_exe_dir)/^(path).bin
|
||||
raw_exe_deps: $(build_raw_exe_dir)/^(path).d
|
||||
raw_exe_toml: raw_exe/^(path).toml
|
||||
|
||||
# Lang
|
||||
lang_file : $(build_lang_file_dir)/^(path).bin
|
||||
lang_file_toml: lang_file/^(path).toml
|
||||
|
||||
# Pack
|
||||
pack : $(build_pack_dir)/^(path).bin
|
||||
pack_deps: $(build_pack_dir)/^(path).d
|
||||
pack_toml: pack/^(path).toml
|
||||
|
||||
# Tim
|
||||
tim : $(build_tim_dir)/^(path).tim
|
||||
tim_deps: $(build_tim_dir)/^(path).d
|
||||
tim_toml: tim/^(path).toml
|
||||
|
||||
# Map
|
||||
map : $(build_map_dir)/^(path).bin
|
||||
map_deps: $(build_map_dir)/^(path).d
|
||||
map_toml: map/^(path).toml
|
||||
|
||||
# Map tile
|
||||
map_tile : $(build_map_tile_dir)/^(path).bin
|
||||
map_tile_deps: $(build_map_tile_dir)/^(path).d
|
||||
map_tile_toml: map-tile/^(path).toml
|
||||
|
||||
# Rlen
|
||||
rlen : $(build_rlen_dir)/^(path).bin
|
||||
rlen_deps: $(build_rlen_dir)/^(path).d
|
||||
rlen_toml: rlen/^(path).toml
|
||||
|
||||
# Rust library
|
||||
rust_lib : $(build_rust_dir)/^(name).a
|
||||
rust_lib_deps: $(build_rust_dir)/^(name).d
|
||||
|
||||
# By default built the final `iso`
|
||||
default:
|
||||
- $(dw2003_psx_iso)
|
||||
|
||||
rules:
|
||||
# Format
|
||||
format:
|
||||
out: [$(format_ok)]
|
||||
deps: [$(python3), $(format_all), deps_file: $(format_deps)]
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(format_all)
|
||||
- [$(touch), $(format_ok)]
|
||||
|
||||
# Format dependencies
|
||||
format-deps:
|
||||
out: [$(format_deps)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(format_all) # Note: `generate_format_deps` depends on this
|
||||
- $(generate_format_deps)
|
||||
- static: $(format_deps::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(generate_format_deps)
|
||||
- --format-output
|
||||
- $(format_ok)
|
||||
- --deps-file
|
||||
- $(format_deps)
|
||||
|
||||
# Compare
|
||||
compare:
|
||||
out: [$(compare_ok)]
|
||||
deps:
|
||||
- $(compare_checksums)
|
||||
- deps_file: $(compare_deps)
|
||||
- static: $(compare_ok::dir_name)/
|
||||
exec:
|
||||
- [$(sha256sum), --check, --quiet, $(compare_checksums)]
|
||||
- [$(touch), $(compare_ok)]
|
||||
|
||||
# Compare dependencies
|
||||
compare-deps:
|
||||
out: [$(compare_deps)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(compare_checksums)
|
||||
- $(generate_compare_deps)
|
||||
- static: $(compare_deps::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(generate_compare_deps)
|
||||
- --checksums
|
||||
- $(compare_checksums)
|
||||
- --compare-output
|
||||
- $(compare_ok)
|
||||
- --deps-file
|
||||
- $(compare_deps)
|
||||
|
||||
# Clean
|
||||
clean:
|
||||
exec:
|
||||
- [$(rm), -rf, $(build_dir)/]
|
||||
- [$(rm), -rf, $(python3_venv)/]
|
||||
- [$(rm), -rf, tools/target/]
|
||||
- [$(rm), -rf, rust/target/]
|
||||
|
||||
# Directories
|
||||
mkdir:
|
||||
alias:
|
||||
dir: $(build_dir)^(path)/
|
||||
out: [$(dir)]
|
||||
exec:
|
||||
- [$(mkdir), -p, $(dir)]
|
||||
|
||||
# Python venv
|
||||
python_venv:
|
||||
out: [$(python3), $(python3_pip)]
|
||||
deps:
|
||||
- $(python3_reqs)
|
||||
exec:
|
||||
- [$(python3-sys), -m, venv, $(python3_venv)]
|
||||
- [$(python3_pip), install, -r, $(python3_reqs)]
|
||||
|
||||
# Psx iso
|
||||
mkpsxiso:
|
||||
out: [$(psx_iso), $(psx_iso_cue)]
|
||||
deps:
|
||||
- $(psx_iso_xml)
|
||||
- $(license_psx_iso)
|
||||
- deps_file: $(psx_iso_deps)
|
||||
- static: $(psx_iso::dir_name)/
|
||||
exec:
|
||||
- - $(mkpsxiso)
|
||||
- $(psx_iso_xml)
|
||||
- -y
|
||||
- --quiet
|
||||
- --output
|
||||
- $(psx_iso)
|
||||
- --cuefile
|
||||
- $(psx_iso_cue)
|
||||
|
||||
# Pxs iso dependencies
|
||||
mkpsxiso-deps:
|
||||
out: [$(psx_iso_deps)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(generate_psx_iso_deps)
|
||||
- $(psx_iso_xml)
|
||||
- static: $(psx_iso_deps::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(generate_psx_iso_deps)
|
||||
- --output
|
||||
- $(psx_iso)
|
||||
- --xml
|
||||
- $(psx_iso_xml)
|
||||
- --deps-file
|
||||
- $(psx_iso_deps)
|
||||
|
||||
# Psx iso (lba only)
|
||||
mkpsxiso-lba:
|
||||
out: [$(psx_iso_lba)]
|
||||
deps:
|
||||
- $(psx_iso_xml)
|
||||
- $(license_psx_iso)
|
||||
- deps_file: $(psx_iso_lba_deps)
|
||||
- static: $(psx_iso::dir_name)/
|
||||
exec:
|
||||
- - $(mkpsxiso)
|
||||
- $(psx_iso_xml)
|
||||
- --quiet
|
||||
- -noisogen
|
||||
- -lba
|
||||
- $(psx_iso_lba)
|
||||
|
||||
# Pxs iso (lba only) dependencies
|
||||
mkpsxiso-lba-deps:
|
||||
out: [$(psx_iso_lba_deps)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(generate_psx_iso_deps)
|
||||
- $(psx_iso_xml)
|
||||
- static: $(psx_iso_lba_deps::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(generate_psx_iso_deps)
|
||||
- --output
|
||||
- $(psx_iso_lba)
|
||||
- --xml
|
||||
- $(psx_iso_xml)
|
||||
- --deps-file
|
||||
- $(psx_iso_lba_deps)
|
||||
|
||||
# Psx iso lba bin
|
||||
mkpsxiso-lba-bin:
|
||||
out: [$(psx_iso_lba_offsets), $(psx_iso_lba_len_sectors)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(generate_psx_iso_lba_bin)
|
||||
- $(psx_iso_lba)
|
||||
- $(psx_iso_lba_list)
|
||||
- static: $(psx_iso_lba_offsets::dir_name)/
|
||||
- static: $(psx_iso_lba_len_sectors::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(generate_psx_iso_lba_bin)
|
||||
- --output-offsets
|
||||
- $(psx_iso_lba_offsets)
|
||||
- --output-len-sectors
|
||||
- $(psx_iso_lba_len_sectors)
|
||||
- --lba
|
||||
- $(psx_iso_lba)
|
||||
- --lba-list
|
||||
- $(psx_iso_lba_list)
|
||||
|
||||
# Cargo tools
|
||||
cargo-tool:
|
||||
out: [$(rust_tool), deps_file: $(rust_tool_deps)]
|
||||
deps: [static: $(rust_tool::dir_name)/]
|
||||
exec:
|
||||
- cwd: tools/
|
||||
args:
|
||||
- $(cargo)
|
||||
- build
|
||||
- --release
|
||||
- --bin=^(name)
|
||||
- -Z=unstable-options
|
||||
- --artifact-dir=../$(build_rust_tool_dir)
|
||||
- [$(cp), tools/target/release/^(name).d, $(rust_tool_deps)]
|
||||
- - $(sed)
|
||||
- -i
|
||||
- -e
|
||||
- 's,tools/target/release/,$(build_rust_tool_dir)/,g'
|
||||
- $(rust_tool_deps)
|
||||
|
||||
# Buffer
|
||||
dummy_buffer:
|
||||
out: [$(dummy_buffer)]
|
||||
deps: [static: $(dummy_buffer::dir_name)/]
|
||||
exec:
|
||||
- [$(touch), $(dummy_buffer)]
|
||||
- [$(truncate), --size=35283682, $(dummy_buffer)]
|
||||
|
||||
# Psexe
|
||||
psexe:
|
||||
out: [$(psexe)]
|
||||
deps:
|
||||
- $(psexe_toml)
|
||||
- $(mkpsexe)
|
||||
- deps_file: $(psexe_deps)
|
||||
- static: $(psexe::dir_name)/
|
||||
exec:
|
||||
- - $(mkpsexe)
|
||||
- $(psexe_toml)
|
||||
- --output=$(psexe)
|
||||
|
||||
# Psexe dependencies
|
||||
psexe_deps:
|
||||
out: [$(psexe_deps)]
|
||||
deps:
|
||||
- $(psexe_toml)
|
||||
- $(mkpsexe_deps)
|
||||
- static: $(psexe_deps::dir_name)/
|
||||
exec:
|
||||
- - $(mkpsexe_deps)
|
||||
- $(psexe_toml)
|
||||
- --output=$(psexe)
|
||||
- --output-deps=$(psexe_deps)
|
||||
|
||||
# Raw exe
|
||||
raw_exe:
|
||||
out: [$(raw_exe)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(raw_exe_toml)
|
||||
- $(mkraw_exe_from_toml)
|
||||
- deps_file: $(raw_exe_deps)
|
||||
- static: $(raw_exe::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(mkraw_exe_from_toml)
|
||||
- $(raw_exe_toml)
|
||||
- -o
|
||||
- $(raw_exe)
|
||||
- --objcopy-bin
|
||||
- $(objcopy)
|
||||
|
||||
# Raw exe dependencies
|
||||
raw_exe_deps:
|
||||
out: [$(raw_exe_deps)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(raw_exe_toml)
|
||||
- $(mkraw_exe_from_toml_deps)
|
||||
- static: $(raw_exe_deps::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(mkraw_exe_from_toml_deps)
|
||||
- $(raw_exe_toml)
|
||||
- -o
|
||||
- $(raw_exe)
|
||||
- --deps
|
||||
- $(raw_exe_deps)
|
||||
|
||||
# Lang file
|
||||
lang_file:
|
||||
out: [$(lang_file)]
|
||||
deps:
|
||||
- $(lang_file_toml)
|
||||
- $(mklang_file)
|
||||
- static: $(lang_file::dir_name)/
|
||||
exec:
|
||||
- - $(mklang_file)
|
||||
- $(lang_file_toml)
|
||||
- --output=$(lang_file)
|
||||
|
||||
# Tim
|
||||
tim:
|
||||
out: [$(tim)]
|
||||
deps:
|
||||
- $(tim_toml)
|
||||
- $(mktim)
|
||||
- deps_file: $(tim_deps)
|
||||
- static: $(tim::dir_name)/
|
||||
exec:
|
||||
- - $(mktim)
|
||||
- $(tim_toml)
|
||||
- --output=$(tim)
|
||||
|
||||
# Tim deps
|
||||
tim_deps:
|
||||
out: [$(tim_deps)]
|
||||
deps:
|
||||
- $(tim_toml)
|
||||
- $(mktim_deps)
|
||||
- static: $(tim_deps::dir_name)/
|
||||
exec:
|
||||
- - $(mktim_deps)
|
||||
- $(tim_toml)
|
||||
- --output=$(tim)
|
||||
- --output-deps=$(tim_deps)
|
||||
|
||||
# Pack
|
||||
pack:
|
||||
out: [$(pack)]
|
||||
deps:
|
||||
- $(pack_toml)
|
||||
- $(mkpack)
|
||||
- deps_file: $(pack_deps)
|
||||
- static: $(pack::dir_name)/
|
||||
exec:
|
||||
- - $(mkpack)
|
||||
- $(pack_toml)
|
||||
- --output=$(pack)
|
||||
|
||||
# Pack dependencies
|
||||
pack_deps:
|
||||
out: [$(pack_deps)]
|
||||
deps:
|
||||
- $(pack_toml)
|
||||
- $(mkpack_deps)
|
||||
- static: $(pack_deps::dir_name)/
|
||||
exec:
|
||||
- - $(mkpack_deps)
|
||||
- $(pack_toml)
|
||||
- --output=$(pack)
|
||||
- --output-deps=$(pack_deps)
|
||||
|
||||
# Map
|
||||
map:
|
||||
out: [$(map)]
|
||||
deps:
|
||||
- $(map_toml)
|
||||
- $(mkmap)
|
||||
- deps_file: $(map_deps)
|
||||
- static: $(map::dir_name)/
|
||||
exec:
|
||||
- - $(mkmap)
|
||||
- $(map_toml)
|
||||
- --output=$(map)
|
||||
|
||||
# Map dependencies
|
||||
map_deps:
|
||||
out: [$(map_deps)]
|
||||
deps:
|
||||
- $(map_toml)
|
||||
- $(mkmap_deps)
|
||||
- static: $(map_deps::dir_name)/
|
||||
exec:
|
||||
- - $(mkmap_deps)
|
||||
- $(map_toml)
|
||||
- --output=$(map)
|
||||
- --output-deps=$(map_deps)
|
||||
|
||||
# Map tile
|
||||
map_tile:
|
||||
out: [$(map_tile)]
|
||||
deps:
|
||||
- $(map_tile_toml)
|
||||
- $(mkmap_tile)
|
||||
- deps_file: $(map_tile_deps)
|
||||
- static: $(map_tile::dir_name)/
|
||||
exec:
|
||||
- - $(mkmap_tile)
|
||||
- $(map_tile_toml)
|
||||
- --output=$(map_tile)
|
||||
|
||||
# Map tile dependencies
|
||||
map_tile_deps:
|
||||
out: [$(map_tile_deps)]
|
||||
deps:
|
||||
- $(map_tile_toml)
|
||||
- $(mkmap_tile_deps)
|
||||
- static: $(map_tile_deps::dir_name)/
|
||||
exec:
|
||||
- - $(mkmap_tile_deps)
|
||||
- $(map_tile_toml)
|
||||
- --output=$(map_tile)
|
||||
- --output-deps=$(map_tile_deps)
|
||||
|
||||
# Rlen
|
||||
rlen:
|
||||
out: [$(rlen)]
|
||||
deps:
|
||||
- $(rlen_toml)
|
||||
- $(mkrlen)
|
||||
- deps_file: $(rlen_deps)
|
||||
- static: $(rlen::dir_name)/
|
||||
exec:
|
||||
- - $(mkrlen)
|
||||
- $(rlen_toml)
|
||||
- --output=$(rlen)
|
||||
- --auto-compatibility
|
||||
|
||||
# Rlen dependencies
|
||||
rlen_deps:
|
||||
out: [$(rlen_deps)]
|
||||
deps:
|
||||
- $(rlen_toml)
|
||||
- $(mkrlen_deps)
|
||||
- static: $(rlen_deps::dir_name)/
|
||||
exec:
|
||||
- - $(mkrlen_deps)
|
||||
- $(rlen_toml)
|
||||
- --output=$(rlen)
|
||||
- --output-deps=$(rlen_deps)
|
||||
|
||||
# Elf
|
||||
elf:
|
||||
out: [$(elf), $(elf_linker_script)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(elf_toml)
|
||||
- $(elf_from_toml)
|
||||
- deps_file: $(elf_deps)
|
||||
- static: $(elf::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(elf_from_toml)
|
||||
- $(elf_toml)
|
||||
- -o
|
||||
- $(elf)
|
||||
- --linker-script-output
|
||||
- $(elf_linker_script)
|
||||
- --map-output
|
||||
- $(elf_map)
|
||||
- --ld-bin
|
||||
- $(ld)
|
||||
|
||||
# Elf symbols
|
||||
elf_syms:
|
||||
out: [$(elf_symbols)]
|
||||
deps:
|
||||
- $(get_elf_symbols)
|
||||
- $(elf)
|
||||
- static: $(elf_symbols::dir_name)/
|
||||
exec:
|
||||
- - $(get_elf_symbols)
|
||||
- $(elf)
|
||||
- $(elf_symbols)
|
||||
|
||||
# Elf dependencies
|
||||
elf_deps:
|
||||
out: [$(elf_deps)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(elf_toml)
|
||||
- $(elf_from_toml_deps)
|
||||
- static: $(elf_deps::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(elf_from_toml_deps)
|
||||
- $(elf_toml)
|
||||
- -o
|
||||
- $(elf)
|
||||
- --deps
|
||||
- $(elf_deps)
|
||||
|
||||
# Lib
|
||||
lib:
|
||||
out: [$(lib), $(lib_map), $(lib_linker_script)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(lib_toml)
|
||||
- $(lib_from_toml)
|
||||
- deps_file: $(lib_deps)
|
||||
- static: $(lib::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(lib_from_toml)
|
||||
- $(lib_toml)
|
||||
- -o
|
||||
- $(lib)
|
||||
- --linker-script-output
|
||||
- $(lib_linker_script)
|
||||
- --map-output
|
||||
- $(lib_map)
|
||||
- --ld-bin
|
||||
- $(ld)
|
||||
- --objcopy-bin
|
||||
- $(objcopy)
|
||||
|
||||
# Lib dependencies
|
||||
lib_deps:
|
||||
out: [$(lib_deps)]
|
||||
deps:
|
||||
- $(python3)
|
||||
- $(lib_toml)
|
||||
- $(lib_from_toml_deps)
|
||||
- static: $(lib_deps::dir_name)/
|
||||
exec:
|
||||
- - $(python3)
|
||||
- $(lib_from_toml_deps)
|
||||
- $(lib_toml)
|
||||
- -o
|
||||
- $(lib)
|
||||
- --deps
|
||||
- $(lib_deps)
|
||||
|
||||
# Assembly
|
||||
asm:
|
||||
out: [$(asm_obj), deps_file: $(asm_obj_deps)]
|
||||
deps: [$(asm_src), static: $(asm_obj::dir_name)/]
|
||||
exec:
|
||||
- - $(as)
|
||||
- -MD
|
||||
- $(asm_obj_deps)
|
||||
- $(asm_src)
|
||||
- -o
|
||||
- $(asm_obj)
|
||||
- -EL
|
||||
- -mabi=32
|
||||
- -mips1
|
||||
- -march=r3000
|
||||
- -msoft-float
|
||||
- -g
|
||||
- -Iasm/
|
||||
- -I./
|
||||
- -I$(asm_src::dir_name)
|
||||
- --strip-local-absolute
|
||||
|
||||
# Rust library
|
||||
rust_lib:
|
||||
alias:
|
||||
build_target_dir: target/mipsel-sony-psx/release
|
||||
out:
|
||||
- $(rust_lib)
|
||||
- deps_file: $(rust_lib_deps)
|
||||
deps:
|
||||
- rust/.cargo/config.toml
|
||||
- static: $(rust_lib::dir_name)/
|
||||
exec:
|
||||
# Build the crate and copy the finished library
|
||||
- cwd: rust/
|
||||
args:
|
||||
- $(cargo)
|
||||
- build
|
||||
- --release
|
||||
- --package=^(name)
|
||||
- -Z=unstable-options
|
||||
- [$(cp), rust/$(build_target_dir)/lib^(name).a, $(rust_lib)]
|
||||
|
||||
# Then copy the dependency file and adjust the references
|
||||
- [$(cp), rust/$(build_target_dir)/lib^(name).d, $(rust_lib_deps)]
|
||||
- - sed
|
||||
- -i
|
||||
- -e
|
||||
- 's,rust/$(build_target_dir)/lib^(name).a,$(build_rust_dir)/^(name).a,g'
|
||||
- $(rust_lib_deps)
|
||||
25
zbuild.zb
25
zbuild.zb
@ -1,18 +1,17 @@
|
||||
# External tools
|
||||
alias as = "mips-elf-as"; # GNU assembler (GNU Binutils) 2.39
|
||||
alias ld = "mips-elf-ld"; # GNU assembler (GNU Binutils) 2.39
|
||||
alias objcopy = "mips-elf-objcopy"; # GNU assembler (GNU Binutils) 2.39
|
||||
alias mkpsxiso = "mkpsxiso"; # MKPSXISO 2.04
|
||||
alias cargo = "cargo"; # cargo 1.82.0-nightly (b5d44db1d 2024-07-26)
|
||||
alias as = "mips-elf-as"; # GNU assembler (GNU Binutils) 2.45
|
||||
alias ld = "mips-elf-ld"; # GNU assembler (GNU Binutils) 2.45
|
||||
alias objcopy = "mips-elf-objcopy"; # GNU assembler (GNU Binutils) 2.45
|
||||
alias mkpsxiso = "mkpsxiso"; # MKPSXISO 2.10
|
||||
alias cargo = "cargo"; # cargo 1.91.0-nightly (8e62bfd31 2025-08-12)
|
||||
alias sed = "sed"; # sed (GNU sed) 4.9
|
||||
alias sha256sum = "sha256sum"; # sha256sum (GNU coreutils) 9.5
|
||||
alias rm = "rm"; # rm (GNU coreutils) 9.5
|
||||
alias mkdir = "mkdir"; # mkdir (GNU coreutils) 9.5
|
||||
alias cp = "cp"; # cp (GNU coreutils) 9.5
|
||||
alias touch = "touch"; # touch (GNU coreutils) 9.5
|
||||
alias truncate = "truncate"; # truncate (GNU coreutils) 9.5
|
||||
alias python3_sys = "python3"; # Python 3.12.4
|
||||
alias yq = "yq"; # yq 3.4.3
|
||||
alias sha256sum = "sha256sum"; # sha256sum (GNU coreutils) 9.7
|
||||
alias rm = "rm"; # rm (GNU coreutils) 9.7
|
||||
alias mkdir = "mkdir"; # mkdir (GNU coreutils) 9.7
|
||||
alias cp = "cp"; # cp (GNU coreutils) 9.7
|
||||
alias touch = "touch"; # touch (GNU coreutils) 9.7
|
||||
alias truncate = "truncate"; # truncate (GNU coreutils) 9.7
|
||||
alias python3_sys = "python3"; # Python 3.13.5
|
||||
|
||||
# Bundled tools
|
||||
alias generate_psx_iso_deps = "tools/generate_psx_iso_deps.py";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user