git.y1.nz

gbdk-2020

GameBoy Development Kit
download: https://git.y1.nz/archives/gbdk.tar.gz
README | Files | Log | Refs | LICENSE

Makefile

      1 # Top level Makefile for GBDK that combines the builds for sdcc,
      2 # gbdk-lib, and gbdk-support
      3 #
      4 # GBDK-2020
      5 #
      6 TOPDIR = $(shell pwd)
      7 
      8 # Package name, used for tarballs
      9 PKG = gbdk
     10 # Version, used for tarballs & docs
     11 VER = 4.5.0
     12 
     13 PORTS=sm83 z80 mos6502
     14 PLATFORMS=gb ap duck gg sms msxdos nes
     15 EXAMPLE_DIRS=$(PLATFORMS)
     16 EXAMPLE_DIRS+= cross-platform megaduck
     17 
     18 # Prefix to add to the standard tools.  Usefull for a standard gcc
     19 # cross-compile.
     20 TOOLSPREFIX =
     21 ifeq ($(OS_TARGET),Win_x32)
     22 	TOOLSPREFIX = i686-w64-mingw32-
     23 endif
     24 ifeq ($(OS_TARGET),Win_x64)
     25 	TOOLSPREFIX = x86_64-w64-mingw32-
     26 endif
     27 
     28 TARGETCC = $(TOOLSPREFIX)gcc
     29 TARGETRANLIB = $(TOOLSPREFIX)ranlib
     30 TARGETAR = $(TOOLSPREFIX)ar
     31 TARGETSTRIP = $(TOOLSPREFIX)strip
     32 
     33 # Directory containing the source to gbdk-lib
     34 GBDKLIBDIR = $(TOPDIR)/gbdk-lib
     35 # Directory containing the source to gbdk-support
     36 GBDKSUPPORTDIR = $(TOPDIR)/gbdk-support
     37 
     38 # Directory with docs config and output (via doxygen)
     39 GBDKDOCSDIR = $(TOPDIR)/docs
     40 
     41 GBDKLICENSEDIR = $(TOPDIR)/licenses
     42 
     43 # Doxygen command and version check info
     44 # Allow overriding doxygen with local explicit path
     45 ifndef DOXYGENCMD
     46 DOXYGENCMD = doxygen
     47 endif
     48 DOXYGEN_VER_REQ = 1.9.2
     49 DOXYGEN_VER_HAS = $(shell $(DOXYGENCMD) -v)
     50 
     51 
     52 # Base setup
     53 # Extension to add to executables
     54 EXEEXTENSION = 
     55 ifeq ($(TOOLSPREFIX),i686-w64-mingw32-)
     56 	EXEEXTENSION=.exe
     57 endif
     58 ifeq ($(TOOLSPREFIX),x86_64-w64-mingw32-)
     59 	EXEEXTENSION=.exe
     60 endif
     61 ifeq ($(OS),Windows_NT)
     62 	EXEEXTENSION=.exe
     63 endif
     64 # Host operating system identifier.
     65 HOSTOS = $(shell uname -s)
     66 # Target operating system identifier.  Used in the output zip name.
     67 TARGETOS ?= $(HOSTOS)
     68 
     69 # Directory that gbdk should finally end up in
     70 TARGETDIR = /opt/gbdk
     71 # Directory that gbdk for this target is built into.
     72 BUILDDIR = $(TOPDIR)/build/gbdk
     73 
     74 NOISELOG = $(TOPDIR)/noise.log
     75 
     76 all: native-build
     77 
     78 clean: gbdk-support-clean gbdk-lib-clean
     79 
     80 distclean: clean build-dir-clean
     81 dist-examples-rebuild: gbdk-dist-examples-clean gbdk-dist-examples-build
     82 
     83 docs: doxygen-generate
     84 docspdf: doxygen-generate-with-pdf
     85 docsclean: doxygen-clean
     86 docsreset: doxygen-reset
     87 docstools: docs-toolchain-generate
     88 
     89 # Build rule for michaelh's machine to spin a release
     90 sapphire-full-build: native-build binary cross-clean cross-linux-mingw32-build
     91 
     92 # Cross-compilation targets
     93 FIXUPMASKS = *.c *.h .bat *.s ChangeLog README
     94 
     95 native-build: gbdk-build gbdk-install
     96 
     97 cross-clean: gbdk-support-clean
     98 
     99 cross-build: gbdk-build gbdk-install cross-cleanup
    100 
    101 cross-cleanup:
    102 ifdef MSDOSLINEENDS
    103 	for i in $(FIXUPMASKS); do \
    104 		find $(BUILDDIR) -name $$i -exec unix2dos {} \; ; \
    105 	done
    106 endif
    107 
    108 cross-linux-mingw32-build:
    109 	$(MAKE) TARGETOS=i586-mingw32msvc \
    110 		TOOLSPREFIX=i586-mingw32msvc- \
    111 		EXEEXTENSION=.exe \
    112 		CROSSCOMPILING=1 \
    113 		MSDOSLINEENDS=1 \
    114 		TARGETDIR=/sdcc \
    115 		ARCHIVETYPE=zip \
    116 		cross-build gbdk-lib-examples-makefile binary
    117 
    118 # Source code drop
    119 src: clean
    120 	rm -rf gbdk
    121 	mkdir -p gbdk
    122 	cp -r Makefile sdcc gbdk-lib gbdk-support gbdk
    123 	tar czf gbdk-$(VER).tar.gz gbdk
    124 
    125 # Base rules
    126 gbdk-build: gbdk-support-build gbdk-lib-build
    127 
    128 gbdk-install: $(BUILDDIR)/bin gbdk-support-install gbdk-lib-install sdcc-install
    129 
    130 # Directories
    131 $(BUILDDIR)/bin:
    132 	@echo Creating dir $(BUILDDIR)/bin
    133 	@mkdir -p $@
    134 
    135 build-dir-clean:
    136 	rm -r $(BUILDDIR)
    137 
    138 # Rules for gbdk-support
    139 gbdk-support-build:
    140 	@echo Building lcc
    141 ifdef BINDIR
    142 	@$(MAKE) -C $(GBDKSUPPORTDIR)/lcc TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ BINDIR=$(BINDIR)/ --no-print-directory
    143 else
    144 	@$(MAKE) -C $(GBDKSUPPORTDIR)/lcc TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    145 endif
    146 	@echo
    147 	@echo Building ihxcheck
    148 	@$(MAKE) -C $(GBDKSUPPORTDIR)/ihxcheck TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    149 	@echo Building bankpack
    150 	@$(MAKE) -C $(GBDKSUPPORTDIR)/bankpack TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    151 	@echo Building png2asset
    152 	@$(MAKE) -C $(GBDKSUPPORTDIR)/png2asset TOOLSPREFIX=$(TOOLSPREFIX)
    153 	@echo Building gbcompress
    154 	@$(MAKE) -C $(GBDKSUPPORTDIR)/gbcompress TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    155 	@echo Building makecom
    156 	@$(MAKE) -C $(GBDKSUPPORTDIR)/makecom TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    157 	@echo Building makenes
    158 	@$(MAKE) -C $(GBDKSUPPORTDIR)/makenes TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    159 	@echo Building makebin
    160 	@$(MAKE) -C $(GBDKSUPPORTDIR)/makebin TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    161 	@echo Building png2hicolorgb
    162 	@$(MAKE) -C $(GBDKSUPPORTDIR)/png2hicolorgb TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    163 	@echo Building romusage
    164 	@$(MAKE) -C $(GBDKSUPPORTDIR)/romusage TOOLSPREFIX=$(TOOLSPREFIX) TARGETDIR=$(TARGETDIR)/ --no-print-directory
    165 	@echo
    166 
    167 gbdk-support-install: gbdk-support-build $(BUILDDIR)/bin
    168 	@echo Installing lcc
    169 	@cp $(GBDKSUPPORTDIR)/lcc/lcc$(EXEEXTENSION) $(BUILDDIR)/bin/lcc$(EXEEXTENSION)
    170 	@$(TARGETSTRIP) $(BUILDDIR)/bin/lcc$(EXEEXTENSION)
    171 	@echo
    172 	@echo Installing docs and licenses
    173 	@cp $(GBDKDOCSDIR)/ChangeLog $(BUILDDIR)
    174 	@cp $(GBDKDOCSDIR)/README $(BUILDDIR)
    175 	@cp $(GBDKDOCSDIR)/gbdk_manual.pdf $(BUILDDIR)
    176 	@cp $(GBDKDOCSDIR)/sdccman.pdf $(BUILDDIR)
    177 	@cp $(GBDKDOCSDIR)/asmlnk_manual.txt $(BUILDDIR)
    178 	@cp -r $(GBDKLICENSEDIR) $(BUILDDIR)
    179 	@echo
    180 	@echo Installing ihxcheck
    181 	@cp $(GBDKSUPPORTDIR)/ihxcheck/ihxcheck$(EXEEXTENSION) $(BUILDDIR)/bin/ihxcheck$(EXEEXTENSION)
    182 	@$(TARGETSTRIP) $(BUILDDIR)/bin/ihxcheck$(EXEEXTENSION)
    183 	@echo Installing bankpack
    184 	@cp $(GBDKSUPPORTDIR)/bankpack/bankpack$(EXEEXTENSION) $(BUILDDIR)/bin/bankpack$(EXEEXTENSION)
    185 	@$(TARGETSTRIP) $(BUILDDIR)/bin/bankpack$(EXEEXTENSION)
    186 	@echo Installing png2asset
    187 	@cp $(GBDKSUPPORTDIR)/png2asset/png2asset$(EXEEXTENSION) $(BUILDDIR)/bin/png2asset$(EXEEXTENSION)
    188 	@$(TARGETSTRIP) $(BUILDDIR)/bin/png2asset$(EXEEXTENSION)
    189 	@echo Installing gbcompress
    190 	@cp $(GBDKSUPPORTDIR)/gbcompress/gbcompress$(EXEEXTENSION) $(BUILDDIR)/bin/gbcompress$(EXEEXTENSION)
    191 	@$(TARGETSTRIP) $(BUILDDIR)/bin/gbcompress$(EXEEXTENSION)
    192 	@echo Installing makenes
    193 	@cp $(GBDKSUPPORTDIR)/makenes/makenes$(EXEEXTENSION) $(BUILDDIR)/bin/makenes$(EXEEXTENSION)
    194 	@echo Installing makecom
    195 	@cp $(GBDKSUPPORTDIR)/makecom/makecom$(EXEEXTENSION) $(BUILDDIR)/bin/makecom$(EXEEXTENSION)
    196 	@$(TARGETSTRIP) $(BUILDDIR)/bin/makecom$(EXEEXTENSION)
    197 	@echo Installing makebin
    198 	@cp $(GBDKSUPPORTDIR)/makebin/makebin$(EXEEXTENSION) $(BUILDDIR)/bin/makebin$(EXEEXTENSION)
    199 	@$(TARGETSTRIP) $(BUILDDIR)/bin/makebin$(EXEEXTENSION)
    200 	@echo Installing png2hicolorgb
    201 	@cp $(GBDKSUPPORTDIR)/png2hicolorgb/png2hicolorgb$(EXEEXTENSION) $(BUILDDIR)/bin/png2hicolorgb$(EXEEXTENSION)
    202 	@$(TARGETSTRIP) $(BUILDDIR)/bin/png2hicolorgb$(EXEEXTENSION)
    203 	@echo Installing romusage
    204 	@cp $(GBDKSUPPORTDIR)/romusage/romusage$(EXEEXTENSION) $(BUILDDIR)/bin/romusage$(EXEEXTENSION)
    205 	@$(TARGETSTRIP) $(BUILDDIR)/bin/romusage$(EXEEXTENSION)
    206 	@echo
    207 
    208 gbdk-support-clean:
    209 	@echo Cleaning lcc
    210 	@$(MAKE) -C $(GBDKSUPPORTDIR)/lcc clean --no-print-directory
    211 	@echo
    212 	@echo Cleaning ihxcheck
    213 	@$(MAKE) -C $(GBDKSUPPORTDIR)/ihxcheck clean --no-print-directory
    214 	@echo Cleaning bankpack
    215 	@$(MAKE) -C $(GBDKSUPPORTDIR)/bankpack clean --no-print-directory
    216 	@echo Cleaning png2asset
    217 	@$(MAKE) -C $(GBDKSUPPORTDIR)/png2asset clean
    218 	@echo Cleaning gbcompress
    219 	@$(MAKE) -C $(GBDKSUPPORTDIR)/gbcompress clean --no-print-directory
    220 	@echo Cleaning makecom
    221 	@$(MAKE) -C $(GBDKSUPPORTDIR)/makecom clean
    222 	@echo Cleaning makebin
    223 	@$(MAKE) -C $(GBDKSUPPORTDIR)/makebin clean
    224 	@echo Cleaning png2hicolorgb
    225 	@$(MAKE) -C $(GBDKSUPPORTDIR)/png2hicolorgb clean
    226 	@echo Cleaning romusage
    227 	@$(MAKE) -C $(GBDKSUPPORTDIR)/romusage clean
    228 	@echo
    229 
    230 # Rules for gbdk-lib
    231 gbdk-lib-build: check-SDCCDIR
    232 ifndef CROSSCOMPILING
    233 	@echo Building lib
    234 	@$(MAKE) -C $(GBDKLIBDIR)/libc PORTS="$(PORTS)" PLATFORMS="$(PLATFORMS)" --no-print-directory
    235 	@echo
    236 endif
    237 
    238 
    239 gbdk-lib-install: gbdk-lib-build
    240 gbdk-lib-install: gbdk-lib-install-prepare
    241 gbdk-lib-install: gbdk-lib-install-examples
    242 gbdk-lib-install: gbdk-lib-install-ports
    243 gbdk-lib-install: gbdk-lib-install-platforms
    244 
    245 gbdk-lib-install-prepare:
    246 	@rm -rf $(BUILDDIR)/lib
    247 
    248 gbdk-lib-install-ports: gbdk-lib-build
    249 	@for port in $(PORTS); do \
    250 		echo Installing lib for port: $$port; \
    251 		mkdir -p $(BUILDDIR)/lib/$$port/; \
    252 		cp $(GBDKLIBDIR)/build/$$port/$$port.lib $(BUILDDIR)/lib/$$port/$$port.lib; \
    253 	done
    254 	@echo
    255 
    256 # The inner loop copies global.s for platforms from relevant port/platform.
    257 # When doing that it expects a given platform to never be present in
    258 # multiple ports since the copy destination is not port specific (lacks /$$port/ )
    259 #
    260 # 'touch' of empty crt0.lst was removed so .rst files do not get generated
    261 # in the gbdk install lib folders when people build projects with -debug on.
    262 # It caused problems when the user lacked write permissions to the gbdk install folder.
    263 gbdk-lib-install-platforms:
    264 	@for plat in $(PLATFORMS); do \
    265 		echo Installing lib for platform: $$plat; \
    266 		mkdir -p $(BUILDDIR)/lib/$$plat; \
    267 		cp $(GBDKLIBDIR)/build/$$plat/crt0.o $(BUILDDIR)/lib/$$plat/crt0.o; \
    268 		cp $(GBDKLIBDIR)/build/$$plat/$$plat.lib $(BUILDDIR)/lib/$$plat/$$plat.lib; \
    269 		for port in $(PORTS); do \
    270 			if [ -d "$(GBDKLIBDIR)/libc/targets/$$port/$$plat" ]; then \
    271 				cp $(GBDKLIBDIR)/libc/targets/$$port/$$plat/global.s $(BUILDDIR)/lib/$$plat/global.s; \
    272 				if [ -f "$(GBDKLIBDIR)/libc/targets/$$port/$$plat/platform_cfg.s" ]; then \
    273 					cp $(GBDKLIBDIR)/libc/targets/$$port/$$plat/platform_cfg.s $(BUILDDIR)/lib/$$plat/platform_cfg.s; \
    274 				fi \
    275 			fi \
    276 		done \
    277 	done
    278 	@echo
    279 
    280 
    281 gbdk-lib-install-examples:
    282 	@echo Installing Examples
    283 	@cp -r $(GBDKLIBDIR)/include $(GBDKLIBDIR)/examples $(BUILDDIR)
    284 	@for example_dir in $(EXAMPLE_DIRS); do \
    285 		if [ -d "$(BUILDDIR)/examples/$$example_dir" ]; then \
    286 			echo Generating Examples compile.bat for $$example_dir; \
    287 			$(MAKE) -C $(BUILDDIR)/examples/$$example_dir compile.bat --no-print-directory; \
    288 			echo; \
    289 		fi \
    290 	done
    291 
    292 
    293 gbdk-lib-clean:
    294 	@echo Cleaning lib
    295 	@$(MAKE) -C $(GBDKLIBDIR) PORTS="$(PORTS)" PLATFORMS="$(PLATFORMS)" clean
    296 	@echo
    297 
    298 gbdk-lib-examples-makefile:
    299 	$(MAKE) -C $(BUILDDIR)/examples/gb compile.bat
    300 	unix2dos $(BUILDDIR)/examples/gb/compile.bat
    301 
    302 gbdk-dist-examples-build:
    303 	$(MAKE) -C $(BUILDDIR)/examples/gb
    304 
    305 gbdk-dist-examples-clean:
    306 	$(MAKE) -C $(BUILDDIR)/examples/gb clean
    307 
    308 
    309 # Copy SDDC executable files and DLLs
    310 # win 32 specific: libgcc_s_dw2-1.dll
    311 # win 64 specific: libgcc_s_seh-1.dll
    312 SDCC_BINS = packihx sdar sdasgb sdcc sdcpp sdldgb sdnm sdobjcopy sdranlib sdasz80 sdldz80 sdas6500 sdld6808 sdld
    313 ifeq ($(OS),Windows_NT)
    314 
    315 # Check for 32 bit Windows target a couple different ways and select the matching SDCC DLL
    316 WIN_TARGET = $(firstword $(subst -, ,$(shell $(TARGETCC) -dumpmachine)))
    317 ifeq ($(OS_TARGET),Win_x32)
    318 SDCC_OS_DLL = libgcc_s_dw2-1.dll
    319 else ifeq ($(WIN_TARGET),mingw32)
    320 SDCC_OS_DLL = libgcc_s_dw2-1.dll
    321 else ifeq ($(WIN_TARGET),i686)
    322 SDCC_OS_DLL = libgcc_s_dw2-1.dll
    323 else
    324 # Otherwise default 64 bit Windows SDCC DLL
    325 SDCC_OS_DLL = libgcc_s_seh-1.dll
    326 endif
    327 
    328 MINGW64_RUNTIME = \
    329 	libgcc_s_sjlj-1.dll \
    330 	libstdc++-6.dll \
    331 	libwinpthread-1.dll \
    332 	readline5.dll
    333 SDCC_BINS := $(addsuffix .exe, $(SDCC_BINS)) $(MINGW64_RUNTIME) $(SDCC_OS_DLL)
    334 endif
    335 
    336 sdcc-install: check-SDCCDIR
    337 	@echo Installing SDCC
    338 	@for i in $(SDCC_BINS); do \
    339 	cp $(SDCCDIR)/bin/$$i $(BUILDDIR)/bin/ && echo "-> $$i" ; \
    340 	done
    341 	@cp -r $(SDCCDIR)/libexec $(BUILDDIR) && echo "-> cc1"
    342 
    343 # Final binary
    344 binary:
    345 ifeq ($(ARCHIVETYPE),zip)
    346 	rm -f $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).zip
    347 	cd $(BUILDDIR)/..; zip -9Xrq $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).zip gbdk
    348 else
    349 	rm -f $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).tar.gz
    350 	cd $(BUILDDIR)/..; tar czf $(TOPDIR)/gbdk-$(VER)-$(TARGETOS).tar.gz gbdk
    351 endif
    352 
    353 # Install
    354 install: native-build
    355 	mkdir -p $(TARGETDIR)
    356 	cp -r $(BUILDDIR)/* $(TARGETDIR)
    357 
    358 # Make sure SDCCDIR is populated
    359 # Swap WIN/MSDOS slashes to Unix style for MinGW (prevent some errors with cp)
    360 check-SDCCDIR:
    361 ifndef SDCCDIR
    362 	$(error SDCCDIR is undefined)
    363 endif
    364 ifeq ($(OS),Windows_NT)
    365 SDCCDIR := $(subst \,/,$(SDCCDIR))
    366 endif
    367 
    368 # First purge doxygen output directory to clear potentially stale output.
    369 # Next change working dir so "include" is the root doxygen works in.
    370 # That prevents it from including the path leading up to there in the
    371 # output, even though it's instructed to only process starting at "include".
    372 doxygen-generate:
    373 ifeq ($(shell expr "$(DOXYGEN_VER_HAS)" \< "$(DOXYGEN_VER_REQ)"), 1)
    374 	$(error Doxygen version $(DOXYGEN_VER_HAS) is too old! Minimum version is $(DOXYGEN_VER_REQ))
    375 endif
    376 #Run Doxygen	
    377 	rm -rf $(GBDKDOCSDIR)/api; \
    378 	  cd "$(GBDKLIBDIR)/include"; \
    379 	  GBDKDOCSDIR="$(GBDKDOCSDIR)" GBDKVERSION=$(VER) GBDKLIBDIR="$(GBDKLIBDIR)" GBDKBASEDIR="$(TOPDIR)" $(DOXYGENCMD) "$(GBDKDOCSDIR)/config/gbdk-2020-doxyfile"
    380 	@if [ "$(DOCS_PDF_ON)" = "YES" ]; then\
    381 		$(MAKE) -C $(GBDKDOCSDIR)/latex;\
    382 		cp $(GBDKDOCSDIR)/latex/refman.pdf $(GBDKDOCSDIR)/gbdk_manual.pdf;\
    383 	fi
    384 	rm -rf $(GBDKDOCSDIR)/latex
    385 # Patch in improved text search for Doxygen
    386 #
    387 # Create a combined array of all js search terms instead of the default arrays partitioned by first-letter index
    388 	echo "var searchData = [" > $(GBDKDOCSDIR)/api/search/combined.js
    389 	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
    390 	echo "];" >> $(GBDKDOCSDIR)/api/search/combined.js
    391 # Override JS search functions to default doxygen search
    392 	cat $(GBDKDOCSDIR)/doxygen_search_override.js >> $(GBDKDOCSDIR)/api/search/search.js
    393 	cp $(GBDKDOCSDIR)/doxygen_search_combined.html $(GBDKDOCSDIR)/api/search/combined.html
    394 
    395 # Turn on Latex -> PDF conversion to run run at end of regular docs build
    396 # (which includes latex output but deletes it at the end).
    397 #
    398 # The conversion process requires a Latex install.
    399 # For Windows there are various Latex packages to choose from.
    400 # For Linux this appears to be the minimum:
    401 #   sudo apt install texlive-latex-base
    402 #   sudo apt install texlive-latex-recommended
    403 #   sudo apt install texlive-latex-extra
    404 #
    405 doxygen-generate-with-pdf:	DOCS_PDF_ON=YES
    406 doxygen-generate-with-pdf:	doxygen-generate
    407 
    408 
    409 # Generate toolchain settings markdown file (if possible)
    410 docs-toolchain-generate:	TOOLCHAIN_DOCS_FILE=$(GBDKDOCSDIR)/pages/20_toolchain_settings.md
    411 docs-toolchain-generate:
    412 ifneq (,$(wildcard $(BUILDDIR)/bin/))
    413 	echo \@page docs_toolchain_settings Toolchain settings > $(TOOLCHAIN_DOCS_FILE)
    414 # lcc
    415 	echo \@anchor lcc-settings >> $(TOOLCHAIN_DOCS_FILE);
    416 	echo \# lcc settings >> $(TOOLCHAIN_DOCS_FILE);
    417 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    418 	  cd "$(BUILDDIR)/bin/"; \
    419 	  ./lcc >> $(TOOLCHAIN_DOCS_FILE) 2>&1
    420 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    421 # sdcc
    422 	echo \@anchor sdcc-settings >> $(TOOLCHAIN_DOCS_FILE);
    423 	echo \# sdcc settings >> $(TOOLCHAIN_DOCS_FILE);
    424 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    425 	$(BUILDDIR)/bin/sdcc -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
    426 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    427 # sdasgb
    428 	echo \@anchor sdasgb-settings >> $(TOOLCHAIN_DOCS_FILE);
    429 	echo \# sdasgb settings >> $(TOOLCHAIN_DOCS_FILE);
    430 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    431 	$(BUILDDIR)/bin/sdasgb -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    432 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    433 # sdasz80
    434 	echo \@anchor sdasz80-settings >> $(TOOLCHAIN_DOCS_FILE);
    435 	echo \# sdasz80 settings >> $(TOOLCHAIN_DOCS_FILE);
    436 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    437 	$(BUILDDIR)/bin/sdasz80 -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    438 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    439 # sdas6500
    440 	echo \@anchor sdas6500-settings >> $(TOOLCHAIN_DOCS_FILE);
    441 	echo \# sdas6500 settings >> $(TOOLCHAIN_DOCS_FILE);
    442 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    443 	$(BUILDDIR)/bin/sdas6500 -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    444 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    445 # bankpack
    446 	echo \@anchor bankpack-settings >> $(TOOLCHAIN_DOCS_FILE);
    447 	echo \# bankpack settings >> $(TOOLCHAIN_DOCS_FILE);
    448 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    449 	$(BUILDDIR)/bin/bankpack -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    450 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    451 # sdldgb
    452 	echo \@anchor sdldgb-settings >> $(TOOLCHAIN_DOCS_FILE);
    453 	echo \# sdldgb settings >> $(TOOLCHAIN_DOCS_FILE);
    454 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    455 	$(BUILDDIR)/bin/sdldgb >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    456 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    457 # sdldz80
    458 	echo \@anchor sdldz80-settings >> $(TOOLCHAIN_DOCS_FILE);
    459 	echo \# sdldz80 settings >> $(TOOLCHAIN_DOCS_FILE);
    460 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    461 	$(BUILDDIR)/bin/sdldgb >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    462 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    463 # sdld6808
    464 	echo \@anchor sdld6808-settings >> $(TOOLCHAIN_DOCS_FILE);
    465 	echo \# sdld6808 settings >> $(TOOLCHAIN_DOCS_FILE);
    466 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    467 	$(BUILDDIR)/bin/sdldgb >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    468 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    469 # ihxcheck
    470 	echo \@anchor ihxcheck-settings >> $(TOOLCHAIN_DOCS_FILE);
    471 	echo \# ihxcheck settings >> $(TOOLCHAIN_DOCS_FILE);
    472 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    473 	$(BUILDDIR)/bin/ihxcheck -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    474 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    475 # makebin
    476 	echo \@anchor makebin-settings >> $(TOOLCHAIN_DOCS_FILE);
    477 	echo \# makebin settings >> $(TOOLCHAIN_DOCS_FILE);
    478 	echo Also see \@ref setting_mbc_and_rom_ram_banks >> $(TOOLCHAIN_DOCS_FILE);
    479 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    480 	$(BUILDDIR)/bin/makebin -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
    481 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    482 # makecom
    483 	echo \@anchor makecom-settings >> $(TOOLCHAIN_DOCS_FILE);
    484 	echo \# makecom settings >> $(TOOLCHAIN_DOCS_FILE);
    485 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    486 	$(BUILDDIR)/bin/makecom -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    487 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    488 # makenes
    489 	echo \@anchor makenes-settings >> $(TOOLCHAIN_DOCS_FILE);
    490 	echo \# makenes settings >> $(TOOLCHAIN_DOCS_FILE);
    491 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    492 	$(BUILDDIR)/bin/makenes -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
    493 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    494 # gbcompress
    495 	echo \@anchor gbcompress-settings >> $(TOOLCHAIN_DOCS_FILE);
    496 	echo \# gbcompress settings >> $(TOOLCHAIN_DOCS_FILE);
    497 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    498 	$(BUILDDIR)/bin/gbcompress -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    499 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    500 # png2asset
    501 	echo \@anchor png2asset-settings >> $(TOOLCHAIN_DOCS_FILE);
    502 	echo \# png2asset settings >> $(TOOLCHAIN_DOCS_FILE);
    503 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    504 	$(BUILDDIR)/bin/png2asset >> $(TOOLCHAIN_DOCS_FILE) 2>&1 || true
    505 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE)
    506 # png2hicolorgb
    507 	echo \@anchor png2hicolorgb-settings >> $(TOOLCHAIN_DOCS_FILE);
    508 	echo \# png2hicolorgb settings >> $(TOOLCHAIN_DOCS_FILE);
    509 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    510 	$(BUILDDIR)/bin/png2hicolorgb -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
    511 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE)
    512 # romusage
    513 	echo \@anchor romusage-settings >> $(TOOLCHAIN_DOCS_FILE);
    514 	echo \# romusage settings >> $(TOOLCHAIN_DOCS_FILE);
    515 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE);
    516 	$(BUILDDIR)/bin/romusage -h >> $(TOOLCHAIN_DOCS_FILE) 2>&1
    517 	echo \`\`\` >> $(TOOLCHAIN_DOCS_FILE)
    518 endif
    519 
    520 
    521 doxygen-clean:
    522 	rm -rf $(GBDKDOCSDIR)/api
    523 
    524 doxygen-reset:
    525 	rm -rf $(GBDKDOCSDIR)/api
    526 	git checkout $(GBDKDOCSDIR)/api
    527 

This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.