Change way tests are enabled/disabled by asem presence
authorHugo Villeneuve <hugo@hugovil.com>
Mon, 2 Dec 2013 01:06:29 +0000 (20:06 -0500)
committerHugo Villeneuve <hugo@hugovil.com>
Mon, 2 Dec 2013 02:00:08 +0000 (21:00 -0500)
Makefile.am
configure.ac
tests/Makefile.am

index 89723db..0304f0a 100644 (file)
@@ -2,11 +2,7 @@
 
 AUTOMAKE_OPTIONS = gnu
 
-SUBDIRS = src data doc
-
-if RUN_TESTS
-SUBDIRS += tests
-endif
+SUBDIRS = src data doc tests
 
 ## We want these in the dist tarball
 EXTRA_DIST = autogen.sh \
index c4be40f..da45798 100644 (file)
@@ -47,31 +47,17 @@ fi
 
 AM_CONDITIONAL([USE_GTK], [test x${ac_cv_enable_gui} = xyes])
 
-dnl Check if tests are enabled (disabled by default)
-AC_ARG_ENABLE([tests],
-              [AS_HELP_STRING([--enable-tests],[Run test suite])],
-              [run_tests=${enableval}],
-              [run_tests="no"])
-
-dnl If tests are enabled, try to locate asem 8051 compiler
-if test x"${run_tests}" = xyes; then
-    dnl Tests for 8051 assembler to generate hex test files
-    dnl TODO: add argument to specify location of asem executable...
-    AC_CHECK_PROG(ASEM_CHECK,asem,yes)
-    if test x"$ASEM_CHECK" != x"yes" ; then
-        AC_MSG_ERROR([Please install asem (http://plit.de/asem-51) to run test suite.])
-    fi
+dnl Try to locate asem 8051 compiler to generate test files (.hex)
+AC_CHECK_PROG(ASEM_CHECK,asem,yes)
+if test x"$ASEM_CHECK" != x"yes" ; then
+    AC_MSG_WARN([Please install asem (http://plit.de/asem-51) to run test suite.])
 fi
 
-AM_CONDITIONAL([RUN_TESTS],[test "x$run_tests" = "xyes"])
+AM_CONDITIONAL([RUN_TESTS],[test x"$ASEM_CHECK" = x"yes"])
 
 AC_SUBST(CFLAGS)
 AC_SUBST(LIBS)
 AC_SUBST(ac_aux_dir)
 
 dnl Creating output file(s)
-AC_OUTPUT(Makefile src/Makefile data/Makefile doc/Makefile)
-
-if test x"${run_tests}" = xyes; then
-    AC_OUTPUT(tests/Makefile)
-fi
+AC_OUTPUT(Makefile src/Makefile data/Makefile doc/Makefile tests/Makefile)
index 147846b..82863a6 100644 (file)
@@ -4,7 +4,18 @@ AS51 = asem
 
 SUFFIXES = .hex .asm .sh
 
-# Should find a way to automatically generate each symlink here:
+# Do not remove intermediate .hex files
+.SECONDARY:
+
+ASM_SRC = \
+    mul1.asm mul2.asm \
+    div.asm \
+    orl.asm anl.asm \
+    mov.asm \
+    timer0.asm timer1.asm timer2.asm
+
+if RUN_TESTS
+
 TESTS = \
     mul1.sh mul2.sh \
     div.sh \
@@ -12,25 +23,20 @@ TESTS = \
     mov.sh \
     timer0.sh timer1.sh timer2.sh
 
-mul1.sh: mul1.hex
-mul2.sh: mul2.hex
-div.sh: div.hex
-orl.sh: orl.hex
-anl.sh: anl.hex
-mov.sh: mov.hex
-timer0.sh: timer0.hex
-timer1.sh: timer1.hex
-timer2.sh: timer2.hex
-
 # Tell make how to generate a .sh file after a .hex file is generated:
 .hex.sh:
-       ln -sf opcodes.sh $@
+       @ln -sf opcodes.sh $@
 
-# Tell make how to generate a .hex file from a .asm source file:
+# Tell make how to generate a .hex file from a .asm source file.
+# Warning: make distcheck will fail because asem doesn't have option to specify
+# output filename (and path):
 .asm.hex:
        $(AS51) $<
+else
+TESTS =
+endif
 
-EXTRA_DIST = $(TESTS) *.asm *.hex
+EXTRA_DIST = opcodes.sh $(ASM_SRC)
 
 CLEANFILES = *~ *.lst *.hex $(TESTS)