Set tval to 0 on traps with no specified tval
[riscv-isa-sim.git] / Makefile.in
index 1d8d9b251d10b1081bded1476143e9c219209725..c09fc505881b393afd7ac1f34b03a513d7ab50f6 100644 (file)
@@ -55,9 +55,9 @@ enable_stow  := @enable_stow@
 
 ifeq ($(enable_stow),yes)
   stow_pkg_dir := $(prefix)/pkgs
-  INSTALLDIR ?= $(DESTDIR)/$(stow_pkg_dir)/$(project_name)-$(project_ver)
+  INSTALLDIR ?= $(DESTDIR)$(stow_pkg_dir)/$(project_name)-$(project_ver)
 else
-  INSTALLDIR ?= $(DESTDIR)/$(prefix)
+  INSTALLDIR ?= $(DESTDIR)$(prefix)
 endif
 
 install_hdrs_dir := $(INSTALLDIR)/include/$(project_name)
@@ -71,7 +71,7 @@ install_exes_dir := $(INSTALLDIR)/bin
 sprojs         := @subprojects@
 sprojs_enabled := @subprojects_enabled@
 
-sprojs_include := -I. $(addprefix -I$(src_dir)/, $(sprojs_enabled))
+sprojs_include := -I. -I$(src_dir) $(addprefix -I$(src_dir)/, $(sprojs_enabled))
 VPATH := $(addprefix $(src_dir)/, $(sprojs_enabled))
 
 #-------------------------------------------------------------------------
@@ -120,6 +120,9 @@ INSTALL_LIB   := $(INSTALL) -m 644
 INSTALL_EXE   := $(INSTALL) -m 555
 STOW          := @stow@
 
+# Tests
+bintests = $(src_dir)/tests/ebreak.py
+
 #-------------------------------------------------------------------------
 # Include subproject makefile fragments
 #-------------------------------------------------------------------------
@@ -191,7 +194,7 @@ $(2)_deps := $$(patsubst %.o, %.d, $$($(2)_objs))
 $(2)_deps += $$(patsubst %.o, %.d, $$($(2)_c_objs))
 $(2)_deps += $$(patsubst %.h, %.h.d, $$($(2)_precompiled_hdrs))
 $$($(2)_pch) : %.h.gch : %.h
-       $(COMPILE) $$< -o $$@
+       $(COMPILE) -x c++-header $$< -o $$@
 # If using clang, don't depend (and thus don't build) precompiled headers
 $$($(2)_objs) : %.o : %.cc $$($(2)_gen_hdrs) $(if $(filter-out clang,$(CC)),$$($(2)_pch))
        $(COMPILE) -c $$<
@@ -307,6 +310,7 @@ test_outs += $$($(2)_test_outs)
 install_hdrs += $$(addprefix $(src_dir)/$(1)/, $$($(2)_hdrs)) $$($(2)_gen_hdrs)
 install_libs += lib$(1).so
 install_exes += $$($(2)_install_prog_exes)
+install_pcs  += riscv-$(1).pc
 
 endef
 
@@ -328,8 +332,20 @@ deps : $(deps)
 # Check
 #-------------------------------------------------------------------------
 
-check : $(test_outs)
-       echo; grep -h -e'Unit Tests' -e'FAILED' -e'Segementation' $^; echo
+bintest_outs = $(bintests:=.out)
+junk += $(bintest_outs)
+%.out: % all
+       ./$* < /dev/null 2>&1 | tee $@
+
+check-cpp : $(test_outs)
+       @echo
+       ! grep -h -e'Unit Tests' -e'FAILED' -e'Segmentation' $^ < /dev/null
+       @echo
+
+check-bin : $(bintest_outs)
+       ! tail -n 1 $^ < /dev/null 2>&1 | grep FAILED
+
+check : check-cpp check-bin
 
 .PHONY : check
 
@@ -358,7 +374,14 @@ install-exes : $(install_exes)
     $(INSTALL_EXE) $$file $(install_exes_dir); \
   done
 
-install : install-hdrs install-libs install-exes
+install-pc : $(install_pcs)
+       $(MKINSTALLDIRS) $(install_libs_dir)/pkgconfig/
+       for file in $^; \
+  do \
+    $(INSTALL_HDR) $$file $(install_libs_dir)/pkgconfig/; \
+  done
+
+install : install-hdrs install-libs install-exes install-pc
 ifeq ($(enable_stow),yes)
        $(MKINSTALLDIRS) $(stow_pkg_dir)
        cd $(stow_pkg_dir) && \
@@ -372,15 +395,6 @@ endif
 # Regenerate configure information
 #-------------------------------------------------------------------------
 
-configure_prereq = \
-  $(src_dir)/configure.ac \
-  $(src_dir)/aclocal.m4 \
-  $(join $(addprefix $(src_dir)/, $(sprojs_enabled)), \
-         $(patsubst  %, /%.ac, $(sprojs_enabled)))
-
-$(src_dir)/configure : $(configure_prereq)
-       cd $(src_dir) && autoconf && autoheader
-
 config.status : $(src_dir)/configure
        ./config.status --recheck