diff options
| author | KonAki <konaki@anokonaki.org> | 2026-10-08 11:59:46 +0800 |
|---|---|---|
| committer | KonAki <konaki@anokonaki.org> | 2026-10-08 11:59:46 +0800 |
| commit | ee4dee0e687bd9a6ae88736aac1fa112cbbde3bd (patch) | |
| tree | 9bb0ccabeb56f048d9a56a1741f48467fedc2040 /build.sh | |
| parent | 8788136530b389135487de52241979c1053c3f41 (diff) | |
Add konassets asset manager, image/audio modules, fix build
Diffstat (limited to 'build.sh')
| -rwxr-xr-x[-rw-r--r--] | build.sh | 43 |
1 files changed, 35 insertions, 8 deletions
@@ -7,20 +7,22 @@ platform=native mode=release objdir=obj modules= +developer=0 usage() { - echo "usage: build.sh [-d] [-p platform] [-m module,...] [-o objdir] [target ...]" - echo "modules: font toml tile" + echo "usage: build.sh [-d] [-D] [-p platform] [-m module,...] [-o objdir] [target ...]" + echo "modules: font toml tile pack assets image audio" echo "platforms: native linux bsd windows" - echo "targets: all run clean" + echo "targets: all run clean tools pack" exit 1 } -while getopts dm:o:p: opt; do +while getopts dDm:o:p: opt; do case $opt in d) mode=debug ;; - m) modules=$OPTARG ;; + D) developer=1 ;; + m) modules="$modules $(echo "$OPTARG" | tr ',' ' ')" ;; o) objdir=$OPTARG ;; p) platform=$OPTARG ;; *) usage ;; @@ -56,19 +58,44 @@ esac if [ $mode = debug ]; then MODEFLAGS="-g -O0 -DKON_DEBUG" + developer=1 else MODEFLAGS="-O2 -DNDEBUG" fi +[ $developer = 1 ] && MODEFLAGS="$MODEFLAGS -DKON_DEVELOPER" MODOBJS= -for m in $(echo "$modules" | tr ',' ' '); do + +addobj() +{ + case " $MODOBJS " in + *" $objdir/$1.o "*) ;; + *) MODOBJS="$MODOBJS $objdir/$1.o" ;; + esac +} + +for m in $modules; do DEFS="$DEFS -DKON_MODULE_$(echo "$m" | tr 'a-z' 'A-Z')" case $m in - font|toml|tile) MODOBJS="$MODOBJS $objdir/kon$m.o" ;; + font|toml|tile|pack) addobj "kon$m" ;; + assets) addobj konassets ;; + image) addobj stb_image ;; + audio) + addobj miniaudio + addobj konaudio + case $platform in + linux) LDLIBS="$LDLIBS -lpthread -ldl" ;; + bsd) LDLIBS="$LDLIBS -lpthread" ;; + esac + ;; *) echo "build.sh: unknown module '$m'" >&2; usage ;; esac done +case " $modules " in +*" assets "*) addobj konpack ;; +esac + OBJDIR=$objdir export CC EXE LDLIBS MODEFLAGS DEFS OBJDIR MODOBJS @@ -79,5 +106,5 @@ if [ "$(cat "$OBJDIR/.flags" 2>/dev/null)" != "$flags" ]; then echo "$flags" > "$OBJDIR/.flags" fi -echo "===> platform $platform, $mode build, modules: ${modules:-none}" +echo "===> platform $platform, $mode build, modules:${modules:- none}" exec ${MAKE:-make} ${*:-all} |
