Implement workaround for flex --header-file option
[emu8051.git] / configure.ac
index 8f2f2d0..0308b48 100644 (file)
@@ -1,26 +1,56 @@
 # configure.ac -- Process this file with autoconf to produce configure
 
 dnl Initialization stuff.
-AC_INIT([emu8051], [1.1.2], [hugo@hugovil.com], [emu8051],
-       [http://www.hugovil.com/fr/emu8051/])
+AC_INIT([emu8051], [2.0.1], [hugo@hugovil.com], [emu8051],
+       [http://www.hugovil.com/emu8051/])
 AC_CONFIG_AUX_DIR([build-aux])
-AC_CONFIG_SRCDIR(src/cpu8051.c)
-AM_CONFIG_HEADER(config.h:config-h.in)
-dnl Checking if the NEWS file has been updated to reflect the current version.
-AM_INIT_AUTOMAKE(check-news -Wall std-options color-tests parallel-tests)
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_SRCDIR(src/common/cpu8051.c)
+
+dnl -Wno-extra-portability:
+dnl   To get rid of message:
+dnl     linking libraries using a non-POSIX archiver requires 'AM_PROG_AR'...
+dnl -Wall:
+dnl   Ask automake to turn on all warnings (not a gcc flag)
+AM_INIT_AUTOMAKE([no-define gnits dist-bzip2 color-tests
+                  -Wall -Wno-extra-portability])
 AM_SILENT_RULES([yes])
+AM_CONFIG_HEADER(config.h:config-h.in)
 
 dnl Testing the C compiler.
-AM_PROG_CC_C_O
 AC_LANG_C
 
+dnl Testing for libtool support.
+AM_PROG_LIBTOOL
+
+AC_ARG_WITH([readline],
+            [AS_HELP_STRING([--without-readline], [disable support for readline])],
+            [],
+            [with_readline=yes])
+
+LIBREADLINE=
+    AS_IF([test "x$with_readline" != xno],
+         [AC_CHECK_LIB([readline], [main],
+              [AC_SUBST([LIBREADLINE], ["-lreadline"])
+               AC_DEFINE([HAVE_LIBREADLINE], [1],
+                         [Define if you have libreadline])
+              ],
+              [AC_MSG_FAILURE(
+                  [readline test failed (--without-readline to disable)])],
+              []
+)])
+
+dnl Testing for Lex/Yacc
+AM_PROG_LEX
+AC_PROG_YACC
+
 dnl Checking for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_TYPE_PID_T
 AC_TYPE_SIZE_T
 
-dnl Basic CFLAGS values
-CFLAGS="${CFLAGS} -Wall"
+dnl Basic warning CFLAGS values
+WARNINGCFLAGS="-Wall -Wextra -Wformat -Wformat-security"
 
 PKG_CHECK_MODULES(GLIB, [glib-2.0 >= 2.26.0])
 AC_SUBST(GLIB_CFLAGS)
@@ -79,9 +109,29 @@ AM_CONDITIONAL([USE_AS504HV],[test x"$AS504HV_CHECK" = x"yes"])
 AM_CONDITIONAL([USE_AS504],[test x"$AS504_CHECK" = x"yes"])
 AM_CONDITIONAL([USE_AS51],[test x"$ASEM51_CHECK" = x"yes"])
 
-AC_SUBST(CFLAGS)
-AC_SUBST(LIBS)
+dnl zlib required for its crc32 function
+ac_have_zlib=no
+
+PKG_CHECK_MODULES([zlib], [zlib > 1.2.1],
+                 [AC_CHECK_LIB([z], [crc32],
+                               [ac_have_zlib=yes],
+                               [ac_have_zlib=no])])
+
+if test x"$ac_have_zlib" = x"yes" ; then
+    ZLIB_LIBS='-lz'
+    AC_SUBST(ZLIB_LIBS)
+else
+    AC_MSG_ERROR([Please install zlib and zlib-devel packages])
+fi
+
+AC_SUBST(WARNINGCFLAGS)
 AC_SUBST(ac_aux_dir)
 
 dnl Creating output file(s)
-AC_OUTPUT(Makefile src/Makefile data/Makefile doc/Makefile tests/Makefile)
+AC_OUTPUT(Makefile
+    src/common/Makefile
+    src/cli/Makefile
+    src/gtk/Makefile
+    data/Makefile
+    doc/Makefile
+    tests/Makefile)