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