Mercurial > octave
annotate src/mkoctfile.in.cc @ 30920:47cbc69e66cd
eliminate direct access to call stack from evaluator
The call stack is an internal implementation detail of the evaluator.
Direct access to it outside of the evlauator should not be needed.
* pt-eval.h (tree_evaluator::get_call_stack): Delete.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 08 Apr 2022 15:19:22 -0400 |
parents | 83f9f8bda883 |
children | 0c48b7e6f3cf |
rev | line source |
---|---|
18360
f1ee47866e6b
use common code to get OCTAVE_HOME in main, octave-config and mkoctfile
John W. Eaton <jwe@octave.org>
parents:
18349
diff
changeset
|
1 // %NO_EDIT_WARNING% |
8920 | 2 |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
3 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30533
diff
changeset
|
5 // Copyright (C) 2008-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
25 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
26 //////////////////////////////////////////////////////////////////////// |
8920 | 27 |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
28 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21202
diff
changeset
|
29 # include "config.h" |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
30 #endif |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
31 |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
32 #include <string> |
15299
8bd5c490b787
Fix mex compilation with subdirs on Windows platforms (bug #37122)
Rik <rik@octave.org>
parents:
15271
diff
changeset
|
33 #include <cstring> |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
34 #include <map> |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
35 #include <list> |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
36 #include <algorithm> |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
37 #include <iostream> |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
38 #include <fstream> |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
39 #include <sstream> |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
40 #include <vector> |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
41 #include <cstdlib> |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
42 |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
43 #if defined (OCTAVE_USE_WINDOWS_API) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
44 # include <locale> |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
45 # include <codecvt> |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
46 #endif |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
47 |
25504
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
48 // Programming note: The CROSS macro here refers to building a |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
49 // cross-compiler aware version of mkoctfile that can be used to cross |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
50 // compile .oct file for Windows builds of Octave, not that mkoctfile |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
51 // itself is being cross compiled. |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
52 // |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
53 // We don't use the wrapper and gnulib functions when we are building |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
54 // with CROSS defined. This configuration is only expected to work on |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
55 // modern systems that should not need to have gnulib to fix POSIX |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
56 // portability problems. So we just assume a working POSIX system when |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
57 // CROSS is defined. |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
58 |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
59 #if defined (CROSS) |
25503
ec2492a2af6a
* mkoctfile.in.cc [CROSS]: Include <fcntl.h> for O_BINARY.
John W. Eaton <jwe@octave.org>
parents:
25497
diff
changeset
|
60 # include <stdlib.h> |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
61 # include <sys/types.h> |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
62 # include <sys/wait.h> |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
63 # include <unistd.h> |
23801
9d67bd90681b
cross tools: define OCTAVE_UNUSED if not defined
John D <john.donoghue@ieee.org>
parents:
23757
diff
changeset
|
64 # ifndef OCTAVE_UNUSED |
9d67bd90681b
cross tools: define OCTAVE_UNUSED if not defined
John D <john.donoghue@ieee.org>
parents:
23757
diff
changeset
|
65 # define OCTAVE_UNUSED |
9d67bd90681b
cross tools: define OCTAVE_UNUSED if not defined
John D <john.donoghue@ieee.org>
parents:
23757
diff
changeset
|
66 # endif |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
67 #else |
29237
1af06a145d40
Un-set API flags when using functions without linking to shared library (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29141
diff
changeset
|
68 // We are linking against static libs so do not decorate with dllimport. |
1af06a145d40
Un-set API flags when using functions without linking to shared library (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29141
diff
changeset
|
69 // FIXME: This should be done by the build system. |
1af06a145d40
Un-set API flags when using functions without linking to shared library (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29141
diff
changeset
|
70 # undef OCTAVE_API |
1af06a145d40
Un-set API flags when using functions without linking to shared library (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29141
diff
changeset
|
71 # define OCTAVE_API |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
72 # include "mkostemps-wrapper.h" |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
73 # include "uniconv-wrappers.h" |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
74 # include "unistd-wrappers.h" |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
75 # include "wait-wrappers.h" |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
76 #endif |
18916
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
77 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
78 #if ! defined (OCTAVE_VERSION) |
21202
f7121e111991
maint: indent #ifdef blocks in liboctave and src directories.
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
79 # define OCTAVE_VERSION %OCTAVE_CONF_VERSION% |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
80 #endif |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
81 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
82 #if ! defined (OCTAVE_PREFIX) |
21202
f7121e111991
maint: indent #ifdef blocks in liboctave and src directories.
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
83 # define OCTAVE_PREFIX %OCTAVE_CONF_PREFIX% |
18360
f1ee47866e6b
use common code to get OCTAVE_HOME in main, octave-config and mkoctfile
John W. Eaton <jwe@octave.org>
parents:
18349
diff
changeset
|
84 #endif |
f1ee47866e6b
use common code to get OCTAVE_HOME in main, octave-config and mkoctfile
John W. Eaton <jwe@octave.org>
parents:
18349
diff
changeset
|
85 |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
86 #if ! defined (OCTAVE_EXEC_PREFIX) |
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
87 # define OCTAVE_EXEC_PREFIX %OCTAVE_CONF_EXEC_PREFIX% |
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
88 #endif |
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
89 |
18360
f1ee47866e6b
use common code to get OCTAVE_HOME in main, octave-config and mkoctfile
John W. Eaton <jwe@octave.org>
parents:
18349
diff
changeset
|
90 #include "shared-fcns.h" |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
91 |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
92 #if defined (CROSS) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
93 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
94 static int |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
95 octave_mkostemps_wrapper (char *tmpl, int suffixlen) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
96 { |
25504
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
97 return mkostemps (tmpl, suffixlen, 0); |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
98 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
99 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
100 static int |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
101 octave_unlink_wrapper (const char *nm) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
102 { |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
103 return unlink (nm); |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
104 } |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
105 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
106 static bool |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
107 octave_wifexited_wrapper (int status) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
108 { |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
109 return WIFEXITED (status); |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
110 } |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
111 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
112 static int |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
113 octave_wexitstatus_wrapper (int status) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
114 { |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
115 return WEXITSTATUS (status); |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
116 } |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
117 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
118 #endif |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
119 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
120 static std::string |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
121 get_line (FILE *fp) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
122 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
123 std::ostringstream buf; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
124 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
125 while (true) |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
126 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
127 int c = std::fgetc (fp); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
128 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
129 if (c == '\n' || c == EOF) |
12174 | 130 break; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
131 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
132 buf << static_cast<char> (c); |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
133 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
134 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
135 return buf.str (); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
136 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
137 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
138 static std::string |
25475
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
139 get_variable (const char *name, const std::string& defval) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
140 { |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
141 const char *val = getenv (name); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
142 |
17898
8c33abdd2f9a
maint: Avoid using NULL in C++ code.
John W. Eaton <jwe@octave.org>
parents:
17789
diff
changeset
|
143 if (val && *val) |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
144 return std::string (val); |
17898
8c33abdd2f9a
maint: Avoid using NULL in C++ code.
John W. Eaton <jwe@octave.org>
parents:
17789
diff
changeset
|
145 else |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
146 return defval; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
147 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
148 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
149 static std::string |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
150 quote_path (const std::string& s) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
151 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
152 if (s.find (' ') != std::string::npos && s[0] != '"') |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23801
diff
changeset
|
153 return '"' + s + '"'; |
8332 | 154 else |
155 return s; | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
156 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
157 |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
158 static std::string |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
159 replace_prefix (std::string s) |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
160 { |
29554
99e3912441ec
build: Make relocation of dependencies with Octave optional (bug #60413).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29358
diff
changeset
|
161 #if defined (OCTAVE_REPLACE_PREFIX) |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
162 const std::string match = "${prefix}"; |
30368
15ae4d97a632
mkoctfile: Correctly handle relocation in cross-compiler.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29699
diff
changeset
|
163 const std::string repl = Voctave_exec_home; |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
164 std::size_t pos = s.find (match); |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
165 while (pos != std::string::npos ) |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
166 { |
30368
15ae4d97a632
mkoctfile: Correctly handle relocation in cross-compiler.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29699
diff
changeset
|
167 s.replace (pos, match.length (), repl); |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
168 pos = s.find (match); |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
169 } |
29554
99e3912441ec
build: Make relocation of dependencies with Octave optional (bug #60413).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29358
diff
changeset
|
170 #endif |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
171 |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
172 return s; |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
173 } |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
174 |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
175 static std::map<std::string, std::string> |
28965
d24e34e179ab
mkoctfile: don't add DL_LDFLAGS to LDFLAGS if linking stand alone program
John W. Eaton <jwe@octave.org>
parents:
28964
diff
changeset
|
176 make_vars_map (bool link_stand_alone, bool verbose, bool debug) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
177 { |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
178 set_octave_home (); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
179 |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
180 std::map<std::string, std::string> vars; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
181 |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
182 vars["OCTAVE_HOME"] = Voctave_home; |
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
183 vars["OCTAVE_EXEC_HOME"] = Voctave_exec_home; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
184 |
25556
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
185 vars["API_VERSION"] = %OCTAVE_API_VERSION%; |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
186 vars["CANONICAL_HOST_TYPE"] = %OCTAVE_CANONICAL_HOST_TYPE%; |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
187 vars["DEFAULT_PAGER"] = %OCTAVE_DEFAULT_PAGER%; |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
188 vars["EXEEXT"] = %OCTAVE_EXEEXT%; |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
189 vars["MAN1EXT"] = %OCTAVE_MAN1EXT%; |
26472
86bcab2e371e
mkoctfile: use OCTAVE_VERSION instead of VERSION for API consistency
Mike Miller <mtmiller@octave.org>
parents:
26431
diff
changeset
|
190 vars["OCTAVE_VERSION"] = %OCTAVE_VERSION%; |
25556
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
191 |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
192 vars["ARCHLIBDIR"] = prepend_octave_exec_home (%OCTAVE_ARCHLIBDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
193 vars["BINDIR"] = prepend_octave_exec_home (%OCTAVE_BINDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
194 vars["DATADIR"] = prepend_octave_home (%OCTAVE_DATADIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
195 vars["DATAROOTDIR"] = prepend_octave_home (%OCTAVE_DATAROOTDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
196 vars["FCNFILEDIR"] = prepend_octave_home (%OCTAVE_FCNFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
197 vars["IMAGEDIR"] = prepend_octave_home (%OCTAVE_IMAGEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
198 vars["INFODIR"] = prepend_octave_home (%OCTAVE_INFODIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
199 vars["INFOFILE"] = prepend_octave_home (%OCTAVE_INFOFILE%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
200 vars["LIBEXECDIR"] = prepend_octave_exec_home (%OCTAVE_LIBEXECDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
201 vars["LOCALAPIARCHLIBDIR"] = prepend_octave_exec_home (%OCTAVE_LOCALAPIARCHLIBDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
202 vars["LOCALAPIFCNFILEDIR"] = prepend_octave_home (%OCTAVE_LOCALAPIFCNFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
203 vars["LOCALAPIOCTFILEDIR"] = prepend_octave_exec_home (%OCTAVE_LOCALAPIOCTFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
204 vars["LOCALARCHLIBDIR"] = prepend_octave_exec_home (%OCTAVE_LOCALARCHLIBDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
205 vars["LOCALFCNFILEDIR"] = prepend_octave_home (%OCTAVE_LOCALFCNFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
206 vars["LOCALOCTFILEDIR"] = prepend_octave_exec_home (%OCTAVE_LOCALOCTFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
207 vars["LOCALSTARTUPFILEDIR"] = prepend_octave_home (%OCTAVE_LOCALSTARTUPFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
208 vars["LOCALVERARCHLIBDIR"] = prepend_octave_exec_home (%OCTAVE_LOCALVERARCHLIBDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
209 vars["LOCALVERFCNFILEDIR"] = prepend_octave_home (%OCTAVE_LOCALVERFCNFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
210 vars["LOCALVEROCTFILEDIR"] = prepend_octave_exec_home (%OCTAVE_LOCALVEROCTFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
211 vars["MAN1DIR"] = prepend_octave_home (%OCTAVE_MAN1DIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
212 vars["MANDIR"] = prepend_octave_home (%OCTAVE_MANDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
213 vars["OCTDATADIR"] = prepend_octave_home (%OCTAVE_OCTDATADIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
214 vars["OCTDOCDIR"] = prepend_octave_home (%OCTAVE_OCTDOCDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
215 vars["OCTFILEDIR"] = prepend_octave_exec_home (%OCTAVE_OCTFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
216 vars["OCTFONTSDIR"] = prepend_octave_home (%OCTAVE_OCTFONTSDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
217 vars["STARTUPFILEDIR"] = prepend_octave_home (%OCTAVE_STARTUPFILEDIR%); |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
218 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
219 vars["OCTINCLUDEDIR"] |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
220 = get_variable ("OCTINCLUDEDIR", |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
221 prepend_octave_home (%OCTAVE_CONF_OCTINCLUDEDIR%)); |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
222 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
223 vars["INCLUDEDIR"] |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
224 = get_variable ("INCLUDEDIR", |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
225 prepend_octave_home (%OCTAVE_CONF_INCLUDEDIR%)); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
226 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
227 vars["LIBDIR"] |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
228 = get_variable ("LIBDIR", prepend_octave_exec_home (%OCTAVE_CONF_LIBDIR%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
229 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
230 vars["OCTLIBDIR"] |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
231 = get_variable ("OCTLIBDIR", |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
232 prepend_octave_exec_home (%OCTAVE_CONF_OCTLIBDIR%)); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
233 |
28831
bf427855cc9a
Change mkoctfile to print a usable default LDFLAGS on Windows platforms (bug #59173).
Rik <rik@octave.org>
parents:
28830
diff
changeset
|
234 std::string DEFAULT_INCFLAGS; |
bf427855cc9a
Change mkoctfile to print a usable default LDFLAGS on Windows platforms (bug #59173).
Rik <rik@octave.org>
parents:
28830
diff
changeset
|
235 |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21961
diff
changeset
|
236 #if defined (OCTAVE_USE_WINDOWS_API) |
28831
bf427855cc9a
Change mkoctfile to print a usable default LDFLAGS on Windows platforms (bug #59173).
Rik <rik@octave.org>
parents:
28830
diff
changeset
|
237 DEFAULT_INCFLAGS = "-I" + quote_path (vars["OCTINCLUDEDIR"] + R"(\..)") |
bf427855cc9a
Change mkoctfile to print a usable default LDFLAGS on Windows platforms (bug #59173).
Rik <rik@octave.org>
parents:
28830
diff
changeset
|
238 + " -I" + quote_path (vars["OCTINCLUDEDIR"]); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
239 #else |
28831
bf427855cc9a
Change mkoctfile to print a usable default LDFLAGS on Windows platforms (bug #59173).
Rik <rik@octave.org>
parents:
28830
diff
changeset
|
240 DEFAULT_INCFLAGS = "-I" + quote_path (vars["OCTINCLUDEDIR"] + "/..") |
bf427855cc9a
Change mkoctfile to print a usable default LDFLAGS on Windows platforms (bug #59173).
Rik <rik@octave.org>
parents:
28830
diff
changeset
|
241 + " -I" + quote_path (vars["OCTINCLUDEDIR"]); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
242 #endif |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
243 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
244 if (vars["INCLUDEDIR"] != "/usr/include") |
8332 | 245 DEFAULT_INCFLAGS += " -I" + quote_path (vars["INCLUDEDIR"]); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
246 |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
247 std::string DEFAULT_LDFLAGS; |
25475
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
248 |
29588
b4cb9d04f3cf
build: Use dynamic symbol lookup for functions in libraries on macOS (bug #53627).
Andrew Janke <andrew@apjanke.net>
parents:
29572
diff
changeset
|
249 #if (defined (OCTAVE_USE_WINDOWS_API) || defined (CROSS) || defined (OCTAVE_LINK_ALL_DEPS)) |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
250 // We'll be linking the files we compile with -loctinterp and -loctave, |
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
251 // so we need to know where to find them. |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
252 DEFAULT_LDFLAGS += "-L" + quote_path (vars["OCTLIBDIR"]); |
25475
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
253 #endif |
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
254 |
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
255 if (vars["LIBDIR"] != "/usr/lib") |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
256 DEFAULT_LDFLAGS += " -L" + quote_path (vars["LIBDIR"]); |
25475
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
257 |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
258 vars["CPPFLAGS"] = get_variable ("CPPFLAGS", |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
259 replace_prefix (%OCTAVE_CONF_CPPFLAGS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
260 |
8332 | 261 vars["INCFLAGS"] = get_variable ("INCFLAGS", DEFAULT_INCFLAGS); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
262 |
15929
16418ff39a72
strip cross tool prefix from CC, CXX, etc. definitions used in mkoctfile
John W. Eaton <jwe@octave.org>
parents:
15458
diff
changeset
|
263 vars["F77"] = get_variable ("F77", %OCTAVE_CONF_MKOCTFILE_F77%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
264 |
8332 | 265 vars["FFLAGS"] = get_variable ("FFLAGS", %OCTAVE_CONF_FFLAGS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
266 |
8332 | 267 vars["FPICFLAG"] = get_variable ("FPICFLAG", %OCTAVE_CONF_FPICFLAG%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
268 |
15929
16418ff39a72
strip cross tool prefix from CC, CXX, etc. definitions used in mkoctfile
John W. Eaton <jwe@octave.org>
parents:
15458
diff
changeset
|
269 vars["CC"] = get_variable ("CC", %OCTAVE_CONF_MKOCTFILE_CC%); |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
270 if (verbose && vars["CC"] == "cc-msvc") |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
271 vars["CC"] += " -d"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
272 |
8332 | 273 vars["CFLAGS"] = get_variable ("CFLAGS", %OCTAVE_CONF_CFLAGS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
274 |
8332 | 275 vars["CPICFLAG"] = get_variable ("CPICFLAG", %OCTAVE_CONF_CPICFLAG%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
276 |
15929
16418ff39a72
strip cross tool prefix from CC, CXX, etc. definitions used in mkoctfile
John W. Eaton <jwe@octave.org>
parents:
15458
diff
changeset
|
277 vars["CXX"] = get_variable ("CXX", %OCTAVE_CONF_MKOCTFILE_CXX%); |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
278 if (verbose && vars["CXX"] == "cc-msvc") |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
279 vars["CXX"] += " -d"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
280 |
8332 | 281 vars["CXXFLAGS"] = get_variable ("CXXFLAGS", %OCTAVE_CONF_CXXFLAGS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
282 |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
283 vars["CXXLD"] = get_variable ("CXXLD", vars["CXX"]); |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
284 if (verbose && vars["CXXLD"] == "cc-msvc") |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
285 vars["CXXLD"] += " -d"; |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
286 |
8332 | 287 vars["CXXPICFLAG"] = get_variable ("CXXPICFLAG", %OCTAVE_CONF_CXXPICFLAG%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
288 |
8332 | 289 vars["XTRA_CFLAGS"] = get_variable ("XTRA_CFLAGS", %OCTAVE_CONF_XTRA_CFLAGS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
290 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
291 vars["XTRA_CXXFLAGS"] = get_variable ("XTRA_CXXFLAGS", |
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
292 %OCTAVE_CONF_XTRA_CXXFLAGS%); |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
293 |
15944
4803b8c138e3
use mkoctfile, not octave_config_info to get default pkg compiler tools
John W. Eaton <jwe@octave.org>
parents:
15933
diff
changeset
|
294 vars["AR"] = get_variable ("AR", %OCTAVE_CONF_MKOCTFILE_AR%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
295 |
15944
4803b8c138e3
use mkoctfile, not octave_config_info to get default pkg compiler tools
John W. Eaton <jwe@octave.org>
parents:
15933
diff
changeset
|
296 vars["RANLIB"] = get_variable ("RANLIB", %OCTAVE_CONF_MKOCTFILE_RANLIB%); |
4803b8c138e3
use mkoctfile, not octave_config_info to get default pkg compiler tools
John W. Eaton <jwe@octave.org>
parents:
15933
diff
changeset
|
297 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
298 vars["DEPEND_FLAGS"] = get_variable ("DEPEND_FLAGS", |
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
299 %OCTAVE_CONF_DEPEND_FLAGS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
300 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
301 vars["DEPEND_EXTRA_SED_PATTERN"] |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
302 = get_variable ("DEPEND_EXTRA_SED_PATTERN", |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
303 %OCTAVE_CONF_DEPEND_EXTRA_SED_PATTERN%); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
304 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
305 vars["DL_LDFLAGS"] = get_variable ("DL_LDFLAGS", |
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
306 %OCTAVE_CONF_MKOCTFILE_DL_LDFLAGS%); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
307 |
28965
d24e34e179ab
mkoctfile: don't add DL_LDFLAGS to LDFLAGS if linking stand alone program
John W. Eaton <jwe@octave.org>
parents:
28964
diff
changeset
|
308 if (! link_stand_alone) |
d24e34e179ab
mkoctfile: don't add DL_LDFLAGS to LDFLAGS if linking stand alone program
John W. Eaton <jwe@octave.org>
parents:
28964
diff
changeset
|
309 DEFAULT_LDFLAGS += ' ' + vars["DL_LDFLAGS"]; |
28832
6d50f931e810
mkoctfile.in.cc: Add DL_LDFLAGS to DEFAULT_LDFLAGS (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28831
diff
changeset
|
310 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
311 vars["RDYNAMIC_FLAG"] = get_variable ("RDYNAMIC_FLAG", |
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
312 %OCTAVE_CONF_RDYNAMIC_FLAG%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
313 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
314 vars["LIBOCTAVE"] = "-loctave"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
315 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
316 vars["LIBOCTINTERP"] = "-loctinterp"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
317 |
9515 | 318 vars["READLINE_LIBS"] = "-lreadline"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
319 |
11450
5eb10763069f
substitute and use LAPACK_LIBS in mkoctfile script
John W. Eaton <jwe@octave.org>
parents:
11251
diff
changeset
|
320 vars["LAPACK_LIBS"] = get_variable ("LAPACK_LIBS", %OCTAVE_CONF_LAPACK_LIBS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
321 |
8332 | 322 vars["BLAS_LIBS"] = get_variable ("BLAS_LIBS", %OCTAVE_CONF_BLAS_LIBS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
323 |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
324 vars["FFTW3_LDFLAGS"] |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
325 = get_variable ("FFTW3_LDFLAGS", |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
326 replace_prefix (%OCTAVE_CONF_FFTW3_LDFLAGS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
327 |
9538
d0239bddf621
use OCTAVE_CHECK_LIB to check for zlib
John W. Eaton <jwe@octave.org>
parents:
9515
diff
changeset
|
328 vars["FFTW3_LIBS"] = get_variable ("FFTW3_LIBS", %OCTAVE_CONF_FFTW3_LIBS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
329 |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
330 vars["FFTW3F_LDFLAGS"] |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
331 = get_variable ("FFTW3F_LDFLAGS", |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
332 replace_prefix (%OCTAVE_CONF_FFTW3F_LDFLAGS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
333 |
9538
d0239bddf621
use OCTAVE_CHECK_LIB to check for zlib
John W. Eaton <jwe@octave.org>
parents:
9515
diff
changeset
|
334 vars["FFTW3F_LIBS"] = get_variable ("FFTW3F_LIBS", %OCTAVE_CONF_FFTW3F_LIBS%); |
22909
7b368d85e86c
don't include sundials libraries or options in mkoctfile flags
John W. Eaton <jwe@octave.org>
parents:
22899
diff
changeset
|
335 |
8332 | 336 vars["LIBS"] = get_variable ("LIBS", %OCTAVE_CONF_LIBS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
337 |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
338 vars["FLIBS"] = get_variable ("FLIBS", |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
339 replace_prefix (%OCTAVE_CONF_FLIBS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
340 |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
341 vars["OCTAVE_LINK_DEPS"] = get_variable ("OCTAVE_LINK_DEPS", |
23757
bba752b37f8e
use different definition for mkoctfile link deps
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
342 %OCTAVE_CONF_MKOCTFILE_OCTAVE_LINK_DEPS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
343 |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
344 vars["OCTAVE_LINK_OPTS"] = get_variable ("OCTAVE_LINK_OPTS", |
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
345 %OCTAVE_CONF_OCTAVE_LINK_OPTS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
346 |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
347 vars["OCT_LINK_DEPS"] = get_variable ("OCT_LINK_DEPS", |
23757
bba752b37f8e
use different definition for mkoctfile link deps
John W. Eaton <jwe@octave.org>
parents:
23712
diff
changeset
|
348 %OCTAVE_CONF_MKOCTFILE_OCT_LINK_DEPS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
349 |
28882
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
350 vars["OCT_LINK_OPTS"] |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
351 = get_variable ("OCT_LINK_OPTS", |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
352 replace_prefix (%OCTAVE_CONF_OCT_LINK_OPTS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
353 |
28831
bf427855cc9a
Change mkoctfile to print a usable default LDFLAGS on Windows platforms (bug #59173).
Rik <rik@octave.org>
parents:
28830
diff
changeset
|
354 vars["LDFLAGS"] = get_variable ("LDFLAGS", DEFAULT_LDFLAGS); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
355 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
356 vars["LD_STATIC_FLAG"] = get_variable ("LD_STATIC_FLAG", |
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
357 %OCTAVE_CONF_LD_STATIC_FLAG%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
358 |
30386
fc9b98382ea7
mkoctfile: Add command line `-l` flags before LDFLAGS in linker command (bug #61571).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30368
diff
changeset
|
359 // FIXME: Remove LFLAGS in Octave 9 |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
360 vars["LFLAGS"] = get_variable ("LFLAGS", DEFAULT_LDFLAGS); |
26612
ab5cc8da283c
mkoctfile: restore LDFLAGS, warn only when LFLAGS used directly (bug #55447)
Mike Miller <mtmiller@octave.org>
parents:
26487
diff
changeset
|
361 if (vars["LFLAGS"] != DEFAULT_LDFLAGS) |
28966
b02d9109fb6e
mkoctfile: prefix warning messages with program name
John W. Eaton <jwe@octave.org>
parents:
28965
diff
changeset
|
362 std::cerr << "mkoctfile: warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead" << std::endl; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
363 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
364 vars["F77_INTEGER8_FLAG"] = get_variable ("F77_INTEGER8_FLAG", |
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
365 %OCTAVE_CONF_F77_INTEGER_8_FLAG%); |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
366 vars["ALL_FFLAGS"] = vars["FFLAGS"] + ' ' + vars["F77_INTEGER8_FLAG"]; |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
367 if (debug) |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
368 vars["ALL_FFLAGS"] += " -g"; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
369 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
370 vars["ALL_CFLAGS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
371 = vars["INCFLAGS"] + ' ' + vars["XTRA_CFLAGS"] + ' ' + vars["CFLAGS"]; |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
372 if (debug) |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
373 vars["ALL_CFLAGS"] += " -g"; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
374 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
375 vars["ALL_CXXFLAGS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
376 = vars["INCFLAGS"] + ' ' + vars["XTRA_CXXFLAGS"] + ' ' + vars["CXXFLAGS"]; |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
377 if (debug) |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
378 vars["ALL_CXXFLAGS"] += " -g"; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
379 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
380 vars["ALL_LDFLAGS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
381 = vars["LD_STATIC_FLAG"] + ' ' + vars["CPICFLAG"] + ' ' + vars["LDFLAGS"]; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
382 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
383 vars["OCTAVE_LIBS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
384 = (vars["LIBOCTINTERP"] + ' ' + vars["LIBOCTAVE"] + ' ' |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
385 + vars["SPECIAL_MATH_LIB"]); |
9538
d0239bddf621
use OCTAVE_CHECK_LIB to check for zlib
John W. Eaton <jwe@octave.org>
parents:
9515
diff
changeset
|
386 |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
387 vars["FFTW_LIBS"] = vars["FFTW3_LDFLAGS"] + ' ' + vars["FFTW3_LIBS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
388 + vars["FFTW3F_LDFLAGS"] + ' ' + vars["FFTW3F_LIBS"]; |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
389 |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
390 return vars; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
391 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
392 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
393 static std::string usage_msg = "usage: mkoctfile [options] file ..."; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
394 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
395 static std::string version_msg = "mkoctfile, version " OCTAVE_VERSION; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
396 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
397 static std::string help_msg = |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
398 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
399 "Options:\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
400 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
401 " -h, -?, --help Print this message.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
402 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
403 " -IDIR Add -IDIR to compile commands.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
404 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
405 " -idirafter DIR Add -idirafter DIR to compile commands.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
406 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
407 " -DDEF Add -DDEF to compile commands.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
408 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
409 " -lLIB Add library LIB to link command.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
410 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
411 " -LDIR Add -LDIR to link command.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
412 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
413 " -M, --depend Generate dependency files (.d) for C and C++\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
414 " source files.\n" |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21961
diff
changeset
|
415 #if ! defined (OCTAVE_USE_WINDOWS_API) |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
416 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
417 " -pthread Add -pthread to link command.\n" |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
418 #endif |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
419 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
420 " -RDIR Add -RDIR to link command.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
421 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
422 " -Wl,... Pass flags though the linker like -Wl,-rpath=...\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
423 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
424 " -W... Pass flags though the compiler like -Wa,OPTION.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
425 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
426 " -c, --compile Compile, but do not link.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
427 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
428 " -o FILE, --output FILE Output filename. Default extension is .oct\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
429 " (or .mex if --mex is specified) unless linking\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
430 " a stand-alone executable.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
431 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
432 " -g Enable debugging options for compilers.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
433 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
434 " -p VAR, --print VAR Print configuration variable VAR. There are\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
435 " three categories of variables:\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
436 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
437 " Octave configuration variables that users may\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
438 " override with environment variables. These are\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
439 " used in commands that mkoctfile executes.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
440 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
441 " ALL_CFLAGS INCLUDEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
442 " ALL_CXXFLAGS LAPACK_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
443 " ALL_FFLAGS LDFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
444 " ALL_LDFLAGS LD_STATIC_FLAG\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
445 " BLAS_LIBS LIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
446 " CC LIBOCTAVE\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
447 " CFLAGS LIBOCTINTERP\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
448 " CPICFLAG OCTAVE_LINK_OPTS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
449 " CPPFLAGS OCTINCLUDEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
450 " CXX OCTAVE_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
451 " CXXFLAGS OCTAVE_LINK_DEPS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
452 " CXXLD OCTLIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
453 " CXXPICFLAG OCT_LINK_DEPS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
454 " DL_LDFLAGS OCT_LINK_OPTS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
455 " F77 RDYNAMIC_FLAG\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
456 " F77_INTEGER8_FLAG SPECIAL_MATH_LIB\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
457 " FFLAGS XTRA_CFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
458 " FPICFLAG XTRA_CXXFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
459 " INCFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
460 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
461 " Octave configuration variables as above, but\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
462 " currently unused by mkoctfile.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
463 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
464 " AR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
465 " DEPEND_EXTRA_SED_PATTERN\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
466 " DEPEND_FLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
467 " FFTW3F_LDFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
468 " FFTW3F_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
469 " FFTW3_LDFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
470 " FFTW3_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
471 " FFTW_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
472 " FLIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
473 " LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
474 " RANLIB\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
475 " READLINE_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
476 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
477 " Octave configuration variables that are provided\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
478 " for informational purposes only. Except for\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
479 " OCTAVE_HOME and OCTAVE_EXEC_HOME, users may not\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
480 " override these variables.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
481 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
482 " If OCTAVE_HOME or OCTAVE_EXEC_HOME are set in\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
483 " the environment, then other variables are adjusted\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
484 " accordingly with OCTAVE_HOME or OCTAVE_EXEC_HOME\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
485 " substituted for the original value of the directory\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
486 " specified by the --prefix or --exec-prefix options\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
487 " that were used when Octave was configured.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
488 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
489 " API_VERSION LOCALFCNFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
490 " ARCHLIBDIR LOCALOCTFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
491 " BINDIR LOCALSTARTUPFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
492 " CANONICAL_HOST_TYPE LOCALVERARCHLIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
493 " DATADIR LOCALVERFCNFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
494 " DATAROOTDIR LOCALVEROCTFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
495 " DEFAULT_PAGER MAN1DIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
496 " EXEC_PREFIX MAN1EXT\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
497 " EXEEXT MANDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
498 " FCNFILEDIR OCTAVE_EXEC_HOME\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
499 " IMAGEDIR OCTAVE_HOME\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
500 " INFODIR OCTAVE_VERSION\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
501 " INFOFILE OCTDATADIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
502 " LIBEXECDIR OCTDOCDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
503 " LOCALAPIARCHLIBDIR OCTFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
504 " LOCALAPIFCNFILEDIR OCTFONTSDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
505 " LOCALAPIOCTFILEDIR STARTUPFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
506 " LOCALARCHLIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
507 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
508 " --link-stand-alone Link a stand-alone executable file.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
509 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
510 " --mex Assume we are creating a MEX file. Set the\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
511 " default output extension to \".mex\".\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
512 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
513 " -s, --strip Strip output file.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
514 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
515 " -n, --just-print, --dry-run\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
516 " Print commands, but do not execute them.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
517 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
518 " -v, --verbose Echo commands as they are executed.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
519 "\n" |
28058
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
520 " --silent Ignored. Intended to suppress output from\n" |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
521 " compiler steps.\n" |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
522 "\n" |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
523 " FILE Compile or link FILE. Recognized file types are:\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
524 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
525 " .c C source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
526 " .cc C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
527 " .cp C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
528 " .cpp C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
529 " .CPP C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
530 " .cxx C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
531 " .c++ C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
532 " .C C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
533 " .f Fortran source (fixed form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
534 " .F Fortran source (fixed form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
535 " .f90 Fortran source (free form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
536 " .F90 Fortran source (free form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
537 " .o object file\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
538 " .a library file\n" |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
539 #if defined (_MSC_VER) |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
540 " .lib library file\n" |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
541 #endif |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
542 "\n"; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
543 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
544 static std::string |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
545 basename (const std::string& s, bool strip_path = false) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
546 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
547 std::string retval; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
548 |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
549 std::size_t pos = s.rfind ('.'); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
550 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
551 if (pos == std::string::npos) |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
552 retval = s; |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
553 else |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
554 retval = s.substr (0, pos); |
15299
8bd5c490b787
Fix mex compilation with subdirs on Windows platforms (bug #37122)
Rik <rik@octave.org>
parents:
15271
diff
changeset
|
555 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
556 if (strip_path) |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
557 { |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
558 std::size_t p1 = retval.rfind ('/'), p2 = retval.rfind ('\\'); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
559 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
560 pos = (p1 != std::string::npos && p2 != std::string::npos |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
561 ? std::max (p1, p2) : (p2 != std::string::npos ? p2 : p1)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
562 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
563 if (pos != std::string::npos) |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
564 retval = retval.substr (++pos, std::string::npos); |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
565 } |
15299
8bd5c490b787
Fix mex compilation with subdirs on Windows platforms (bug #37122)
Rik <rik@octave.org>
parents:
15271
diff
changeset
|
566 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
567 return retval; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
568 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
569 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
570 inline bool |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
571 starts_with (const std::string& s, const std::string& prefix) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
572 { |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
573 return (s.length () >= prefix.length () && s.find (prefix) == 0); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
574 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
575 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
576 inline bool |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
577 ends_with (const std::string& s, const std::string& suffix) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
578 { |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
579 return (s.length () >= suffix.length () |
12174 | 580 && s.rfind (suffix) == s.length () - suffix.length ()); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
581 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
582 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
583 static int |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
584 run_command (const std::string& cmd, bool verbose, bool printonly = false) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
585 { |
22472
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
586 if (printonly) |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
587 { |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
588 std::cout << cmd << std::endl; |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
589 return 0; |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
590 } |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
591 |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
592 if (verbose) |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
593 std::cout << cmd << std::endl; |
18916
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
594 |
29141
f873857f5f86
system: Support executing commands with non-ASCII characters on Windows (bug #59572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29007
diff
changeset
|
595 // FIXME: Call _wsystem on Windows or octave::sys::system. |
18916
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
596 int result = system (cmd.c_str ()); |
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
597 |
21927
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
598 if (octave_wifexited_wrapper (result)) |
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
599 result = octave_wexitstatus_wrapper (result); |
18916
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
600 |
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
601 return result; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
602 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
603 |
16624
96d02808a881
Support "true" or "yes" for %NO_OCT_FILE_STRIP% in mkoctfile.in.cc.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15946
diff
changeset
|
604 bool |
96d02808a881
Support "true" or "yes" for %NO_OCT_FILE_STRIP% in mkoctfile.in.cc.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15946
diff
changeset
|
605 is_true (const std::string& s) |
96d02808a881
Support "true" or "yes" for %NO_OCT_FILE_STRIP% in mkoctfile.in.cc.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15946
diff
changeset
|
606 { |
18360
f1ee47866e6b
use common code to get OCTAVE_HOME in main, octave-config and mkoctfile
John W. Eaton <jwe@octave.org>
parents:
18349
diff
changeset
|
607 return (s == "yes" || s == "true"); |
16624
96d02808a881
Support "true" or "yes" for %NO_OCT_FILE_STRIP% in mkoctfile.in.cc.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15946
diff
changeset
|
608 } |
96d02808a881
Support "true" or "yes" for %NO_OCT_FILE_STRIP% in mkoctfile.in.cc.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15946
diff
changeset
|
609 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
610 static std::string |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
611 get_temp_directory (void) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
612 { |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
613 std::string tempd; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
614 |
26853
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
615 tempd = octave_getenv ("TMPDIR"); |
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
616 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
617 #if defined (__MINGW32__) || defined (_MSC_VER) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
618 |
26853
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
619 if (tempd.empty ()) |
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
620 tempd = octave_getenv ("TEMP"); |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
621 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
622 if (tempd.empty ()) |
26370
190702f4a075
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26363
diff
changeset
|
623 tempd = octave_getenv ("TMP"); |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
624 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
625 #if defined (P_tmpdir) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
626 if (tempd.empty ()) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
627 tempd = P_tmpdir; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
628 #endif |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
629 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
630 // Some versions of MinGW and MSVC either don't define P_tmpdir, or |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
631 // define it to a single backslash. In such cases just use C:\temp. |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
632 if (tempd.empty () || tempd == R"(\)") |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
633 tempd = R"(c:\temp)"; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
634 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
635 #else |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
636 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
637 #if defined (P_tmpdir) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
638 if (tempd.empty ()) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
639 tempd = P_tmpdir; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
640 #else |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
641 if (tempd.empty ()) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
642 tempd = "/tmp"; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
643 #endif |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
644 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
645 #endif |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
646 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
647 return tempd; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
648 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
649 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
650 static std::string |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
651 create_interleaved_complex_file (void) |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
652 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
653 std::string tmpl = get_temp_directory () + "/oct-XXXXXX.c"; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
654 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
655 char *ctmpl = new char [tmpl.length () + 1]; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
656 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
657 ctmpl = strcpy (ctmpl, tmpl.c_str ()); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
658 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
659 // mkostemps will open the file and return a file descriptor. We |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
660 // won't worry about closing it because we will need the file until we |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
661 // are done and then the file will be closed when mkoctfile exits. |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
662 int fd = octave_mkostemps_wrapper (ctmpl, 2); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
663 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
664 // Make C++ string from filled-in template. |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
665 std::string retval (ctmpl); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
666 delete [] ctmpl; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
667 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
668 // Write symbol definition to file. |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
669 FILE *fid = fdopen (fd, "w"); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
670 fputs ("const int __mx_has_interleaved_complex__ = 1;\n", fid); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
671 fclose (fid); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
672 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
673 return retval; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
674 } |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
675 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
676 static std::string |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
677 tmp_objfile_name (void) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
678 { |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
679 std::string tmpl = get_temp_directory () + "/oct-XXXXXX.o"; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
680 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
681 char *ctmpl = new char [tmpl.length () + 1]; |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
682 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
683 ctmpl = strcpy (ctmpl, tmpl.c_str ()); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
684 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
685 // mkostemps will open the file and return a file descriptor. We |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
686 // won't worry about closing it because we will need the file until we |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
687 // are done and then the file will be closed when mkoctfile exits. |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
688 octave_mkostemps_wrapper (ctmpl, 2); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
689 |
26487 | 690 std::string retval (ctmpl); // make C++ string from filled-in template |
691 delete [] ctmpl; | |
692 | |
693 return retval; | |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
694 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
695 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
696 static void |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
697 clean_up_tmp_files (const std::list<std::string>& tmp_files) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
698 { |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
699 for (const auto& file : tmp_files) |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
700 octave_unlink_wrapper (file.c_str ()); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
701 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
702 |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
703 #if defined (OCTAVE_USE_WINDOWS_API) && defined (_UNICODE) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
704 extern "C" |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
705 int |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
706 wmain (int argc, wchar_t **sys_argv) |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
707 { |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
708 std::vector<std::string> argv; |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
709 |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
710 // Convert wide character strings to multibyte UTF-8 strings and save |
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
711 // them in a vector of std::string objects for later processing. |
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
712 |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
713 std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> wchar_conv; |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
714 for (int i_arg = 0; i_arg < argc; i_arg++) |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
715 argv.push_back (wchar_conv.to_bytes (sys_argv[i_arg])); |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
716 #else |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
717 int |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
718 main (int argc, char **sys_argv) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
719 { |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
720 std::vector<std::string> argv; |
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
721 |
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
722 // Save args as vector of std::string objects for later processing. |
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
723 for (int i_arg = 0; i_arg < argc; i_arg++) |
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
724 argv.push_back (sys_argv[i_arg]); |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
725 #endif |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
726 |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30386
diff
changeset
|
727 if (argc == 1) |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
728 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
729 std::cout << usage_msg << std::endl; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
730 return 1; |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
731 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
732 |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
733 if (argc == 2 && (argv[1] == "-v" || argv[1] == "-version" |
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
734 || argv[1] == "--version")) |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
735 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
736 std::cout << version_msg << std::endl; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
737 return 0; |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
738 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
739 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
740 std::list<std::string> cfiles, ccfiles, f77files, tmp_objfiles; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
741 std::string output_ext = ".oct"; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
742 std::string objfiles, libfiles, octfile, outputfile; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
743 std::string incflags, defs, ldflags, pass_on_options; |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
744 std::string var_to_print; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
745 bool debug = false; |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
746 bool verbose = false; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
747 bool strip = false; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
748 bool no_oct_file_strip_on_this_platform = is_true ("%NO_OCT_FILE_STRIP%"); |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
749 bool compile_only = false; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
750 bool link_stand_alone = false; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
751 bool depend = false; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
752 bool printonly = false; |
25507
b61f3500651f
mkoctfile: fix check for using -o and -c with multiple source files (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25504
diff
changeset
|
753 bool output_file_option = false; |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
754 bool creating_mex_file = false; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
755 bool r2017b_option = false; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
756 bool r2018a_option = false; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
757 // The default for this may change in the future. |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
758 bool mx_has_interleaved_complex = false; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
759 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
760 for (int i = 1; i < argc; i++) |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
761 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
762 std::string arg = argv[i]; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
763 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
764 std::string file; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
765 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
766 if (ends_with (arg, ".c")) |
12174 | 767 { |
768 file = arg; | |
769 cfiles.push_back (file); | |
770 } | |
22031
2cfbb6b25428
mkoctfile: support more file extensions for C++ sources (bug #48381)
Mike Miller <mtmiller@octave.org>
parents:
22022
diff
changeset
|
771 else if (ends_with (arg, ".cc") || ends_with (arg, ".cp") |
2cfbb6b25428
mkoctfile: support more file extensions for C++ sources (bug #48381)
Mike Miller <mtmiller@octave.org>
parents:
22022
diff
changeset
|
772 || ends_with (arg, ".cpp") || ends_with (arg, ".CPP") |
2cfbb6b25428
mkoctfile: support more file extensions for C++ sources (bug #48381)
Mike Miller <mtmiller@octave.org>
parents:
22022
diff
changeset
|
773 || ends_with (arg, ".cxx") || ends_with (arg, ".c++") |
2cfbb6b25428
mkoctfile: support more file extensions for C++ sources (bug #48381)
Mike Miller <mtmiller@octave.org>
parents:
22022
diff
changeset
|
774 || ends_with (arg, ".C")) |
12174 | 775 { |
776 file = arg; | |
777 ccfiles.push_back (file); | |
778 } | |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
779 else if (ends_with (arg, ".f") || ends_with (arg, ".F") |
12174 | 780 || ends_with (arg, "f90") || ends_with (arg, ".F90")) |
781 { | |
782 file = arg; | |
783 f77files.push_back (file); | |
784 } | |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
785 else if (ends_with (arg, ".o") || ends_with (arg, ".obj")) |
12174 | 786 { |
787 file = arg; | |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
788 objfiles += (' ' + quote_path (arg)); |
12174 | 789 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
790 else if (ends_with (arg, ".lib") || ends_with (arg, ".a")) |
12174 | 791 { |
792 file = arg; | |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
793 libfiles += (' ' + quote_path (arg)); |
12174 | 794 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
795 else if (arg == "-d" || arg == "-debug" || arg == "--debug" |
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
796 || arg == "-v" || arg == "-verbose" || arg == "--verbose") |
12174 | 797 { |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
798 verbose = true; |
12174 | 799 } |
28058
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
800 else if (arg == "-silent" || arg == "--silent") |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
801 { |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
802 // Ignored for now. |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
803 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
804 else if (arg == "-h" || arg == "-?" || arg == "-help" || arg == "--help") |
12174 | 805 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
806 std::cout << usage_msg << std::endl; |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
807 std::cout << help_msg << std::endl; |
12174 | 808 return 0; |
809 } | |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
810 else if (starts_with (arg, "-I")) |
12174 | 811 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
812 incflags += (' ' + quote_path (arg)); |
12174 | 813 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
814 else if (arg == "-idirafter") |
12174 | 815 { |
816 if (i < argc-1) | |
817 { | |
818 arg = argv[++i]; | |
819 incflags += (" -idirafter " + arg); | |
820 } | |
821 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
822 std::cerr << "mkoctfile: include directory name missing" |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
823 << std::endl; |
12174 | 824 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
825 else if (starts_with (arg, "-D")) |
12174 | 826 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
827 defs += (' ' + arg); |
12174 | 828 } |
22461
cc4f31e8477f
Accept, but ignore, mex argument -largeArrayDims, -compatibleArrayDims (bug #39984).
Rik <rik@octave.org>
parents:
22459
diff
changeset
|
829 else if (arg == "-largeArrayDims" || arg == "-compatibleArrayDims") |
cc4f31e8477f
Accept, but ignore, mex argument -largeArrayDims, -compatibleArrayDims (bug #39984).
Rik <rik@octave.org>
parents:
22459
diff
changeset
|
830 { |
28966
b02d9109fb6e
mkoctfile: prefix warning messages with program name
John W. Eaton <jwe@octave.org>
parents:
28965
diff
changeset
|
831 std::cerr << "mkoctfile: warning: -largeArrayDims and -compatibleArrayDims are accepted for compatibility, but ignored" << std::endl; |
22461
cc4f31e8477f
Accept, but ignore, mex argument -largeArrayDims, -compatibleArrayDims (bug #39984).
Rik <rik@octave.org>
parents:
22459
diff
changeset
|
832 } |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
833 else if (arg == "-R2017b") |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
834 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
835 if (r2018a_option) |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
836 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
837 std::cerr << "mkoctfile: only one of -R2017b and -R2018a may be used" << std::endl; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
838 return 1; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
839 } |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
840 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
841 r2017b_option = true; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
842 } |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
843 else if (arg == "-R2018a") |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
844 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
845 if (r2017b_option) |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
846 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
847 std::cerr << "mkoctfile: only one of -R2017b and -R2018a may be used" << std::endl; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
848 return 1; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
849 } |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
850 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
851 r2018a_option = true; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
852 mx_has_interleaved_complex = true; |
22461
cc4f31e8477f
Accept, but ignore, mex argument -largeArrayDims, -compatibleArrayDims (bug #39984).
Rik <rik@octave.org>
parents:
22459
diff
changeset
|
853 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
854 else if (starts_with (arg, "-Wl,") || starts_with (arg, "-l") |
12174 | 855 || starts_with (arg, "-L") || starts_with (arg, "-R")) |
856 { | |
28129
16ccaebe250a
mkoctfile: quote linker arguments that may contain spaces (bug #57878)
Mike Miller <mtmiller@octave.org>
parents:
28058
diff
changeset
|
857 ldflags += (' ' + quote_path (arg)); |
12174 | 858 } |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21961
diff
changeset
|
859 #if ! defined (OCTAVE_USE_WINDOWS_API) |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
860 else if (arg == "-pthread") |
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
861 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
862 ldflags += (' ' + arg); |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
863 } |
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
864 #endif |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
865 else if (arg == "-M" || arg == "-depend" || arg == "--depend") |
12174 | 866 { |
867 depend = true; | |
868 } | |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
869 else if (arg == "-o" || arg == "-output" || arg == "--output") |
12174 | 870 { |
25507
b61f3500651f
mkoctfile: fix check for using -o and -c with multiple source files (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25504
diff
changeset
|
871 output_file_option = true; |
b61f3500651f
mkoctfile: fix check for using -o and -c with multiple source files (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25504
diff
changeset
|
872 |
12174 | 873 if (i < argc-1) |
874 { | |
875 arg = argv[++i]; | |
876 outputfile = arg; | |
877 } | |
878 else | |
20713
2469d78a1d8b
Consistently use 'filename' rather than 'file name' throughout code base.
Rik <rik@octave.org>
parents:
20507
diff
changeset
|
879 std::cerr << "mkoctfile: output filename missing" << std::endl; |
12174 | 880 } |
22481
541a20a4961c
mkoctfile: alias --dry-run option to --just-print because it's very common.
Carnë Draug <carandraug@octave.org>
parents:
22472
diff
changeset
|
881 else if (arg == "-n" || arg == "--dry-run" || arg == "--just-print") |
22472
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
882 { |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
883 printonly = true; |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
884 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
885 else if (arg == "-p" || arg == "-print" || arg == "--print") |
12174 | 886 { |
887 if (i < argc-1) | |
888 { | |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
889 ++i; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
890 |
30386
fc9b98382ea7
mkoctfile: Add command line `-l` flags before LDFLAGS in linker command (bug #61571).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30368
diff
changeset
|
891 // FIXME: Remove LFLAGS checking in Octave 9 |
29699
b98ae05c6b7e
avoid possible buffer corruption introduced in b6f80b1d448f
John W. Eaton <jwe@octave.org>
parents:
29657
diff
changeset
|
892 if (argv[i] == "LFLAGS") |
28966
b02d9109fb6e
mkoctfile: prefix warning messages with program name
John W. Eaton <jwe@octave.org>
parents:
28965
diff
changeset
|
893 std::cerr << "mkoctfile: warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead" << std::endl; |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
894 |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
895 if (! var_to_print.empty ()) |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
896 std::cerr << "mkoctfile: warning: only one '" << arg |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
897 << "' option will be processed" << std::endl; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
898 else |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
899 var_to_print = argv[i]; |
12174 | 900 } |
901 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
902 std::cerr << "mkoctfile: --print requires argument" << std::endl; |
12174 | 903 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
904 else if (arg == "-s" || arg == "-strip" || arg == "--strip") |
12174 | 905 { |
906 if (no_oct_file_strip_on_this_platform) | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
907 std::cerr << "mkoctfile: stripping disabled on this platform" |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
908 << std::endl; |
12174 | 909 else |
910 strip = true; | |
911 } | |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
912 else if (arg == "-c" || arg == "-compile" || arg == "--compile") |
12174 | 913 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
914 compile_only = true; |
12174 | 915 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
916 else if (arg == "-g") |
12174 | 917 { |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
918 debug = true; |
12174 | 919 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
920 else if (arg == "-link-stand-alone" || arg == "--link-stand-alone") |
12174 | 921 { |
922 link_stand_alone = true; | |
923 } | |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
924 else if (arg == "-mex" || arg == "--mex") |
12174 | 925 { |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
926 creating_mex_file = true; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
927 |
12174 | 928 incflags += " -I."; |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
929 #if defined (_MSC_VER) |
12174 | 930 ldflags += " -Wl,-export:mexFunction"; |
9303
adf676387922
properly #ifdef MSVC linker specific flags
Benjamin Lindner <lindnerb@users.sourceforge.net>
parents:
9245
diff
changeset
|
931 #endif |
12174 | 932 output_ext = ".mex"; |
933 } | |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
934 else if (starts_with (arg, "-W")) |
12174 | 935 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
936 pass_on_options += (' ' + arg); |
12174 | 937 } |
24742
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
938 else if (starts_with (arg, "-O")) |
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
939 { |
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
940 pass_on_options += (' ' + arg); |
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
941 } |
19711
b59aabc08e63
Pass unrecognized '-' arguments through mkoctfile to compiler (bug #34169).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
942 else if (starts_with (arg, "-")) |
b59aabc08e63
Pass unrecognized '-' arguments through mkoctfile to compiler (bug #34169).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
943 { |
24634
ab2321d4ba03
maint: strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
24622
diff
changeset
|
944 // Pass through any unrecognized options. |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
945 pass_on_options += (' ' + arg); |
24634
ab2321d4ba03
maint: strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
24622
diff
changeset
|
946 // Check for an additional argument following the option. |
24742
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
947 // However, don't check the final position which is typically a file |
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
948 if (i < argc-2) |
24622
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
949 { |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
950 arg = argv[i+1]; |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
951 if (arg[0] != '-') |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
952 { |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
953 pass_on_options += (' ' + arg); |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
954 i++; |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
955 } |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
956 } |
19711
b59aabc08e63
Pass unrecognized '-' arguments through mkoctfile to compiler (bug #34169).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
957 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
958 else |
12174 | 959 { |
18796
dd57ca9ef7e4
Add missing newline to error message from mkoctfile.
Rik <rik@octave.org>
parents:
18364
diff
changeset
|
960 std::cerr << "mkoctfile: unrecognized argument " << arg << std::endl; |
12174 | 961 return 1; |
962 } | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
963 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
964 if (! file.empty () && octfile.empty ()) |
12174 | 965 octfile = file; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
966 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
967 |
28965
d24e34e179ab
mkoctfile: don't add DL_LDFLAGS to LDFLAGS if linking stand alone program
John W. Eaton <jwe@octave.org>
parents:
28964
diff
changeset
|
968 std::map<std::string, std::string> vars |
d24e34e179ab
mkoctfile: don't add DL_LDFLAGS to LDFLAGS if linking stand alone program
John W. Eaton <jwe@octave.org>
parents:
28964
diff
changeset
|
969 = make_vars_map (link_stand_alone, verbose, debug); |
28964
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
970 |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
971 if (! var_to_print.empty ()) |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
972 { |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
973 if (vars.find (var_to_print) == vars.end ()) |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
974 { |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
975 std::cerr << "mkoctfile: unknown variable '" << var_to_print << "'" |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
976 << std::endl; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
977 return 1; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
978 } |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
979 |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
980 std::cout << vars[var_to_print] << std::endl; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
981 |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
982 return 0; |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
983 } |
091aeae73b60
mkoctfile: revamp argument parsing
John W. Eaton <jwe@octave.org>
parents:
28963
diff
changeset
|
984 |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
985 if (creating_mex_file) |
22459
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
986 { |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
987 if (vars["ALL_CFLAGS"].find ("-g") != std::string::npos) |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
988 defs += " -DMEX_DEBUG"; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
989 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
990 if (mx_has_interleaved_complex) |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
991 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
992 defs += " -DMX_HAS_INTERLEAVED_COMPLEX=1"; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
993 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
994 if (! compile_only) |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
995 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
996 // Create tmp C source file that defines an extern symbol |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
997 // that can be checked when loading the mex file to |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
998 // determine that the file was compiled expecting |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
999 // interleaved complex values. |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1000 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1001 std::string tmp_file = create_interleaved_complex_file (); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1002 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1003 cfiles.push_back (tmp_file); |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1004 } |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1005 } |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1006 } |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1007 else |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1008 { |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1009 if (r2017b_option) |
28966
b02d9109fb6e
mkoctfile: prefix warning messages with program name
John W. Eaton <jwe@octave.org>
parents:
28965
diff
changeset
|
1010 std::cerr << "mkoctfile: warning: -R2017b option ignored unless creating mex file" |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1011 << std::endl; |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1012 |
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1013 if (r2018a_option) |
28966
b02d9109fb6e
mkoctfile: prefix warning messages with program name
John W. Eaton <jwe@octave.org>
parents:
28965
diff
changeset
|
1014 std::cerr << "mkoctfile: warning: -R2018a option ignored unless creating mex file" |
28124
5b37e5e03bb5
mkoctfile.cc: accept -R2017b and -R2018a mex options
John W. Eaton <jwe@octave.org>
parents:
28058
diff
changeset
|
1015 << std::endl; |
22459
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
1016 } |
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
1017 |
25507
b61f3500651f
mkoctfile: fix check for using -o and -c with multiple source files (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25504
diff
changeset
|
1018 if (compile_only && output_file_option |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1019 && (cfiles.size () + ccfiles.size () + f77files.size ()) > 1) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1020 { |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1021 std::cerr << "mkoctfile: may not use -c and -o with multiple source files" |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1022 << std::endl; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1023 return 1; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1024 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1025 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1026 std::string output_option; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1027 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1028 if (link_stand_alone) |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1029 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1030 if (! outputfile.empty ()) |
12174 | 1031 output_option = "-o " + outputfile; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1032 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1033 else |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1034 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1035 if (! outputfile.empty ()) |
9957
59ed11557715
mkoctfile: if output file is specified and it does not end in output_ext, append output_ext
John W. Eaton <jwe@octave.org>
parents:
9956
diff
changeset
|
1036 { |
25495
92a64cb5e475
mkoctfile: Prevent invalid string indexing crash.
John W. Eaton <jwe@octave.org>
parents:
25494
diff
changeset
|
1037 // FIXME: should probably do a better job of finding the |
92a64cb5e475
mkoctfile: Prevent invalid string indexing crash.
John W. Eaton <jwe@octave.org>
parents:
25494
diff
changeset
|
1038 // filename extension instead of just looking at the filename |
92a64cb5e475
mkoctfile: Prevent invalid string indexing crash.
John W. Eaton <jwe@octave.org>
parents:
25494
diff
changeset
|
1039 // length. |
92a64cb5e475
mkoctfile: Prevent invalid string indexing crash.
John W. Eaton <jwe@octave.org>
parents:
25494
diff
changeset
|
1040 |
9957
59ed11557715
mkoctfile: if output file is specified and it does not end in output_ext, append output_ext
John W. Eaton <jwe@octave.org>
parents:
9956
diff
changeset
|
1041 octfile = outputfile; |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
1042 std::size_t len = octfile.length (); |
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
1043 std::size_t len_ext = output_ext.length (); |
25495
92a64cb5e475
mkoctfile: Prevent invalid string indexing crash.
John W. Eaton <jwe@octave.org>
parents:
25494
diff
changeset
|
1044 if (len <= len_ext || octfile.substr (len-len_ext) != output_ext) |
9957
59ed11557715
mkoctfile: if output file is specified and it does not end in output_ext, append output_ext
John W. Eaton <jwe@octave.org>
parents:
9956
diff
changeset
|
1045 octfile += output_ext; |
59ed11557715
mkoctfile: if output file is specified and it does not end in output_ext, append output_ext
John W. Eaton <jwe@octave.org>
parents:
9956
diff
changeset
|
1046 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1047 else |
12174 | 1048 octfile = basename (octfile, true) + output_ext; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1049 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1050 |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1051 if (depend) |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1052 { |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1053 #if defined (OCTAVE_USE_WINDOWS_API) && ! defined (_UNICODE) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1054 std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> wchar_conv; |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1055 #endif |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1056 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1057 for (const auto& f : cfiles) |
12174 | 1058 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1059 std::string dfile = basename (f, true) + ".d", line; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1060 |
21927
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
1061 octave_unlink_wrapper (dfile.c_str ()); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1062 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1063 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1064 = (vars["CC"] + ' ' + vars["DEPEND_FLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1065 + vars["CPPFLAGS"] + ' ' + vars["ALL_CFLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1066 + incflags + ' ' + defs + ' ' + quote_path (f)); |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1067 |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1068 #if defined (OCTAVE_USE_WINDOWS_API) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1069 FILE *fd; |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1070 try |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1071 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1072 std::wstring wcmd = wchar_conv.from_bytes (cmd); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1073 fd = ::_wpopen (wcmd.c_str (), L"r"); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1074 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1075 catch (const std::range_error& e) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1076 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1077 fd = ::popen (cmd.c_str (), "r"); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1078 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1079 |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1080 std::ofstream fo; |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1081 try |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1082 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1083 std::wstring wfile = wchar_conv.from_bytes (dfile); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1084 fo.open (wfile.c_str ()); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1085 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1086 catch (const std::range_error& e) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1087 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1088 fo.open (dfile.c_str ()); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1089 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1090 #else |
12174 | 1091 FILE *fd = popen (cmd.c_str (), "r"); |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1092 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1093 std::ofstream fo (dfile.c_str ()); |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1094 #endif |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1095 |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
1096 std::size_t pos; |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1097 while (! feof (fd)) |
12174 | 1098 { |
1099 line = get_line (fd); | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1100 if ((pos = line.rfind (".o:")) != std::string::npos) |
12174 | 1101 { |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
1102 std::size_t spos = line.rfind ('/', pos); |
27277
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1103 std::string ofile |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1104 = (spos == std::string::npos |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1105 ? line.substr (0, pos+2) |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1106 : line.substr (spos+1, pos-spos+1)); |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1107 fo << "pic/" << ofile << ' ' << ofile << ' ' |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1108 << dfile << line.substr (pos) << std::endl; |
12174 | 1109 } |
1110 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1111 fo << line << std::endl; |
12174 | 1112 } |
1113 pclose (fd); | |
1114 fo.close (); | |
1115 } | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1116 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1117 for (const auto& f : ccfiles) |
12174 | 1118 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1119 std::string dfile = basename (f, true) + ".d", line; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1120 |
21927
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
1121 octave_unlink_wrapper (dfile.c_str ()); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1122 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1123 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1124 = (vars["CXX"] + ' ' + vars["DEPEND_FLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1125 + vars["CPPFLAGS"] + ' ' + vars["ALL_CXXFLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1126 + incflags + ' ' + defs + ' ' + quote_path (f)); |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1127 |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1128 #if defined (OCTAVE_USE_WINDOWS_API) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1129 FILE *fd; |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1130 try |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1131 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1132 std::wstring wcmd = wchar_conv.from_bytes (cmd); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1133 fd = ::_wpopen (wcmd.c_str (), L"r"); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1134 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1135 catch (const std::range_error& e) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1136 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1137 fd = ::popen (cmd.c_str (), "r"); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1138 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1139 |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1140 std::ofstream fo; |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1141 try |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1142 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1143 std::wstring wfile = wchar_conv.from_bytes (dfile); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1144 fo.open (wfile.c_str ()); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1145 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1146 catch (const std::range_error& e) |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1147 { |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1148 fo.open (dfile.c_str ()); |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1149 } |
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1150 #else |
12174 | 1151 FILE *fd = popen (cmd.c_str (), "r"); |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1152 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1153 std::ofstream fo (dfile.c_str ()); |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1154 #endif |
29540
b6f80b1d448f
Windows: Support non-ASCII characters in command line arguments.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29359
diff
changeset
|
1155 |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
1156 std::size_t pos; |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1157 while (! feof (fd)) |
12174 | 1158 { |
1159 line = get_line (fd); | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1160 if ((pos = line.rfind (".o:")) != std::string::npos) |
12174 | 1161 { |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29554
diff
changeset
|
1162 std::size_t spos = line.rfind ('/', pos); |
27277
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1163 std::string ofile |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1164 = (spos == std::string::npos |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1165 ? line.substr (0, pos+2) |
db687716fed6
style fixes: generally aim to break long lines before operators, not after
John W. Eaton <jwe@octave.org>
parents:
26853
diff
changeset
|
1166 : line.substr (spos+1, pos-spos+1)); |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1167 fo << "pic/" << ofile << ' ' << ofile << ' ' |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1168 << dfile << line.substr (pos+2) << std::endl; |
12174 | 1169 } |
1170 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1171 fo << line << std::endl; |
12174 | 1172 } |
1173 pclose (fd); | |
1174 fo.close (); | |
1175 } | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1176 |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1177 return 0; |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1178 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1179 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1180 for (const auto& f : f77files) |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1181 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1182 if (! vars["F77"].empty ()) |
12174 | 1183 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1184 std::string o; |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1185 if (compile_only) |
12174 | 1186 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1187 if (! outputfile.empty ()) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1188 o = outputfile; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1189 else |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1190 o = basename (f, true) + ".o"; |
12174 | 1191 } |
1192 else | |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1193 { |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1194 o = tmp_objfile_name (); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1195 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1196 tmp_objfiles.push_back (o); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1197 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1198 objfiles += (' ' + o); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1199 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1200 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1201 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1202 = (vars["F77"] + " -c " + vars["FPICFLAG"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1203 + vars["ALL_FFLAGS"] + ' ' + incflags + ' ' + defs + ' ' |
30533
022747aca7fe
mkoctfile.in.cc: Quote file names in Fortran compiler command.
Gene Harvey <gharveymn@gmail.com>
parents:
30398
diff
changeset
|
1204 + pass_on_options + ' ' + quote_path (f) |
022747aca7fe
mkoctfile.in.cc: Quote file names in Fortran compiler command.
Gene Harvey <gharveymn@gmail.com>
parents:
30398
diff
changeset
|
1205 + " -o " + quote_path (o)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1206 |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
1207 int status = run_command (cmd, verbose, printonly); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1208 |
25510
2710440ea566
mkoctfile: fix logic error with handling of -c option (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25507
diff
changeset
|
1209 if (status) |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1210 return status; |
12174 | 1211 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1212 else |
12174 | 1213 { |
18796
dd57ca9ef7e4
Add missing newline to error message from mkoctfile.
Rik <rik@octave.org>
parents:
18364
diff
changeset
|
1214 std::cerr << "mkoctfile: no way to compile Fortran file " << f |
dd57ca9ef7e4
Add missing newline to error message from mkoctfile.
Rik <rik@octave.org>
parents:
18364
diff
changeset
|
1215 << std::endl; |
12174 | 1216 return 1; |
1217 } | |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1218 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1219 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1220 for (const auto& f : cfiles) |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1221 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1222 if (! vars["CC"].empty ()) |
12174 | 1223 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1224 std::string o; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1225 if (compile_only) |
12174 | 1226 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1227 if (! outputfile.empty ()) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1228 o = outputfile; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1229 else |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1230 o = basename (f, true) + ".o"; |
12174 | 1231 } |
1232 else | |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1233 { |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1234 o = tmp_objfile_name (); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1235 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1236 tmp_objfiles.push_back (o); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1237 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1238 objfiles += (' ' + o); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1239 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1240 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1241 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1242 = (vars["CC"] + " -c " + vars["CPPFLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1243 + vars["CPICFLAG"] + ' ' + vars["ALL_CFLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1244 + pass_on_options + ' ' + incflags + ' ' + defs + ' ' |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1245 + quote_path (f) + " -o " + quote_path (o)); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1246 |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
1247 int status = run_command (cmd, verbose, printonly); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1248 |
25510
2710440ea566
mkoctfile: fix logic error with handling of -c option (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25507
diff
changeset
|
1249 if (status) |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1250 return status; |
12174 | 1251 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1252 else |
12174 | 1253 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1254 std::cerr << "mkoctfile: no way to compile C file " << f |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1255 << std::endl; |
12174 | 1256 return 1; |
1257 } | |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1258 } |
12174 | 1259 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1260 for (const auto& f : ccfiles) |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1261 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1262 if (! vars["CXX"].empty ()) |
12174 | 1263 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1264 std::string o; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1265 if (compile_only) |
12174 | 1266 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1267 if (! outputfile.empty ()) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1268 o = outputfile; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1269 else |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1270 o = basename (f, true) + ".o"; |
12174 | 1271 } |
1272 else | |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1273 { |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1274 o = tmp_objfile_name (); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1275 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1276 tmp_objfiles.push_back (o); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1277 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1278 objfiles += (' ' + o); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1279 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1280 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1281 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1282 = (vars["CXX"] + " -c " + vars["CPPFLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1283 + vars["CXXPICFLAG"] + ' ' + vars["ALL_CXXFLAGS"] + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1284 + pass_on_options + ' ' + incflags + ' ' + defs + ' ' |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1285 + quote_path (f) + " -o " + quote_path (o)); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1286 |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
1287 int status = run_command (cmd, verbose, printonly); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1288 |
25510
2710440ea566
mkoctfile: fix logic error with handling of -c option (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25507
diff
changeset
|
1289 if (status) |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1290 return status; |
12174 | 1291 } |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1292 else |
12174 | 1293 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1294 std::cerr << "mkoctfile: no way to compile C++ file " << f |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1295 << std::endl; |
12174 | 1296 return 1; |
1297 } | |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1298 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1299 |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1300 // If we are only compiling, we are done. |
25511
49d3c6344afe
mkoctfile: fix one more logic error
John W. Eaton <jwe@octave.org>
parents:
25510
diff
changeset
|
1301 |
49d3c6344afe
mkoctfile: fix one more logic error
John W. Eaton <jwe@octave.org>
parents:
25510
diff
changeset
|
1302 if (compile_only) |
49d3c6344afe
mkoctfile: fix one more logic error
John W. Eaton <jwe@octave.org>
parents:
25510
diff
changeset
|
1303 return 0; |
49d3c6344afe
mkoctfile: fix one more logic error
John W. Eaton <jwe@octave.org>
parents:
25510
diff
changeset
|
1304 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1305 if (objfiles.empty ()) |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1306 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1307 std::cerr << "mkoctfile: no objects to link" << std::endl; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1308 return 1; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1309 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1310 |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1311 std::string octave_libs; |
25475
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
1312 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1313 if (link_stand_alone) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1314 { |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
1315 if (! vars["CXXLD"].empty ()) |
12174 | 1316 { |
26612
ab5cc8da283c
mkoctfile: restore LDFLAGS, warn only when LFLAGS used directly (bug #55447)
Mike Miller <mtmiller@octave.org>
parents:
26487
diff
changeset
|
1317 octave_libs = "-L" + quote_path (vars["OCTLIBDIR"]) |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
1318 + ' ' + vars["OCTAVE_LIBS"]; |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1319 |
30386
fc9b98382ea7
mkoctfile: Add command line `-l` flags before LDFLAGS in linker command (bug #61571).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30368
diff
changeset
|
1320 // FIXME: Remove LFLAGS in Octave 9 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1321 std::string cmd |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
1322 = (vars["CXXLD"] + ' ' + vars["CPPFLAGS"] + ' ' |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1323 + vars["ALL_CXXFLAGS"] + ' ' + vars["RDYNAMIC_FLAG"] + ' ' |
28833
27df9b38391d
mkoctfile.in.cc: Pass linker flags last (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28129
diff
changeset
|
1324 + pass_on_options + ' ' + output_option + ' ' + objfiles + ' ' |
30386
fc9b98382ea7
mkoctfile: Add command line `-l` flags before LDFLAGS in linker command (bug #61571).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30368
diff
changeset
|
1325 + libfiles + ' ' + ldflags + ' ' + vars["ALL_LDFLAGS"] + ' ' |
28833
27df9b38391d
mkoctfile.in.cc: Pass linker flags last (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28129
diff
changeset
|
1326 + vars["LFLAGS"] + ' ' + octave_libs + ' ' |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1327 + vars["OCTAVE_LINK_OPTS"] + ' ' + vars["OCTAVE_LINK_DEPS"]); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1328 |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
1329 int status = run_command (cmd, verbose, printonly); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1330 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1331 clean_up_tmp_files (tmp_objfiles); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1332 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1333 if (status) |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1334 return status; |
12174 | 1335 } |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1336 else |
12174 | 1337 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1338 std::cerr |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1339 << "mkoctfile: no way to link stand-alone executable file" |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1340 << std::endl; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1341 return 1; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1342 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1343 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1344 else |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1345 { |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1346 #if defined (OCTAVE_USE_WINDOWS_API) || defined(CROSS) |
26612
ab5cc8da283c
mkoctfile: restore LDFLAGS, warn only when LFLAGS used directly (bug #55447)
Mike Miller <mtmiller@octave.org>
parents:
26487
diff
changeset
|
1347 octave_libs = "-L" + quote_path (vars["OCTLIBDIR"]) |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
1348 + ' ' + vars["OCTAVE_LIBS"]; |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1349 #endif |
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1350 |
30386
fc9b98382ea7
mkoctfile: Add command line `-l` flags before LDFLAGS in linker command (bug #61571).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30368
diff
changeset
|
1351 // FIXME: Remove LFLAGS in Octave 9 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1352 std::string cmd |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
1353 = (vars["CXXLD"] + ' ' + vars["ALL_CXXFLAGS"] + ' ' |
28833
27df9b38391d
mkoctfile.in.cc: Pass linker flags last (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28129
diff
changeset
|
1354 + pass_on_options + " -o " + octfile + ' ' + objfiles + ' ' |
30386
fc9b98382ea7
mkoctfile: Add command line `-l` flags before LDFLAGS in linker command (bug #61571).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30368
diff
changeset
|
1355 + libfiles + ' ' + ldflags + ' ' + vars["DL_LDFLAGS"] + ' ' |
fc9b98382ea7
mkoctfile: Add command line `-l` flags before LDFLAGS in linker command (bug #61571).
Markus Mützel <markus.muetzel@gmx.de>
parents:
30368
diff
changeset
|
1356 + vars["LDFLAGS"] + ' ' + vars["LFLAGS"] + ' ' + octave_libs + ' ' |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1357 + vars["OCT_LINK_OPTS"] + ' ' + vars["OCT_LINK_DEPS"]); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1358 |
28048
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1359 #if defined (OCTAVE_USE_WINDOWS_API) || defined(CROSS) |
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1360 if (! f77files.empty () && ! vars["FLIBS"].empty ()) |
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1361 cmd += ' ' + vars["FLIBS"]; |
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1362 #endif |
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1363 |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
1364 int status = run_command (cmd, verbose, printonly); |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1365 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1366 clean_up_tmp_files (tmp_objfiles); |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1367 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1368 if (status) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1369 return status; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1370 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1371 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1372 if (strip) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1373 { |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1374 std::string cmd = "strip " + octfile; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1375 |
28963
f29e4791a792
mkoctfile: eliminate global debug variable
John W. Eaton <jwe@octave.org>
parents:
28883
diff
changeset
|
1376 int status = run_command (cmd, verbose, printonly); |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1377 |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1378 if (status) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1379 return status; |
8092
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
1380 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1381 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1382 return 0; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1383 } |