Files
libsm64/configure
T

51 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
cd "$(dirname "${BASH_SOURCE[0]}")"
CC='cc -g'
CFLAGS='-Wall -fPIC'
BIN_FILE='libsm64.so'
LDFLAGS=''
prepare() {
git submodule update --init --recursive
./extract-decomp-source.py
}
c_to_obj() {
printf 'build/'
echo "$1" | sed 's/cp*$/o/;s:/:_:g'
}
make_cmd() {
local obj_file="$(c_to_obj "$1")"
$CC $CFLAGS -MM -MT "$obj_file" -c "$1"
echo -e "\t$CC $CFLAGS -o $obj_file -c $1"
}
file_list() {
find src -iname '*.c'
}
print_makefile() {
local all_objs=''
for f in $(file_list); do
all_objs="$all_objs $(c_to_obj $f)"
done
echo "$BIN_FILE: $all_objs"
echo -e "\t$CC -shared -o $BIN_FILE $all_objs $LDFLAGS"
for f in $(file_list); do
make_cmd "$f"
done
echo -e "src/mario/geo.inc.c: extract-decomp-source.py\n\t ./extract-decomp-source.py"
echo -e "src/mario/model.inc.c: extract-decomp-source.py\n\t ./extract-decomp-source.py"
echo '.PHONY: clean run .FORCE'
echo -e "clean:\n\t find . -iname '*.o' | xargs rm && rm -f ./$BIN_FILE"
}
prepare
mkdir -p build
print_makefile > Makefile