2013-06-06 01:53:30 +02:00
|
|
|
################################################################################
|
2012-07-18 15:59:10 +02:00
|
|
|
#
|
|
|
|
# luajit
|
|
|
|
#
|
2013-06-06 01:53:30 +02:00
|
|
|
################################################################################
|
2012-07-18 15:59:10 +02:00
|
|
|
|
2014-03-12 21:42:27 +01:00
|
|
|
LUAJIT_VERSION = 2.0.3
|
.mk files: bulk aligment and whitespace cleanup of assignments
The Buildroot coding style defines one space around make assignments and
does not align the assignment symbols.
This patch does a bulk fix of offending packages. The package
infrastructures (or more in general assignments to calculated variable
names, like $(2)_FOO) are not touched.
Alignment of line continuation characters (\) is kept as-is.
The sed command used to do this replacement is:
find * -name "*.mk" | xargs sed -i \
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#'
Brief explanation of this command:
^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line
\([?:+]\?=\) any assignment character =, :=, ?=, +=
\([^\\]\+\) any string not containing a line continuation
\([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a
line continuation character
\(\s*\\\) optional whitespace, followed by a line
continuation character
Hence, the first subexpression handles empty assignments, the second
handles regular assignments, the third handles regular assignments with
line continuation, and the fourth empty assignments with line
continuation.
This expression was tested on following test text: (initial tab not
included)
FOO = spaces before
FOO = spaces before and after
FOO = tab before
FOO = tab and spaces before
FOO = tab after
FOO = tab and spaces after
FOO = spaces and tab after
FOO = \
FOO = bar \
FOO = bar space \
FOO = \
GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse
FOO += spaces before
FOO ?= spaces before and after
FOO :=
FOO =
FOO =
FOO =
FOO =
$(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C
AT91BOOTSTRAP3_DEFCONFIG = \
AXEL_DISABLE_I18N=--i18n=0
After this bulk change, following manual fixups were done:
- fix line continuation alignment in cegui06 and spice (the sed
expression leaves the number of whitespace between the value and line
continuation character intact, but the whitespace before that could have
changed, causing misalignment.
- qt5base was reverted, as this package uses extensive alignment which
actually makes the code more readable.
Finally, the end result was manually reviewed.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Cc: Yann E. Morin <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-07 09:06:03 +02:00
|
|
|
LUAJIT_SOURCE = LuaJIT-$(LUAJIT_VERSION).tar.gz
|
|
|
|
LUAJIT_SITE = http://luajit.org/download
|
2012-08-06 07:46:39 +02:00
|
|
|
LUAJIT_LICENSE = MIT
|
|
|
|
LUAJIT_LICENSE_FILES = COPYRIGHT
|
2012-07-18 15:59:10 +02:00
|
|
|
|
|
|
|
LUAJIT_INSTALL_STAGING = YES
|
|
|
|
|
2014-05-15 19:37:05 +02:00
|
|
|
LUAJIT_PROVIDES = luainterpreter
|
|
|
|
|
2012-07-18 15:59:10 +02:00
|
|
|
ifneq ($(BR2_LARGEFILE),y)
|
2012-10-18 10:56:39 +02:00
|
|
|
LUAJIT_NO_LARGEFILE = TARGET_LFSFLAGS=
|
2012-07-18 15:59:10 +02:00
|
|
|
endif
|
|
|
|
|
2014-12-03 22:41:29 +01:00
|
|
|
ifeq ($(BR2_STATIC_LIBS),y)
|
2014-03-01 18:23:04 +01:00
|
|
|
LUAJIT_BUILDMODE = static
|
|
|
|
else
|
|
|
|
LUAJIT_BUILDMODE = dynamic
|
|
|
|
endif
|
|
|
|
|
2012-07-18 15:59:10 +02:00
|
|
|
# The luajit build procedure requires the host compiler to have the
|
|
|
|
# same bitness as the target compiler. Therefore, on a x86 build
|
|
|
|
# machine, we can't build luajit for x86_64, which is checked in
|
|
|
|
# Config.in. When the target is a 32 bits target, we pass -m32 to
|
|
|
|
# ensure that even on 64 bits build machines, a compiler of the same
|
|
|
|
# bitness is used. Of course, this assumes that the 32 bits multilib
|
|
|
|
# libraries are installed.
|
|
|
|
ifeq ($(BR2_ARCH_IS_64),y)
|
.mk files: bulk aligment and whitespace cleanup of assignments
The Buildroot coding style defines one space around make assignments and
does not align the assignment symbols.
This patch does a bulk fix of offending packages. The package
infrastructures (or more in general assignments to calculated variable
names, like $(2)_FOO) are not touched.
Alignment of line continuation characters (\) is kept as-is.
The sed command used to do this replacement is:
find * -name "*.mk" | xargs sed -i \
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#'
Brief explanation of this command:
^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line
\([?:+]\?=\) any assignment character =, :=, ?=, +=
\([^\\]\+\) any string not containing a line continuation
\([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a
line continuation character
\(\s*\\\) optional whitespace, followed by a line
continuation character
Hence, the first subexpression handles empty assignments, the second
handles regular assignments, the third handles regular assignments with
line continuation, and the fourth empty assignments with line
continuation.
This expression was tested on following test text: (initial tab not
included)
FOO = spaces before
FOO = spaces before and after
FOO = tab before
FOO = tab and spaces before
FOO = tab after
FOO = tab and spaces after
FOO = spaces and tab after
FOO = \
FOO = bar \
FOO = bar space \
FOO = \
GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse
FOO += spaces before
FOO ?= spaces before and after
FOO :=
FOO =
FOO =
FOO =
FOO =
$(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C
AT91BOOTSTRAP3_DEFCONFIG = \
AXEL_DISABLE_I18N=--i18n=0
After this bulk change, following manual fixups were done:
- fix line continuation alignment in cegui06 and spice (the sed
expression leaves the number of whitespace between the value and line
continuation character intact, but the whitespace before that could have
changed, causing misalignment.
- qt5base was reverted, as this package uses extensive alignment which
actually makes the code more readable.
Finally, the end result was manually reviewed.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Cc: Yann E. Morin <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-07 09:06:03 +02:00
|
|
|
LUAJIT_HOST_CC = $(HOSTCC)
|
2012-07-18 15:59:10 +02:00
|
|
|
else
|
.mk files: bulk aligment and whitespace cleanup of assignments
The Buildroot coding style defines one space around make assignments and
does not align the assignment symbols.
This patch does a bulk fix of offending packages. The package
infrastructures (or more in general assignments to calculated variable
names, like $(2)_FOO) are not touched.
Alignment of line continuation characters (\) is kept as-is.
The sed command used to do this replacement is:
find * -name "*.mk" | xargs sed -i \
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*$#\1 \2#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\]\+\)$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\s*\([^\\ \t]\+\s*\\\)\s*$#\1 \2 \3#'
-e 's#^\([A-Z0-9a-z_]\+\)\s*\([?:+]\?=\)\(\s*\\\)#\1 \2\3#'
Brief explanation of this command:
^\([A-Z0-9a-z_]\+\) a regular variable at the beginning of the line
\([?:+]\?=\) any assignment character =, :=, ?=, +=
\([^\\]\+\) any string not containing a line continuation
\([^\\ \t]\+\s*\\\) string, optional whitespace, followed by a
line continuation character
\(\s*\\\) optional whitespace, followed by a line
continuation character
Hence, the first subexpression handles empty assignments, the second
handles regular assignments, the third handles regular assignments with
line continuation, and the fourth empty assignments with line
continuation.
This expression was tested on following test text: (initial tab not
included)
FOO = spaces before
FOO = spaces before and after
FOO = tab before
FOO = tab and spaces before
FOO = tab after
FOO = tab and spaces after
FOO = spaces and tab after
FOO = \
FOO = bar \
FOO = bar space \
FOO = \
GENIMAGE_DEPENDENCIES = host-pkgconf libconfuse
FOO += spaces before
FOO ?= spaces before and after
FOO :=
FOO =
FOO =
FOO =
FOO =
$(MAKE1) CROSS_COMPILE=$(TARGET_CROSS) -C
AT91BOOTSTRAP3_DEFCONFIG = \
AXEL_DISABLE_I18N=--i18n=0
After this bulk change, following manual fixups were done:
- fix line continuation alignment in cegui06 and spice (the sed
expression leaves the number of whitespace between the value and line
continuation character intact, but the whitespace before that could have
changed, causing misalignment.
- qt5base was reverted, as this package uses extensive alignment which
actually makes the code more readable.
Finally, the end result was manually reviewed.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Cc: Yann E. Morin <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-10-07 09:06:03 +02:00
|
|
|
LUAJIT_HOST_CC = $(HOSTCC) -m32
|
2012-07-18 15:59:10 +02:00
|
|
|
endif
|
|
|
|
|
|
|
|
# We unfortunately can't use TARGET_CONFIGURE_OPTS, because the luajit
|
|
|
|
# build system uses non conventional variable names.
|
|
|
|
define LUAJIT_BUILD_CMDS
|
|
|
|
$(MAKE) PREFIX="/usr" \
|
|
|
|
STATIC_CC="$(TARGET_CC)" \
|
|
|
|
DYNAMIC_CC="$(TARGET_CC) -fPIC" \
|
|
|
|
TARGET_LD="$(TARGET_CC)" \
|
|
|
|
TARGET_AR="$(TARGET_AR) rcus" \
|
2014-03-01 18:23:02 +01:00
|
|
|
TARGET_STRIP=true \
|
2012-08-15 03:25:30 +02:00
|
|
|
TARGET_CFLAGS="$(TARGET_CFLAGS)" \
|
|
|
|
TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
|
2012-07-18 15:59:10 +02:00
|
|
|
HOST_CC="$(LUAJIT_HOST_CC)" \
|
|
|
|
HOST_CFLAGS="$(HOST_CFLAGS)" \
|
|
|
|
HOST_LDFLAGS="$(HOST_LDFLAGS)" \
|
2012-10-18 10:56:39 +02:00
|
|
|
$(LUAJIT_NO_LARGEFILE) \
|
2014-03-01 18:23:04 +01:00
|
|
|
BUILDMODE=$(LUAJIT_BUILDMODE) \
|
2012-07-18 15:59:10 +02:00
|
|
|
-C $(@D) amalg
|
|
|
|
endef
|
|
|
|
|
|
|
|
define LUAJIT_INSTALL_STAGING_CMDS
|
luajit: pass LDCONFIG=true to make sure dynamic library links are created
To install its shared library, the luajit Makefile does:
cd src && test -f $(FILE_SO) && \
$(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
$(LDCONFIG) $(INSTALL_LIB) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
This means that if ldconfig doesn't work or isn't available on the
system, it won't create the libluajit-5.1.so -> libluajit-5.1.so.5.2.0
symbolic link.
Not having this symbolic link prevents lua-ev from finding the shared
version of the luajit library, and it fallbacks to using the
libluajit.a static library. However, this static library is not built
with -fPIC, so using it within a shared library doesn't work, and
leads to build failures on architectures that really do want to have
non-fPIC code into a shared library, such as x86-64.
By passing LDCONFIG=true during the installation steps of luajit, we
ensure that the symbolic links are created, which allows lua-ev to
detect the shared library properly, making everybody happy.
Investigation conducted with Samuel Martin. Thanks!
Fixes:
http://autobuild.buildroot.org/results/41c/41c8bb9cf91a86908a150dae27726136cb56f5b7/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-02-26 23:29:59 +01:00
|
|
|
$(MAKE) PREFIX="/usr" DESTDIR="$(STAGING_DIR)" LDCONFIG=true -C $(@D) install
|
2012-07-18 15:59:10 +02:00
|
|
|
endef
|
|
|
|
|
|
|
|
define LUAJIT_INSTALL_TARGET_CMDS
|
luajit: pass LDCONFIG=true to make sure dynamic library links are created
To install its shared library, the luajit Makefile does:
cd src && test -f $(FILE_SO) && \
$(INSTALL_X) $(FILE_SO) $(INSTALL_DYN) && \
$(LDCONFIG) $(INSTALL_LIB) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \
$(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || :
This means that if ldconfig doesn't work or isn't available on the
system, it won't create the libluajit-5.1.so -> libluajit-5.1.so.5.2.0
symbolic link.
Not having this symbolic link prevents lua-ev from finding the shared
version of the luajit library, and it fallbacks to using the
libluajit.a static library. However, this static library is not built
with -fPIC, so using it within a shared library doesn't work, and
leads to build failures on architectures that really do want to have
non-fPIC code into a shared library, such as x86-64.
By passing LDCONFIG=true during the installation steps of luajit, we
ensure that the symbolic links are created, which allows lua-ev to
detect the shared library properly, making everybody happy.
Investigation conducted with Samuel Martin. Thanks!
Fixes:
http://autobuild.buildroot.org/results/41c/41c8bb9cf91a86908a150dae27726136cb56f5b7/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2014-02-26 23:29:59 +01:00
|
|
|
$(MAKE) PREFIX="/usr" DESTDIR="$(TARGET_DIR)" LDCONFIG=true -C $(@D) install
|
2012-07-18 15:59:10 +02:00
|
|
|
endef
|
|
|
|
|
2014-11-30 19:46:12 +01:00
|
|
|
define LUAJIT_INSTALL_SYMLINK
|
|
|
|
ln -fs luajit $(TARGET_DIR)/usr/bin/lua
|
|
|
|
endef
|
|
|
|
LUAJIT_POST_INSTALL_TARGET_HOOKS += LUAJIT_INSTALL_SYMLINK
|
|
|
|
|
2014-07-19 16:38:55 +02:00
|
|
|
define HOST_LUAJIT_BUILD_CMDS
|
|
|
|
$(MAKE) PREFIX="/usr" BUILDMODE=static -C $(@D) amalg
|
|
|
|
endef
|
|
|
|
|
|
|
|
define HOST_LUAJIT_INSTALL_CMDS
|
|
|
|
$(MAKE) PREFIX="/usr" DESTDIR="$(HOST_DIR)" -C $(@D) install
|
|
|
|
endef
|
|
|
|
|
2012-07-18 15:59:10 +02:00
|
|
|
$(eval $(generic-package))
|
2014-07-19 16:38:55 +02:00
|
|
|
$(eval $(host-generic-package))
|