Mercurial > octave
annotate libinterp/corefcn/toplev.cc @ 24734:5d8c4cbc56d7
don't use singleton pattern for child_list
* child-list.h, child-list.cc: Don't use singleton pattern.
* interpreter.h, interpreter.cc (interpreter::m_child_list):
New data member.
(interpreter::get_child_list): New method.
* interpreter-private.h, interpreter-private.cc (__get_child_list__):
New function.
* pager.cc, sighandlers.cc, toplev.cc: Access child_list through
interpreter.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 11 Feb 2018 11:17:34 -0500 |
parents | 194eb4bd202b |
children | daf61c7dfcae |
rev | line source |
---|---|
1683 | 1 /* |
2 | |
23219
3ac9f9ecfae5
maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents:
23083
diff
changeset
|
3 Copyright (C) 1995-2017 John W. Eaton |
1683 | 4 |
5 This file is part of Octave. | |
6 | |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24009
diff
changeset
|
7 Octave is free software: you can redistribute it and/or modify it |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
8 under the terms of the GNU General Public License as published by |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24009
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
10 (at your option) any later version. |
1683 | 11 |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
13 WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
15 GNU General Public License for more details. |
1683 | 16 |
17 You should have received a copy of the GNU General Public License | |
7016 | 18 along with Octave; see the file COPYING. If not, see |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24009
diff
changeset
|
19 <https://www.gnu.org/licenses/>. |
1683 | 20 |
21 */ | |
22 | |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21618
diff
changeset
|
23 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21253
diff
changeset
|
24 # include "config.h" |
1683 | 25 #endif |
26 | |
4489 | 27 #include <cerrno> |
1683 | 28 #include <cstdlib> |
4221 | 29 #include <new> |
1683 | 30 |
5765 | 31 #include <sstream> |
1728 | 32 #include <string> |
33 | |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21966
diff
changeset
|
34 #if defined (OCTAVE_USE_WINDOWS_API) |
21949
baeffde5c87d
fix build for Windows systems
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
35 # define WIN32_LEAN_AND_MEAN 1 |
baeffde5c87d
fix build for Windows systems
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
36 # include <windows.h> |
baeffde5c87d
fix build for Windows systems
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
37 #endif |
baeffde5c87d
fix build for Windows systems
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
38 |
22264
9b78fda78300
fix build failure for --without-z (bug #48757)
John W. Eaton <jwe@octave.org>
parents:
22094
diff
changeset
|
39 #include "async-system-wrapper.h" |
22094
9203833cab7d
move new interpreter class to separate file
John W. Eaton <jwe@octave.org>
parents:
22091
diff
changeset
|
40 #include "child-list.h" |
1683 | 41 #include "lo-error.h" |
21600
184b85b31e03
more updates for version function
mmuetzel <markus.muetzel@gmx.de>
parents:
21598
diff
changeset
|
42 #include "oct-fftw.h" |
13983
7dd7cccf0757
clean up memory allocated for singletons before exit
John W. Eaton <jwe@octave.org>
parents:
13981
diff
changeset
|
43 #include "oct-locbuf.h" |
21921
ecfcc8527661
hide sys/wait.h header and provide wrappers for waitpid macros
John W. Eaton <jwe@octave.org>
parents:
21907
diff
changeset
|
44 #include "oct-syscalls.h" |
1755 | 45 #include "str-vec.h" |
21899 | 46 #include "wait-for-input.h" |
1683 | 47 |
21220
d78e45987d6a
rename octave::build_env namespace from octave::config
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
48 #include "build-env.h" |
21607
37f6ed8a6f1b
store liboctave and liboctinterp hg ids separately
John W. Eaton <jwe@octave.org>
parents:
21605
diff
changeset
|
49 #include "liboctinterp-build-info.h" |
22091
0f6fc2ec3b1a
move call_stack class to a separate file
John W. Eaton <jwe@octave.org>
parents:
22089
diff
changeset
|
50 #include "call-stack.h" |
13983
7dd7cccf0757
clean up memory allocated for singletons before exit
John W. Eaton <jwe@octave.org>
parents:
13981
diff
changeset
|
51 #include "defaults.h" |
1683 | 52 #include "defun.h" |
53 #include "error.h" | |
54 #include "file-io.h" | |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23577
diff
changeset
|
55 #include "help.h" |
24734
5d8c4cbc56d7
don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
56 #include "interpreter-private.h" |
22089
c2c668b3051b
use classes for octave application and interpreter
John W. Eaton <jwe@octave.org>
parents:
22051
diff
changeset
|
57 #include "octave.h" |
2162 | 58 #include "oct-map.h" |
20940
48b2ad5ee801
maint: Rename oct-obj.[cc|h] to ovl.[cc|h] for clarity.
Rik <rik@octave.org>
parents:
20939
diff
changeset
|
59 #include "ovl.h" |
13983
7dd7cccf0757
clean up memory allocated for singletons before exit
John W. Eaton <jwe@octave.org>
parents:
13981
diff
changeset
|
60 #include "ov.h" |
1683 | 61 #include "pager.h" |
62 #include "procstream.h" | |
63 #include "sysdep.h" | |
64 #include "unwind-prot.h" | |
65 #include "utils.h" | |
23466
5da300c55e89
use "" instead of <> for including defaults.h and version.h
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
66 #include "version.h" |
1683 | 67 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21618
diff
changeset
|
68 #if ! defined (SHELL_PATH) |
21200
fcac5dbbf9ed
maint: Indent #ifdef blocks in libinterp.
Rik <rik@octave.org>
parents:
21182
diff
changeset
|
69 # define SHELL_PATH "/bin/sh" |
15756
ea1a1fb00744
Make the path to the shell interpreter configuable
Mike Miller <mtmiller@ieee.org>
parents:
15596
diff
changeset
|
70 #endif |
ea1a1fb00744
Make the path to the shell interpreter configuable
Mike Miller <mtmiller@ieee.org>
parents:
15596
diff
changeset
|
71 |
1957 | 72 DEFUN (warranty, , , |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
73 doc: /* -*- texinfo -*- |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
74 @deftypefn {} {} warranty () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
75 Describe the conditions for copying and distributing Octave. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
76 @end deftypefn */) |
1683 | 77 { |
17510
7542f4496974
eliminate some macros in version.h
John W. Eaton <jwe@octave.org>
parents:
17281
diff
changeset
|
78 octave_stdout << "\n" << octave_name_version_and_copyright () << "\n\ |
3922 | 79 \n\ |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24009
diff
changeset
|
80 GNU Octave is free software: you can redistribute it and/or modify it\n\ |
24007
e8a74d95b4f3
maint: Use same format for Copyright statement throught code base.
Rik <rik@octave.org>
parents:
23990
diff
changeset
|
81 under the terms of the GNU General Public License as published by\n\ |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24009
diff
changeset
|
82 the Free Software Foundation, either version 3 of the License, or\n\ |
1683 | 83 (at your option) any later version.\n\ |
84 \n\ | |
11104 | 85 GNU Octave is distributed in the hope that it will be useful,\n\ |
1683 | 86 but WITHOUT ANY WARRANTY; without even the implied warranty of\n\ |
87 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\ | |
88 GNU General Public License for more details.\n\ | |
89 \n\ | |
90 You should have received a copy of the GNU General Public License\n\ | |
24007
e8a74d95b4f3
maint: Use same format for Copyright statement throught code base.
Rik <rik@octave.org>
parents:
23990
diff
changeset
|
91 along with GNU Octave; see the file COPYING. If not, see\n\ |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24009
diff
changeset
|
92 <https://www.gnu.org/licenses/>.\n\ |
1683 | 93 \n"; |
94 | |
21078
49852ff04747
maint: Remove unnecessary declarations of retval.
Rik <rik@octave.org>
parents:
21055
diff
changeset
|
95 return ovl (); |
1683 | 96 } |
97 | |
98 // Execute a shell command. | |
99 | |
2086 | 100 static octave_value_list |
3523 | 101 run_command_and_return_output (const std::string& cmd_str) |
2083 | 102 { |
2086 | 103 octave_value_list retval; |
21743
f4d7d0eb5b0c
use namespace for unwind_protect class
John W. Eaton <jwe@octave.org>
parents:
21739
diff
changeset
|
104 octave::unwind_protect frame; |
2083 | 105 |
106 iprocstream *cmd = new iprocstream (cmd_str.c_str ()); | |
24734
5d8c4cbc56d7
don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
107 frame.add_delete (cmd); |
2083 | 108 |
24734
5d8c4cbc56d7
don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
109 octave::child_list& kids |
5d8c4cbc56d7
don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
110 = octave::__get_child_list__ ("run_command_and_return_output"); |
5d8c4cbc56d7
don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
111 frame.add_method (kids, &octave::child_list::remove, cmd->pid ()); |
3060 | 112 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
113 if (! *cmd) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
114 error ("system: unable to start subprocess for '%s'", cmd_str.c_str ()); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
115 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
116 int fid = cmd->file_number (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
117 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
118 std::ostringstream output_buf; |
2095 | 119 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
120 char ch; |
4494 | 121 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
122 for (;;) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
123 { |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
124 if (cmd->get (ch)) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
125 output_buf.put (ch); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
126 else |
10212
56f7734f5448
fix process creation failure handling in system()
Jaroslav Hajek <highegg@gmail.com>
parents:
10186
diff
changeset
|
127 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
128 if (! cmd->eof () && errno == EAGAIN) |
10212
56f7734f5448
fix process creation failure handling in system()
Jaroslav Hajek <highegg@gmail.com>
parents:
10186
diff
changeset
|
129 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
130 cmd->clear (); |
3147 | 131 |
21899 | 132 if (octave_wait_for_input (fid) != 1) |
10212
56f7734f5448
fix process creation failure handling in system()
Jaroslav Hajek <highegg@gmail.com>
parents:
10186
diff
changeset
|
133 break; |
56f7734f5448
fix process creation failure handling in system()
Jaroslav Hajek <highegg@gmail.com>
parents:
10186
diff
changeset
|
134 } |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
135 else |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
136 break; |
10212
56f7734f5448
fix process creation failure handling in system()
Jaroslav Hajek <highegg@gmail.com>
parents:
10186
diff
changeset
|
137 } |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
138 } |
3147 | 139 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
140 int cmd_status = cmd->close (); |
2083 | 141 |
21921
ecfcc8527661
hide sys/wait.h header and provide wrappers for waitpid macros
John W. Eaton <jwe@octave.org>
parents:
21907
diff
changeset
|
142 if (octave::sys::wifexited (cmd_status)) |
ecfcc8527661
hide sys/wait.h header and provide wrappers for waitpid macros
John W. Eaton <jwe@octave.org>
parents:
21907
diff
changeset
|
143 cmd_status = octave::sys::wexitstatus (cmd_status); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
144 else |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
145 cmd_status = 127; |
2083 | 146 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20946
diff
changeset
|
147 retval = ovl (cmd_status, output_buf.str ()); |
2083 | 148 |
149 return retval; | |
150 } | |
151 | |
5285 | 152 enum system_exec_type { et_sync, et_async }; |
153 | |
1957 | 154 DEFUN (system, args, nargout, |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
155 doc: /* -*- texinfo -*- |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
156 @deftypefn {} {} system ("@var{string}") |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
157 @deftypefnx {} {} system ("@var{string}", @var{return_output}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
158 @deftypefnx {} {} system ("@var{string}", @var{return_output}, @var{type}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
159 @deftypefnx {} {[@var{status}, @var{output}] =} system (@dots{}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
160 Execute a shell command specified by @var{string}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
161 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
162 If the optional argument @var{type} is @qcode{"async"}, the process is |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
163 started in the background and the process ID of the child process is |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
164 returned immediately. Otherwise, the child process is started and Octave |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
165 waits until it exits. If the @var{type} argument is omitted, it defaults to |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
166 the value @qcode{"sync"}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
167 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
168 If @var{system} is called with one or more output arguments, or if the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
169 optional argument @var{return_output} is true and the subprocess is started |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
170 synchronously, then the output from the command is returned as a variable. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
171 Otherwise, if the subprocess is executed synchronously, its output is sent |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
172 to the standard output. To send the output of a command executed with |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
173 @code{system} through the pager, use a command like |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
174 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
175 @example |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
176 @group |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
177 [~, text] = system ("cmd"); |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
178 disp (text); |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
179 @end group |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
180 @end example |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
181 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
182 @noindent |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
183 or |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
184 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
185 @example |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
186 printf ("%s\n", nthargout (2, "system", "cmd")); |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
187 @end example |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
188 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
189 The @code{system} function can return two values. The first is the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
190 exit status of the command and the second is any output from the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
191 command that was written to the standard output stream. For example, |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
192 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
193 @example |
24009
eef8c31ffe97
Document that the shell for system() differs between OS (bug #49825).
Rik <rik@octave.org>
parents:
24007
diff
changeset
|
194 [status, output] = system ("echo foo & exit 2"); |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
195 @end example |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
196 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
197 @noindent |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
198 will set the variable @code{output} to the string @samp{foo}, and the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
199 variable @code{status} to the integer @samp{2}. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
200 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
201 For commands run asynchronously, @var{status} is the process id of the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
202 command shell that is started to run the command. |
24009
eef8c31ffe97
Document that the shell for system() differs between OS (bug #49825).
Rik <rik@octave.org>
parents:
24007
diff
changeset
|
203 |
eef8c31ffe97
Document that the shell for system() differs between OS (bug #49825).
Rik <rik@octave.org>
parents:
24007
diff
changeset
|
204 The shell used for executing commands varies with operating system and is |
eef8c31ffe97
Document that the shell for system() differs between OS (bug #49825).
Rik <rik@octave.org>
parents:
24007
diff
changeset
|
205 typically @file{/bin/sh} for UNIX systems and @file{cmd.exe} for Windows |
eef8c31ffe97
Document that the shell for system() differs between OS (bug #49825).
Rik <rik@octave.org>
parents:
24007
diff
changeset
|
206 systems. |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
207 @seealso{unix, dos} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
208 @end deftypefn */) |
1683 | 209 { |
210 int nargin = args.length (); | |
211 | |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
212 if (nargin == 0 || nargin > 3) |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
213 print_usage (); |
2083 | 214 |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
215 system_exec_type type = et_sync; |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
216 if (nargin == 3) |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
217 { |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
218 std::string type_str = args(2).xstring_value ("system: TYPE must be a string"); |
11123
fbec4b3be59f
toplev.cc (Fsystem): allow optional return_output and type arguments to be specified independently
John W. Eaton <jwe@octave.org>
parents:
11104
diff
changeset
|
219 |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
220 if (type_str == "sync") |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
221 type = et_sync; |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
222 else if (type_str == "async") |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
223 type = et_async; |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
224 else |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23721
diff
changeset
|
225 error (R"(system: TYPE must be "sync" or "async")"); |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
226 } |
11123
fbec4b3be59f
toplev.cc (Fsystem): allow optional return_output and type arguments to be specified independently
John W. Eaton <jwe@octave.org>
parents:
11104
diff
changeset
|
227 |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
228 octave_value_list retval; |
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
229 |
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
230 // FIXME: Is this unwind_protect frame needed anymore (12/16/15)? |
21743
f4d7d0eb5b0c
use namespace for unwind_protect class
John W. Eaton <jwe@octave.org>
parents:
21739
diff
changeset
|
231 octave::unwind_protect frame; |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
232 |
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
233 bool return_output = (nargin == 1 && nargout > 1); |
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
234 |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
235 if (nargin > 1) |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
236 { |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
237 try |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
238 { |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
239 return_output = args(1).is_true (); |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
240 } |
22327
d0562b3159c7
move more classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
22323
diff
changeset
|
241 catch (octave::execution_exception& e) |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
242 { |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
243 error (e, "system: RETURN_OUTPUT must be boolean value true or false"); |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
244 } |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
245 } |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
246 |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
247 if (return_output && type == et_async) |
20831
35241c4b696c
eliminate return statements after calls to error
John W. Eaton <jwe@octave.org>
parents:
20799
diff
changeset
|
248 error ("system: can't return output from commands run asynchronously"); |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
249 |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
250 std::string cmd_str = args(0).xstring_value ("system: first argument must be a string"); |
1683 | 251 |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21966
diff
changeset
|
252 #if defined (OCTAVE_USE_WINDOWS_API) |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
253 // Work around weird double-quote handling on Windows systems. |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
254 if (type == et_sync) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23721
diff
changeset
|
255 cmd_str = '"' + cmd_str + '"'; |
7104 | 256 #endif |
257 | |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
258 if (type == et_async) |
22264
9b78fda78300
fix build failure for --without-z (bug #48757)
John W. Eaton <jwe@octave.org>
parents:
22094
diff
changeset
|
259 retval(0) = octave_async_system_wrapper (cmd_str.c_str ()); |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
260 else if (return_output) |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
261 retval = run_command_and_return_output (cmd_str); |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
262 else |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
263 { |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
264 int status = system (cmd_str.c_str ()); |
2321 | 265 |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
266 // The value in status is as returned by waitpid. If |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
267 // the process exited normally, extract the actual exit |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
268 // status of the command. Otherwise, return 127 as a |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
269 // failure code. |
20582
ba2b07c13913
use new string_value method to handle value extraction errors
John W. Eaton <jwe@octave.org>
parents:
20555
diff
changeset
|
270 |
21921
ecfcc8527661
hide sys/wait.h header and provide wrappers for waitpid macros
John W. Eaton <jwe@octave.org>
parents:
21907
diff
changeset
|
271 if (octave::sys::wifexited (status)) |
ecfcc8527661
hide sys/wait.h header and provide wrappers for waitpid macros
John W. Eaton <jwe@octave.org>
parents:
21907
diff
changeset
|
272 status = octave::sys::wexitstatus (status); |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
273 |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
274 retval(0) = status; |
1683 | 275 } |
276 | |
277 return retval; | |
278 } | |
279 | |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
280 /* |
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
281 %!test |
14018
5d5685216876
Deprecate shell_cmd function and update system, dos, unix commands
Rik <octave@nomad.inbox5.com>
parents:
14016
diff
changeset
|
282 %! cmd = ls_command (); |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
283 %! [status, output] = system (cmd); |
14018
5d5685216876
Deprecate shell_cmd function and update system, dos, unix commands
Rik <octave@nomad.inbox5.com>
parents:
14016
diff
changeset
|
284 %! assert (status, 0); |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
285 %! assert (ischar (output)); |
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
286 %! assert (! isempty (output)); |
14018
5d5685216876
Deprecate shell_cmd function and update system, dos, unix commands
Rik <octave@nomad.inbox5.com>
parents:
14016
diff
changeset
|
287 |
5d5685216876
Deprecate shell_cmd function and update system, dos, unix commands
Rik <octave@nomad.inbox5.com>
parents:
14016
diff
changeset
|
288 %!error system () |
5d5685216876
Deprecate shell_cmd function and update system, dos, unix commands
Rik <octave@nomad.inbox5.com>
parents:
14016
diff
changeset
|
289 %!error system (1, 2, 3) |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
290 */ |
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
291 |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
292 static octave_value |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
293 find_config_info (const octave_scalar_map& m, const std::string& key) |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
294 { |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
295 if (m.isfield (key)) |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
296 { |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
297 Cell c = m.contents (key); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
298 |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23487
diff
changeset
|
299 if (! c.isempty ()) |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
300 return c(0); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
301 } |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
302 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
303 return octave_value (); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
304 } |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
305 |
21434
1da428cbf401
deprecate octave_config_info
John W. Eaton <jwe@octave.org>
parents:
21421
diff
changeset
|
306 DEFUN (__octave_config_info__, args, , |
21966
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
307 doc: /* -*- texinfo -*- |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
308 @deftypefn {} {} __octave_config_info__ () |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
309 @deftypefnx {} {} __octave_config_info__ (@var{option}) |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
310 Return a structure containing configuration and installation information for |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
311 Octave. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
312 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
313 If @var{option} is a string, return the configuration information for the |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
314 specified option. |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
315 |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
316 @seealso{computer} |
112b20240c87
move docstrings in C++ files out of C strings and into comments
John W. Eaton <jwe@octave.org>
parents:
21949
diff
changeset
|
317 @end deftypefn */) |
2162 | 318 { |
4128 | 319 #if defined (ENABLE_DYNAMIC_LINKING) |
2689 | 320 bool octave_supports_dynamic_linking = true; |
321 #else | |
322 bool octave_supports_dynamic_linking = false; | |
323 #endif | |
324 | |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
325 static octave_scalar_map config; |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
326 static octave_scalar_map build_env; |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
327 static octave_scalar_map build_features; |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
328 |
4357 | 329 static bool initialized = false; |
2162 | 330 |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
331 if (! initialized) |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
332 { |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
333 std::map<std::string, octave_value> conf_info_map |
23717
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
334 = {{ "DEFAULT_PAGER", octave::config::default_pager () }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
335 |
21229
a83e7a384ee0
create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents:
21226
diff
changeset
|
336 #if defined (OCTAVE_ENABLE_64) |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
337 { "ENABLE_64", true }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
338 #else |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
339 { "ENABLE_64", false }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
340 #endif |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
341 |
21229
a83e7a384ee0
create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents:
21226
diff
changeset
|
342 #if defined (OCTAVE_ENABLE_ATOMIC_REFCOUNT) |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
343 { "ENABLE_ATOMIC_REFCOUNT", true }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
344 #else |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
345 { "ENABLE_ATOMIC_REFCOUNT", false }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
346 #endif |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
347 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
348 #if defined (ENABLE_DOCS) |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
349 { "ENABLE_DOCS", true }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
350 #else |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
351 { "ENABLE_DOCS", false }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
352 #endif |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
353 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
354 #if defined (ENABLE_DYNAMIC_LINKING) |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
355 { "ENABLE_DYNAMIC_LINKING", true }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
356 #else |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
357 { "ENABLE_DYNAMIC_LINKING", false }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
358 #endif |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
359 |
21229
a83e7a384ee0
create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents:
21226
diff
changeset
|
360 #if defined (OCTAVE_ENABLE_FLOAT_TRUNCATE) |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
361 { "ENABLE_FLOAT_TRUNCATE", true }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
362 #else |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
363 { "ENABLE_FLOAT_TRUNCATE", false }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
364 #endif |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
365 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
366 #if defined (ENABLE_JIT) |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
367 { "ENABLE_JIT", true }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
368 #else |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
369 { "ENABLE_JIT", false }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
370 #endif |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
371 |
21229
a83e7a384ee0
create and install a subset of config.h in octave-config.h
John W. Eaton <jwe@octave.org>
parents:
21226
diff
changeset
|
372 #if defined (OCTAVE_ENABLE_OPENMP) |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
373 { "ENABLE_OPENMP", true }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
374 #else |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
375 { "ENABLE_OPENMP", false }, |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
376 #endif |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
377 |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
378 { "api_version", OCTAVE_API_VERSION }, |
23717
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
379 { "archlibdir", octave::config::arch_lib_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
380 { "bindir", octave::config::bin_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
381 { "canonical_host_type", octave::config::canonical_host_type () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
382 { "datadir", octave::config::data_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
383 { "datarootdir", octave::config::dataroot_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
384 { "fcnfiledir", octave::config::fcn_file_dir () }, |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
385 { "fftw_version", octave::fftw_version () }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
386 { "fftwf_version", octave::fftwf_version () }, |
23717
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
387 { "imagedir", octave::config::image_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
388 { "includedir", octave::config::include_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
389 { "infodir", octave::config::info_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
390 { "libdir", octave::config::lib_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
391 { "libexecdir", octave::config::libexec_dir () }, |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
392 // Each library and executable has its own definition of the hg |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
393 // id. We check for consistency when Octave starts so we just |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
394 // store and report one of them here. |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
395 { "hg_id", liboctinterp_hg_id () }, |
23717
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
396 { "localapiarchlibdir", octave::config::local_api_arch_lib_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
397 { "localapifcnfiledir", octave::config::local_api_fcn_file_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
398 { "localapioctfiledir", octave::config::local_api_oct_file_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
399 { "localarchlibdir", octave::config::local_arch_lib_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
400 { "localfcnfiledir", octave::config::local_fcn_file_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
401 { "localoctfiledir", octave::config::local_oct_file_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
402 { "localstartupfiledir", octave::config::local_startupfile_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
403 { "localverarchlibdir", octave::config::local_ver_arch_lib_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
404 { "localverfcnfiledir", octave::config::local_ver_fcn_file_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
405 { "localveroctfiledir", octave::config::local_ver_oct_file_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
406 { "man1dir", octave::config::man1_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
407 { "man1ext", octave::config::man1_ext () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
408 { "mandir", octave::config::man_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
409 { "octdatadir", octave::config::oct_data_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
410 { "octfiledir", octave::config::oct_file_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
411 { "octetcdir", octave::config::oct_etc_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
412 { "octincludedir", octave::config::oct_include_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
413 { "octlibdir", octave::config::oct_lib_dir () }, |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
414 { "octtestsdir", octave::config::oct_tests_dir () }, |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
415 { "release_date", OCTAVE_RELEASE_DATE }, |
23717
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23715
diff
changeset
|
416 { "startupfiledir", octave::config::startupfile_dir () }, |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
417 { "version", OCTAVE_VERSION }}; |
4357 | 418 |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
419 std::map<std::string, octave_value> build_env_map |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
420 = {{ "AMD_CPPFLAGS", octave::build_env::AMD_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
421 { "AMD_LDFLAGS", octave::build_env::AMD_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
422 { "AMD_LIBS", octave::build_env::AMD_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
423 { "AR", octave::build_env::AR }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
424 { "ARFLAGS", octave::build_env::ARFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
425 { "ARPACK_CPPFLAGS", octave::build_env::ARPACK_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
426 { "ARPACK_LDFLAGS", octave::build_env::ARPACK_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
427 { "ARPACK_LIBS", octave::build_env::ARPACK_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
428 { "BLAS_LIBS", octave::build_env::BLAS_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
429 { "CAMD_CPPFLAGS", octave::build_env::CAMD_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
430 { "CAMD_LDFLAGS", octave::build_env::CAMD_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
431 { "CAMD_LIBS", octave::build_env::CAMD_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
432 { "CARBON_LIBS", octave::build_env::CARBON_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
433 { "CC", octave::build_env::CC }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
434 { "CCOLAMD_CPPFLAGS", octave::build_env::CCOLAMD_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
435 { "CCOLAMD_LDFLAGS", octave::build_env::CCOLAMD_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
436 { "CCOLAMD_LIBS", octave::build_env::CCOLAMD_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
437 { "CFLAGS", octave::build_env::CFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
438 { "CHOLMOD_CPPFLAGS", octave::build_env::CHOLMOD_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
439 { "CHOLMOD_LDFLAGS", octave::build_env::CHOLMOD_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
440 { "CHOLMOD_LIBS", octave::build_env::CHOLMOD_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
441 { "COLAMD_CPPFLAGS", octave::build_env::COLAMD_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
442 { "COLAMD_LDFLAGS", octave::build_env::COLAMD_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
443 { "COLAMD_LIBS", octave::build_env::COLAMD_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
444 { "CPICFLAG", octave::build_env::CPICFLAG }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
445 { "CPPFLAGS", octave::build_env::CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
446 { "CURL_CPPFLAGS", octave::build_env::CURL_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
447 { "CURL_LDFLAGS", octave::build_env::CURL_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
448 { "CURL_LIBS", octave::build_env::CURL_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
449 { "CXSPARSE_CPPFLAGS", octave::build_env::CXSPARSE_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
450 { "CXSPARSE_LDFLAGS", octave::build_env::CXSPARSE_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
451 { "CXSPARSE_LIBS", octave::build_env::CXSPARSE_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
452 { "CXX", octave::build_env::CXX }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
453 { "CXXCPP", octave::build_env::CXXCPP }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
454 { "CXXFLAGS", octave::build_env::CXXFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
455 { "CXXPICFLAG", octave::build_env::CXXPICFLAG }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
456 { "DEFS", octave::build_env::DEFS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
457 { "DL_LD", octave::build_env::DL_LD }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
458 { "DL_LDFLAGS", octave::build_env::DL_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
459 { "DL_LIBS", octave::build_env::DL_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
460 { "GCC_VERSION", octave::build_env::GCC_VERSION }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
461 { "GXX_VERSION", octave::build_env::GXX_VERSION }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
462 { "EXEEXT", octave::build_env::EXEEXT }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
463 { "F77", octave::build_env::F77 }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
464 { "F77_FLOAT_STORE_FLAG", octave::build_env::F77_FLOAT_STORE_FLAG }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
465 { "F77_INTEGER_8_FLAG", octave::build_env::F77_INTEGER_8_FLAG }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
466 { "FFLAGS", octave::build_env::FFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
467 { "FFTW3_CPPFLAGS", octave::build_env::FFTW3_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
468 { "FFTW3_LDFLAGS", octave::build_env::FFTW3_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
469 { "FFTW3_LIBS", octave::build_env::FFTW3_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
470 { "FFTW3F_CPPFLAGS", octave::build_env::FFTW3F_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
471 { "FFTW3F_LDFLAGS", octave::build_env::FFTW3F_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
472 { "FFTW3F_LIBS", octave::build_env::FFTW3F_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
473 { "FLIBS", octave::build_env::FLIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
474 { "FLTK_CPPFLAGS", octave::build_env::FLTK_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
475 { "FLTK_LDFLAGS", octave::build_env::FLTK_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
476 { "FLTK_LIBS", octave::build_env::FLTK_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
477 { "FONTCONFIG_CPPFLAGS", octave::build_env::FONTCONFIG_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
478 { "FONTCONFIG_LIBS", octave::build_env::FONTCONFIG_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
479 { "FPICFLAG", octave::build_env::FPICFLAG }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
480 { "FT2_CPPFLAGS", octave::build_env::FT2_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
481 { "FT2_LIBS", octave::build_env::FT2_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
482 { "GLPK_CPPFLAGS", octave::build_env::GLPK_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
483 { "GLPK_LDFLAGS", octave::build_env::GLPK_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
484 { "GLPK_LIBS", octave::build_env::GLPK_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
485 { "GNUPLOT", octave::build_env::GNUPLOT }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
486 { "HDF5_CPPFLAGS", octave::build_env::HDF5_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
487 { "HDF5_LDFLAGS", octave::build_env::HDF5_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
488 { "HDF5_LIBS", octave::build_env::HDF5_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
489 { "LAPACK_LIBS", octave::build_env::LAPACK_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
490 { "LDFLAGS", octave::build_env::LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
491 { "LD_CXX", octave::build_env::LD_CXX }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
492 { "LD_STATIC_FLAG", octave::build_env::LD_STATIC_FLAG }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
493 { "LEX", octave::build_env::LEX }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
494 { "LEXLIB", octave::build_env::LEXLIB }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
495 { "LFLAGS", octave::build_env::LFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
496 { "LIBOCTAVE", octave::build_env::LIBOCTAVE }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
497 { "LIBOCTINTERP", octave::build_env::LIBOCTINTERP }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
498 { "LIBS", octave::build_env::LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
499 { "LLVM_CPPFLAGS", octave::build_env::LLVM_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
500 { "LLVM_LDFLAGS", octave::build_env::LLVM_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
501 { "LLVM_LIBS", octave::build_env::LLVM_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
502 { "LN_S", octave::build_env::LN_S }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
503 { "MAGICK_CPPFLAGS", octave::build_env::MAGICK_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
504 { "MAGICK_LDFLAGS", octave::build_env::MAGICK_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
505 { "MAGICK_LIBS", octave::build_env::MAGICK_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
506 { "MKOCTFILE_DL_LDFLAGS", octave::build_env::MKOCTFILE_DL_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
507 { "OCTAVE_LINK_DEPS", octave::build_env::OCTAVE_LINK_DEPS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
508 { "OCTAVE_LINK_OPTS", octave::build_env::OCTAVE_LINK_OPTS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
509 { "OCT_LINK_DEPS", octave::build_env::OCT_LINK_DEPS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
510 { "OCT_LINK_OPTS", octave::build_env::OCT_LINK_OPTS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
511 { "OPENGL_LIBS", octave::build_env::OPENGL_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
512 { "OSMESA_CPPFLAGS", octave::build_env::OSMESA_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
513 { "OSMESA_LDFLAGS", octave::build_env::OSMESA_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
514 { "OSMESA_LIBS", octave::build_env::OSMESA_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
515 { "PCRE_CPPFLAGS", octave::build_env::PCRE_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
516 { "PCRE_LDFLAGS", octave::build_env::PCRE_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
517 { "PCRE_LIBS", octave::build_env::PCRE_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
518 { "PTHREAD_CFLAGS", octave::build_env::PTHREAD_CFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
519 { "PTHREAD_LIBS", octave::build_env::PTHREAD_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
520 { "QHULL_CPPFLAGS", octave::build_env::QHULL_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
521 { "QHULL_LDFLAGS", octave::build_env::QHULL_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
522 { "QHULL_LIBS", octave::build_env::QHULL_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
523 { "QRUPDATE_CPPFLAGS", octave::build_env::QRUPDATE_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
524 { "QRUPDATE_LDFLAGS", octave::build_env::QRUPDATE_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
525 { "QRUPDATE_LIBS", octave::build_env::QRUPDATE_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
526 { "QT_CPPFLAGS", octave::build_env::QT_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
527 { "QT_LDFLAGS", octave::build_env::QT_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
528 { "QT_LIBS", octave::build_env::QT_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
529 { "RANLIB", octave::build_env::RANLIB }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
530 { "RDYNAMIC_FLAG", octave::build_env::RDYNAMIC_FLAG }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
531 { "READLINE_LIBS", octave::build_env::READLINE_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
532 { "SED", octave::build_env::SED }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
533 { "SHARED_LIBS", octave::build_env::SHARED_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
534 { "SH_LD", octave::build_env::SH_LD }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
535 { "SH_LDFLAGS", octave::build_env::SH_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
536 { "STATIC_LIBS", octave::build_env::STATIC_LIBS }, |
23990
6f56efc098bd
check for suitesparse config library before other suitesparse libraries
John W. Eaton <jwe@octave.org>
parents:
23878
diff
changeset
|
537 { "SUITESPARSECONFIG_LIBS", octave::build_env::SUITESPARSECONFIG_LIBS }, |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
538 { "TERM_LIBS", octave::build_env::TERM_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
539 { "UMFPACK_CPPFLAGS", octave::build_env::UMFPACK_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
540 { "UMFPACK_LDFLAGS", octave::build_env::UMFPACK_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
541 { "UMFPACK_LIBS", octave::build_env::UMFPACK_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
542 { "WARN_CFLAGS", octave::build_env::WARN_CFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
543 { "WARN_CXXFLAGS", octave::build_env::WARN_CXXFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
544 { "X11_INCFLAGS", octave::build_env::X11_INCFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
545 { "X11_LIBS", octave::build_env::X11_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
546 { "XTRA_CFLAGS", octave::build_env::XTRA_CFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
547 { "XTRA_CXXFLAGS", octave::build_env::XTRA_CXXFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
548 { "YACC", octave::build_env::YACC }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
549 { "YFLAGS", octave::build_env::YFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
550 { "Z_CPPFLAGS", octave::build_env::Z_CPPFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
551 { "Z_LDFLAGS", octave::build_env::Z_LDFLAGS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
552 { "Z_LIBS", octave::build_env::Z_LIBS }, |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
553 { "config_opts", octave::build_env::config_opts }}; |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
554 |
23715
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
555 config = octave_scalar_map (conf_info_map); |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
556 build_env = octave_scalar_map (build_env_map); |
e8e27cd4156c
* toplev.cc (F__octave_config_info__): Reorganize initialization.
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
557 build_features = octave::build_env::features (); |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
558 |
4691 | 559 bool unix_system = true; |
7013 | 560 bool mac_system = false; |
4691 | 561 bool windows_system = false; |
562 | |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21966
diff
changeset
|
563 #if defined (__WIN32__) |
4691 | 564 windows_system = true; |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
20785
diff
changeset
|
565 #if ! defined (__CYGWIN__) |
4691 | 566 unix_system = false; |
567 #endif | |
568 #endif | |
569 | |
8574
83b8c739d626
toplev.cc: check OCTAVE_USE_OS_X_API instead of __APPLE__ && __MACH__
John W. Eaton <jwe@octave.org>
parents:
8377
diff
changeset
|
570 #if defined (OCTAVE_USE_OS_X_API) |
7010 | 571 mac_system = true; |
572 #endif | |
573 | |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
574 config.assign ("unix", octave_value (unix_system)); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
575 config.assign ("mac", octave_value (mac_system)); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
576 config.assign ("windows", octave_value (windows_system)); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
577 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
578 config.assign ("dld", octave_value (octave_supports_dynamic_linking)); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
579 |
21739
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21724
diff
changeset
|
580 octave::mach_info::float_format ff = octave::mach_info::native_float_format (); |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
581 config.assign ("float_format", |
21739
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21724
diff
changeset
|
582 octave_value (octave::mach_info::float_format_as_string (ff))); |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
583 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
584 config.assign ("words_big_endian", |
21739
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21724
diff
changeset
|
585 octave_value (octave::mach_info::words_big_endian ())); |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
586 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
587 config.assign ("words_little_endian", |
21739
c4ab2e54f100
use namespace for oct_mach_info class
John W. Eaton <jwe@octave.org>
parents:
21724
diff
changeset
|
588 octave_value (octave::mach_info::words_little_endian ())); |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
589 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
590 config.assign ("build_environment", octave_value (build_env)); |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
591 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
592 config.assign ("build_features", octave_value (build_features)); |
4691 | 593 |
4357 | 594 initialized = true; |
595 } | |
2162 | 596 |
2689 | 597 int nargin = args.length (); |
598 | |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
599 if (nargin > 1) |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
600 print_usage (); |
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
601 |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
602 octave_value_list retval; |
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
603 |
2689 | 604 if (nargin == 1) |
605 { | |
21434
1da428cbf401
deprecate octave_config_info
John W. Eaton <jwe@octave.org>
parents:
21421
diff
changeset
|
606 std::string arg = args(0).xstring_value ("__octave_config_info__: OPTION argument must be a string"); |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
607 |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
608 octave_value info = find_config_info (config, arg); |
2689 | 609 |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
610 if (info.is_undefined ()) |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
611 info = find_config_info (build_env, arg); |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
612 |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
613 if (info.is_undefined ()) |
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
614 info = find_config_info (build_features, arg); |
5199 | 615 |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
616 if (info.is_undefined ()) |
21434
1da428cbf401
deprecate octave_config_info
John W. Eaton <jwe@octave.org>
parents:
21421
diff
changeset
|
617 error ("__octave_config_info__: no info for '%s'", arg.c_str ()); |
20939
b17fda023ca6
maint: Use new C++ archetype in more files.
Rik <rik@octave.org>
parents:
20923
diff
changeset
|
618 |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
619 return info; |
2689 | 620 } |
20799
c349d4c91ce2
eliminate return statements after calls to print_usage
John W. Eaton <jwe@octave.org>
parents:
20791
diff
changeset
|
621 else |
21226
a55b8ece1ecd
reorganize octave_config_info again
John W. Eaton <jwe@octave.org>
parents:
21220
diff
changeset
|
622 retval = ovl (config); |
2689 | 623 |
624 return retval; | |
2162 | 625 } |
626 | |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
627 /* |
21434
1da428cbf401
deprecate octave_config_info
John W. Eaton <jwe@octave.org>
parents:
21421
diff
changeset
|
628 %!assert (ischar (__octave_config_info__ ("version"))) |
22751
e078f5607762
Fix failing BIST test in toplev.cc (bug #49575).
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
629 %!assert (__octave_config_info__ ("version"), OCTAVE_VERSION ()) |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
630 %!test |
21434
1da428cbf401
deprecate octave_config_info
John W. Eaton <jwe@octave.org>
parents:
21421
diff
changeset
|
631 %! x = __octave_config_info__ (); |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
632 %! assert (isstruct (x)); |
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
633 %! assert (! isempty (x)); |
22751
e078f5607762
Fix failing BIST test in toplev.cc (bug #49575).
Rik <rik@octave.org>
parents:
22501
diff
changeset
|
634 %! assert (x.version, OCTAVE_VERSION ()); |
21603
37cbdf7bffa9
Add fftwf_version (bug #45659)
mmuetzel <markus.muetzel@gmx.de>
parents:
21600
diff
changeset
|
635 |
21434
1da428cbf401
deprecate octave_config_info
John W. Eaton <jwe@octave.org>
parents:
21421
diff
changeset
|
636 %!error __octave_config_info__ (1, 2) |
12846
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
637 */ |
9ce9e1e2d2c8
codesprint: new tests for toplev.cc
John W. Eaton <jwe@octave.org>
parents:
12483
diff
changeset
|
638 |
1683 | 639 #if defined (__GNUG__) && defined (DEBUG_NEW_DELETE) |
2806 | 640 |
1683 | 641 int debug_new_delete = 0; |
642 | |
643 typedef void (*vfp)(void); | |
644 extern vfp __new_handler; | |
645 | |
646 void * | |
647 __builtin_new (size_t sz) | |
648 { | |
649 void *p; | |
650 | |
20946 | 651 // malloc (0) is unpredictable; avoid it. |
1683 | 652 if (sz == 0) |
653 sz = 1; | |
21942
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
654 p = std::malloc (sz); |
1683 | 655 while (p == 0) |
656 { | |
657 (*__new_handler) (); | |
21942
aab79a1885cc
limit gnulib headers to liboctave/wrappers directory
John W. Eaton <jwe@octave.org>
parents:
21921
diff
changeset
|
658 p = std::malloc (sz); |
1683 | 659 } |
660 | |
661 if (debug_new_delete) | |
5629 | 662 std::cerr << "__builtin_new: " << p << std::endl; |
1683 | 663 |
664 return p; | |
665 } | |
666 | |
667 void | |
668 __builtin_delete (void *ptr) | |
669 { | |
670 if (debug_new_delete) | |
5629 | 671 std::cerr << "__builtin_delete: " << ptr << std::endl; |
1683 | 672 |
23878
889b8262e661
maint: eliminate useless if (p) before free (p)
Mike Miller <mtmiller@octave.org>
parents:
23803
diff
changeset
|
673 free (ptr); |
1683 | 674 } |
2806 | 675 |
1683 | 676 #endif |