Files
gbdk-2020/Makefile
bbbbbr 0e21c3f573 Build: Remove creation of empty crt0.lst files in build output
- Works around issue where the sdld linker tries to create matching .rst files in the gbdk install dir where it finds the empty crt0.lst, causing builds to fail if the user lacks permissions for that directory
2025-04-05 03:53:24 -07:00

520 lines
18 KiB
Makefile

# Top level Makefile for GBDK that combines the builds for sdcc,
# gbdk-lib, and gbdk-support
#
# GBDK-2020
#
TOPDIR = $(shell pwd)
# Package name, used for tarballs
PKG = gbdk
# Version, used for tarballs & docs
VER = 4.3.0
PORTS=sm83 z80 mos6502
PLATFORMS=gb ap duck gg sms msxdos nes
# Prefix to add to the standard tools. Usefull for a standard gcc
# cross-compile.
TOOLSPREFIX =
ifeq ($(OS_TARGET),Win_x32)
TOOLSPREFIX = i686-w64-mingw32-
endif
ifeq ($(OS_TARGET),Win_x64)
TOOLSPREFIX = x86_64-w64-mingw32-
endif
TARGETCC = $(TOOLSPREFIX)gcc
TARGETRANLIB = $(TOOLSPREFIX)ranlib
TARGETAR = $(TOOLSPREFIX)ar
TARGETSTRIP = $(TOOLSPREFIX)strip
# Directory containing the source to gbdk-lib
GBDKLIBDIR = $(TOPDIR)/gbdk-lib
# Directory containing the source to gbdk-support
GBDKSUPPORTDIR = $(TOPDIR)/gbdk-support
# Directory with docs config and output (via doxygen)
GBDKDOCSDIR = $(TOPDIR)/docs
GBDKLICENSEDIR = $(TOPDIR)/licenses
# Doxygen command and version check info
DOXYGENCMD = doxygen
DOXYGEN_VER_REQ = 1.8.17
DOXYGEN_VER_HAS = $(shell doxygen -v)
# Base setup
# Extension to add to executables
EXEEXTENSION =
ifeq ($(TOOLSPREFIX),i686-w64-mingw32-)
EXEEXTENSION=.exe
endif
ifeq ($(TOOLSPREFIX),x86_64-w64-mingw32-)
EXEEXTENSION=.exe
endif
ifeq ($(OS),Windows_NT)
EXEEXTENSION=.exe
endif
# Host operating system identifier.
HOSTOS = $(shell uname -s)
# Target operating system identifier. Used in the output zip name.
TARGETOS ?= $(HOSTOS)
# Directory that gbdk should finally end up in
TARGETDIR = /opt/gbdk
# Directory that gbdk for this target is built into.
BUILDDIR = $(TOPDIR)/build/gbdk
NOISELOG = $(TOPDIR)/noise.log
all: native-build
clean: gbdk-support-clean gbdk-lib-clean
distclean: clean build-dir-clean
dist-examples-rebuild: gbdk-dist-examples-clean gbdk-dist-examples-build
docs: doxygen-generate
docspdf: doxygen-generate-with-pdf
docsclean: doxygen-clean
docsreset: doxygen-reset
docstools: docs-toolchain-generate
# Build rule for michaelh's machine to spin a release
sapphire-full-build: native-build binary cross-clean cross-linux-mingw32-build
# Cross-compilation targets
FIXUPMASKS = *.c *.h .bat *.s ChangeLog README
native-build: gbdk-build gbdk-install
cross-clean: gbdk-support-clean
cross-build: gbdk-build gbdk-install cross-cleanup
cross-cleanup:
ifdef MSDOSLINEENDS
for i in $(FIXUPMASKS); do \
find $(BUILDDIR) -name $$i -exec unix2dos {} \; ; \
done
endif
cross-linux-mingw32-build:
$(MAKE) TARGETOS=i586-mingw32msvc \
TOOLSPREFIX=i586-mingw32msvc- \
EXEEXTENSION=.exe \
CROSSCOMPILING=1 \
MSDOSLINEENDS=1 \
TARGETDIR=/sdcc \
ARCHIVETYPE=zip \
cross-build gbdk-lib-examples-makefile binary
# Source code drop
src: clean
rm -rf gbdk
mkdir -p gbdk
cp -r Makefile sdcc gbdk-lib gbdk-support gbdk
tar czf gbdk-$(VER).tar.gz gbdk
# Base rules
gbdk-build: gbdk-support-build gbdk-lib-build
gbdk-install: $(BUILDDIR)/bin gbdk-support-install gbdk-lib-install sdcc-install
# Directories
$(BUILDDIR)/bin:
@echo Creating dir $(BUILDDIR)/bin
@mkdir -p $@
build-dir-clean:
rm -r $(BUILDDIR)
# Rules for gbdk-support
gbdk-support-build:
@echo Building lcc
ifdef BINDIR
@$(MAKE) -C $(GBDKSUPPORTDIR)/lcc TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ BINDIR=$(BINDIR)/ --no-print-directory
else
@$(MAKE) -C $(GBDKSUPPORTDIR)/lcc TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
endif
@echo
@echo Building ihxcheck
@$(MAKE) -C $(GBDKSUPPORTDIR)/ihxcheck TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo Building bankpack
@$(MAKE) -C $(GBDKSUPPORTDIR)/bankpack TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo Building png2asset
@$(MAKE) -C $(GBDKSUPPORTDIR)/png2asset TOOLSPREFIX=$(TOOLSPREFIX)
@echo Building gbcompress
@$(MAKE) -C $(GBDKSUPPORTDIR)/gbcompress TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo Building makecom
@$(MAKE) -C $(GBDKSUPPORTDIR)/makecom TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo Building makenes
@$(MAKE) -C $(GBDKSUPPORTDIR)/makenes TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo Building makebin
@$(MAKE) -C $(GBDKSUPPORTDIR)/makebin TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo Building png2hicolorgb
@$(MAKE) -C $(GBDKSUPPORTDIR)/png2hicolorgb TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo Building romusage
@$(MAKE) -C $(GBDKSUPPORTDIR)/romusage TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
@echo
gbdk-support-install: gbdk-support-build $(BUILDDIR)/bin
@echo Installing lcc
@cp $(GBDKSUPPORTDIR)/lcc/lcc$(EXEEXTENSION) $(BUILDDIR)/bin/lcc$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/lcc$(EXEEXTENSION)
@echo
@echo Installing docs and licenses
@cp $(GBDKDOCSDIR)/ChangeLog $(BUILDDIR)
@cp $(GBDKDOCSDIR)/README $(BUILDDIR)
@cp $(GBDKDOCSDIR)/gbdk_manual.pdf $(BUILDDIR)
@cp $(GBDKDOCSDIR)/sdccman.pdf $(BUILDDIR)
@cp $(GBDKDOCSDIR)/asmlnk_manual.txt $(BUILDDIR)
@cp -r $(GBDKLICENSEDIR) $(BUILDDIR)
@echo
@echo Installing ihxcheck
@cp $(GBDKSUPPORTDIR)/ihxcheck/ihxcheck$(EXEEXTENSION) $(BUILDDIR)/bin/ihxcheck$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/ihxcheck$(EXEEXTENSION)
@echo Installing bankpack
@cp $(GBDKSUPPORTDIR)/bankpack/bankpack$(EXEEXTENSION) $(BUILDDIR)/bin/bankpack$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/bankpack$(EXEEXTENSION)
@echo Installing png2asset
@cp $(GBDKSUPPORTDIR)/png2asset/png2asset$(EXEEXTENSION) $(BUILDDIR)/bin/png2asset$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/png2asset$(EXEEXTENSION)
@echo Installing gbcompress
@cp $(GBDKSUPPORTDIR)/gbcompress/gbcompress$(EXEEXTENSION) $(BUILDDIR)/bin/gbcompress$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/gbcompress$(EXEEXTENSION)
@echo Installing makenes
@cp $(GBDKSUPPORTDIR)/makenes/makenes$(EXEEXTENSION) $(BUILDDIR)/bin/makenes$(EXEEXTENSION)
@echo Installing makecom
@cp $(GBDKSUPPORTDIR)/makecom/makecom$(EXEEXTENSION) $(BUILDDIR)/bin/makecom$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/makecom$(EXEEXTENSION)
@echo Installing makebin
@cp $(GBDKSUPPORTDIR)/makebin/makebin$(EXEEXTENSION) $(BUILDDIR)/bin/makebin$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/makebin$(EXEEXTENSION)
@echo Installing png2hicolorgb
@cp $(GBDKSUPPORTDIR)/png2hicolorgb/png2hicolorgb$(EXEEXTENSION) $(BUILDDIR)/bin/png2hicolorgb$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/png2hicolorgb$(EXEEXTENSION)
@echo Installing romusage
@cp $(GBDKSUPPORTDIR)/romusage/romusage$(EXEEXTENSION) $(BUILDDIR)/bin/romusage$(EXEEXTENSION)
@$(TARGETSTRIP) $(BUILDDIR)/bin/romusage$(EXEEXTENSION)
@echo
gbdk-support-clean:
@echo Cleaning lcc
@$(MAKE) -C $(GBDKSUPPORTDIR)/lcc clean --no-print-directory
@echo
@echo Cleaning ihxcheck
@$(MAKE) -C $(GBDKSUPPORTDIR)/ihxcheck clean --no-print-directory
@echo Cleaning bankpack
@$(MAKE) -C $(GBDKSUPPORTDIR)/bankpack clean --no-print-directory
@echo Cleaning png2asset
@$(MAKE) -C $(GBDKSUPPORTDIR)/png2asset clean
@echo Cleaning gbcompress
@$(MAKE) -C $(GBDKSUPPORTDIR)/gbcompress clean --no-print-directory
@echo Cleaning makecom
@$(MAKE) -C $(GBDKSUPPORTDIR)/makecom clean
@echo Cleaning makebin
@$(MAKE) -C $(GBDKSUPPORTDIR)/makebin clean
@echo Cleaning png2hicolorgb
@$(MAKE) -C $(GBDKSUPPORTDIR)/png2hicolorgb clean
@echo Cleaning romusage
@$(MAKE) -C $(GBDKSUPPORTDIR)/romusage clean
@echo
# Rules for gbdk-lib
gbdk-lib-build: check-SDCCDIR
ifndef CROSSCOMPILING
@echo Building lib
@$(MAKE) -C $(GBDKLIBDIR)/libc PORTS="$(PORTS)" PLATFORMS="$(PLATFORMS)" --no-print-directory
@echo
endif
gbdk-lib-install: gbdk-lib-build
gbdk-lib-install: gbdk-lib-install-prepare
gbdk-lib-install: gbdk-lib-install-examples
gbdk-lib-install: gbdk-lib-install-ports
gbdk-lib-install: gbdk-lib-install-platforms
gbdk-lib-install-prepare:
@rm -rf $(BUILDDIR)/lib
gbdk-lib-install-ports: gbdk-lib-build
@for port in $(PORTS); do \
echo Installing lib for port: $$port; \
mkdir -p $(BUILDDIR)/lib/$$port/; \
cp $(GBDKLIBDIR)/build/$$port/$$port.lib $(BUILDDIR)/lib/$$port/$$port.lib; \
done
@echo
# The inner loop copies global.s for platforms from relevant port/platform.
# When doing that it expects a given platform to never be present in
# multiple ports since the copy destination is not port specific (lacks /$$port/ )
#
# 'touch' of empty crt0.lst was removed so .rst files do not get generated
# in the gbdk install lib folders when people build projects with -debug on.
# It caused problems when the user lacked write permissions to the gbdk install folder.
gbdk-lib-install-platforms:
@for plat in $(PLATFORMS); do \
echo Installing lib for platform: $$plat; \
mkdir -p $(BUILDDIR)/lib/$$plat; \
cp $(GBDKLIBDIR)/build/$$plat/crt0.o $(BUILDDIR)/lib/$$plat/crt0.o; \
cp $(GBDKLIBDIR)/build/$$plat/$$plat.lib $(BUILDDIR)/lib/$$plat/$$plat.lib; \
for port in $(PORTS); do \
if [ -d "$(GBDKLIBDIR)/libc/targets/$$port/$$plat" ]; then \
cp $(GBDKLIBDIR)/libc/targets/$$port/$$plat/global.s $(BUILDDIR)/lib/$$plat/global.s; \
fi \
done \
done
@echo
gbdk-lib-install-examples:
@echo Installing Examples
@cp -r $(GBDKLIBDIR)/include $(GBDKLIBDIR)/examples $(BUILDDIR)
@for plat in $(PLATFORMS); do \
if [ -d "$(BUILDDIR)/examples/$$plat" ]; then \
echo Generating Examples compile.bat for $$plat; \
$(MAKE) -C $(BUILDDIR)/examples/$$plat compile.bat --no-print-directory; \
echo; \
fi \
done
gbdk-lib-clean:
@echo Cleaning lib
@$(MAKE) -C $(GBDKLIBDIR) PORTS="$(PORTS)" PLATFORMS="$(PLATFORMS)" clean
@echo
gbdk-lib-examples-makefile:
$(MAKE) -C $(BUILDDIR)/examples/gb compile.bat
unix2dos $(BUILDDIR)/examples/gb/compile.bat
gbdk-dist-examples-build:
$(MAKE) -C $(BUILDDIR)/examples/gb
gbdk-dist-examples-clean:
$(MAKE) -C $(BUILDDIR)/examples/gb clean
# Copy SDDC executable files and DLLs
# win 32 specific: libgcc_s_dw2-1.dll
# win 64 specific: libgcc_s_seh-1.dll
SDCC_BINS = packihx sdar sdasgb sdcc sdcpp sdldgb sdnm sdobjcopy sdranlib sdasz80 sdldz80 sdas6500 sdld6808 sdld
ifeq ($(OS),Windows_NT)
# Check for 32 bit Windows target a couple different ways and select the matching SDCC DLL
WIN_TARGET = $(firstword $(subst -, ,$(shell $(TARGETCC) -dumpmachine)))
ifeq ($(OS_TARGET),Win_x32)
SDCC_OS_DLL = libgcc_s_dw2-1.dll
else ifeq ($(WIN_TARGET),mingw32)
SDCC_OS_DLL = libgcc_s_dw2-1.dll
else ifeq ($(WIN_TARGET),i686)
SDCC_OS_DLL = libgcc_s_dw2-1.dll
else
# Otherwise default 64 bit Windows SDCC DLL
SDCC_OS_DLL = libgcc_s_seh-1.dll
endif
MINGW64_RUNTIME = \
libgcc_s_sjlj-1.dll \
libstdc++-6.dll \
libwinpthread-1.dll \
readline5.dll
SDCC_BINS := $(addsuffix .exe, $(SDCC_BINS)) $(MINGW64_RUNTIME) $(SDCC_OS_DLL)
endif
sdcc-install: check-SDCCDIR
@echo Installing SDCC
@for i in $(SDCC_BINS); do \
cp $(SDCCDIR)/bin/$$i $(BUILDDIR)/bin/ && echo "-> $$i" ; \
done
@cp -r $(SDCCDIR)/libexec $(BUILDDIR) && echo "-> cc1"
# Final binary
binary:
ifeq ($(ARCHIVETYPE),zip)
rm -f $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).zip
cd $(BUILDDIR)/..; zip -9Xrq $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).zip gbdk
else
rm -f $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).tar.gz
cd $(BUILDDIR)/..; tar czf $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).tar.gz gbdk
endif
# Install
install: native-build
mkdir -p $(TARGETDIR)
cp -r $(BUILDDIR)/* $(TARGETDIR)
# Make sure SDCCDIR is populated
# Swap WIN/MSDOS slashes to Unix style for MinGW (prevent some errors with cp)
check-SDCCDIR:
ifndef SDCCDIR
$(error SDCCDIR is undefined)
endif
ifeq ($(OS),Windows_NT)
SDCCDIR := $(subst \,/,$(SDCCDIR))
endif
# First purge doxygen output directory to clear potentially stale output.
# Next change working dir so "include" is the root doxygen works in.
# That prevents it from including the path leading up to there in the
# output, even though it's instructed to only process starting at "include".
doxygen-generate:
ifeq ($(shell expr "$(DOXYGEN_VER_HAS)" \< "$(DOXYGEN_VER_REQ)"), 1)
$(error Doxygen version $(DOXYGEN_VER_HAS) is too old! Minimum version is $(DOXYGEN_VER_REQ))
endif
#Run Doxygen
rm -rf $(GBDKDOCSDIR)/api; \
cd "$(GBDKLIBDIR)/include"; \
GBDKDOCSDIR="$(GBDKDOCSDIR)" GBDKVERSION=$(VER) GBDKLIBDIR="$(GBDKLIBDIR)" GBDKBASEDIR="$(TOPDIR)" $(DOXYGENCMD) "$(GBDKDOCSDIR)/config/gbdk-2020-doxyfile"
@if [ "$(DOCS_PDF_ON)" = "YES" ]; then\
$(MAKE) -C $(GBDKDOCSDIR)/latex;\
cp $(GBDKDOCSDIR)/latex/refman.pdf $(GBDKDOCSDIR)/gbdk_manual.pdf;\
fi
rm -rf $(GBDKDOCSDIR)/latex
# Patch in improved text search for Doxygen
#
# Create a combined array of all js search terms instead of the default arrays partitioned by first-letter index
echo "var searchData = [" > $(GBDKDOCSDIR)/api/search/combined.js
cat $(GBDKDOCSDIR)/api/search/all*.js | sed -e "s/var.*searchData.*//" | sed -e "s/^\[//" | sed -e "s/^\]\;//" | sed -e "s/\]\]\].*/\]\]\],/" >> $(GBDKDOCSDIR)/api/search/combined.js
echo "];" >> $(GBDKDOCSDIR)/api/search/combined.js
# Override JS search functions to default doxygen search
cat $(GBDKDOCSDIR)/doxygen_search_override.js >> $(GBDKDOCSDIR)/api/search/search.js
cp $(GBDKDOCSDIR)/doxygen_search_combined.html $(GBDKDOCSDIR)/api/search/combined.html
# Turn on Latex -> PDF conversion to run run at end of regular docs build
# (which includes latex output but deletes it at the end).
#
# The conversion process requires a Latex install.
# For Windows there are various Latex packages to choose from.
# For Linux this appears to be the minimum:
# sudo apt install texlive-latex-base
# sudo apt install texlive-latex-recommended
# sudo apt install texlive-latex-extra
#
doxygen-generate-with-pdf: DOCS_PDF_ON=YES
doxygen-generate-with-pdf: doxygen-generate
# Generate toolchain settings markdown file (if possible)
docs-toolchain-generate: TOOLCHAIN_DOCS_FILE=$(GBDKDOCSDIR)/pages/20_toolchain_settings.md
docs-toolchain-generate:
ifneq (,$(wildcard $(BUILDDIR)/bin/))
echo \@page docs_toolchain_settings Toolchain settings > $(TOOLCHAIN_DOCS_FILE)
# lcc
echo \@anchor lcc-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# lcc settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
cd "$(BUILDDIR)/bin/"; \
./lcc >> $(TOOLCHAIN_DOCS_FILE) 2>&1
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# sdcc
echo \@anchor sdcc-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# sdcc settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/sdcc -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# sdasgb
echo \@anchor sdasgb-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# sdasgb settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/sdasgb -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# sdasz80
echo \@anchor sdasz80-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# sdasz80 settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/sdasz80 -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# sdas6500
echo \@anchor sdas6500-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# sdas6500 settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/sdas6500 -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# bankpack
echo \@anchor bankpack-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# bankpack settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/bankpack -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# sdldgb
echo \@anchor sdldgb-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# sdldgb settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/sdldgb >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# sdldz80
echo \@anchor sdldz80-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# sdldz80 settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/sdldgb >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# sdld6808
echo \@anchor sdld6808-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# sdld6808 settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/sdldgb >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# ihxcheck
echo \@anchor ihxcheck-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# ihxcheck settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/ihxcheck -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# makebin
echo \@anchor makebin-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# makebin settings >> $(TOOLCHAIN_DOCS_FILE);
echo Also see \@ref setting_mbc_and_rom_ram_banks >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/makebin -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# makecom
echo \@anchor makecom-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# makecom settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/makecom -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# makenes
echo \@anchor makenes-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# makenes settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/makenes -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# gbcompress
echo \@anchor gbcompress-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# gbcompress settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/gbcompress -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
# png2asset
echo \@anchor png2asset-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# png2asset settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/png2asset >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE)
# png2hicolorgb
echo \@anchor png2hicolorgb-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# png2hicolorgb settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/png2hicolorgb -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE)
# romusage
echo \@anchor romusage-settings >> $(TOOLCHAIN_DOCS_FILE);
echo \# romusage settings >> $(TOOLCHAIN_DOCS_FILE);
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
$(BUILDDIR)/bin/romusage -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE)
endif
doxygen-clean:
rm -rf $(GBDKDOCSDIR)/api
doxygen-reset:
rm -rf $(GBDKDOCSDIR)/api
git checkout $(GBDKDOCSDIR)/api