topdir = ..
subdir := testprograms
+DIFF ?= diff
+REF_DIR = $(srcdir)/ref-results
SOURCES := Makefile.in \
array-heap_example.c empty.c irr_cf_example.c \
call_str_example.c if_else_example.c memory_example.c \
cond_example.c if_example.c oo_program_example.c \
const_eval_example.c if_while_example.c three_cfpred_example.c \
- dead_block_example.c inheritance_example.c while_example.c
+ dead_block_example.c inheritance_example.c while_example.c \
+ endless_loop.c global_cse.c oo_inline_example.c
+
+GENFILES = %.vcg results.txt
bin_EXAMPLES = $(CFILES:.c=)
-run_bin_EXAMPLES = $(CFILES:.c=;)
+run_bin_EXAMPLES = $(patsubst %.c,./%;,$(CFILES))
include $(topdir)/MakeRules
CPPFLAGS += -I$(top_srcdir)/ir/adt -I$(top_srcdir)/ir/common -I$(top_srcdir)/ir/debug \
-I$(top_srcdir)/ir/ident -I$(top_srcdir)/ir/ir -I$(top_srcdir)/ir/tr \
- -I$(top_srcdir)/ir/tv
+ -I$(top_srcdir)/ir/tv -I$(top_srcdir)/ir/st -I$(top_srcdir)/ir/ana
LDFLAGS += -L$(topdir)
-LDLIBS += -lfirm -lgmp
+LDLIBS += -lfirm -lgmp -liberty
+
+GENFILES := $(bin_EXAMPLES) *.vcg
include $(top_srcdir)/MakeTargets
all: $(bin_EXAMPLES) $(topdir)/libfirm.a
+$(bin_EXAMPLES): $(topdir)/libfirm.a
+
run:
$(run_bin_EXAMPLES)
-# this generates error messages
-local_clean:
- $(RM) $(OFILES) $(bin_EXAMPLES) *.vcg core
+test: realclean all
+ ($(run_bin_EXAMPLES))>run-result.txt
+ ($(DIFF) run-result.txt $(REF_DIR)/run-result.txt) || (echo Libfirm test failed; exit 1)
+ for g in $(REF_DIR)/*.vcg; do\
+ ($(DIFF) -s `basename $$g` $$g)|| (echo Libfirm test failed; exit 1) \
+ done;
+ @echo Libfirm test successful
+
+reference: realclean all
+ $(RM) $(REF_DIR)/*.vcg
+ ($(run_bin_EXAMPLES))>$(REF_DIR)/run-result.txt
+ install -c -m0644 *.vcg $(REF_DIR)