components/lua/Makefile
author Rich Burridge <rich.burridge@oracle.com>
Mon, 10 Aug 2015 14:28:29 -0700
changeset 4762 4d5e4d2893b8
parent 4339 6501cf9c29f9
child 5682 94c0ca64c022
permissions -rw-r--r--
21606619 Yet even more Userland components should hook up their system tests

#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
#
include ../../make-rules/shared-macros.mk

COMPONENT_NAME=		lua
COMPONENT_VERSION=	5.2.1
COMPONENT_PROJECT_URL=	http://www.lua.org/
COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH=	\
    sha256:64304da87976133196f9e4c15250b70f444467b6ed80d7cfd7b3b982b5177be5
COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)ftp/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB=	utility/lua

LUA_TESTS=		lua-5.2.1-tests
COMPONENT_ARCHIVE_1=	$(LUA_TESTS).tar.gz
COMPONENT_ARCHIVE_HASH_1= \
    sha256:2346d635ee392c8d8024b07beaa10b7b66a3f861c41d575753d03155751cf114
COMPONENT_ARCHIVE_URL_1= $(COMPONENT_PROJECT_URL)/tests/5.2/$(COMPONENT_ARCHIVE_1)

TPNO=			5814

include $(WS_MAKE_RULES)/prep.mk
include $(WS_MAKE_RULES)/justmake.mk
include $(WS_MAKE_RULES)/ips.mk

PATCH_LEVEL= 0

# This is because lua uses $(CC) to build it's shared libraries.
CC +=		$(CC_BITS)

CFLAGS +=	$(CC_PIC) $(CPP_LARGEFILES)

COMPONENT_BUILD_ARGS += CC="$(CC)"
COMPONENT_BUILD_ARGS += USRCFLAGS="$(CFLAGS)"
COMPONENT_INSTALL_ARGS += INSTALL=$(INSTALL)
COMPONENT_INSTALL_ARGS += INSTALL_TOP=$(PROTOUSRDIR)
$(INSTALL_64):	COMPONENT_INSTALL_ARGS += INSTALL_LIB=$(PROTOUSRLIBDIR64)
$(INSTALL_64):	COMPONENT_INSTALL_ARGS += INSTALL_BIN=$(PROTOUSRBINDIR64)

$(BUILD_DIR)/lua-64.pc:		files/lua-64.pc
	/bin/sed -e "s#MACH64#$(MACH64)#g" < $< > $@

ASLR_MODE = $(ASLR_ENABLE)

CLEAN_PATHS +=	$(LUA_TESTS)

LUA_EXE_32 =	$(BUILD_DIR)/$(MACH32)/src/$(COMPONENT_NAME)
LUA_EXE_64 =	$(BUILD_DIR)/$(MACH64)/src/$(COMPONENT_NAME)
LUA_EXE =	$(LUA_EXE_$(BITS))

# Unpack and patch the tests once, and work around CR #19661394, which is
# causing the lua self-tests to fail.
COMPONENT_PRE_TEST_ACTION = \
	(if ! test -d $(LUA_TESTS) ; then \
		$(UNPACK) $(UNPACK_ARGS) $(LUA_TESTS).tar.gz ; \
		(cd $(LUA_TESTS); $(GPATCH) $(GPATCH_FLAGS) \
			<$(COMPONENT_DIR)/files/fix-tests.patch) ; \
	fi)

COMPONENT_TEST_DIR =		$(LUA_TESTS)
COMPONENT_TEST_CMD =		$(LUA_EXE)
COMPONENT_TEST_ARGS =		-e"_U=true"
COMPONENT_TEST_TARGETS =	all.lua

# Master test results are the same for both 32-bit and 64-bit, so override
# here, rather than create multiple identical master files.
COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master

# The additional lua specific set of transforms to be applied to the
# test results to try to normalize them.
COMPONENT_TEST_TRANSFORMS += \
	'-e "/---- total memory:/d" ' \
	'-e "s|elements in .\... sec|elements in x.xx sec|g" ' \
	'-e "s|\(total time:\).*|\1|" ' \
	'-e "s|\(test done on\).*|\1|" '

# Unpack and patch the tests once, and work around CR #19661394, which is
# causing the lua self-tests to fail.
COMPONENT_PRE_SYSTEM_TEST_ACTION = \
	(if ! test -d $(LUA_TESTS) ; then \
		$(UNPACK) $(UNPACK_ARGS) $(LUA_TESTS).tar.gz ; \
		(cd $(LUA_TESTS); $(GPATCH) $(GPATCH_FLAGS) \
			<$(COMPONENT_DIR)/files/fix-tests.patch) ; \
	fi)

COMPONENT_SYSTEM_TEST_DIR =	$(LUA_TESTS)
COMPONENT_SYSTEM_TEST_CMD =	/usr/bin/lua
COMPONENT_SYSTEM_TEST_ARGS =	-e"_U=true"
COMPONENT_SYSTEM_TEST_TARGETS =	all.lua

build:		$(BUILD_32_and_64)

install:	$(INSTALL_32_and_64) $(BUILD_DIR)/lua-64.pc

test: 		$(TEST_32_and_64)

system-test:	$(SYSTEM_TEST_32_and_64)

REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/math