106 lines
2.5 KiB
Makefile
106 lines
2.5 KiB
Makefile
# FIXME: in-code docs needed
|
|
|
|
# FIXME: Windows doesn't support makefiles natively -> if you have a better method then please MR it or make an issue
|
|
|
|
## Syntax capture ##
|
|
|
|
all:
|
|
@ printf '%s\n' "Unknown option '$1' parsed in target all"
|
|
@ exit 2
|
|
|
|
## BUILD ##
|
|
# All build targets are expected in 'build/build-LANG' where 'LANG' is the unique identifier of the language used
|
|
# FIXME: Replace 'exit 1' with helpful messages
|
|
|
|
build:
|
|
@ printf 'FIXME: %s\n' "Build all targets if executed"
|
|
@ exit 1
|
|
|
|
# FIXME: Build in '$repodir/build/build-rustlang' instead of '$repodir/target' for multilang support
|
|
build-rustlang:
|
|
@ cargo build --verbose
|
|
|
|
build-gc:
|
|
@ # Make a build directory
|
|
@ [ ! -d build ] && { mkdir build || exit 1 ;}
|
|
@ [ ! -d build/target-gc ] && { mkdir build/build-gc || exit 1 ;}
|
|
|
|
@ # Compilation
|
|
@ ## gc is not available on github -> Using GCC
|
|
@
|
|
@ [ ! -f build/build-gc/gc-zernit ] && { gcc src/bin/main.c -o build/build-gc/gc-zernit || exit 1 ;}
|
|
@ printf '%s\n' "Compilation of target for gc finished"
|
|
|
|
# FIXME: Replace 'exit 1' with helpful messages
|
|
build-gcc:
|
|
@ # Make a build directory
|
|
@ [ ! -d build ] && { mkdir build || exit 1 ;}
|
|
@ [ ! -d build/target-gcc ] && { mkdir build/build-gcc || exit 1 ;}
|
|
|
|
@ # Compilation
|
|
@ [ ! -f build/build-gcc ] && { gc src/bin/main.c -o build/build-gcc/gcc-zernit || exit 1 ;}
|
|
@ printf '%s\n' "Compilation of target for gcc finished"
|
|
|
|
build-clang:
|
|
@ printf 'FIXME: %s\n' "translate zernit in clang"
|
|
@ exit 1
|
|
|
|
build-brainfuck:
|
|
@ printf 'FIXME: %s\n' "translate zernit in brainfuck"
|
|
@ exit 1
|
|
|
|
build-python:
|
|
@ printf 'FIXME: %s\n' "translate zernit in python"
|
|
@ exit 1
|
|
|
|
build-vlang:
|
|
@ printf 'FIXME: %s\n' "translate zernit in vlang"
|
|
@ exit 1
|
|
|
|
## CHECK/TESTS ##
|
|
|
|
check:
|
|
@ printf 'FIXME: %s\n' "Check all targets if executed"
|
|
@ exit 1
|
|
|
|
check-gc:
|
|
@ printf 'FIXME: %s\n' "Add tests for gc"
|
|
@ exit 1
|
|
|
|
check-gcc:
|
|
@ printf 'FIXME: %s\n' "Add tests for gcc"
|
|
@ exit 1
|
|
|
|
check-clang:
|
|
@ printf 'FIXME: %s\n' "Add tests for clang"
|
|
@ exit 1
|
|
|
|
check-python:
|
|
@ printf 'FIXME: %s\n' "Add tests for python"
|
|
@ exit 1
|
|
|
|
check-rustlang:
|
|
@ printf 'FIXME: %s\n' "Add tests for rustlang"
|
|
@ exit 1
|
|
|
|
check-brainfuck:
|
|
@ printf 'FIXME: %s\n' "Add tests for brainfuck"
|
|
@ exit 1
|
|
|
|
check-shell:
|
|
@ printf 'FIXME: %s\n' "Add tests for shell"
|
|
@ exit 1
|
|
|
|
check-bash:
|
|
@ printf 'FIXME: %s\n' "Add tests for bash"
|
|
@ exit 1
|
|
|
|
check-vlang:
|
|
@ printf 'FIXME: %s\n' "Add tests for vlang"
|
|
@ exit 1
|
|
|
|
## CLEAN ##
|
|
|
|
clean:
|
|
@ [ -d build ] && { rm -r build || exit 1 ;}
|
|
@ printf '%s\n' "Build directory has been cleaned"
|