Mercurial > hg > octave-nkf
annotate libinterp/mkbuiltins @ 15419:2afbe4295682
correct name of include guard in generated builtin-defun-decls.h file
* mkbuiltins: Use octave_builtin_defun_decls_h for multiple inclusion
guard instead of octave_builtins_h.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 19 Sep 2012 14:32:30 -0400 |
parents | 60090630cb76 |
children | 57e685d135ec |
rev | line source |
---|---|
6218 | 1 #! /bin/sh |
7019 | 2 # |
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
3 # Copyright (C) 1996-2012 John W. Eaton |
7019 | 4 # |
5 # This file is part of Octave. | |
6 # | |
7 # Octave is free software; you can redistribute it and/or modify it | |
8 # under the terms of the GNU General Public License as published by the | |
9 # Free Software Foundation; either version 3 of the License, or (at | |
10 # your option) any later version. | |
11 # | |
12 # Octave is distributed in the hope that it will be useful, but WITHOUT | |
13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 # for more details. | |
16 # | |
17 # You should have received a copy of the GNU General Public License | |
18 # along with Octave; see the file COPYING. If not, see | |
19 # <http://www.gnu.org/licenses/>. | |
2335 | 20 |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
21 if test $# -lt 2; then |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
22 echo "usage: mkbuiltins --header|--source f1 f2 ..." 1>&2 |
2907 | 23 exit 1 |
24 fi | |
25 | |
4299 | 26 SED=${SED:-'sed'} |
27 | |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
28 make_header=false |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
29 make_source=false |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
30 case "$1" in |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
31 --header) |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
32 make_header=true |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
33 shift |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
34 ;; |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
35 --source) |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
36 make_source=true |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
37 shift |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
38 ;; |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
39 *) |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
40 echo "mkbuiltins: unrecognized option: $1" 1>&2 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
41 exit 1 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
42 ;; |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
43 esac |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
44 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
45 if $make_header; then |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
46 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
47 cat << \EOF |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
48 // DO NOT EDIT! Generated automatically by mkbuiltins. |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
49 |
15419
2afbe4295682
correct name of include guard in generated builtin-defun-decls.h file
John W. Eaton <jwe@octave.org>
parents:
15418
diff
changeset
|
50 #if !defined (octave_builtin_defun_decls_h) |
2afbe4295682
correct name of include guard in generated builtin-defun-decls.h file
John W. Eaton <jwe@octave.org>
parents:
15418
diff
changeset
|
51 #define octave_builtin_defun_decls_h 1 |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
52 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
53 #define DEFUN_DECL(name) \ |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
54 extern OCTINTERP_API octave_value_list \ |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
55 name (const octave_value_list& = octave_value_list (), int = 0); |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
56 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
57 class octave_value_list; |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
58 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
59 EOF |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
60 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
61 $SED -n -e 's/ *\(XDEFUN\|XDEFCONSTFUN\)_INTERNAL *( *\([_A-Za-z][_A-Za-z0-9]*\) *,.*$/DEFUN_DECL (F\2);/p; s/^ *XDEFUNX_INTERNAL *( *"\([_A-Za-z][_A-Za-z0-9]*\)" *,.*$/DEFUN_DECL (F\1);/p' "$@" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
62 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
63 cat << \EOF |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
64 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
65 #undef DEFUN_DECL |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
66 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
67 #endif |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
68 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
69 EOF |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
70 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
71 else |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
72 |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
73 cat << \EOF |
2335 | 74 // DO NOT EDIT! Generated automatically by mkbuiltins. |
75 | |
76 #ifdef HAVE_CONFIG_H | |
15268
307912900544
Use angle brackets for #include <config.h> for consistency.
Rik <rik@octave.org>
parents:
15195
diff
changeset
|
77 #include <config.h> |
2335 | 78 #endif |
79 | |
2968 | 80 #include "defun.h" |
2335 | 81 #include "oct-obj.h" |
82 #include "variables.h" | |
7210 | 83 #include "builtins.h" |
2335 | 84 |
3399 | 85 #if defined (quad) |
86 #undef quad | |
87 #endif | |
88 | |
4128 | 89 #if defined (ENABLE_DYNAMIC_LINKING) |
5796 | 90 |
8746
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
91 #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, doc) |
5796 | 92 |
8746
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
93 #define XDEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, doc) |
5796 | 94 |
3364 | 95 #else |
5796 | 96 |
8746
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
97 #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, doc) \ |
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
98 XDEFUN_INTERNAL(name, args_name, nargout_name, doc) |
5796 | 99 |
8746
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
100 #define XDEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, doc) \ |
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
101 XDEFUNX_INTERNAL(name, fname, args_name, nargout_name, doc) |
5796 | 102 |
3364 | 103 #endif |
104 | |
15004
ea6997657614
which: provide source file name for built-in functions
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
105 #define XDEFUN_FILE_NAME(name) \ |
ea6997657614
which: provide source file name for built-in functions
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
106 std::string file = name; |
9014
71fca0fc2436
save source file names for functions as comments in .texi files
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
107 |
8746
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
108 #define XDEFUN_INTERNAL(name, args_name, nargout_name, doc) \ |
3295 | 109 extern DECLARE_FUN (name, args_name, nargout_name); \ |
15004
ea6997657614
which: provide source file name for built-in functions
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
110 install_builtin_function (F ## name, #name, file, doc); \ |
4234 | 111 |
8746
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
112 #define XDEFCONSTFUN_INTERNAL(name, args_name, nargout_name, doc) \ |
4234 | 113 extern DECLARE_FUN (name, args_name, nargout_name); \ |
15004
ea6997657614
which: provide source file name for built-in functions
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
114 install_builtin_function (F ## name, #name, file, doc, false); \ |
3295 | 115 |
8746
5dd06f19e9be
handle commands in the lexer
John W. Eaton <jwe@octave.org>
parents:
7503
diff
changeset
|
116 #define XDEFUNX_INTERNAL(name, fname, args_name, nargout_name, doc) \ |
3744 | 117 extern DECLARE_FUNX (fname, args_name, nargout_name); \ |
15004
ea6997657614
which: provide source file name for built-in functions
John W. Eaton <jwe@octave.org>
parents:
14138
diff
changeset
|
118 install_builtin_function (fname, name, file, doc); \ |
3744 | 119 |
3295 | 120 #define XDEFALIAS_INTERNAL(alias, name) \ |
121 alias_builtin (#alias, #name); | |
122 | |
3321 | 123 #define XDEFCONST_INTERNAL(name, defn, doc) |
3295 | 124 |
2373 | 125 EOF |
126 | |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
127 for arg |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
128 do |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
129 fcn=`echo "$arg" | $SED 's,.*/,,; s/\.df//; s/-/_/g;'` |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
130 echo "static void" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
131 echo "install_${fcn}_fcns (void)" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
132 echo "{" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
133 cat "$arg" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
134 echo "}" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
135 echo "" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
136 done |
2907 | 137 |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
138 cat << \EOF |
2907 | 139 |
7503
8c32f95c2639
convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents:
7210
diff
changeset
|
140 void |
8c32f95c2639
convert mapper functions to new format
David Bateman <dbateman@free.fr>
parents:
7210
diff
changeset
|
141 install_builtins (void) |
2335 | 142 { |
143 EOF | |
144 | |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
145 for arg |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
146 do |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
147 fcn=`echo "$arg" | $SED 's,.*/,,; s/\.df//; s/-/_/g;'` |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
148 echo " install_${fcn}_fcns ();" |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
149 done |
2335 | 150 |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
151 cat << \EOF |
2335 | 152 } |
153 | |
154 EOF | |
155 | |
15418
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
156 fi |
60090630cb76
generate declarations for all built-in DEFUN functions
John W. Eaton <jwe@octave.org>
parents:
15268
diff
changeset
|
157 |
2335 | 158 exit 0 |