diff scripts/module.mk @ 20328:fa9fa6ab76f0

eliminate recursive make invocation in scripts directory tree * scripts/module.mk: New file created from scripts/Makefile.am * scripts/Makefile.am: Delete. * Makefile.am (SUBDIRS): Remove scripts from the list. * configure.ac (AC_CONFIG_FILES): Remove scripts/Makefile from the list. * doc/interpreter/images.awk, doc/module.mk, etc/module.mk, scripts/@ftp/module.mk, scripts/audio/module.mk, scripts/deprecated/module.mk, scripts/elfun/module.mk, scripts/general/module.mk, scripts/geometry/module.mk, scripts/gui/module.mk, scripts/help/module.mk, scripts/image/module.mk, scripts/io/module.mk, scripts/java/module.mk, scripts/linear-algebra/module.mk, scripts/miscellaneous/module.mk, scripts/optimization/module.mk, scripts/path/module.mk, scripts/pkg/module.mk, scripts/plot/appearance/module.mk, scripts/plot/draw/module.mk, scripts/plot/util/module.mk, scripts/polynomial/module.mk, scripts/prefs/module.mk, scripts/set/module.mk, scripts/signal/module.mk, scripts/sparse/module.mk, scripts/specfun/module.mk, scripts/special-matrix/module.mk, scripts/startup/module.mk, scripts/statistics/base/module.mk, scripts/statistics/distributions/module.mk, scripts/statistics/models/module.mk, scripts/statistics/tests/module.mk, scripts/strings/module.mk, scripts/testfun/module.mk, scripts/time/module.mk: Update for non-recursive build.
author John W. Eaton <jwe@octave.org>
date Fri, 10 Jul 2015 14:40:47 -0400
parents
children 23172e987766
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/module.mk	Fri Jul 10 14:40:47 2015 -0400
@@ -0,0 +1,218 @@
+## FIXME -- including scripts/@ftp/module.mk fails.  Is that an automake bug?
+
+FCN_FILE_DIRS += scripts/@ftp
+
+scripts_@ftp_FCN_FILES = \
+  scripts/@ftp/ascii.m \
+  scripts/@ftp/binary.m  \
+  scripts/@ftp/cd.m  \
+  scripts/@ftp/close.m  \
+  scripts/@ftp/delete.m  \
+  scripts/@ftp/dir.m  \
+  scripts/@ftp/display.m  \
+  scripts/@ftp/ftp.m  \
+  scripts/@ftp/loadobj.m  \
+  scripts/@ftp/mget.m  \
+  scripts/@ftp/mkdir.m  \
+  scripts/@ftp/mput.m  \
+  scripts/@ftp/rename.m  \
+  scripts/@ftp/rmdir.m  \
+  scripts/@ftp/saveobj.m
+
+FCN_FILES += $(scripts_@ftp_FCN_FILES)
+
+PKG_ADD_FILES += scripts/@ftp/PKG_ADD
+
+DIRSTAMP_FILES += scripts/@ftp/$(octave_dirstamp)
+
+include scripts/audio/module.mk
+include scripts/deprecated/module.mk
+include scripts/elfun/module.mk
+include scripts/general/module.mk
+include scripts/geometry/module.mk
+include scripts/gui/module.mk
+include scripts/help/module.mk
+include scripts/image/module.mk
+include scripts/io/module.mk
+include scripts/java/module.mk
+include scripts/linear-algebra/module.mk
+include scripts/miscellaneous/module.mk
+include scripts/optimization/module.mk
+include scripts/path/module.mk
+include scripts/pkg/module.mk
+include scripts/plot/appearance/module.mk
+include scripts/plot/draw/module.mk
+include scripts/plot/util/module.mk
+include scripts/polynomial/module.mk
+include scripts/prefs/module.mk
+include scripts/set/module.mk
+include scripts/signal/module.mk
+include scripts/sparse/module.mk
+include scripts/specfun/module.mk
+include scripts/special-matrix/module.mk
+include scripts/startup/module.mk
+include scripts/statistics/base/module.mk
+include scripts/statistics/distributions/module.mk
+include scripts/statistics/models/module.mk
+include scripts/statistics/tests/module.mk
+include scripts/strings/module.mk
+include scripts/testfun/module.mk
+include scripts/time/module.mk
+
+nobase_fcnfile_DATA = $(FCN_FILES) $(GEN_FCN_FILES) $(JAR_FILES)
+
+image_DATA += $(SCRIPTS_IMAGES)
+
+FCN_FILES_IN = $(GEN_FCN_FILES:.m=.in)
+
+ALL_LOCAL_TARGETS += \
+  $(GEN_FCN_FILES) \
+  $(PKG_ADD_FILES) \
+  $(JAR_FILES)
+
+if AMCOND_BUILD_DOCS
+ALL_LOCAL_TARGETS += scripts/.DOCSTRINGS
+endif
+
+define PKG_ADD_FILE_TEMPLATE
+$(1)/PKG_ADD: $$($(2)_FCN_FILES) $$($(2)_GEN_FCN_FILES) $(1)/$(octave_dirstamp) scripts/mk-pkg-add
+	$$(AM_V_GEN)rm -f $$@-t $$@ && \
+	$$(srcdir)/scripts/mk-pkg-add $(srcdir) $$($(2)_FCN_FILES) -- $$($(2)_GEN_FCN_FILES) > $$@-t && \
+	mv $$@-t $$@
+endef
+
+$(foreach d, $(FCN_FILE_DIRS), $(eval $(call PKG_ADD_FILE_TEMPLATE, $(d),$(subst /,_,$(subst -,_,$(d))))))
+
+define GEN_FCN_FILES_TEMPLATE
+$(1): $(1:.m=.in) Makefile $(dir $(1))$(octave_dirstamp)
+	$$(AM_V_GEN)$$(do_subst_config_vals)
+endef
+
+$(foreach f, $(GEN_FCN_FILES), $(eval $(call GEN_FCN_FILES_TEMPLATE, $(f))))
+
+if AMCOND_BUILD_DOCS
+
+scripts/.DOCSTRINGS: $(FCN_FILES) $(GEN_FCN_FILES) scripts/mkdoc.pl Makefile
+	$(AM_V_GEN)rm -f $@-t $@ && \
+	if [ "x$(srcdir)" != "x." ] && [ -f $(srcdir)/scripts/DOCSTRINGS ] && [ ! -f scripts/DOCSTRINGS ]; then \
+		cp $(srcdir)/scripts/DOCSTRINGS scripts/DOCSTRINGS; \
+		touch -r $(srcdir)/scripts/DOCSTRINGS scripts/DOCSTRINGS; \
+	fi && \
+	$(PERL) $(srcdir)/scripts/mkdoc.pl "$(srcdir)" $(FCN_FILES) -- $(GEN_FCN_FILES) > $@-t && \
+	mv $@-t $@ && \
+	$(top_srcdir)/build-aux/move-if-change $@ scripts/DOCSTRINGS && \
+	touch $@
+
+OCTAVE_INTERPRETER_TARGETS += \
+  scripts/.DOCSTRINGS
+
+endif
+
+check-m-sources:
+	@echo "checking whether files in source tree are listed in module.mk files..."; \
+	for f in $$(find $(srcdir)/scripts -name '*.m'); do \
+	  found=false; \
+	  for m in $(FCN_FILES) $(GEN_FCN_FILES); do \
+	    if [ "$$f" = $(srcdir)/scripts/"$$m" ]; then \
+	      found=true; \
+	      break; \
+	    fi; \
+	  done; \
+	  if $$found; then \
+	    true; \
+	  else \
+	    missing=$$(echo $$f | $(SED) "s|^$(srcdir)/scripts||"); \
+	    echo "$$missing: not listed in SOURCES"; \
+	  fi; \
+	done; \
+	if test -z "$$missing"; then \
+	  echo "yes"; \
+	fi
+.PHONY: check-m-sources
+
+check-missing-semicolon:
+	@echo "checking for missing semicolons in .m files..."
+	( echo "warning on Octave:missing-semicolon;"; \
+	  for m in $(addprefix $(srcdir), $(FCN_FILES)) $(GEN_FCN_FILES); do \
+	    echo "source ('$$m');"; \
+	  done ) | ../run-octave -qf
+.PHONY: check-missing-semicolon
+
+## Add rule to generate ctags.
+## Automake would normally generate such a rule, but only if there is a
+## xxx_SOURCES target
+ctags:
+	ctags $(addprefix $(srcdir)/, $(FCN_FILES)) $(GEN_FCN_FILES)
+
+install-data-local: install-startup-files install-pkg-add
+
+uninstall-local: uninstall-startup-files uninstall-pkg-add
+
+install-startup-files:
+	$(MKDIR_P) $(DESTDIR)$(fcnfiledir)/startup
+	if test -f $(DESTDIR)$(fcnfiledir)/startup/octaverc; then true; \
+	else \
+	  $(INSTALL_DATA) $(srcdir)/scripts/$(SYSTEM_STARTUP_FILE_SRC) \
+	    $(DESTDIR)$(fcnfiledir)/startup/octaverc; \
+	fi
+	if test -f $(DESTDIR)$(fcnfiledir)/startup/inputrc; then true; \
+	else \
+	  $(INSTALL_DATA) $(srcdir)/scripts/$(SYSTEM_INPUTRC_FILE_SRC) \
+	    $(DESTDIR)$(fcnfiledir)/startup/inputrc; \
+	fi
+	$(MKDIR_P) $(DESTDIR)$(localfcnfiledir)/startup
+	if test -f $(DESTDIR)$(localfcnfiledir)/startup/octaverc; \
+	then true; \
+	else \
+	  $(INSTALL_DATA) $(srcdir)/scripts/$(LOCAL_STARTUP_FILE_SRC) \
+	    $(DESTDIR)$(localfcnfiledir)/startup/octaverc; \
+	fi
+.PHONY: install-startup-files
+
+uninstall-startup-files:
+	rm -f $(DESTDIR)$(fcnfiledir)/startup/octaverc
+	rm -f $(DESTDIR)$(fcnfiledir)/startup/inputrc
+	rm -f $(DESTDIR)$(localfcnfiledir)/startup/octaverc
+.PHONY: uninstall-startup-files
+
+install-pkg-add:
+	for f in $(PKG_ADD_FILES); do \
+	  if [ -n "`cat $$f`" ]; then \
+	    $(MKDIR_P) $(DESTDIR)$(fcnfiledir)/`echo $$f | $(SED) 's,/[^/]*$$,,'`; \
+	    $(INSTALL_DATA) $$f $(DESTDIR)$(fcnfiledir)/$$f; \
+	  fi \
+	done
+.PHONY: install-pkg-add
+
+uninstall-pkg-add:
+	for f in $(PKG_ADD_FILES); do \
+	  rm -f $(DESTDIR)$(fcnfiledir)/$$f; \
+	done
+.PHONY: uninstall-pkg-add
+
+if AMCOND_HAVE_JAVA
+else
+scripts-dist-hook:
+	@echo "Packaging distribution requires Java." ; exit 1;
+endif
+
+EXTRA_DIST += \
+  $(SCRIPTS_IMAGES) \
+  $(FCN_FILES) \
+  $(FCN_FILES_IN) \
+  $(GEN_FCN_FILES) \
+  scripts/DOCSTRINGS \
+  scripts/mkdoc.pl \
+  scripts/mk-pkg-add
+
+DISTCLEANFILES += \
+  scripts/.DOCSTRINGS \
+  scripts/DOCSTRINGS \
+  $(PKG_ADD_FILES) \
+  $(DIRSTAMP_FILES) \
+  $(GEN_FCN_FILES)
+
+scripts-distclean:
+	if [ "x$(srcdir)" != "x." ]; then \
+	  rm -f $(java_JAVA_IMAGES); \
+	fi