pvbemu/makefile

62 lines
1.8 KiB
Makefile
Raw Normal View History

2021-08-22 22:32:18 +00:00
.PHONY: help
help:
@echo
2023-03-12 15:59:37 +00:00
@echo "Virtual Boy Emulator - March 12, 2023"
2021-08-22 22:32:18 +00:00
@echo
@echo "Target build environment is any Debian with the following packages:"
@echo " emscripten"
@echo " gcc"
@echo " openjdk-17-jdk"
@echo
@echo "Available make targets:"
2021-08-30 02:14:06 +00:00
@echo " build Perform all build commands"
2021-08-22 22:32:18 +00:00
@echo " bundle Package the repository for HTML distribution"
@echo " clean Remove output files"
@echo " core Check the C core source for compiler warnings"
@echo " wasm Build the WebAssembly core module"
@echo
2021-08-30 02:14:06 +00:00
.PHONY: build
build:
@echo " Check C core library for style issues"
@make -s core
@echo " Build WebAssembly core module"
@make -s wasm
@echo " Bundle directory tree into HTML file"
@make -s bundle
2021-08-22 22:32:18 +00:00
.PHONY: bundle
bundle:
2023-03-11 00:44:57 +00:00
@java web/Bundle.java vbemu
2021-08-22 22:32:18 +00:00
.PHONY: clean
clean:
2023-03-11 00:44:57 +00:00
@rm -f vbemu_*.html web/core/core.wasm
2021-08-22 22:32:18 +00:00
.PHONY: core
core:
2023-03-11 00:44:57 +00:00
# GCC generic
@gcc core/vb.c -I core -c -o /dev/null \
-Werror -std=c90 -Wall -Wextra -Wpedantic
# GCC compilation control
@gcc core/vb.c -I core -c -o /dev/null \
-Werror -std=c90 -Wall -Wextra -Wpedantic \
-D VB_LITTLE_ENDIAN -D VB_SIGNED_PROPAGATE
# Clang generic
@emcc core/vb.c -I core -c -o /dev/null \
-Werror -std=c90 -Wall -Wextra -Wpedantic
# Clang compilation control
@emcc core/vb.c -I core -c -o /dev/null \
-Werror -std=c90 -Wall -Wextra -Wpedantic \
-D VB_LITTLE_ENDIAN -D VB_SIGNED_PROPAGATE
2021-08-22 22:32:18 +00:00
.PHONY: wasm
wasm:
2023-03-11 00:44:57 +00:00
@emcc -o web/core/core.wasm web/core/wasm.c core/vb.c -Icore \
-D VB_LITTLE_ENDIAN -D VB_SIGNED_PROPAGATE \
-D "VBAPI=__attribute__((used))" \
--no-entry -O2 -flto -s WASM=1 \
2022-04-15 01:51:09 +00:00
-s EXPORTED_RUNTIME_METHODS=[] -s ALLOW_MEMORY_GROWTH \
-s MAXIMUM_MEMORY=4GB -fno-strict-aliasing
2023-03-11 00:44:57 +00:00
@rm -f web/core/*.wasm.tmp*