Jelajahi Sumber

Merge pull request #43 from Bernhard-/master

Use liblua5.2.so for Lua
bel2125 10 tahun lalu
induk
melakukan
6a1acc64a6
2 mengubah file dengan 46 tambahan dan 18 penghapusan
  1. 24 12
      Makefile
  2. 22 6
      resources/Makefile.in-lua

+ 24 - 12
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)
+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
-
 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
@@ -133,7 +144,8 @@ help:
 	@echo "make unit_test           build unit tests executable"
 	@echo ""
 	@echo " Make Options"
-	@echo "   WITH_LUA=1            build with Lua support"
+	@echo "   WITH_LUA=1            build with Lua support; include Lua as static library"
+	@echo "   WITH_LUA_SHARED=1     build with Lua support; use dynamic linking to liblua5.2.so"
 	@echo "   WITH_DEBUG=1          build with GDB debug support"
 	@echo "   WITH_IPV6=1           with IPV6 support"
 	@echo "   WITH_WEBSOCKET=1      build with web socket support"

+ 22 - 6
resources/Makefile.in-lua

@@ -1,11 +1,25 @@
-# 
+#
 # 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_SOURCE_FILES = lapi.c  \
+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: using dynamic linking)
+
+else
+
+  LUA_SOURCE_FILES = lapi.c  \
     lauxlib.c \
     lbaselib.c  \
     lbitlib.c  \
@@ -37,10 +51,13 @@ LUA_SOURCE_FILES = lapi.c  \
     lundump.c \
     lvm.c  \
     lzio.c
+
+  $(info Lua: using static library)
+
+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
@@ -54,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)
-CFLAGS += $(LUA_CFLAGS) $(SQLITE_CFLAGS) $(LFS_CFLAGS) -DUSE_LUA -DUSE_LUA_SQLITE3 -DUSE_LUA_FILE_SYSTEM
+CFLAGS += $(LUA_CFLAGS) $(SQLITE_CFLAGS) $(LFS_CFLAGS) -DUSE_LUA_SQLITE3 -DUSE_LUA_FILE_SYSTEM
 SOURCE_DIRS = $(LUA_DIR) $(SQLITE_DIR) %(LFS_DIR)