diff options
Diffstat (limited to 'src/Makefile')
-rw-r--r-- | src/Makefile | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/src/Makefile b/src/Makefile index e90edb3..208b35b 100644 --- a/src/Makefile +++ b/src/Makefile @@ -34,8 +34,6 @@ include include.mk endif EXECUTABLE := anylike -LUA_OBJ := $(EXECUTABLE).lc -LUA_OBJ_INCLUDE := $(EXECUTABLE)_lua_bytecode.h # sysexec.o \ @@ -53,41 +51,38 @@ C_SRCS := $(C_OBJS:%.o=%.c) LUA_SRCS := main_loop.lua \ echo_server.lua -.PHONY: clean cleanall distclean manpage install install-bin install-etc install-man uninstall remove purge - -all: $(EXECUTABLE) $(LUA_OBJ) +LUA_BYTECODE := $(EXECUTABLE).lc +LUA_BYTECODE_OBJ := $(EXECUTABLE)_lua_bytecode.o -define create-d-file - @set -e; rm -f $1; \ - $(CC) -MM $(CFLAGS) $2 > $1.$$$$; \ - sed 's,\($*\)\.o[ :]*,\1.o $1 : ,g' < $1.$$$$ > $1; \ - rm -f $1.$$$$; echo '(re)building $1' -endef +.PHONY: clean cleanall distclean manpage install install-bin install-etc install-man uninstall remove purge -anylike.d: anylike.c $(LUA_OBJ_INCLUDE) - $(call create-d-file,$@,$<) +all: $(EXECUTABLE) %.d: %.c - $(call create-d-file,$@,$<) + @set -e; rm -f $@; \ + $(CC) -MM $(CFLAGS) $< > $@.$$$$; \ + sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$; echo '(re)building $@' ifneq ($(MAKECMDGOALS),distclean) -include $(C_SRCS:%.c=%.d) endif -$(EXECUTABLE): $(C_OBJS) - $(CC) $(C_OBJS) -o $@ $(LDFLAGS) +$(EXECUTABLE): $(C_OBJS) $(LUA_BYTECODE_OBJ) + $(CC) $(C_OBJS) $(LUA_BYTECODE_OBJ) -o $@ $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c $< -$(LUA_OBJ): $(LUA_SRCS) +$(LUA_BYTECODE): $(LUA_SRCS) $(LUAC) -o $@ $(LUA_SRCS) -$(LUA_OBJ_INCLUDE): $(LUA_OBJ) - $(LUA) ../tools/bin2c.lua $(LUA_OBJ) $(LUA_OBJ_INCLUDE:%.h=%) > $@ +$(LUA_BYTECODE_OBJ): $(LUA_BYTECODE) + $(LUA) ../tools/bin2c.lua $(LUA_BYTECODE) $(@:%.o=%) > $(@:%.o=%.c) + $(CC) $(@:%.o=%.c) -c -o $@ -strip: $(EXECUTABLE) $(LUA_OBJ) - $(LUAC) -s -o $(LUA_OBJ) $(LUA_OBJ) +strip: $(EXECUTABLE) $(LUA_BYTECODE) + $(LUAC) -s -o $(LUA_BYTECODE) $(LUA_BYTECODE) $(MAKE) $(STRIP) -s $(EXECUTABLE) @@ -102,8 +97,9 @@ clean: rm -f *.o rm -f *.d rm -f *.d.* - rm -f *.lc - rm -f $(LUA_OBJ_INCLUDE) + rm -f $(LUA_BYTECODE) + rm -f $(LUA_BYTECODE_OBJ) + rm -f $(LUA_BYTECODE_OBJ:%.o=%.c) rm -f $(EXECUTABLE) cleanall: clean |