Mercurial > octave
annotate src/mkoctfile.in.cc @ 31197:8d4c87e88d0e
maint: Merge stable to default.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 23 Aug 2022 19:45:19 +0200 |
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 } |