# -*- mode:makefile -*-

init(lisp, lisp)

option(PLAT, "`platform to build for: either linux or bluejay'", linux)

# preset(optimize)
preset(32)
preset(debug)
preset(warn)
preset(nasm)

archetype(c)
archetype(asm)

CFLAGS += -Ivendor/luajit/dynasm
ASMFLAGS += -felf -Fdwarf

OBJECTS = main.o \
			lisp.o \
			compiler.o \
			lib/std.o \
			plat/linux.o \
			istream.o \
			gc.o \
			call_list.o

LUA = vendor/luajit/src/host/minilua

$(LUA): vendor/luajit/src/host/minilua.c
	status_log(CC, $<)
	@$(CC) $< -o $@ -lm

compiler.c: compiler.dasc | $(LUA)
	status_log(DYNASM, $<)
	@$(LUA) vendor/luajit/dynasm/dynasm.lua -o $@ $<

type(executable)

F ?= test.lisp
lisp_libpath = $(ROOT)/lib/lisp

run: lisp
	status_log(LISP, $(F))
	@LISP_LIBRARY_PATH="$(lisp_libpath)" ./lisp $(F)

leak-check: lisp
	status_log(VALGRIND, lisp $(F))
	@LISP_LIBRARY_PATH="$(lisp_libpath)" valgrind --leak-check=full ./lisp $(F)

format:
	status_log(FORMAT, *)
	@clang-format -i *.c *.h *.dasc plat/* lib/*

finish
