diff --git a/Makefile b/Makefile index 138d3a63..bc4213a0 100644 --- a/Makefile +++ b/Makefile @@ -55,7 +55,9 @@ BUILD_DIRS += $(BUILD_DIR)/test endif # only set main compile options if none were chosen -CFLAGS += -W -Wall -O2 -D$(TARGET_OS) -Iinclude $(COPT) -DUSE_STACK_SIZE=102400 -DUSE_TIMERS +CFLAGS += -W -Wall -O2 -D$(TARGET_OS) -Iinclude $(COPT) -DUSE_STACK_SIZE=102400 + +LIBS = -lpthread -lm ifdef WITH_DEBUG CFLAGS += -g -DDEBUG_ENABLED @@ -69,9 +71,13 @@ ifdef WITH_CPP else LCC = $(CC) endif + +ifdef WITH_LUA_SHARED + WITH_LUA = 1 +endif ifdef WITH_LUA - include resources/Makefile.in-lua + include resources/Makefile.in-lua endif ifdef WITH_IPV6 @@ -79,7 +85,11 @@ ifdef WITH_IPV6 endif ifdef WITH_WEBSOCKET - CFLAGS += -DUSE_WEBSOCKET + CFLAGS += -DUSE_WEBSOCKET + ifdef WITH_LUA + CFLAGS += -DUSE_TIMERS + LIBS += -lrt + endif endif ifdef CONFIG_FILE @@ -103,22 +113,23 @@ BUILD_OBJECTS = $(addprefix $(BUILD_DIR)/, $(OBJECTS)) MAIN_OBJECTS = $(addprefix $(BUILD_DIR)/, $(APP_SOURCES:.c=.o)) LIB_OBJECTS = $(filter-out $(MAIN_OBJECTS), $(BUILD_OBJECTS)) - -LIBS = -lpthread -lm -llua5.2 -ldl -lrt - ifeq ($(TARGET_OS),LINUX) - LIBS += -ldl + LIBS += -ldl endif ifeq ($(TARGET_OS),LINUX) - CAN_INSTALL = 1 + CAN_INSTALL = 1 +endif + +ifdef WITH_LUA_SHARED + LIBS += -llua5.2 endif ifneq (, $(findstring MINGW32, $(UNAME))) - LIBS += -lws2_32 -lcomdlg32 - SHARED_LIB=dll + LIBS += -lws2_32 -lcomdlg32 + SHARED_LIB=dll else - SHARED_LIB=so + SHARED_LIB=so endif all: build diff --git a/resources/Makefile.in-lua b/resources/Makefile.in-lua index 9778297e..5b39566d 100644 --- a/resources/Makefile.in-lua +++ b/resources/Makefile.in-lua @@ -2,9 +2,23 @@ # Copyright (c) 2013 No Face Press, LLC # License http://opensource.org/licenses/mit-license.php MIT License # + +ifndef WITH_LUA + $(error WITH_LUA is not defined) +endif -LUA_DIR = src/third_party/lua-5.2.3/src - +LUA_DIR = src/third_party/lua-5.2.2/src +LUA_CFLAGS = -I$(LUA_DIR) -DLUA_COMPAT_ALL -DUSE_LUA + +ifdef WITH_LUA_SHARED + +LUA_CFLAGS += -DLUA_USE_POSIX -DLUA_USE_DLOPEN +LUA_SOURCE_FILES = + +$(info Lua linked dynamic) + +else + LUA_SOURCE_FILES = lapi.c \ lauxlib.c \ lbaselib.c \ @@ -37,14 +51,13 @@ LUA_SOURCE_FILES = lapi.c \ lundump.c \ lvm.c \ lzio.c - -LUA_SOURCE_FILES = - - - + +$(info Lua linked static) + +endif + LUA_SOURCES = $(addprefix $(LUA_DIR)/, $(LUA_SOURCE_FILES)) LUA_OBJECTS = $(LUA_SOURCES:.c=.o) -LUA_CFLAGS = -I$(LUA_DIR) -DLUA_COMPAT_ALL SQLITE_DIR = src/third_party SQLITE_SOURCE_FILES = sqlite3.c lsqlite3.c @@ -58,8 +71,7 @@ LFS_SOURCES = $(addprefix $(LFS_DIR)/, $(LFS_SOURCE_FILES)) LFS_OBJECTS = $(LFS_SOURCES:.c=.o) LFS_CFLAGS = -I$(LFS_DIR) - -OBJECTS += $(LUA_OBJECTS) $(SQLITE_OBJECTS) $(LFS_OBJECTS) -DLUA_USE_POSIX -DLUA_USE_DLOPEN -CFLAGS += $(LUA_CFLAGS) $(SQLITE_CFLAGS) $(LFS_CFLAGS) -DUSE_LUA -DUSE_LUA_SQLITE3 -DUSE_LUA_FILE_SYSTEM +OBJECTS += $(LUA_OBJECTS) $(SQLITE_OBJECTS) $(LFS_OBJECTS) +CFLAGS += $(LUA_CFLAGS) $(SQLITE_CFLAGS) $(LFS_CFLAGS) -DUSE_LUA_SQLITE3 -DUSE_LUA_FILE_SYSTEM SOURCE_DIRS = $(LUA_DIR) $(SQLITE_DIR) %(LFS_DIR)