# configure.ac -- Process this file with autoconf to produce configure
dnl Initialization stuff.
-AC_INIT([emu8051], [1.1.2], [hugo@hugovil.com], [emu8051],
+AC_INIT([emu8051], [2.0.0], [hugo@hugovil.com], [emu8051],
[http://www.hugovil.com/fr/emu8051/])
AC_CONFIG_AUX_DIR([build-aux])
-AC_CONFIG_SRCDIR(src/cpu8051.c)
+AC_CONFIG_SRCDIR(src/common/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)
+AM_INIT_AUTOMAKE(check-news -Wall std-options color-tests parallel-tests)
AM_SILENT_RULES([yes])
dnl Testing the C compiler.
-AM_PROG_CC_C_O
AC_LANG_C
+dnl Testing for libtool support.
+AC_PROG_RANLIB
+AM_PROG_AR
+
+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
+AC_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)
AC_MSG_CHECKING([whether to build GUI])
if test x$ac_cv_enable_gui = xyes; then
AC_MSG_RESULT(yes)
- PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4.0, CFLAGS="${CFLAGS} -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED", dnl
+ PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.4.0, [], dnl
ac_cv_enable_gui=no)
if test x$ac_cv_enable_gui = xyes; then
AC_DEFINE([HAVE_GTK],1,[Set to 1 to enable GTK+ support for building GUI.])
+
+ GTK_CFLAGS="${GTK_CFLAGS} -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
+
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
fi
AM_CONDITIONAL([USE_GTK], [test x${ac_cv_enable_gui} = xyes])
-AC_SUBST(CFLAGS)
-AC_SUBST(LIBS)
-AC_SUBST(ac_aux_dir)
+dnl Try to locate valid 8051 assembler to generate test files (.hex)
+run_tests=no
-dnl Creating output file(s)
-AC_OUTPUT(Makefile src/Makefile data/Makefile doc/Makefile)
+AC_CHECK_PROG(AS504_CHECK,as504,yes)
+if test x"$AS504_CHECK" = x"yes" ; then
+ run_tests=yes
+
+ dnl Check if as504 has been patched to support option -O:
+ dnl See http://www.hugovil.com/repository/hvlinux/patches/as504-add-output-file-option.patch
+ AS504HV_CHECK=no
+ if as504 2>&1 | grep -q Ooutfile; then
+ AS504HV_CHECK=yes
+ fi
+fi
+
+AC_CHECK_PROG(ASEM51_CHECK,asem,yes)
+if test x"$ASEM51_CHECK" = x"yes" ; then
+ run_tests=yes
+fi
+
+if test x"$run_tests" != x"yes" ; then
+ AC_MSG_WARN([Please install as504 (http://www.vanwal.nl/as504/) or ASEM-51 (http://plit.de/asem-51) to run test suite.])
+fi
-echo \
-"---------------------------------------------------------------------------
-Configuration:
+AM_CONDITIONAL([RUN_TESTS],[test x"$run_tests" = x"yes"])
+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"])
- Install path: ${prefix}
- Compiler: ${CC}
- Compiler flags: ${CFLAGS}
- Linker flags: ${LIBS}"
+dnl zlib required for its crc32 function
+ac_have_zlib=no
-echo -n " Build GUI: "
-if test x"${ac_cv_enable_gui}" = xyes; then
- echo "yes"
+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
- echo "no"
+ AC_MSG_ERROR([Please install zlib and zlib-devel packages])
fi
-echo \
-"
- See config.h for further configuration information.
----------------------------------------------------------------------------"
+AC_SUBST(WARNINGCFLAGS)
+AC_SUBST(LIBS)
+AC_SUBST(ac_aux_dir)
+
+dnl Creating output file(s)
+AC_OUTPUT(Makefile
+ src/common/Makefile
+ src/cli/Makefile
+ src/gtk/Makefile
+ data/Makefile
+ doc/Makefile
+ tests/Makefile)