Mercurial > octave
annotate build-aux/subst-script-vals.in.sh @ 21398:7e8a410e6124
break generated file dependence on Makefile (bug #46063)
* build-aux/mk-mxarray-h.in.sh, build-aux/mk-version-h.in.sh,
build-aux/subst-config-vals.in.sh,
build-aux/subst-cross-config-vals.in.sh,
build-aux/subst-default-vals.in.sh,
build-aux/subst-f77-isnan-macro.in.sh,
build-aux/subst-script-vals.in.sh: New files with commands extracted
from build-aux/common.mk.
* build-aux/common.mk (ADDRESS_SANITIZER_OPTIONS,
do_subst_config_vals, do_subst_cross_config_vals,
do_subst_default_vals, do_subst_script_vals):
Eliminate macros that are now in script files.
(FONTCONFIG_CPPFLAGS, FT2_CPPFLAGS, LIBEXT): Move definition to configure.ac,
use AC_SUBST to put values in subst-config-vals.sh and
build-aux/subst-cross-config-vals.sh.
(startupfiledir, localstartupfiledir): Move definition to configure.ac,
use AC_SUBST to put values in subst-default-vals.sh.
(ALL_FFLAGS): Delete unused macro.
(simple-filter-rule): New macro.
* build-aux/mk-default-qt-settings.in.sh: Rename and adapt from
libgui/mk-default-qt-settings.in.
* build-aux/mk-f77-def.in.sh: Rename and adapt from
liboctave/cruft/mkf77def.in.
* Makefile.am (EXTRA_DIST): Include new files in the list.
* acinclude.m4 (OCTAVE_CONFIG_MOVE_IF_CHANGE_FILES): Assume file names
have the suffix .sh and are generated from .in.sh.
* Makefile.am (run-octave): Depend on build-aux/subst-script-vals.sh
instead of Makefile.
(octave-config.h): Use move-if-change rule.
* configure.ac: Use ${X} instead of $(X) for variables in
OCTAVE_SET_DEFAULT args.
(SHARED_LIBS, STATIC_LIBS): AC_SUBST them.
Protect timestamp of oct-conf-post.h with a move-if-change rule.
* etc/module.mk (etc/icons/octave.appdata.xml,
etc/icons/octave.desktop): Don't depend on Makefile.
* libgui/module.mk (libgui/default-qt-settings):
Depend on build-aux/mk-default-qt-settings.sh instead of Makefile.
* build-env.h, build-env.cc (ALL_CFLAGS, ALL_CXXFLAGS, ALL_FFLAGS,
ALL_LDFLAGS, LIBFLAGS): Delete variables.
* libinterp/corefcn/module.mk ($(OPT_HANDLERS), $(COREFCN_FT2_DF),
libinterp/corefcn/defaults.h, libinterp/corefcn/graphics.h,
libinterp/corefcn/graphics-props.cc, libinterp/corefcn/oct-errno.cc,
libinterp/corefcn/mxarray.h, libinterp/corefcn/oct-tex-lexer.ll):
Depend on timestamp file to ensure destination directory exists.
(libinterp/corefcn/graphics.h, libinterp/corefcn/graphics-props.cc,
libinterp/corefcn/oct-errno.cc, libinterp/corefcn/oct-tex-lexer.ll,
libinterp/corefcn/oct-tex-symbols.cc):
Use mv instead of move-if-change.
(libinterp/corefcn/mxarray.h): Use script to substitute values.
Depend on libinterp/corefcn/mxarray.in.h instead of Makefile
* libinterp/corefcn/toplev.cc (octave_config_info): Don't include
ALL_CFLAGS, ALL_CXXFLAGS, ALL_FFLAGS, ALL_LDFLAGS, of LIBFLAGS in the
list.
* libinterp/module.mk ($(SRC_DEF_FILES)): Don't depend on Makefile.
(libinterp/build-env.cc, libinterp/build-env-features.cc,
libinterp/builtins.cc, libinterp/builtin-defun-decls.h,
libinterp/dldfcn/PKG_ADD, libinterp/.DOCSTRINGS): Depend on timestamp
file to ensure destination directory exists.
(libinterp/build-env.cc): Depend on build-aux/subst-config-vals.sh
instead of Makefile.
(libinterp/version.h): Use script to substitute values.
Depend on build-aux/mk-version-h.sh instead of libinterp/version.in.h.
* liboctave/cruft/module.mk (liboctave/cruft/cruft.def): Depend on
timestamp file to ensure destination directory exists.
(liboctave_DISTCLEANFILES): Remove liboctave/cruft/mkf77def from the
list.
(liboctave_EXTRA_DIST): Don't add liboctave/cruft/mkf77def.in to the
list.
* liboctave/cruft/ranlib/module.mk
(liboctave/cruft/ranlib/ranlib.def): Depend on timestamp file to
ensure destination directory exists.
* liboctave/cruft/slatec-fn/module.mk
(liboctave/cruft/slatec-fn/erfc.f, liboctave/cruft/slatec-fn/derfc.f):
Depend on timestamp file to ensure destination directory exists.
Use script to substitute values. Depend on
build-aux/subst-f77-isnan-macro.sh instead of Makefile.
(do-subst-isnan-macro): Delete macro.
* scripts/module.mk (GEN_FCN_FILES_TEMPLATE): Use simple-filter-rule
to execute build-aux/subst-config-vals.sh. Depend on
build-aux/subst-config-vals.sh instead of Makefile.
(scripts/.DOCSTRINGS): Don't depend on Makefile. Do depend on
timestamp file to ensure destination directory exists.
* src/module.mk (src/$(host_triplet)-mkoctfile.cc,
src/$(host_triplet)-octave-config.cc): Depend on
build-aux/subst-cross-config-vals.sh instead of Makefile.
(src/octave-config.cc, src/mkoctfile.cc, src/main.cc): Depend on
build-aux/subst-default-vals.sh instead of Makefile.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 04 Mar 2016 12:51:00 -0500 |
parents | |
children | 9429c39994f8 |
rev | line source |
---|---|
21398
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
1 #! /bin/sh |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
2 # |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
3 # Copyright (C) 2016 John W. Eaton |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
4 # |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
5 # This file is part of Octave. |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
6 # |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
7 # Octave is free software; you can redistribute it and/or modify it |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
8 # under the terms of the GNU General Public License as published by the |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
9 # Free Software Foundation; either version 3 of the License, or (at |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
10 # your option) any later version. |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
11 # |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
12 # Octave is distributed in the hope that it will be useful, but WITHOUT |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
15 # for more details. |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
16 # |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU General Public License |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
18 # along with Octave; see the file COPYING. If not, see |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
19 # <http://www.gnu.org/licenses/>. |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
20 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
21 : ${SED=@SED@} |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
22 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
23 ## Use two steps so that we can interpolate values without having to |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
24 ## determine the order in which to set variable values. |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
25 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
26 ## These must use ' so that embedded variables are not interpolated |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
27 ## (the values they reference may not be defined before they are used). |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
28 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
29 AWK="@AWK@" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
30 FIND="@FIND@" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
31 SED="@SED@" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
32 ADDRESS_SANITIZER_OPTIONS="@ADDRESS_SANITIZER_OPTIONS@" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
33 abs_top_srcdir="@abs_top_srcdir@" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
34 abs_top_builddir="@abs_top_builddir@" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
35 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
36 ## These must use " so that embedded variables are interpolated. |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
37 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
38 ## Is there a better way? |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
39 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
40 function expand_var () |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
41 { |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
42 eval tmp="\$$1" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
43 while echo "$tmp" | grep '\${[A-Za-z_][A-Za-z0-9_]*}' > /dev/null; do |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
44 eval tmp="$tmp" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
45 done |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
46 eval $1="'$tmp'" |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
47 } |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
48 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
49 expand_var AWK |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
50 expand_var FIND |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
51 expand_var SED |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
52 expand_var ADDRESS_SANITIZER_OPTIONS |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
53 expand_var abs_top_srcdir |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
54 expand_var abs_top_builddir |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
55 |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
56 $SED \ |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
57 -e "s|%AWK%|${AWK}|g" \ |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
58 -e "s|%FIND%|${FIND}|g" \ |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
59 -e "s|%SED%|${SED}|g" \ |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
60 -e "s|%ADDRESS_SANITIZER_OPTIONS%|${ADDRESS_SANITIZER_OPTIONS}|g" \ |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
61 -e "s|%abs_top_srcdir%|${abs_top_srcdir}|" \ |
7e8a410e6124
break generated file dependence on Makefile (bug #46063)
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
62 -e "s|%builddir%|${abs_top_builddir}|" |