summaryrefslogtreecommitdiffstats
path: root/package/lua/lua.mk
blob: 598eea140cb0221425666c8a1795a1b82634a930 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#############################################################
#
# lua
#
#############################################################

LUA_VERSION = 5.1.4
LUA_SITE = http://www.lua.org/ftp
LUA_INSTALL_STAGING = YES

ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y)
	LUA_MYCFLAGS += -fPIC -DLUA_USE_DLOPEN
	LUA_MYLIBS += -ldl
endif

ifeq ($(BR2_PACKAGE_LUA_INTERPRETER_READLINE),y)
	LUA_DEPENDENCIES = readline ncurses
	LUA_MYLIBS += -lreadline -lhistory -lncurses
	LUA_MYCFLAGS += -DLUA_USE_LINUX
else
	LUA_MYCFLAGS += -DLUA_USE_POSIX
endif

define LUA_BUILD_CMDS
	sed -i -e 's/-O2//' $(@D)/src/Makefile
	sed -i -e 's/\/usr\/local/\/usr/' $(@D)/etc/lua.pc
	$(MAKE) \
	CC="$(TARGET_CC)" RANLIB="$(TARGET_RANLIB)" \
	MYCFLAGS="$(TARGET_CFLAGS) $(LUA_MYCFLAGS)" \
	MYLIBS="$(LUA_MYLIBS)" AR="$(TARGET_CROSS)ar rcu" \
	PKG_VERSION=$(LUA_VERSION) -C $(@D)/src all
endef

ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y)
define LUA_INSTALL_STAGING_SHARED_LIB
	$(INSTALL) -D $(@D)/src/liblua.so.$(LUA_VERSION) \
		$(STAGING_DIR)/usr/lib/liblua.so.$(LUA_VERSION)
	ln -sf liblua.so.$(LUA_VERSION) $(STAGING_DIR)/usr/lib/liblua.so
endef
endif

define LUA_INSTALL_STAGING_CMDS
	$(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \
		$(STAGING_DIR)/usr/lib/pkgconfig/lua.pc
	$(INSTALL) $(@D)/src/liblua.a $(STAGING_DIR)/usr/lib
	$(INSTALL) $(@D)/src/lua $(STAGING_DIR)/usr/bin
	$(INSTALL) $(@D)/src/luac $(STAGING_DIR)/usr/bin
	$(INSTALL) $(@D)/src/lua.h $(STAGING_DIR)/usr/include
	$(INSTALL) $(@D)/src/luaconf.h $(STAGING_DIR)/usr/include
	$(INSTALL) $(@D)/src/lualib.h $(STAGING_DIR)/usr/include
	$(INSTALL) $(@D)/src/lauxlib.h $(STAGING_DIR)/usr/include
endef

ifeq ($(BR2_PACKAGE_LUA_INTERPRETER),y)
define LUA_INSTALL_INTERPRETER
	$(INSTALL) $(@D)/src/lua $(TARGET_DIR)/usr/bin
endef
endif

ifeq ($(BR2_PACKAGE_LUA_COMPILER),y)
define LUA_INSTALL_COMPILER
	$(INSTALL) $(@D)/src/luac $(TARGET_DIR)/usr/bin
endef
endif

ifeq ($(BR2_PACKAGE_LUA_SHARED_LIBRARY),y)
define LUA_INSTALL_LIBRARY
	$(INSTALL) $(@D)/src/liblua.so.$(LUA_VERSION) \
		$(TARGET_DIR)/usr/lib/liblua.so.$(LUA_VERSION)
	ln -sf liblua.so.$(LUA_VERSION) $(TARGET_DIR)/usr/lib/liblua.so
	$(INSTALL) $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a
endef
else
define LUA_INSTALL_LIBRARY
	$(INSTALL) $(@D)/src/liblua.a $(TARGET_DIR)/usr/lib/liblua.a
endef
endif

ifeq ($(BR2_HAVE_DEVFILES),y)
define LUA_INSTALL_DEVFILES
	$(INSTALL) -m 0644 -D $(@D)/etc/lua.pc \
		$(TARGET_DIR)/usr/lib/pkgconfig/lua.pc
	$(INSTALL) $(@D)/src/lua.h $(TARGET_DIR)/usr/include
	$(INSTALL) $(@D)/src/luaconf.h $(TARGET_DIR)/usr/include
	$(INSTALL) $(@D)/src/lualib.h $(TARGET_DIR)/usr/include
	$(INSTALL) $(@D)/src/lauxlib.h $(TARGET_DIR)/usr/include
endef
endif

define LUA_INSTALL_TARGET_CMDS
	$(LUA_INSTALL_INTERPRETER)
	$(LUA_INSTALL_COMPILER)
	$(LUA_INSTALL_LIBRARY)
	$(LUA_INSTALL_DEVFILES)
endef

LUA_INSTALLED_FILES = \
	/usr/include/lua.h \
	/usr/include/luaconf.h \
	/usr/include/lualib.h \
	/usr/include/lauxlib.h \
	/usr/lib/pkgconfig/lua.pc \
	/usr/bin/lua \
	/usr/bin/luac \
	/usr/lib/liblua.a \
	/usr/lib/liblua.so*

define LUA_UNINSTALL_STAGING_CMDS
	for i in $(LUA_INSTALLED_FILES); do \
		rm -f $(STAGING_DIR)$$i; \
	done
endef

define LUA_UNINSTALL_TARGET_CMDS
	for i in $(LUA_INSTALLED_FILES); do \
		rm -f $(TARGET_DIR)$$i; \
	done
endef

define LUA_CLEAN_CMDS
	-$(MAKE) -C $(@D) clean
endef

$(eval $(call GENTARGETS,package,lua))