slimpack/Makefile

39 lines
953 B
Makefile

# 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 $@