# HG changeset patch # User John W. Eaton # Date 1436451101 14400 # Node ID 2d84d27dc9f0b891231ed7afe178e95c15ba570a # Parent 79d64c58daea1e58afd5e4a115a7eb9cb0580774 eliminate recursive make invocation in src directory * src/module.mk: New file, created from src/Makefile.am. * src/Makefile.am: Delete. * configure.ac (AC_OUTPUT): Don't generate src/Makefile. * Makefile.am (SUBDIRS): Remove src. (ALL_LOCAL_TARGETS, bin_PROGRAMS, noinst_HEADERS, OCTAVE_VERSION_LINKS, OCTAVE_CROSS_TOOLS, archlib_PROGRAMS, OCTAVE_INTERPRETER_TARGETS): Initialize new variables. * doc/module.mk ($(GRAPH_PROP_TEXI_SRC), $(BUILT_IMAGES), doc/interpreter/doc-cache): Depend on $(OCTAVE_INTERPRETER_TARGETS). Fix dependencies for octave.html. Use $(abs_top_srcdir) instead of $(srcdir) in rules that use cd. * test/module.mk (GENERATED_TEST_FILES): New macro. (check-local, check-jit): Depend on $(OCTAVE_INTERPRETER_TARGETS) and $(GENERATED_TEST_FILES). diff -r 79d64c58daea -r 2d84d27dc9f0 Makefile.am --- a/Makefile.am Wed Jul 08 12:55:10 2015 -0400 +++ b/Makefile.am Thu Jul 09 10:11:41 2015 -0400 @@ -66,6 +66,16 @@ IMAGES_PNG = IMAGES_TXT = +bin_PROGRAMS = +archlib_PROGRAMS = +noinst_HEADERS = +OCTAVE_VERSION_LINKS = +OCTAVE_CROSS_TOOLS = +OCTAVE_INTERPRETER_TARGETS = + +ALL_LOCAL_TARGETS = + +include src/module.mk include doc/module.mk include doc/interpreter/images.mk include etc/module.mk @@ -81,7 +91,7 @@ if AMCOND_BUILD_GUI SUBDIRS += libgui endif -SUBDIRS += src scripts +SUBDIRS += scripts dist-hook: doc-interpreter-dist-hook docs-dist-hook icons-dist-hook @@ -111,6 +121,8 @@ noinst_SCRIPTS = run-octave +OCTAVE_INTERPRETER_TARGETS += run-octave + CLEANFILES += \ $(BUILT_SOURCES) @@ -127,7 +139,7 @@ nodist_octinclude_HEADERS = config.h octinclude_HEADERS = oct-conf-post.h -all-local: $(noinst_SCRIPTS) $(DIST_INFO_FILES) .gdbinit $(DOC_TARGETS) +all-local: $(ALL_LOCAL_TARGETS) $(noinst_SCRIPTS) $(DIST_INFO_FILES) .gdbinit $(DOC_TARGETS) @echo "" @echo "Octave successfully built. Now choose from the following:" @echo "" diff -r 79d64c58daea -r 2d84d27dc9f0 configure.ac --- a/configure.ac Wed Jul 08 12:55:10 2015 -0400 +++ b/configure.ac Thu Jul 09 10:11:41 2015 -0400 @@ -3002,8 +3002,7 @@ libinterp/Makefile liboctave/Makefile liboctave/cruft/mkf77def - scripts/Makefile - src/Makefile]) + scripts/Makefile]) AC_OUTPUT diff -r 79d64c58daea -r 2d84d27dc9f0 doc/module.mk --- a/doc/module.mk Wed Jul 08 12:55:10 2015 -0400 +++ b/doc/module.mk Thu Jul 09 10:11:41 2015 -0400 @@ -56,6 +56,8 @@ doc/interpreter/plot-surfaceproperties.texi \ doc/interpreter/plot-textproperties.texi +$(GRAPH_PROP_TEXI_SRC): $(OCTAVE_INTERPRETER_TARGETS) + define gen-propdoc-texi rm -f $@-t $@ && \ $(top_builddir)/run-octave -f -q -H -p $(srcdir)/doc/interpreter --eval "genpropdoc ('$(1)');" > $@-t && \ @@ -113,6 +115,8 @@ $(BUILT_IMAGES) \ $(JAVA_IMAGES) +$(BUILT_IMAGES): $(OCTAVE_INTERPRETER_TARGETS) + ## FIXME: JAVA_IMAGES will eventually need to be added to the HTML build. ## It will require a different Makefile rule later because ## JAVA_IMAGES live in a subdir rather than in the current directory. @@ -203,10 +207,14 @@ ## there are additional dependencies, so we include our own ## versions of the rules here. +OCTAVE_HTML_DIR = doc/interpreter/octave.html +OCTAVE_HTML_TMP_DIR = $(OCTAVE_HTML_DIR:.html=.htp) +OCTAVE_HTML_STAMP = $(OCTAVE_HTML_DIR)/.html-stamp + $(srcdir)/doc/interpreter/octave.info: $(IMAGES_TXT) $(octave_TEXINFOS) doc/interpreter/octave.dvi: $(IMAGES_EPS) $(octave_TEXINFOS) doc/interpreter/octave.pdf: $(IMAGES_PDF) $(octave_TEXINFOS) -doc/interpreter/octave.html: $(IMAGES_PNG) $(octave_TEXINFOS) +$(OCTAVE_HTML_STAMP): $(IMAGES_PNG) $(octave_TEXINFOS) $(srcdir)/doc/interpreter/octave.info: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ @@ -218,7 +226,7 @@ done; \ else :; fi && \ cd "$$am__cwd"; \ - if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter \ + if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(abs_top_srcdir)/doc/interpreter \ -o $@ $(srcdir)/doc/interpreter/octave.texi; \ then \ rc=0; \ @@ -232,24 +240,20 @@ doc/interpreter/octave.dvi: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi doc/interpreter/$(am__dirstamp) $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ - MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter' \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(abs_top_srcdir)/doc/interpreter' \ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ - `test -f 'doc/interpreter/octave.texi' || echo '$(srcdir)/'`doc/interpreter/octave.texi + `test -f 'doc/interpreter/octave.texi' || echo '$(abs_top_srcdir)/'`doc/interpreter/octave.texi doc/interpreter/octave.pdf: doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi doc/interpreter/$(am__dirstamp) $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ - MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter' \ + MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(abs_top_srcdir)/doc/interpreter' \ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ - `test -f 'doc/interpreter/octave.texi' || echo '$(srcdir)/'`doc/interpreter/octave.texi - -OCTAVE_HTML_DIR = doc/interpreter/octave.html -OCTAVE_HTML_TMP_DIR = $(OCTAVE_HTML_DIR:.html=.htp) -OCTAVE_HTML_STAMP = $(OCTAVE_HTML_DIR)/.html-stamp + `test -f 'doc/interpreter/octave.texi' || echo '$(abs_top_srcdir)/'`doc/interpreter/octave.texi $(OCTAVE_HTML_STAMP): doc/interpreter/octave.texi $(srcdir)/doc/interpreter/version-octave.texi doc/interpreter/$(am__dirstamp) $(AM_V_MAKEINFO)rm -rf $(OCTAVE_HTML_DIR) - $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(srcdir)/doc/interpreter \ - -o $(OCTAVE_HTML_TMP_DIR) `test -f 'doc/interpreter/octave.texi' || echo '$(srcdir)/'`doc/interpreter/octave.texi; \ + $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I doc/interpreter -I $(abs_top_srcdir)/doc/interpreter \ + -o $(OCTAVE_HTML_TMP_DIR) `test -f 'doc/interpreter/octave.texi' || echo '$(abs_top_srcdir)/'`doc/interpreter/octave.texi; \ then \ rm -rf $(OCTAVE_HTML_DIR)@ && \ mv $(OCTAVE_HTML_TMP_DIR) $(OCTAVE_HTML_DIR) && \ @@ -287,7 +291,7 @@ DOCSTRING_FILES = $(shell $(srcdir)/doc/interpreter/find-docstring-files.sh "$(top_srcdir)") -doc/interpreter/doc-cache: $(DOCSTRING_FILES) doc/interpreter/mk_doc_cache.m doc/interpreter/$(octave_dirstamp) +doc/interpreter/doc-cache: $(DOCSTRING_FILES) $(OCTAVE_INTERPRETER_TARGETS) doc/interpreter/mk_doc_cache.m doc/interpreter/$(octave_dirstamp) $(AM_V_GEN)rm -f $@-t $@ && \ $(top_builddir)/run-octave -f -q -H $(srcdir)/doc/interpreter/mk_doc_cache.m - $(srcdir)/doc/interpreter/macros.texi $(DOCSTRING_FILES) >$@-t && \ mv $@-t $@ diff -r 79d64c58daea -r 2d84d27dc9f0 src/Makefile.am --- a/src/Makefile.am Wed Jul 08 12:55:10 2015 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,199 +0,0 @@ -# Makefile for Octave's src directory -# -# Copyright (C) 1993-2015 John W. Eaton -# -# This file is part of Octave. -# -# Octave is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by the -# Free Software Foundation; either version 3 of the License, or (at -# your option) any later version. -# -# Octave is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with Octave; see the file COPYING. If not, see -# . - -include $(top_srcdir)/build-aux/common.mk - -## Search local directories before those specified by the user. -AM_CPPFLAGS = \ - -I$(top_srcdir)/liboctave/array \ - -I$(top_srcdir)/liboctave/cruft/misc \ - -I$(top_srcdir)/liboctave/numeric \ - -I$(top_srcdir)/liboctave/system \ - -I$(top_srcdir)/liboctave/util \ - -I$(top_srcdir)/libinterp \ - -I$(top_builddir)/libinterp/corefcn -I$(top_srcdir)/libinterp/corefcn \ - -I$(top_builddir)/libgnu -I$(top_srcdir)/libgnu - -AM_CFLAGS += $(WARN_CFLAGS) - -AM_CXXFLAGS += $(WARN_CXXFLAGS) - -EXTRA_DIST = \ - main.in.cc \ - mkoctfile.in.cc \ - octave-config.in.cc - -DISTCLEANFILES = \ - main.cc \ - mkoctfile.cc \ - octave-config.cc - -bin_PROGRAMS = \ - mkoctfile \ - octave \ - octave-cli \ - octave-config - -noinst_HEADERS = \ - display-available.h \ - shared-fcns.h - -OCTAVE_VERSION_LINKS = octave-cli-$(version)$(EXEEXT) - -archlib_PROGRAMS = - -if AMCOND_BUILD_GUI - archlib_PROGRAMS += octave-gui - OCTAVE_VERSION_LINKS += octave-gui-$(version)$(EXEEXT) -endif - -OCTAVE_CORE_LIBS = \ - $(top_builddir)/libinterp/liboctinterp.la \ - $(top_builddir)/liboctave/liboctave.la - -include ../libgui/link-deps.mk - -nodist_octave_SOURCES = main.cc -octave_SOURCES = display-available.c - -octave_LDADD = \ - $(top_builddir)/libgnu/libgnu.la \ - $(X11_LIBS) \ - $(CARBON_LIBS) \ - $(GNULIB_LINK_DEPS) - -octave_LDFLAGS = \ - $(NO_UNDEFINED_LDFLAG) \ - $(OCTAVE_LINK_OPTS) - -if AMCOND_BUILD_GUI - OCTAVE_CPPFLAGS = -DHAVE_OCTAVE_GUI -endif - -octave_CPPFLAGS = \ - $(AM_CPPFLAGS) \ - $(OCTAVE_CPPFLAGS) - -octave_cli_SOURCES = main-cli.cc - -octave_cli_LDADD = \ - $(OCTAVE_CORE_LIBS) \ - $(OCTAVE_LINK_DEPS) - -octave_cli_LDFLAGS = \ - $(NO_UNDEFINED_LDFLAG) \ - $(OCTAVE_LINK_OPTS) - -if AMCOND_BUILD_GUI - octave_gui_SOURCES = main-gui.cc - OCTAVE_GUI_LIBS = $(top_builddir)/libgui/liboctgui.la - OCTAVE_GUI_CPPFLAGS = -I$(top_srcdir)/libgui/src -endif - -octave_gui_CPPFLAGS = \ - $(AM_CPPFLAGS) \ - $(OCTAVE_GUI_CPPFLAGS) - -octave_gui_LDADD = \ - $(OCTAVE_GUI_LIBS) \ - $(OCTAVE_CORE_LIBS) \ - $(OCTAVE_GUI_LINK_DEPS) - -octave_gui_LDFLAGS = \ - $(NO_UNDEFINED_LDFLAG) \ - $(OCTAVE_GUI_LINK_OPTS) - -mkoctfile_SOURCES = -nodist_mkoctfile_SOURCES = mkoctfile.cc -mkoctfile_LDADD = $(top_builddir)/libgnu/libgnu.la $(LIBS) - -octave_config_SOURCES = -nodist_octave_config_SOURCES = octave-config.cc -octave_config_LDADD = \ - $(top_builddir)/libinterp/corefcn/libcorefcn.la \ - $(top_builddir)/libgnu/libgnu.la \ - $(LIBS) - -OCTAVE_CROSS_TOOLS= -if AMCOND_CROSS_TOOLS -# building cross mkoctfile -OCTAVE_CROSS_TOOLS += $(host_triplet)-mkoctfile$(BUILD_EXEEXT) -$(host_triplet)-mkoctfile$(BUILD_EXEEXT): $(host_triplet)-mkoctfile.cc - $(BUILD_CXX) -o $(host_triplet)-mkoctfile$(BUILD_EXEEXT) -Dgnulib='' -Doctave_idx_type=int $(DEFAULT_INCLUDES) $(BUILD_CXXFLAGS) $(BUILD_LDFLAGS) $(host_triplet)-mkoctfile.cc -$(host_triplet)-mkoctfile.cc: mkoctfile.in.cc Makefile - $(AM_V_GEN)$(do_subst_cross_config_vals) - -# building cross octave-config -OCTAVE_CROSS_TOOLS += $(host_triplet)-octave-config$(BUILD_EXEEXT) -$(host_triplet)-octave-config$(BUILD_EXEEXT): $(host_triplet)-octave-config.cc - $(BUILD_CXX) -o $(host_triplet)-octave-config$(BUILD_EXEEXT) -Dgnulib='' -Doctave_idx_type=int $(DEFAULT_INCLUDES) $(BUILD_CXXFLAGS) $(BUILD_LDFLAGS) $(host_triplet)-octave-config.cc -$(host_triplet)-octave-config.cc: octave-config.in.cc Makefile - $(AM_V_GEN)$(do_subst_default_vals) - -mostlyclean-local: - -rm -f $(OCTAVE_CROSS_TOOLS) - -endif - -all-local: $(OCTAVE_VERSION_LINKS) $(OCTAVE_CROSS_TOOLS) - -octave-config.cc: octave-config.in.cc Makefile - $(AM_V_GEN)$(do_subst_default_vals) - -mkoctfile.cc: mkoctfile.in.cc Makefile - $(AM_V_GEN)$(do_subst_config_vals) - -## main.cc must depend on Makefile. Calling configure may change -## default/config values. However, calling configure will also -## regenerate the Makefiles from Makefile.am and trigger the rules below. -main.cc: main.in.cc Makefile - $(AM_V_GEN)$(do_subst_default_vals) - -install-exec-hook: make-version-links - -uninstall-local: remove-version-links - -make-version-links: - cd $(DESTDIR)$(bindir) && \ - for f in $(basename $(bin_PROGRAMS)); do \ - mv $$f$(EXEEXT) $$f-$(version)$(EXEEXT) && \ - $(LN_S) $$f-$(version)$(EXEEXT) $$f$(EXEEXT); \ - done - -remove-version-links: - for f in $(basename $(bin_PROGRAMS)); do \ - rm -f $(DESTDIR)$(bindir)/$$f-$(version)$(EXEEXT); \ - done - -.PHONY: make-version-links remove-version-links - -## We need these file names in the build tree because the wrapper -## program (main.cc) will try to invoke the versioned binaries. - -octave-cli-$(version)$(EXEEXT): octave-cli$(EXEEXT) - $(AM_V_GEN)rm -f $@ && \ - $(LN_S) $< $@ - -octave-gui-$(version)$(EXEEXT): octave-gui$(EXEEXT) - $(AM_V_GEN)rm -f $@ && \ - $(LN_S) $< $@ - -CLEANFILES = \ - $(OCTAVE_VERSION_LINKS) diff -r 79d64c58daea -r 2d84d27dc9f0 src/module.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/module.mk Thu Jul 09 10:11:41 2015 -0400 @@ -0,0 +1,222 @@ +## Search local directories before those specified by the user. + +SRC_DIR_CPPFLAGS = \ + -I$(top_srcdir)/liboctave/array \ + -I$(top_srcdir)/liboctave/cruft/misc \ + -I$(top_srcdir)/liboctave/numeric \ + -I$(top_srcdir)/liboctave/system \ + -I$(top_srcdir)/liboctave/util \ + -I$(top_srcdir)/libinterp \ + -I$(top_builddir)/libinterp/corefcn -I$(top_srcdir)/libinterp/corefcn \ + -I$(top_srcdir)/src \ + -I$(top_builddir)/libgnu -I$(top_srcdir)/libgnu + +EXTRA_DIST += \ + src/main.in.cc \ + src/mkoctfile.in.cc \ + src/octave-config.in.cc + +DISTCLEANFILES += \ + src/main.cc \ + src/mkoctfile.cc \ + src/octave-config.cc + +bin_PROGRAMS += \ + src/mkoctfile \ + src/octave \ + src/octave-cli \ + src/octave-config + +OCTAVE_INTERPRETER_TARGETS += $(bin_programs) + +noinst_HEADERS += \ + src/display-available.h \ + src/shared-fcns.h + +OCTAVE_VERSION_LINKS += src/octave-cli-$(version)$(EXEEXT) + +if AMCOND_BUILD_GUI + archlib_PROGRAMS += src/octave-gui + OCTAVE_VERSION_LINKS += src/octave-gui-$(version)$(EXEEXT) + + OCTAVE_INTERPRETER_TARGETS += src/octave-gui +endif + +OCTAVE_CORE_LIBS = \ + $(top_builddir)/libinterp/liboctinterp.la \ + $(top_builddir)/liboctave/liboctave.la + +include libgui/link-deps.mk + +nodist_src_octave_SOURCES = src/main.cc +src_octave_SOURCES = src/display-available.c + +src_octave_LDADD = \ + $(top_builddir)/libgnu/libgnu.la \ + $(X11_LIBS) \ + $(CARBON_LIBS) \ + $(GNULIB_LINK_DEPS) + +src_octave_LDFLAGS = \ + $(NO_UNDEFINED_LDFLAG) \ + $(OCTAVE_LINK_OPTS) + +if AMCOND_BUILD_GUI + OCTAVE_CPPFLAGS = -DHAVE_OCTAVE_GUI +endif + +src_octave_CPPFLAGS = \ + $(SRC_DIR_CPPFLAGS) \ + $(OCTAVE_CPPFLAGS) + +src_octave_CXXFLAGS = \ + $(AM_CXXFLAGS) \ + $(WARN_CXXFLAGS) + +src_octave_cli_SOURCES = src/main-cli.cc + +src_octave_cli_LDADD = \ + $(OCTAVE_CORE_LIBS) \ + $(OCTAVE_LINK_DEPS) + +src_octave_cli_LDFLAGS = \ + $(NO_UNDEFINED_LDFLAG) \ + $(OCTAVE_LINK_OPTS) + +src_octave_cli_CPPFLAGS = \ + $(SRC_DIR_CPPFLAGS) \ + $(OCTAVE_CPPFLAGS) + +src_octave_cli_CXXFLAGS = \ + $(AM_CXXFLAGS) \ + $(WARN_CXXFLAGS) + +if AMCOND_BUILD_GUI + src_octave_gui_SOURCES = src/main-gui.cc + OCTAVE_GUI_LIBS = $(top_builddir)/libgui/liboctgui.la + OCTAVE_GUI_CPPFLAGS = -I$(top_srcdir)/libgui/src +endif + +src_octave_gui_CPPFLAGS = \ + $(SRC_DIR_CPPFLAGS) \ + $(OCTAVE_GUI_CPPFLAGS) + +src_octave_gui_LDADD = \ + $(OCTAVE_GUI_LIBS) \ + $(OCTAVE_CORE_LIBS) \ + $(OCTAVE_GUI_LINK_DEPS) + +src_octave_gui_LDFLAGS = \ + $(NO_UNDEFINED_LDFLAG) \ + $(OCTAVE_GUI_LINK_OPTS) + +src_octave_gui_CXXFLAGS = \ + $(AM_CXXFLAGS) \ + $(WARN_CXXFLAGS) + +src_mkoctfile_SOURCES = + +nodist_src_mkoctfile_SOURCES = src/mkoctfile.cc + +src_mkoctfile_LDADD = $(top_builddir)/libgnu/libgnu.la $(LIBS) + +src_mkoctfile_CPPFLAGS = \ + $(SRC_DIR_CPPFLAGS) \ + $(OCTAVE_CPPFLAGS) + +src_mkoctfile_CXXFLAGS = \ + $(AM_CXXFLAGS) \ + $(WARN_CXXFLAGS) + +src_octave_config_SOURCES = + +nodist_src_octave_config_SOURCES = src/octave-config.cc + +src_octave_config_LDADD = \ + $(top_builddir)/libinterp/corefcn/libcorefcn.la \ + $(top_builddir)/libgnu/libgnu.la \ + $(LIBS) + +src_octave_config_CPPFLAGS = \ + $(SRC_DIR_CPPFLAGS) \ + $(OCTAVE_CPPFLAGS) + +src_octave_config_CXXFLAGS = \ + $(AM_CXXFLAGS) \ + $(WARN_CXXFLAGS) + +DIRSTAMP_FILES += src/$(octave_dirstamp) + +if AMCOND_CROSS_TOOLS + +## Building cross mkoctfile. + +OCTAVE_CROSS_TOOLS += src/$(host_triplet)-mkoctfile$(BUILD_EXEEXT) + +src/$(host_triplet)-mkoctfile$(BUILD_EXEEXT): src/$(host_triplet)-mkoctfile.cc + $(BUILD_CXX) -o src/$(host_triplet)-mkoctfile$(BUILD_EXEEXT) -Dgnulib='' -Doctave_idx_type=int $(DEFAULT_INCLUDES) $(BUILD_CXXFLAGS) $(BUILD_LDFLAGS) src/$(host_triplet)-mkoctfile.cc + +src/$(host_triplet)-mkoctfile.cc: src/mkoctfile.in.cc Makefile src/$(octave_dirstamp) + $(AM_V_GEN)$(do_subst_cross_config_vals) + +## Building cross octave-config. + +OCTAVE_CROSS_TOOLS += src/$(host_triplet)-octave-config$(BUILD_EXEEXT) + +src/$(host_triplet)-octave-config$(BUILD_EXEEXT): src/$(host_triplet)-octave-config.cc + $(BUILD_CXX) -o src/$(host_triplet)-octave-config$(BUILD_EXEEXT) -Dgnulib='' -Doctave_idx_type=int $(DEFAULT_INCLUDES) $(BUILD_CXXFLAGS) $(BUILD_LDFLAGS) src/$(host_triplet)-octave-config.cc + +src/$(host_triplet)-octave-config.cc: src/octave-config.in.cc Makefile src/$(octave_dirstamp) + $(AM_V_GEN)$(do_subst_default_vals) + +mostlyclean-local: + -rm -f $(OCTAVE_CROSS_TOOLS) + +endif + +src/octave-config.cc: src/octave-config.in.cc Makefile src/$(octave_dirstamp) + $(AM_V_GEN)$(do_subst_default_vals) + +src/mkoctfile.cc: src/mkoctfile.in.cc Makefile src/$(octave_dirstamp) + $(AM_V_GEN)$(do_subst_config_vals) + +## main.cc must depend on Makefile. Calling configure may change +## default/config values. However, calling configure will also +## regenerate the Makefiles from Makefile.am and trigger the rules below. + +src/main.cc: src/main.in.cc Makefile src/$(octave_dirstamp) + $(AM_V_GEN)$(do_subst_default_vals) + +ALL_LOCAL_TARGETS += $(OCTAVE_VERSION_LINKS) $(OCTAVE_CROSS_TOOLS) + +install-exec-hook: make-version-links + +uninstall-local: remove-version-links + +make-version-links: + cd $(DESTDIR)$(bindir) && \ + for f in $(basename $(bin_PROGRAMS)); do \ + mv $$f$(EXEEXT) $$f-$(version)$(EXEEXT) && \ + $(LN_S) $$f-$(version)$(EXEEXT) $$f$(EXEEXT); \ + done + +remove-version-links: + for f in $(basename $(bin_PROGRAMS)); do \ + rm -f $(DESTDIR)$(bindir)/$$f-$(version)$(EXEEXT); \ + done + +.PHONY: make-version-links remove-version-links + +## We need these file names in the build tree because the wrapper +## program (main.cc) will try to invoke the versioned binaries. + +src/octave-cli-$(version)$(EXEEXT): src/octave-cli$(EXEEXT) + $(AM_V_GEN)rm -f $@ && \ + $(LN_S) $< $@ + +src/octave-gui-$(version)$(EXEEXT): src/octave-gui$(EXEEXT) + $(AM_V_GEN)rm -f $@ && \ + $(LN_S) $< $@ + +CLEANFILES += \ + $(OCTAVE_VERSION_LINKS) diff -r 79d64c58daea -r 2d84d27dc9f0 test/module.mk --- a/test/module.mk Wed Jul 08 12:55:10 2015 -0400 +++ b/test/module.mk Thu Jul 09 10:11:41 2015 -0400 @@ -51,11 +51,11 @@ test/.gdbinit: etc/gdbinit @$(gdbinit_install_rule) -check-local: +check-local: $(GENERATED_TEST_FILES) $(OCTAVE_INTERPRETER_TARGETS) test/$(octave_dirstamp) cd test && ../run-octave $(RUN_OCTAVE_OPTIONS) --norc --silent --no-history $(abs_top_srcdir)/test/fntests.m $(abs_top_srcdir)/test if AMCOND_HAVE_LLVM -check-jit: test/sparse.tst test/bc-overload-tests.stamp test/$(octave_dirstamp) +check-jit: $(GENERATED_TEST_FILES) $(OCTAVE_INTERPRETER_TARGETS) test/$(octave_dirstamp) cd test && ../run-octave $(RUN_OCTAVE_OPTIONS) --jit-compiler --norc --silent --no-history $(abs_top_srcdir)/test/fntests.m $(abs_top_srcdir)/test endif @@ -77,6 +77,8 @@ $(srcdir)/test/build-bc-overload-tests.sh test $(srcdir)/test/bc-overloads-expected && \ touch $@ +GENERATED_TEST_FILES = test/sparse.tst test/bc-overload-tests.stamp + BUILT_SOURCES += \ test/sparse.tst \ test/bc-overload-tests.stamp