From 8173ed8cb62f22ca2ebb33a63b5b9954afb20d7e Mon Sep 17 00:00:00 2001
From: Daniel Santos <daniel.santos@pobox.com>
Date: Mon, 11 Oct 2021 23:58:22 -0500
Subject: build: Add autotools option for those who want it

Closes #40.
---
 autotools/Makefile.am  |  7 +++++++
 autotools/README       |  7 +++++++
 autotools/autogen.sh   | 36 ++++++++++++++++++++++++++++++++++++
 autotools/configure.ac | 35 +++++++++++++++++++++++++++++++++++
 4 files changed, 85 insertions(+)
 create mode 100644 autotools/Makefile.am
 create mode 100644 autotools/README
 create mode 100755 autotools/autogen.sh
 create mode 100644 autotools/configure.ac

(limited to 'autotools')

diff --git a/autotools/Makefile.am b/autotools/Makefile.am
new file mode 100644
index 0000000..002d475
--- /dev/null
+++ b/autotools/Makefile.am
@@ -0,0 +1,7 @@
+bin_PROGRAMS	= lolcat censor
+lolcat_SOURCES	= ../lolcat.c
+censor_SOURCES	= ../censor.c
+
+LIBS		+= -lm
+CFLAGS		?= -O3
+AM_CFLAGS	 = -std=c11 -Wall -Wextra -Wno-sign-compare -Werror=implicit
diff --git a/autotools/README b/autotools/README
new file mode 100644
index 0000000..7845e4e
--- /dev/null
+++ b/autotools/README
@@ -0,0 +1,7 @@
+This directory contains an autotools config for building lolcat for those who need it. This is an alternative to the
+Makefile provided in the git root. Run it like so:
+
+cd autotools # go here
+./autogen.sh
+./configure
+make
diff --git a/autotools/autogen.sh b/autotools/autogen.sh
new file mode 100755
index 0000000..1f3109d
--- /dev/null
+++ b/autotools/autogen.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+auxdir=autoscripts
+
+set -x
+
+# aclocal generated files
+rm -rf aclocal.m4 autom4te.cache
+
+# autoheader generated files
+rm -f config.h.in
+
+# autoconf generated files
+rm -f configure
+
+# automake generated files
+rm -f ${auxdir}/{config.guess,config.sub,depcomp,install-sh,missing}
+rm -f Makefile.in
+
+# configure generated files
+rm -f config.h config.log config.status Makefile Makefile.in stamp-h1
+
+rm -f $(find ${auxdir} -type l 2>/dev/null)
+rmdir ${auxdir} 2>/dev/null
+
+if [[ "$1" == clean ]]; then
+	exit 0
+fi
+
+mkdir ${auxdir} 2>/dev/null
+
+aclocal
+autoheader
+autoconf
+automake --add-missing
+
diff --git a/autotools/configure.ac b/autotools/configure.ac
new file mode 100644
index 0000000..030e1d5
--- /dev/null
+++ b/autotools/configure.ac
@@ -0,0 +1,35 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_INIT([lolcat], [1.2], [jaseg <github@jaseg.de>])
+AC_CONFIG_SRCDIR([../lolcat.c])
+AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_AUX_DIR([autoscripts])
+AC_CANONICAL_TARGET
+AC_CANONICAL_HOST
+
+# Automake
+AM_INIT_AUTOMAKE([foreign subdir-objects])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_INSTALL
+
+# Checks for libraries.
+AC_CHECK_LIB([m], [cos])
+
+# Checks for header files.
+AC_CHECK_HEADERS([locale.h stdint.h stdlib.h string.h sys/time.h unistd.h wchar.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_TYPE_SIZE_T
+AC_CHECK_HEADER_STDBOOL
+AC_TYPE_UINT8_T
+
+# Checks for library functions.
+AC_FUNC_STRTOD
+AC_CHECK_FUNCS([gettimeofday setlocale strchr strerror strstr wcwidth])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
-- 
cgit