34 lines
596 B
Makefile
34 lines
596 B
Makefile
|
|
SED ?= sed
|
|
AWK ?= awk
|
|
NASM ?= nasm
|
|
|
|
MUSDIR ?= mus
|
|
|
|
default: all
|
|
|
|
%/:
|
|
mkdir -p "$@"
|
|
|
|
obj/4klang.%: $(MUSDIR)/4klang.% xlatsection.awk obj/
|
|
$(AWK) -f "xlatsection.awk" "$<" > "$@"
|
|
obj/4klang.h: $(MUSDIR)/4klang.h obj/
|
|
$(SED) -E 's/extern "C"/EXTERN_C/' "$<" > "$@"
|
|
|
|
obj/4klang.o: obj/4klang.asm obj/4klang.inc
|
|
$(NASM) -g -I obj/ -f elf32 -o "$@" "$<"
|
|
|
|
obj/runner.o: src/runner.c obj/4klang.h
|
|
$(CC) -g -m32 -o "$@" -c "$<" -I obj
|
|
|
|
bin/runner: obj/runner.o obj/4klang.o bin/
|
|
$(CC) -g -m32 -o "$@" $(filter-out bin/,$^)
|
|
|
|
all: bin/runner
|
|
|
|
clean:
|
|
$(RM) -vr bin/ obj/
|
|
|
|
.PHONY: default all clean
|
|
|