Mercurial > octave
view scripts/module.mk @ 22024:659731a4563f
build: delete generated files, keep distributed files on clean and distclean (bug #45646)
* Makefile.am (CLEANFILES): Add octave-config.h and run-octave to the list.
Remove $(BUILT_SOURCES) from the list.
(DISTCLEANFILES): Add $(GEN_CONFIG_INC) to the list.
(nodist_octinclude_HEADERS): Add oct-conf-post.h to the list.
* libgui/src/module.mk
(libgui_CLEANFILES): Add libgui/src/liboctgui-build-info.cc to the list.
(libgui_DISTCLEANFILES): Remove libgui/src/liboctgui-build-info.cc from the
list.
* libinterp/module.mk
(LIBINTERP_BUILT_NODISTFILES): Add libinterp/corefcn/graphics-props.cc to the
list.
(nodist_octinclude_HEADERS): Add libinterp/builtin-defun-decls.h and
libinterp/corefcn/graphics-props.cc to the list.
(octinclude_HEADERS): Remove libinterp/builtin-defun-decls.h and
libinterp/corefcn/graphics-props.cc from the list.
(libinterp_CLEANFILES): Add $(LIBINTERP_BUILT_NODISTFILES) to the list,
replacing libinterp/corefcn/graphics-props.cc.
(libinterp_DISTCLEANFILES): Remove $(LIBINTERP_BUILT_NODISTFILES) from the list.
* liboctave/cruft/module.mk (liboctave_CLEANFILES): Add the previous contents of
$(liboctave_DISTCLEANFILES) to the list.
* liboctave/module.mk (liboctave_CLEANFILES): Add $(LIBOCTAVE_BUILT_NODISTFILES)
to the list. (liboctave_DISTCLEANFILES): Remove $(LIBOCTAVE_BUILT_NODISTFILES)
and $(BUILT_INCS) from the list.
* liboctave/numeric/module.mk (liboctave_CLEANFILES): Add $(LIBOCTAVE_OPT_INC)
to the list.
* liboctave/operators/module.mk
(liboctave_CLEANFILES): Add $(BUILT_LIBOCTAVE_OPERATORS_FILES) to the list.
(liboctave_DISTCLEANFILES): Remove $(BUILT_LIBOCTAVE_OPERATORS_SOURCES) from
the list.
* scripts/module.mk (scripts_CLEANFILES): Add $(GEN_FCN_FILES) to the list.
(scripts_DISTCLEANFILES): Remove $(GEN_FCN_FILES) from the list.
* src/module.mk (src_CLEANFILES): Add src/main.cc, src/mkoctfile.cc,
src/octave-build-info.cc, and src/octave-config.cc to the list.
(src_DISTCLEANFILES): Remove src/octave-config-build-info.cc from the list.
(DISTCLEANFILES): Remove src/main.cc, src/mkoctfile.cc, and src/octave-config.cc
from the list.
author | Mike Miller <mtmiller@octave.org> |
---|---|
date | Fri, 01 Jul 2016 10:51:49 -0700 |
parents | cb25e0da9541 |
children | 1340feab13a8 |
line wrap: on
line source
scripts_EXTRA_DIST = scripts_CLEANFILES = scripts_DISTCLEANFILES = scripts_MAINTAINERCLEANFILES = 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/ode/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/profiler/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 ## include scripts/@ftp/module.mk ## The include above fails because Automake cannot process the '@' character. ## As a work around, the contents of scripts/@ftp/module.mk are placed directly ## in this module.mk file. scripts_EXTRA_DIST += scripts/@ftp/module.mk ######################## include scripts/@ftp/module.mk ######################## 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 scripts_@ftpdir = $(fcnfiledir)/@ftp scripts_@ftp_DATA = $(scripts_@ftp_FCN_FILES) FCN_FILES += $(scripts_@ftp_FCN_FILES) PKG_ADD_FILES += scripts/@ftp/PKG_ADD DIRSTAMP_FILES += scripts/@ftp/$(octave_dirstamp) ####################### end include scripts/@ftp/module.mk ##################### image_DATA += $(SCRIPTS_IMAGES) GEN_FCN_FILES_IN = $(GEN_FCN_FILES:.m=.in.m) ALL_LOCAL_TARGETS += \ $(GEN_FCN_FILES) \ $(PKG_ADD_FILES) \ $(JAR_FILES) OCTAVE_INTERPRETER_TARGETS += \ $(GEN_FCN_FILES) 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 $$@ && \ $$(SHELL) $$(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.m) build-aux/subst-config-vals.sh $(dir $(1))$(octave_dirstamp) $$(AM_V_GEN)$$(call simple-filter-rule,build-aux/subst-config-vals.sh) endef $(foreach f, $(GEN_FCN_FILES), $(eval $(call GEN_FCN_FILES_TEMPLATE, $(f)))) DOCSTRING_FILES += $(srcdir)/scripts/DOCSTRINGS $(srcdir)/scripts/DOCSTRINGS: $(FCN_FILES) $(GEN_FCN_FILES_IN) | scripts/$(octave-dirstamp) $(AM_V_GEN)rm -f scripts/DOCSTRINGS-t && \ $(PERL) $(srcdir)/scripts/mkdoc.pl "$(srcdir)" $(FCN_FILES) $(GEN_FCN_FILES_IN) > scripts/DOCSTRINGS-t && \ mv scripts/DOCSTRINGS-t $@ 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 \ ! $(GREP) -q -E '^classdef' $$m || continue; \ ! $(GREP) -q -E '^ *\<function\>' $$m || continue; \ ! (echo $$m | $(GREP) -q __splinefit__.m) || continue; \ echo "source ('$$m');"; \ done ) | $(SHELL) run-octave --norc --silent --no-history .PHONY: check-missing-semicolon ## Include m-files in list of sources when building tag files. ## Automake will not include these because there is no xxx_SOURCES target TAGS_DEPENDENCIES = $(addprefix $(srcdir)/, $(FCN_FILES)) $(GEN_FCN_FILES) TAGS_FILES = $(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-pkg-add: for f in $(PKG_ADD_FILES); do \ if [ -n "`cat $$f`" ]; then \ base=`echo $$f | $(SED) 's,^scripts/,,'`; \ $(MKDIR_P) $(DESTDIR)$(fcnfiledir)/`echo $$base | $(SED) 's,/[^/]*$$,,'`; \ $(INSTALL_DATA) $$f $(DESTDIR)$(fcnfiledir)/$$base; \ fi \ done .PHONY: install-pkg-add uninstall-pkg-add: for f in $(PKG_ADD_FILES); do \ base=`echo $$f | $(SED) 's,^scripts/,,'`; \ rm -f $(DESTDIR)$(fcnfiledir)/$$base; \ done .PHONY: uninstall-pkg-add if AMCOND_HAVE_JAVA scripts-dist-hook: else scripts-dist-hook: @echo "Packaging distribution requires Java." ; exit 1; endif scripts_EXTRA_DIST += \ $(SCRIPTS_IMAGES) \ $(FCN_FILES) \ $(GEN_FCN_FILES_IN) \ $(srcdir)/scripts/DOCSTRINGS \ scripts/mkdoc.pl \ scripts/mk-pkg-add EXTRA_DIST += $(scripts_EXTRA_DIST) scripts_CLEANFILES += \ $(GEN_FCN_FILES) \ $(PKG_ADD_FILES) scripts_DISTCLEANFILES += \ $(DIRSTAMP_FILES) scripts_MAINTAINERCLEANFILES += \ $(srcdir)/scripts/DOCSTRINGS CLEANFILES += $(scripts_CLEANFILES) DISTCLEANFILES += $(scripts_DISTCLEANFILES) MAINTAINERCLEANFILES += $(scripts_MAINTAINERCLEANFILES) scripts-clean: rm -f $(scripts_CLEANFILES) scripts-distclean: scripts-clean rm -f $(scripts_DISTCLEANFILES) scripts-maintainer-clean: scripts-distclean rm -f $(scripts_MAINTAINERCLEANFILES)