# requires lua, curl and zlib (in the future, lua will be statically linked) libraries := -llua -lcurl -lz flags := -Wall # lua is required in the build process, in order to compile the bytecode lua := lua cc := gcc dst_dir = dst src_lua_dir = src src_c_dir = lib # Uncomment to get debugging symbols # flags := -g lua_sources += $(wildcard $(src_lua_dir)/*.lua) lua_sources += $(wildcard $(src_lua_dir)/cli/*.lua) lua_sources += $(wildcard $(src_lua_dir)/formats/*.lua) lua_sources += $(wildcard $(src_lua_dir)/util/*.lua) c_sources = $(wildcard $(src_c_dir)/*.c) build_entry = $(src_c_dir)/build.lua target = $(dst_dir)/slimpack bytecode_target = $(dst_dir)/bytecode.h .PHONY: build build: $(target) $(dst_dir): mkdir -p $@ $(bytecode_target): $(lua_sources) $(dst_dir) lua lib/build.lua src $@ $(lua_sources) $(target): $(c_sources) $(bytecode_target) $(dst_dir) gcc $(flags) $(libraries) -include $(bytecode_target) $(c_sources) -o $@