From 3095231393800b6d0e7a52aa6374400e920784ec Mon Sep 17 00:00:00 2001
From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
Date: Sun, 16 Dec 2018 03:30:17 +0300
Subject: [PATCH] Autotoolize

---
 .gitignore                               | 11 ++++
 Makefile.am                              |  3 +
 configure.ac                             | 83 ++++++++++++++++++++++++
 doc/Makefile.am                          |  4 ++
 src/Makefile.am                          | 51 +++++++++++++++
 src/lua5.3.pc.in                         | 13 ++++
 src/{luaconf.h => luaconf.h.template.in} | 12 +++-
 7 files changed, 174 insertions(+), 3 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 Makefile.am
 create mode 100644 configure.ac
 create mode 100644 doc/Makefile.am
 create mode 100644 src/Makefile.am
 create mode 100644 src/lua5.3.pc.in
 rename src/{luaconf.h => luaconf.h.template.in} (99%)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..151ec4a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,11 @@
+lua
+lua.pc
+luac
+luaconf.h
+luaconf.h.template
+*.o
+*.lo
+Makefile
+Makefile.in
+.deps
+.libs
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..8d968c4
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = src doc
+
+EXTRA_DIST = README
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..6e2ba6a
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,83 @@
+AC_PREREQ(2.59)
+AC_INIT([lua], [5.3.0], [https://bugzilla.redhat.com/], [lua-at], [http://www.lua.org])
+AC_SUBST([MAJOR_VERSION], [5.3])
+
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_SRCDIR([src/lapi.c])
+
+AM_INIT_AUTOMAKE([1.9 foreign])
+
+AC_PROG_CC
+AC_PROG_LIBTOOL
+
+AC_ARG_WITH(
+  [compat-module],
+  [AC_HELP_STRING([--with-compat-module], [Enable LUA_COMPAT_MODULE functions [default=no]])],
+  [use_compat_module=$withval],
+  [use_compat_module=no]
+)
+
+COMPAT_DEFS="#undef LUA_COMPAT_ALL"
+if test "x$use_compat_module" == "xyes"; then
+  COMPAT_DEFS="#define LUA_COMPAT_5_1
+#define LUA_COMPAT_5_2"
+fi
+AC_SUBST(COMPAT_DEFS)
+
+AC_ARG_WITH(
+  [readline],
+  [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])],
+  [use_readline=$withval],
+  [use_readline=yes]
+)
+
+LUA_LIBS="-lm"
+
+# Check for readline
+READLINE_DEFS="#undef LUA_USE_READLINE"
+if test "x$use_readline" == "xyes"; then
+  AC_CHECK_LIB([readline], [readline], [:], [use_readline=no], [-lncurses])
+  AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no])
+  if test "x$use_readline" == "xno"; then
+    AC_MSG_WARN([readline headers could not be found, disabling readline support])
+  else
+    READLINE_DEFS="#define LUA_USE_READLINE"
+    READLINE_LIBS="-lreadline -lncurses"
+  fi
+fi
+AC_SUBST(READLINE_DEFS)
+AC_SUBST(READLINE_LIBS)
+
+case "$host" in
+  *-mingw*)  use_os=win32  ;;
+  *-darwin*) use_os=macosx ;;
+  *)         use_os=posix  ;;
+esac
+
+POSIX_DEFS="#undef LUA_USE_POSIX"
+LUA_DL_DEFS="#undef LUA_USE_DLOPEN"
+LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL"
+
+if test "x$use_os" == "xwin32"; then
+  LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL"
+elif test "x$use_os" == "xmacosx"; then
+  POSIX_DEFS="#define LUA_USE_POSIX"
+  LUA_DL_DEFS="#define LUA_DL_DYLD"
+elif test "x$use_os" == "xposix"; then
+  POSIX_DEFS="#define LUA_USE_POSIX"
+  LUA_DL_DEFS="#define LUA_DL_DLOPEN"
+  LUA_LIBS="$LUA_LIBS -ldl"
+fi
+AC_SUBST(POSIX_DEFS)
+AC_SUBST(LUA_DL_DEFS)
+AC_SUBST(LUA_BUILD_AS_DLL_DEFS)
+
+AC_SUBST(LUA_LIBS)
+
+AC_CONFIG_FILES([Makefile
+                 src/Makefile
+                 src/lua$MAJOR_VERSION.pc
+                 src/luaconf.h.template
+                 doc/Makefile
+])
+AC_OUTPUT
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..3705696
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,4 @@
+man1_MANS = lua.1 luac.1
+
+EXTRA_DIST = \
+	contents.html logo.gif lua.1 luac.1 lua.css manual.css manual.html osi-certified-72x60.png readme.html
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644
index 0000000..fa23a2f
--- /dev/null
+++ b/src/Makefile.am
@@ -0,0 +1,51 @@
+AM_CFLAGS = -Wall
+
+include_HEADERS = lua.h lualib.h lauxlib.h lua.hpp
+
+nodist_include_HEADERS = luaconf.h
+
+pkglib_LTLIBRARIES = liblua.la
+liblua_la_LDFLAGS = -release @MAJOR_VERSION@
+liblua_la_SOURCES = \
+	lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c lcorolib.c lctype.c ldblib.c \
+	ldebug.c ldo.c ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c \
+	loadlib.c lobject.c lopcodes.c loslib.c lparser.c lstate.c lstring.c lstrlib.c \
+	ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c lzio.c \
+	lapi.h lcode.h lctype.h ldebug.h ldo.h lfunc.h lgc.h llex.h llimits.h \
+	lmem.h lobject.h lopcodes.h lparser.h lstate.h lstring.h ltable.h ltm.h \
+	lundump.h lvm.h lzio.h
+
+# Static library for intrenal linking with luac
+noinst_LTLIBRARIES = libluac.la
+libluac_la_SOURCES = ${liblua_la_SOURCES}
+
+pkglibdir = $(libdir)/lua/@MAJOR_VERSION@
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = lua@MAJOR_VERSION@.pc
+
+bin_PROGRAMS = lua luac
+
+lua_SOURCES = lua.c
+lua_LDADD = liblua.la @LUA_LIBS@ @READLINE_LIBS@
+lua_DEPENDENCIES = liblua.la
+
+luac_SOURCES = luac.c
+luac_LDADD = .libs/libluac.a @LUA_LIBS@
+luac_DEPENDENCIES = libluac.la
+
+EXTRA_DIST = luaconf.h.template
+BUILT_SOURCES = luaconf.h
+CLEANFILES = luaconf.h luaconf.h.template
+
+readline_defs = @READLINE_DEFS@
+
+edit = 	sed \
+	  -e 's,%prefix%,$(prefix),g' \
+	  -e 's,%lua_datadir%,$(datadir),g' \
+	  -e 's,%lua_libdir%,$(libdir),g'
+
+luaconf.h : luaconf.h.template
+	rm -f $@ $@.tmp
+	$(edit) $< >$@.tmp
+	mv $@.tmp $@
diff --git a/src/lua5.3.pc.in b/src/lua5.3.pc.in
new file mode 100644
index 0000000..da687ad
--- /dev/null
+++ b/src/lua5.3.pc.in
@@ -0,0 +1,13 @@
+V= @MAJOR_VERSION@
+R= @VERSION@
+prefix= @prefix@
+exec_prefix=${prefix}
+libdir= @libdir@/lua/@MAJOR_VERSION@
+includedir=@includedir@
+
+Name: Lua
+Description: An Extensible Extension Language
+Version: ${R}
+Requires:
+Libs: -L${libdir} -llua @LUA_LIBS@
+Cflags: -I${includedir}
diff --git a/src/luaconf.h b/src/luaconf.h.template.in
similarity index 99%
rename from src/luaconf.h
rename to src/luaconf.h.template.in
index 9eeeea6..1a4f1bc 100644
--- a/src/luaconf.h
+++ b/src/luaconf.h.template.in
@@ -11,6 +11,12 @@
 #include <limits.h>
 #include <stddef.h>
 
+@POSIX_DEFS@
+@LUA_DL_DEFS@
+@LUA_BUILD_AS_DLL_DEFS@
+@READLINE_DEFS@
+@COMPAT_DEFS@
+
 
 /*
 ** ===================================================================
@@ -200,9 +206,9 @@
 
 #else			/* }{ */
 
-#define LUA_ROOT	"/usr/local/"
-#define LUA_LDIR	LUA_ROOT "share/lua/" LUA_VDIR "/"
-#define LUA_CDIR	LUA_ROOT "lib/lua/" LUA_VDIR "/"
+#define LUA_ROOT	"@prefix@/"
+#define LUA_LDIR	"@datadir@/lua/" LUA_VDIR "/"
+#define LUA_CDIR	"@libdir@/lua/" LUA_VDIR "/"
 #define LUA_PATH_DEFAULT  \
 		LUA_LDIR"?.lua;"  LUA_LDIR"?/init.lua;" \
 		LUA_CDIR"?.lua;"  LUA_CDIR"?/init.lua;" \
-- 
2.19.2