Lua-5.3.5

#### Beyond Linux® From Scratch - Version 2019-02-27

### Chapter 13. Programming

- Prev

  LLVM-7.0.1

- Next

  Mercurial-4.9

- Up
- Home

# Lua-5.3.5

## Introduction to Lua

Lua is a powerful light-weight programming language designed for extending applications. It is also frequently used as a general-purpose, stand-alone language. Lua is implemented as a small library of C functions, written in ANSI C, and compiles unmodified in all known platforms. The implementation goals are simplicity, efficiency, portability, and low embedding cost. The result is a fast language engine with small footprint, making it ideal in embedded systems too.

This package is known to build and work properly using an LFS-8.4 platform.

### Package Information

- Download (HTTP): http://www.lua.org/ftp/lua-5.3.5.tar.gz

- Download MD5 sum: 4f4b4f323fd3514a68e0ab3da8ce3455

- Download size: 300 KB

- Estimated disk space required: 4.5 MB (with Basic tests)

- Estimated build time: less than 0.1 SBU (with Basic tests)

### Additional Downloads

- Required patch: http://www.linuxfromscratch.org/patches/blfs/svn/lua-5.3.5-shared_library-1.patch

- Optional Test Suite Download (HTTP): http://www.lua.org/tests/lua-5.3.4-tests.tar.gz

- Optional Test Suite Download MD5 sum: b14fe3748c1cb2d74e3acd1943629ba3

- Optional Test Suite Download size: 104 KB

User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/lua

## Installation of Lua

Some packages check for the pkg-config file for Lua, which is created with:

    cat > lua.pc << "EOF"
    V=5.3
    R=5.3.5

    prefix=/usr
    INSTALL_BIN=${prefix}/bin
    INSTALL_INC=${prefix}/include
    INSTALL_LIB=${prefix}/lib
    INSTALL_MAN=${prefix}/share/man/man1
    INSTALL_LMOD=${prefix}/share/lua/${V}
    INSTALL_CMOD=${prefix}/lib/lua/${V}
    exec_prefix=${prefix}
    libdir=${exec_prefix}/lib
    includedir=${prefix}/include

    Name: Lua
    Description: An Extensible Extension Language
    Version: ${R}
    Requires:
    Libs: -L${libdir} -llua -lm -ldl
    Cflags: -I${includedir}
    EOF

Install Lua by running the following commands:

    patch -Np1 -i ../lua-5.3.5-shared_library-1.patch &&
    sed -i '/#define LUA_ROOT/s:/usr/local/:/usr/:' src/luaconf.h &&

    make MYCFLAGS="-DLUA_COMPAT_5_2 -DLUA_COMPAT_5_1" linux

To test the results, issue: make test. “This will run the interpreter and print its version.”. More comprehensive tests can be performed if you downloaded the "Test suite" tarball. Those tests need to be executed after the package is installed, thus we defer to the description below.

Now, as the `root` user:

    make INSTALL_TOP=/usr                \
         INSTALL_DATA="cp -d"            \
         INSTALL_MAN=/usr/share/man/man1 \
         TO_LIB="liblua.so liblua.so.5.3 liblua.so.5.3.4" \
         install &&

    mkdir -pv                      /usr/share/doc/lua-5.3.5 &&
    cp -v doc/*.{html,css,gif,png} /usr/share/doc/lua-5.3.5 &&

    install -v -m644 -D lua.pc /usr/lib/pkgconfig/lua.pc

Here we describe only the "Basic tests". Untar the tarball and change to the `lua-5.3.5-tests` directory, then issue lua -e "_U=true" all.lua. If the tests finish without error, you will see a message containing the string "final OK".

## Command Explanations

sed -i ... src/luaconf.h: This command changes the Lua search path to match the install path.

`MYCFLAGS="-DLUA_COMPAT_5_2 -DLUA_COMPAT_5_1"`: This environment variable includes compatibility layers with Lua 5.1 and 5.2 in the build.

## Contents

Installed Programs: lua and luac
Installed Library: liblua.so
Installed Directories: /usr/{lib,share}/lua and /usr/share/doc/lua-5.3.5

### Short Descriptions

lua | is the standalone Lua interpreter.
luac | is the Lua compiler.
`liblua.so` | contains the Lua API functions.

Last updated on 2019-02-15 15:01:29 -0600

- Prev

  LLVM-7.0.1

- Next

  Mercurial-4.9

- Up
- Home