You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mxe/src/lua.mk

93 lines
3.0 KiB

# This file is part of MXE. See LICENSE.md for licensing information.
PKG := lua
$(PKG)_WEBSITE := https://www.lua.org/
$(PKG)_DESCR := Lua
$(PKG)_IGNORE :=
$(PKG)_VERSION := 5.3.3
# Shared version and luarocks subdir
$(PKG)_SHORTVER := $(call SHORT_PKG_VERSION,$(PKG))
$(PKG)_DLLVER := $(subst .,,$($(PKG)_SHORTVER))
$(PKG)_CHECKSUM := 5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2
$(PKG)_SUBDIR := lua-$($(PKG)_VERSION)
$(PKG)_FILE := lua-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://www.lua.org/ftp/$($(PKG)_FILE)
$(PKG)_DEPS := cc
$(PKG)_DEPS_$(BUILD) :=
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://www.lua.org/download.html' | \
$(SED) -n 's,.*lua-\([0-9][^>]*\)\.tar.*,\1,p' | \
head -1
endef
define $(PKG)_BUILD_COMMON
touch '$(PREFIX)/$(TARGET)/lib/lua/$($(PKG)_SHORTVER)/.gitkeep'
touch '$(PREFIX)/$(TARGET)/share/lua/$($(PKG)_SHORTVER)/.gitkeep'
#pkg-config file
(echo 'Name: $(PKG)'; \
echo 'Version: $($(PKG)_VERSION)'; \
echo 'Description: $(PKG)'; \
echo 'Libs: -l$(PKG)';) \
> '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
cp '$(1)/src/lua.exe' '$(PREFIX)/$(TARGET)/bin/lua.exe' || cp '$(1)/src/lua' '$(PREFIX)/$(TARGET)/bin/lua.exe'
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
'$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-lua.exe' \
`$(TARGET)-pkg-config --libs lua`
endef
define $(PKG)_BUILD
$(MAKE) -C '$(1)/src' -j '$(JOBS)' \
INSTALL_TOP='$(PREFIX)/$(TARGET)' \
CC='$(TARGET)-gcc' \
AR='$(TARGET)-ar rcu' \
RANLIB='$(TARGET)-ranlib' \
a lua
# lua.h is installed to noinstall/ to avoid error when executing an empty
# 'install' command.
$(MAKE) -C '$(1)' -j 1 \
INSTALL_TOP='$(PREFIX)/$(TARGET)' \
INSTALL_BIN='$(1)/noinstall' \
INSTALL_MAN='$(1)/noinstall' \
TO_BIN='lua.h' \
INSTALL='$(INSTALL)' \
install
$($(PKG)_BUILD_COMMON)
endef
define $(PKG)_BUILD_SHARED
$(MAKE) -C '$(1)/src' -j '$(JOBS)' \
INSTALL_TOP='$(PREFIX)/$(TARGET)' \
CC='$(TARGET)-gcc' \
AR='$(TARGET)-gcc -Wl,--out-implib,liblua.dll.a -shared -o' \
RANLIB='echo skipped ranlib' \
SYSCFLAGS='-DLUA_BUILD_AS_DLL' \
LUA_A=lua$($(PKG)_DLLVER).dll \
a lua
$(MAKE) -C '$(1)' -j 1 \
INSTALL_TOP='$(PREFIX)/$(TARGET)' \
INSTALL_MAN='$(1)/noinstall' \
TO_BIN='lua$($(PKG)_DLLVER).dll' \
INSTALL='$(INSTALL)' \
TO_LIB='liblua.dll.a' \
install
$($(PKG)_BUILD_COMMON)
endef
define $(PKG)_BUILD_$(BUILD)
$(MAKE) -C '$(1)/src' -j '$(JOBS)' \
CC='$(BUILD_CC)' \
PLAT=$(shell ([ `uname -s` == Darwin ] && echo "macosx") || echo `uname -s` | tr '[:upper:]' '[:lower:]')
$(INSTALL) '$(1)/src/lua' '$(PREFIX)/bin/$(BUILD)-lua'
ln -sf '$(PREFIX)/bin/$(BUILD)-lua' '$(PREFIX)/$(BUILD)/bin/lua'
$(INSTALL) '$(1)/src/luac' '$(PREFIX)/bin/$(BUILD)-luac'
ln -sf '$(PREFIX)/bin/$(BUILD)-luac' '$(PREFIX)/$(BUILD)/bin/luac'
endef