xref: /OK3568_Linux_fs/buildroot/package/luajit/luajit.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun################################################################################
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# luajit
4*4882a593Smuzhiyun#
5*4882a593Smuzhiyun################################################################################
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunLUAJIT_VERSION = 05f1984e1a862e4b3d3c3b370c773492e2edf84a
8*4882a593SmuzhiyunLUAJIT_SITE = $(call github,LuaJIT,LuaJIT,$(LUAJIT_VERSION))
9*4882a593SmuzhiyunLUAJIT_LICENSE = MIT
10*4882a593SmuzhiyunLUAJIT_LICENSE_FILES = COPYRIGHT
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunLUAJIT_INSTALL_STAGING = YES
13*4882a593Smuzhiyun
14*4882a593SmuzhiyunLUAJIT_PROVIDES = luainterpreter
15*4882a593Smuzhiyun
16*4882a593Smuzhiyunifeq ($(BR2_PACKAGE_LUAJIT_COMPAT52),y)
17*4882a593SmuzhiyunLUAJIT_XCFLAGS += -DLUAJIT_ENABLE_LUA52COMPAT
18*4882a593Smuzhiyunendif
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun# The luajit build procedure requires the host compiler to have the
21*4882a593Smuzhiyun# same bitness as the target compiler. Therefore, on a x86 build
22*4882a593Smuzhiyun# machine, we can't build luajit for x86_64, which is checked in
23*4882a593Smuzhiyun# Config.in. When the target is a 32 bits target, we pass -m32 to
24*4882a593Smuzhiyun# ensure that even on 64 bits build machines, a compiler of the same
25*4882a593Smuzhiyun# bitness is used. Of course, this assumes that the 32 bits multilib
26*4882a593Smuzhiyun# libraries are installed.
27*4882a593Smuzhiyunifeq ($(BR2_ARCH_IS_64),y)
28*4882a593SmuzhiyunLUAJIT_HOST_CC = $(HOSTCC)
29*4882a593Smuzhiyun# There is no LUAJIT_ENABLE_GC64 option.
30*4882a593Smuzhiyunelse
31*4882a593SmuzhiyunLUAJIT_HOST_CC = $(HOSTCC) -m32
32*4882a593SmuzhiyunLUAJIT_XCFLAGS += -DLUAJIT_DISABLE_GC64
33*4882a593Smuzhiyunendif
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun# We unfortunately can't use TARGET_CONFIGURE_OPTS, because the luajit
36*4882a593Smuzhiyun# build system uses non conventional variable names.
37*4882a593Smuzhiyundefine LUAJIT_BUILD_CMDS
38*4882a593Smuzhiyun	$(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" \
39*4882a593Smuzhiyun		STATIC_CC="$(TARGET_CC)" \
40*4882a593Smuzhiyun		DYNAMIC_CC="$(TARGET_CC) -fPIC" \
41*4882a593Smuzhiyun		TARGET_LD="$(TARGET_CC)" \
42*4882a593Smuzhiyun		TARGET_AR="$(TARGET_AR) rcus" \
43*4882a593Smuzhiyun		TARGET_STRIP=true \
44*4882a593Smuzhiyun		TARGET_CFLAGS="$(TARGET_CFLAGS)" \
45*4882a593Smuzhiyun		TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
46*4882a593Smuzhiyun		HOST_CC="$(LUAJIT_HOST_CC)" \
47*4882a593Smuzhiyun		HOST_CFLAGS="$(HOST_CFLAGS)" \
48*4882a593Smuzhiyun		HOST_LDFLAGS="$(HOST_LDFLAGS)" \
49*4882a593Smuzhiyun		BUILDMODE=dynamic \
50*4882a593Smuzhiyun		XCFLAGS="$(LUAJIT_XCFLAGS)" \
51*4882a593Smuzhiyun		-C $(@D) amalg
52*4882a593Smuzhiyunendef
53*4882a593Smuzhiyun
54*4882a593Smuzhiyundefine LUAJIT_INSTALL_STAGING_CMDS
55*4882a593Smuzhiyun	$(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" LDCONFIG=true -C $(@D) install
56*4882a593Smuzhiyunendef
57*4882a593Smuzhiyun
58*4882a593Smuzhiyundefine LUAJIT_INSTALL_TARGET_CMDS
59*4882a593Smuzhiyun	$(TARGET_MAKE_ENV) $(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" LDCONFIG=true -C $(@D) install
60*4882a593Smuzhiyunendef
61*4882a593Smuzhiyun
62*4882a593Smuzhiyundefine LUAJIT_INSTALL_SYMLINK
63*4882a593Smuzhiyun	ln -fs luajit $(TARGET_DIR)/usr/bin/lua
64*4882a593Smuzhiyunendef
65*4882a593SmuzhiyunLUAJIT_POST_INSTALL_TARGET_HOOKS += LUAJIT_INSTALL_SYMLINK
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun# host-efl package needs host-luajit to be linked dynamically.
68*4882a593Smuzhiyundefine HOST_LUAJIT_BUILD_CMDS
69*4882a593Smuzhiyun	$(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" BUILDMODE=dynamic \
70*4882a593Smuzhiyun		TARGET_LDFLAGS="$(HOST_LDFLAGS)" \
71*4882a593Smuzhiyun		XCFLAGS="$(LUAJIT_XCFLAGS)" \
72*4882a593Smuzhiyun		-C $(@D) amalg
73*4882a593Smuzhiyunendef
74*4882a593Smuzhiyun
75*4882a593Smuzhiyundefine HOST_LUAJIT_INSTALL_CMDS
76*4882a593Smuzhiyun	$(HOST_MAKE_ENV) $(MAKE) PREFIX="$(HOST_DIR)" LDCONFIG=true -C $(@D) install
77*4882a593Smuzhiyunendef
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun$(eval $(generic-package))
80*4882a593Smuzhiyun$(eval $(host-generic-package))
81