Difference between revisions of "Build tool"
From MSX Game Library
Line 23: | Line 23: | ||
=== Path === | === Path === | ||
− | {{PARAM|ProjDir|Project directory | + | {{PARAM|ProjDir|Project directory|string|}} |
− | {{PARAM|OutDir|Intermediate files directory | + | {{PARAM|OutDir|Intermediate files directory|string|`${ProjDir}out/`}} |
− | {{PARAM|RootDir|MSXgl root directory | + | {{PARAM|RootDir|MSXgl root directory|string|}} |
− | {{PARAM|LibDir|Library directory | + | {{PARAM|LibDir|Library directory|string|`${RootDir}engine/`}} |
− | {{PARAM|ToolsDir|Tools directory | + | {{PARAM|ToolsDir|Tools directory|string|`${RootDir}tools/`}} |
=== Tools === | === Tools === | ||
− | {{PARAM|Compiler|Path to the C compile program | + | {{PARAM|Compiler|Path to the C compile program |string|`${ToolsDir}sdcc\bin\sdcc`}} |
− | {{PARAM|Assembler|Path to the assembler program | + | {{PARAM|Assembler|Path to the assembler program |string|`${ToolsDir}sdcc\bin\sdasz80`}} |
− | {{PARAM|Linker|Path to the linker program | + | {{PARAM|Linker|Path to the linker program |string|`${ToolsDir}sdcc\bin\sdcc`}} |
− | {{PARAM|MakeLib|Path to the program to generate lib file | + | {{PARAM|MakeLib|Path to the program to generate lib file |string|`${ToolsDir}sdcc\bin\sdar`;}} |
− | {{PARAM|Hex2Bin|Path to IHX to binary convertor | + | {{PARAM|Hex2Bin|Path to IHX to binary convertor |string|`${ToolsDir}MSXtk\bin\MSXhex`}} |
− | {{PARAM|MSXDOS|Path to the MSX-DOS files | + | {{PARAM|MSXDOS|Path to the MSX-DOS files |string|`${ToolsDir}build\MSXDOS`}} |
− | {{PARAM|DskTool|Path to the tool to generate DSK file | + | {{PARAM|DskTool|Path to the tool to generate DSK file |string|`${ToolsDir}build\DskTool\dsktool`}} |
− | {{PARAM|Emulator|Path to the emulator to launch the project | + | {{PARAM|Emulator|Path to the emulator to launch the project |string|}} |
− | {{PARAM|Debugger|Path to the debugger to test the project | + | {{PARAM|Debugger|Path to the debugger to test the project |string|}} |
=== Project === | === Project === | ||
Line 65: | Line 65: | ||
{{PARAM|AddSources|Additional sources to be compiled and linked with the project (array)|[]}} | {{PARAM|AddSources|Additional sources to be compiled and linked with the project (array)|[]}} | ||
− | {{PARAM|Machine|Target MSX machine version | + | {{PARAM|Machine|Target MSX machine version |string|"1"}} |
1 MSX 1 | 1 MSX 1 | ||
2 MSX 2 | 2 MSX 2 | ||
Line 74: | Line 74: | ||
3 MSX 3 (reserved) | 3 MSX 3 (reserved) | ||
− | {{PARAM|Target|Target program format | + | {{PARAM|Target|Target program format |string|"ROM_32K"}} |
BIN .bin BASIC binary program (8000h~) | BIN .bin BASIC binary program (8000h~) | ||
BIN_USR .bin BASIC USR binary driver (C000h~) | BIN_USR .bin BASIC USR binary driver (C000h~) | ||
Line 97: | Line 97: | ||
{{PARAM|ROMSize|ROM mapper total size in KB (number). Must be a multiple of 8 or 16 depending on the mapper type (from 64 to 4096)|128}} | {{PARAM|ROMSize|ROM mapper total size in KB (number). Must be a multiple of 8 or 16 depending on the mapper type (from 64 to 4096)|128}} | ||
− | {{PARAM|ROMDelayBoot|Postpone the ROM startup to let the other ROMs initialize like Disk controller or Network cartridge | + | {{PARAM|ROMDelayBoot|Postpone the ROM startup to let the other ROMs initialize like Disk controller or Network cartridge |boolean|false}} |
{{PARAM|InstallRAMISR|Select RAM in slot 0 and install ISR there (boolean). For MSX with at least 64 KB of RAM|false}} | {{PARAM|InstallRAMISR|Select RAM in slot 0 and install ISR there (boolean). For MSX with at least 64 KB of RAM|false}} | ||
Line 112: | Line 112: | ||
{{PARAM|DiskFiles|List of data files to copy to disk (array)|[]}} | {{PARAM|DiskFiles|List of data files to copy to disk (array)|[]}} | ||
− | {{PARAM|USRAddr|BASIC USR driver default address | + | {{PARAM|USRAddr|BASIC USR driver default address |number|0xC000}} |
− | {{PARAM|AppSignature|Add application signature to binary data | + | {{PARAM|AppSignature|Add application signature to binary data |boolean|false}} |
{{PARAM|AppCompany|Application company (*). Can be 2 character string or 16-bits integer|"GL"}} | {{PARAM|AppCompany|Application company (*). Can be 2 character string or 16-bits integer|"GL"}} |
Revision as of 01:46, 23 December 2022
Configuration
The Build tool configuration's parameters are defined in the engine (engine/script/js/setup_global.js) and can be modified by the user using at two levels:
- The default configuration (projects/default_config.js), commun for all the projects.
- The project configuration (projects/myProject/project_config.js), specific for a given project.
The value of the parameters redefined in a higher level replaces that of a lower level. The order of priority is: Project > Default > Engine.
Parameters
Build Tool
Verbose: Activate verbose mode and get more build information [type: boolean | default: false]
LogStdout: Output build information to the standard console [type: boolean | default: true]
LogFile: Output build information to a log file [type: boolean | default: false]
LogFileName: Name of the log file [type: string | default: "log_YYYYMMDD_HHMMSS.txt"]
Path
ProjDir: Project directory [type: string | default: ]
OutDir: Intermediate files directory [type: string | default: `${ProjDir}out/`]
RootDir: MSXgl root directory [type: string | default: ]
LibDir: Library directory [type: string | default: `${RootDir}engine/`]
ToolsDir: Tools directory [type: string | default: `${RootDir}tools/`]
Tools
Compiler: Path to the C compile program [type: string | default: `${ToolsDir}sdcc\bin\sdcc`]
Assembler: Path to the assembler program [type: string | default: `${ToolsDir}sdcc\bin\sdasz80`]
Linker: Path to the linker program [type: string | default: `${ToolsDir}sdcc\bin\sdcc`]
MakeLib: Path to the program to generate lib file [type: string | default: `${ToolsDir}sdcc\bin\sdar`;]
Hex2Bin: Path to IHX to binary convertor [type: string | default: `${ToolsDir}MSXtk\bin\MSXhex`]
MSXDOS: Path to the MSX-DOS files [type: string | default: `${ToolsDir}build\MSXDOS`]
DskTool: Path to the tool to generate DSK file [type: string | default: `${ToolsDir}build\DskTool\dsktool`]
Emulator: Path to the emulator to launch the project [type: string | default: ]
Debugger: Path to the debugger to test the project [type: string | default: ]
Project
ProjName: Project name (string). Will be use for output filename [type: "" | default: {{{4}}}]
ProjModules: List of project modules to build (array). If empty, ProjName will be added [type: [] | default: {{{4}}}]
ProjSegments: Project segments base name (string). ProjName will be used if not defined [type: "" | default: {{{4}}}]
LibModules: List of library modules to build (array) [type: [] | default: {{{4}}}]
AddSources: Additional sources to be compiled and linked with the project (array) [type: [] | default: {{{4}}}]
Machine: Target MSX machine version [type: string | default: "1"]
1 MSX 1 2 MSX 2 12 MSX 1&2 (dual support) 2K Korean MSX 2 (SC9 support) 2P MSX 2+ TR MSX turbo R 3 MSX 3 (reserved)
Target: Target program format [type: string | default: "ROM_32K"]
BIN .bin BASIC binary program (8000h~) BIN_USR .bin BASIC USR binary driver (C000h~) ROM_8K .rom 8KB ROM in page 1 (4000h ~ 5FFFh) ROM_8K_P2 .rom 8KB ROM in page 2 (8000h ~ 9FFFh) ROM_16K .rom 16KB ROM in page 1 (4000h ~ 7FFFh) ROM_16K_P2 .rom 16KB ROM in page 2 (8000h ~ BFFFh) ROM_32K .rom 32KB ROM in page 1-2 (4000h ~ BFFFh) ROM_48K .rom 48KB ROM in page 0-2 (0000h ~ BFFFh). Pages 1-2 visible at start ROM_48K_ISR .rom 48KB ROM in page 0-2 (0000h ~ BFFFh). Pages 0-2 visible at start ROM_64K .rom 64KB ROM in page 0-3 (0000h ~ FFFFh). Pages 1-2 visible at start ROM_64K_ISR .rom 64KB ROM in page 0-3 (0000h ~ FFFFh). Pages 0-2 visible at start ROM_ASCII8 .rom 128KB ROM using ASCII-8 mapper ROM_ASCII16 .rom 128KB ROM using ASCII-16 mapper ROM_KONAMI .rom 128KB ROM using Konami mapper (8KB segments) ROM_KONAMI_SCC .rom 128KB ROM using Konami SCC mapper (8KB segments) DOS1 .com MSX-DOS 1 program (0100h~) No direct acces to Main-ROM DOS2 .com MSX-DOS 2 program (0100h~) No direct acces to Main-ROM DOS2_ARG .com [WIP] MSX-DOS 2 program (using command line arguments ; 0100h~) No direct acces to Main-ROM.
More detail: Targets
ROMSize: ROM mapper total size in KB (number). Must be a multiple of 8 or 16 depending on the mapper type (from 64 to 4096) [type: 128 | default: {{{4}}}]
ROMDelayBoot: Postpone the ROM startup to let the other ROMs initialize like Disk controller or Network cartridge [type: boolean | default: false]
InstallRAMISR: Select RAM in slot 0 and install ISR there (boolean). For MSX with at least 64 KB of RAM [type: false | default: {{{4}}}]
CustomISR: Type of custom ISR to install (string). ISR is install in RAM or ROM depending on Target and InstallRAMISR parameters [type: VBLANK | default: {{{4}}}]
VBLANK V-blank handler VHBLANK V-blank and h-blank handler (V9938 or V9958) V9990 v-blank, h-blank and command end handler (V9990)
BankedCall: Use automatic banked call and trampoline functions (boolean). For mapped ROM [type: false | default: {{{4}}}]
ForceRamAddr: Overwrite RAM starting address (number). For example. 0xE0000 for 8K RAM machine [type: 0 | default: {{{4}}}]
DiskFiles: List of data files to copy to disk (array) [type: [] | default: {{{4}}}]
USRAddr: BASIC USR driver default address [type: number | default: 0xC000]
AppSignature: Add application signature to binary data [type: boolean | default: false]
AppCompany: Application company (*). Can be 2 character string or 16-bits integer [type: "GL" | default: {{{4}}}]
AppID: Application ID. Can be 2 character string or 16-bits integer (0~65535) [type: 0 | default: {{{4}}}]
AppExtra: Application extra data (array). Comma-separated bytes starting with data size [type: [] | default: {{{4}}}]