Ver código fonte

Lua: dynamic or static build

bel 10 anos atrás
pai
commit
559a6ea45e
2 arquivos alterados com 45 adições e 22 exclusões
  1. 22 11
      Makefile
  2. 23 11
      resources/Makefile.in-lua

+ 22 - 11
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

+ 23 - 11
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)