Convert build process to autotools
Updated to follow the base openbmc autotool standard.
Resolves openbmc/obmc-console#4
Change-Id: If6af4faacfcaf853d7642bd3a6f22b6f6190a776
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/Makefile.am b/Makefile.am
index 2df24d8..e07d4ad 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,26 +1,6 @@
-# Copyright © 2016 IBM Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-AUTOMAKE_OPTIONS = foreign
-
sbin_PROGRAMS = obmc-console-server
bin_PROGRAMS = obmc-console-client
-check_PROGRAMS = config-test
-
-AM_CFLAGS = -Wall -Wextra -Werror
-
EXTRA_DIST = obmc-console.conf.sample
obmc_console_server_CPPFLAGS = \
@@ -43,6 +23,4 @@
console-socket.c \
util.c
-config_test_CPPFLAGS = -DCONFIG_TEST -DSYSCONFDIR=\"\"
-config_test_SOURCES = \
- config.c
+#SUBDIRS = test
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..5318177
--- /dev/null
+++ b/README.md
@@ -0,0 +1,10 @@
+## To Build
+```
+To build this package, do the following steps:
+
+ 1. ./bootstrap.sh
+ 2. ./configure ${CONFIGURE_FLAGS}
+ 3. make
+
+To full clean the repository again run `./bootstrap.sh clean`.
+```
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000..d96d0cd
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+AUTOCONF_FILES="Makefile.in aclocal.m4 compile config.guess config.h.in \
+ config.sub configure depcomp install-sh ltmain.sh missing *libtool* \
+ test-driver"
+
+case $1 in
+ clean)
+ test -f Makefile && make maintainer-clean
+ for file in ${AUTOCONF_FILES}; do
+ find -name "$file" | xargs -r rm -rf
+ done
+ exit 0
+ ;;
+esac
+
+autoreconf -i
+echo 'Run "./configure ${CONFIGURE_FLAGS} && make"'
diff --git a/configure.ac b/configure.ac
index 35ce0af..04bf36a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,25 +1,48 @@
-# Copyright © 2016 IBM Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# initialisation
-AC_INIT([obmc-console], 0.1, [Jeremy Kerr <jk@ozlabs.org>])
-AM_INIT_AUTOMAKE
+# Initialization
+AC_PREREQ([2.69])
+AC_INIT([obmc-console], 1.0, [https://github.com/openbmc/obmc-console/issues])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([subdir-objects -Wall -Werror foreign dist-xz])
AM_SILENT_RULES([yes])
-# required tools
+# Checks for programs.
AC_PROG_CC
+AM_PROG_AR
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
-# output
+# Checks for libraries.
+
+# Checks for header files.
+
+# Checks for typedefs, structures, and compiler characteristics.
+AX_APPEND_COMPILE_FLAGS([-Wall -Werror], [CFLAGS])
+
+# Checks for library functions.
+LT_INIT # Removes 'unrecognized options: --with-libtool-sysroot'
+
+# Check/set gtest specific functions.
+AX_PTHREAD([GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"],[GTEST_CPP_FLAGS="-DGTEST_HAS_PTHREAD=0"])
+AC_SUBST(GTEST_CPPFLAGS)
+
+AC_ARG_ENABLE([oe-sdk],
+ AS_HELP_STRING([--enable-oe-sdk], [Link testcases absolutely against OE SDK so they can be ran within it.])
+)
+AC_ARG_VAR(OECORE_TARGET_SYSROOT,
+ [Path to the OE SDK SYSROOT])
+AS_IF([test "x$enable_oe-sdk" == "xyes"],
+ AS_IF([test "x$OECORE_TARGET_SYSROOT" == "x"],
+ AC_MSG_ERROR([OECORE_TARGET_SYSROOT must be set with --enable-oe-sdk])
+ )
+ AC_MSG_NOTICE([Enabling OE-SDK at $OECORE_TARGET_SYSROOT])
+ [
+ testcase_flags="-Wl,-rpath,\${OECORE_TARGET_SYSROOT}/lib"
+ testcase_flags="${testcase_flags} -Wl,-rpath,\${OECORE_TARGET_SYSROOT}/usr/lib"
+ testcase_flags="${testcase_flags} -Wl,-dynamic-linker,`find \${OECORE_TARGET_SYSROOT}/lib/ld-*.so | sort -r -n | head -n1`"
+ ]
+ AC_SUBST([OESDK_TESTCASE_FLAGS], [$testcase_flags])
+)
+
+# Create configured output
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100644
index 0000000..45be362
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,12 @@
+check_PROGRAMS =
+
+# Run all 'check' test programs
+TESTS = $(check_PROGRAMS)
+
+#Build/add config-test to test suite
+check_PROGRAMS += config-test
+config_test_CPPFLAGS = -Igtest $(GTEST_CPPFLAGS) \
+ -DCONFIG_TEST -DSYSCONFDIR=\"\"
+config_test_LDFLAGS = -lgtest_main -lgtest $(PTHREAD_LIBS) $(OESDK_TESTCASE_FLAGS)
+config_test_SOURCES = config.c
+config_test_LDADD = $(top_builddir)/config.o