Mercurial > octave
annotate src/mkoctfile.in.cc @ 29654:d13d090cb03a stable
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
Files affected: make_int.cc, file-editor-tab.cc, octave-qscintilla.cc,
Cell.cc, Cell.h, call-stack.cc, call-stack.h, cellfun.cc, data.cc,
debug.cc, dlmread.cc, error.cc, event-queue.h, fcn-info.cc,
fcn-info.h, file-io.cc, ft-text-renderer.cc, gl2ps-print.cc,
graphics.cc, graphics.in.h, help.cc, hex2num.cc, input.cc,
latex-text-renderer.cc, load-path.cc, load-save.cc, load-save.h,
ls-hdf5.cc, ls-mat-ascii.cc, ls-mat5.cc, ls-oct-text.cc, mex.cc,
mexproto.h, mxarray.h, oct-map.cc, oct-stream.cc, oct-stream.h,
pager.cc, pager.h, pr-output.cc, regexp.cc, settings.h,
stack-frame.cc, stack-frame.h, strfns.cc, syminfo.cc, symrec.h,
symscope.cc, symscope.h, symtab.cc, sysdep.cc, toplev.cc, utils.cc,
utils.h, variables.cc, __fltk_uigetfile__.cc, __init_fltk__.cc,
audioread.cc, gzip.cc, cdef-class.cc, cdef-manager.cc, cdef-method.cc,
cdef-object.cc, cdef-object.h, ov-base-diag.cc, ov-base-diag.h,
ov-base-mat.cc, ov-base-mat.h, ov-base-scalar.cc, ov-base-scalar.h,
ov-base-sparse.h, ov-base.cc, ov-base.h, ov-cell.cc, ov-cell.h,
ov-ch-mat.cc, ov-class.cc, ov-class.h, ov-classdef.cc,
ov-fcn-handle.cc, ov-java.cc, ov-lazy-idx.h, ov-perm.cc, ov-perm.h,
ov-range.h, ov-str-mat.cc, ov-struct.cc, ov-struct.h, ov-usr-fcn.cc,
ov-usr-fcn.h, ov.cc, ov.h, ovl.cc, octave.cc, bp-table.cc, jit-ir.cc,
jit-ir.h, jit-typeinfo.cc, jit-typeinfo.h, jit-util.h, lex.h, lex.ll,
oct-lvalue.cc, oct-parse.yy, parse.h, profiler.h, pt-eval.cc,
pt-eval.h, pt-jit.cc, pt-jit.h, pt-pr-code.cc, pt-tm-const.cc,
pt-tm-const.h, Array.h, CMatrix.cc, DiagArray2.h, PermMatrix.h,
Sparse.h, dMatrix.cc, fCMatrix.cc, fMatrix.cc, bsxfun-defs.cc,
oct-fftw.cc, oct-fftw.h, randpoisson.cc, sparse-chol.cc,
mx-inlines.cc, file-ops.cc, lo-sysdep.cc, oct-env.cc, oct-time.cc,
action-container.cc, action-container.h, base-list.h, caseless-str.h,
cmd-edit.cc, cmd-hist.cc, data-conv.cc, data-conv.h, f77-fcn.h,
file-info.cc, file-info.h, kpse.cc, kpse.h, lo-cutils.h, lo-hash.h,
lo-regexp.cc, oct-base64.cc, oct-base64.h, oct-binmap.h, oct-glob.cc,
oct-shlib.cc, oct-shlib.h, oct-sort.cc, oct-sparse.h, oct-string.cc,
quit.cc, unwind-prot.h, url-transfer.cc, main.in.cc, mkoctfile.in.cc,
and shared-fcns.h.
(grafted from aef11bb4e6d1f303ad9de5688fcb7244ef48867e)
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 28 Apr 2021 22:57:42 -0400 |
parents | 99e3912441ec |
children | 32f4357ac8d9 7f5bd197fea6 |
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 // |
29358
0a5b15007766
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29006
diff
changeset
|
5 // Copyright (C) 2008-2021 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 |
25504
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
43 // 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
|
44 // 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
|
45 // 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
|
46 // 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
|
47 // |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
48 // 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
|
49 // 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
|
50 // 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
|
51 // 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
|
52 // CROSS is defined. |
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
53 |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
54 #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
|
55 # include <stdlib.h> |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
56 # include <sys/types.h> |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
57 # include <sys/wait.h> |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
58 # include <unistd.h> |
23801
9d67bd90681b
cross tools: define OCTAVE_UNUSED if not defined
John D <john.donoghue@ieee.org>
parents:
23757
diff
changeset
|
59 # ifndef OCTAVE_UNUSED |
9d67bd90681b
cross tools: define OCTAVE_UNUSED if not defined
John D <john.donoghue@ieee.org>
parents:
23757
diff
changeset
|
60 # define OCTAVE_UNUSED |
9d67bd90681b
cross tools: define OCTAVE_UNUSED if not defined
John D <john.donoghue@ieee.org>
parents:
23757
diff
changeset
|
61 # endif |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
62 #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
|
63 # 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
|
64 # include "uniconv-wrappers.h" |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
65 # include "unistd-wrappers.h" |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
66 # include "wait-wrappers.h" |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
67 #endif |
18916
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
68 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
69 static std::map<std::string, std::string> vars; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
70 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
71 #if ! defined (OCTAVE_VERSION) |
21202
f7121e111991
maint: indent #ifdef blocks in liboctave and src directories.
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
72 # 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
|
73 #endif |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
74 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
75 #if ! defined (OCTAVE_PREFIX) |
21202
f7121e111991
maint: indent #ifdef blocks in liboctave and src directories.
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
76 # 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
|
77 #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
|
78 |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
79 #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
|
80 # 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
|
81 #endif |
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
82 |
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
|
83 #include "shared-fcns.h" |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
84 |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
85 #if defined (CROSS) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
86 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
87 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
|
88 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
|
89 { |
25504
ace13ff63b90
undo previous change; use 0 instead of O_BINARY
John W. Eaton <jwe@octave.org>
parents:
25503
diff
changeset
|
90 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
|
91 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
92 |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
93 static char * |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
94 octave_u8_conv_to_encoding (const char *tocode, const uint8_t *src, |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
95 size_t srclen, size_t *lengthp) |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
96 { |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
97 // FIXME: Do we need to provide the conversion here? |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
98 return nullptr; |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
99 } |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
100 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
101 static int |
21961
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
102 octave_unlink_wrapper (const char *nm) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
103 { |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
104 return unlink (nm); |
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 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
107 static bool |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
108 octave_wifexited_wrapper (int status) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
109 { |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
110 return WIFEXITED (status); |
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 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
113 static int |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
114 octave_wexitstatus_wrapper (int status) |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
115 { |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
116 return WEXITSTATUS (status); |
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 |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
119 #endif |
307a2d7ff29b
fix cross build of mkoctfile
John W. Eaton <jwe@octave.org>
parents:
21942
diff
changeset
|
120 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
121 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
|
122 get_line (FILE *fp) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
123 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
124 std::ostringstream buf; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
125 |
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
|
126 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
|
127 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
128 int c = std::fgetc (fp); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
129 |
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
|
130 if (c == '\n' || c == EOF) |
12174 | 131 break; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
132 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
133 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
|
134 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
135 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
136 return buf.str (); |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
137 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
138 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
139 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
|
140 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
|
141 { |
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
|
142 const char *val = getenv (name); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
143 |
17898
8c33abdd2f9a
maint: Avoid using NULL in C++ code.
John W. Eaton <jwe@octave.org>
parents:
17789
diff
changeset
|
144 if (val && *val) |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
145 return std::string (val); |
17898
8c33abdd2f9a
maint: Avoid using NULL in C++ code.
John W. Eaton <jwe@octave.org>
parents:
17789
diff
changeset
|
146 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
|
147 return defval; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
148 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
149 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
150 static std::string |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
151 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
|
152 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
153 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
|
154 return '"' + s + '"'; |
8332 | 155 else |
156 return s; | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
157 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
158 |
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
|
159 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
|
160 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
|
161 { |
29554
99e3912441ec
build: Make relocation of dependencies with Octave optional (bug #60413).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29358
diff
changeset
|
162 #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
|
163 const std::string match = "${prefix}"; |
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 { |
d7169f012ee1
mkoctfile: Account for different prefix on build and host system (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28860
diff
changeset
|
167 s.replace(pos, match.length (), prepend_octave_exec_home ("")); |
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 |
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
|
175 static void |
8332 | 176 initialize (void) |
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 |
23712
b95c430c0649
revamp insertion of config variables into binaries and eliminate some macros
John W. Eaton <jwe@octave.org>
parents:
23220
diff
changeset
|
180 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
|
181 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
|
182 |
25556
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
183 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
|
184 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
|
185 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
|
186 vars["EXEEXT"] = %OCTAVE_EXEEXT%; |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
187 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
|
188 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
|
189 |
cbef9fc53fef
include all octave-config vars in mkoctfile (bug #54260)
John W. Eaton <jwe@octave.org>
parents:
25511
diff
changeset
|
190 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
|
191 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
|
192 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
|
193 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
|
194 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
|
195 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
|
196 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
|
197 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
|
198 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
|
199 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
|
200 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
|
201 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
|
202 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
|
203 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
|
204 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
|
205 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
|
206 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
|
207 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
|
208 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
|
209 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
|
210 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
|
211 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
|
212 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
|
213 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
|
214 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
|
215 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
|
216 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
217 vars["OCTINCLUDEDIR"] |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
218 = 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
|
219 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
|
220 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
221 vars["INCLUDEDIR"] |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
222 = 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
|
223 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
|
224 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
225 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
|
226 = 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
|
227 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
228 vars["OCTLIBDIR"] |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
229 = get_variable ("OCTLIBDIR", |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
230 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
|
231 |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21961
diff
changeset
|
232 #if defined (OCTAVE_USE_WINDOWS_API) |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
233 std::string DEFAULT_INCFLAGS |
23804
8057d3f0673d
Use C++11 raw string literals to avoid escaping backslashes in strings.
Rik <rik@octave.org>
parents:
23803
diff
changeset
|
234 = "-I" + quote_path (vars["OCTINCLUDEDIR"] + R"(\..)") |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
235 + " -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
|
236 #else |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
237 std::string DEFAULT_INCFLAGS |
9794
0d4613a736e9
convert build system to use automake and libtool
John W. Eaton <jwe@octave.org>
parents:
9565
diff
changeset
|
238 = "-I" + quote_path (vars["OCTINCLUDEDIR"] + "/..") |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
239 + " -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
|
240 #endif |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
241 |
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
|
242 if (vars["INCLUDEDIR"] != "/usr/include") |
8332 | 243 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
|
244 |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
245 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
|
246 |
26363
16607f64eea1
Include -loctave -loctinterp and lib path to mkoctfile link command (bug #55033).
Ben Abbott <bpabbott@mac.com>
parents:
26232
diff
changeset
|
247 #if (defined (OCTAVE_USE_WINDOWS_API) || defined (CROSS)) || (defined __APPLE__ && defined __MACH__) |
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 |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
249 // 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
|
250 // 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
|
251 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
|
252 #endif |
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
253 |
245de4f12ca3
link .oct files with liboctave and libinterp on Windows systems (bug #53627)
John W. Eaton <jwe@octave.org>
parents:
25447
diff
changeset
|
254 if (vars["LIBDIR"] != "/usr/lib") |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
255 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
|
256 |
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
|
257 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
|
258 replace_prefix (%OCTAVE_CONF_CPPFLAGS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
259 |
8332 | 260 vars["INCFLAGS"] = get_variable ("INCFLAGS", DEFAULT_INCFLAGS); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
261 |
15929
16418ff39a72
strip cross tool prefix from CC, CXX, etc. definitions used in mkoctfile
John W. Eaton <jwe@octave.org>
parents:
15458
diff
changeset
|
262 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
|
263 |
8332 | 264 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
|
265 |
8332 | 266 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
|
267 |
15929
16418ff39a72
strip cross tool prefix from CC, CXX, etc. definitions used in mkoctfile
John W. Eaton <jwe@octave.org>
parents:
15458
diff
changeset
|
268 vars["CC"] = get_variable ("CC", %OCTAVE_CONF_MKOCTFILE_CC%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
269 |
8332 | 270 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
|
271 |
8332 | 272 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
|
273 |
15929
16418ff39a72
strip cross tool prefix from CC, CXX, etc. definitions used in mkoctfile
John W. Eaton <jwe@octave.org>
parents:
15458
diff
changeset
|
274 vars["CXX"] = get_variable ("CXX", %OCTAVE_CONF_MKOCTFILE_CXX%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
275 |
8332 | 276 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
|
277 |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
278 vars["CXXLD"] = get_variable ("CXXLD", vars["CXX"]); |
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
279 |
8332 | 280 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
|
281 |
8332 | 282 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
|
283 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
284 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
|
285 %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
|
286 |
15944
4803b8c138e3
use mkoctfile, not octave_config_info to get default pkg compiler tools
John W. Eaton <jwe@octave.org>
parents:
15933
diff
changeset
|
287 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
|
288 |
15944
4803b8c138e3
use mkoctfile, not octave_config_info to get default pkg compiler tools
John W. Eaton <jwe@octave.org>
parents:
15933
diff
changeset
|
289 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
|
290 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
291 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
|
292 %OCTAVE_CONF_DEPEND_FLAGS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
293 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
294 vars["DEPEND_EXTRA_SED_PATTERN"] |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
295 = get_variable ("DEPEND_EXTRA_SED_PATTERN", |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
296 %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
|
297 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
298 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
|
299 %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
|
300 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
301 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
|
302 %OCTAVE_CONF_RDYNAMIC_FLAG%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
303 |
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
|
304 vars["LIBOCTAVE"] = "-loctave"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
305 |
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
|
306 vars["LIBOCTINTERP"] = "-loctinterp"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
307 |
9515 | 308 vars["READLINE_LIBS"] = "-lreadline"; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
309 |
11450
5eb10763069f
substitute and use LAPACK_LIBS in mkoctfile script
John W. Eaton <jwe@octave.org>
parents:
11251
diff
changeset
|
310 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
|
311 |
8332 | 312 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
|
313 |
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
|
314 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
|
315 = 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
|
316 replace_prefix (%OCTAVE_CONF_FFTW3_LDFLAGS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
317 |
9538
d0239bddf621
use OCTAVE_CHECK_LIB to check for zlib
John W. Eaton <jwe@octave.org>
parents:
9515
diff
changeset
|
318 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
|
319 |
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
|
320 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
|
321 = 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
|
322 replace_prefix (%OCTAVE_CONF_FFTW3F_LDFLAGS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
323 |
9538
d0239bddf621
use OCTAVE_CHECK_LIB to check for zlib
John W. Eaton <jwe@octave.org>
parents:
9515
diff
changeset
|
324 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
|
325 |
8332 | 326 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
|
327 |
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
|
328 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
|
329 replace_prefix (%OCTAVE_CONF_FLIBS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
330 |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
331 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
|
332 %OCTAVE_CONF_MKOCTFILE_OCTAVE_LINK_DEPS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
333 |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
334 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
|
335 %OCTAVE_CONF_OCTAVE_LINK_OPTS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
336 |
18349
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
337 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
|
338 %OCTAVE_CONF_MKOCTFILE_OCT_LINK_DEPS%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
339 |
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
|
340 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
|
341 = 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
|
342 replace_prefix (%OCTAVE_CONF_OCT_LINK_OPTS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
343 |
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
|
344 vars["LDFLAGS"] = get_variable ("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
|
345 replace_prefix (%OCTAVE_CONF_LDFLAGS%)); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
346 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
347 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
|
348 %OCTAVE_CONF_LD_STATIC_FLAG%); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
349 |
28860
ba6e10c316d3
NEWS: Announce deprecation of LFLAGS (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28833
diff
changeset
|
350 // FIXME: Remove LFLAGS in Octave 8.0 |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
351 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
|
352 if (vars["LFLAGS"] != DEFAULT_LDFLAGS) |
ab5cc8da283c
mkoctfile: restore LDFLAGS, warn only when LFLAGS used directly (bug #55447)
Mike Miller <mtmiller@octave.org>
parents:
26487
diff
changeset
|
353 std::cerr << "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
|
354 |
17789
f2b047f9b605
Use GNU style coding conventions for code in src/.
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
355 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
|
356 %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
|
357 vars["ALL_FFLAGS"] = vars["FFLAGS"] + ' ' + vars["F77_INTEGER8_FLAG"]; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
358 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
359 vars["ALL_CFLAGS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
360 = vars["INCFLAGS"] + ' ' + vars["XTRA_CFLAGS"] + ' ' + vars["CFLAGS"]; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
361 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
362 vars["ALL_CXXFLAGS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
363 = vars["INCFLAGS"] + ' ' + vars["XTRA_CXXFLAGS"] + ' ' + vars["CXXFLAGS"]; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
364 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
365 vars["ALL_LDFLAGS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
366 = 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
|
367 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
368 vars["OCTAVE_LIBS"] |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
369 = (vars["LIBOCTINTERP"] + ' ' + vars["LIBOCTAVE"] + ' ' |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
370 + vars["SPECIAL_MATH_LIB"]); |
9538
d0239bddf621
use OCTAVE_CHECK_LIB to check for zlib
John W. Eaton <jwe@octave.org>
parents:
9515
diff
changeset
|
371 |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
372 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
|
373 + vars["FFTW3F_LDFLAGS"] + ' ' + vars["FFTW3F_LIBS"]; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
374 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
375 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
376 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
|
377 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
378 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
|
379 |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
380 static bool debug = false; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
381 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
382 static std::string help_msg = |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
383 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
384 "Options:\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
385 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
386 " -h, -?, --help Print this message.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
387 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
388 " -IDIR Add -IDIR to compile commands.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
389 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
390 " -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
|
391 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
392 " -DDEF Add -DDEF to compile commands.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
393 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
394 " -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
|
395 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
396 " -LDIR Add -LDIR to link command.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
397 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
398 " -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
|
399 " source files.\n" |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21961
diff
changeset
|
400 #if ! defined (OCTAVE_USE_WINDOWS_API) |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
401 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
402 " -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
|
403 #endif |
27934
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 " -RDIR Add -RDIR to link command.\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 " -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
|
408 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
409 " -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
|
410 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
411 " -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
|
412 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
413 " -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
|
414 " (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
|
415 " a stand-alone executable.\n" |
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 " -g Enable debugging options for compilers.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
418 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
419 " -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
|
420 " three categories of variables:\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 " Octave configuration variables that users may\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
423 " override with environment variables. These are\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
424 " used in commands that mkoctfile executes.\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 " ALL_CFLAGS INCLUDEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
427 " ALL_CXXFLAGS LAPACK_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
428 " ALL_FFLAGS LDFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
429 " ALL_LDFLAGS LD_STATIC_FLAG\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
430 " BLAS_LIBS LIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
431 " CC LIBOCTAVE\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
432 " CFLAGS LIBOCTINTERP\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
433 " CPICFLAG OCTAVE_LINK_OPTS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
434 " CPPFLAGS OCTINCLUDEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
435 " CXX OCTAVE_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
436 " CXXFLAGS OCTAVE_LINK_DEPS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
437 " CXXLD OCTLIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
438 " CXXPICFLAG OCT_LINK_DEPS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
439 " DL_LDFLAGS OCT_LINK_OPTS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
440 " F77 RDYNAMIC_FLAG\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
441 " F77_INTEGER8_FLAG SPECIAL_MATH_LIB\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
442 " FFLAGS XTRA_CFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
443 " FPICFLAG XTRA_CXXFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
444 " INCFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
445 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
446 " Octave configuration variables as above, but\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
447 " currently unused by mkoctfile.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
448 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
449 " AR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
450 " DEPEND_EXTRA_SED_PATTERN\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
451 " DEPEND_FLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
452 " FFTW3F_LDFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
453 " FFTW3F_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
454 " FFTW3_LDFLAGS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
455 " FFTW3_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
456 " FFTW_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
457 " FLIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
458 " LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
459 " RANLIB\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
460 " READLINE_LIBS\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
461 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
462 " Octave configuration variables that are provided\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
463 " for informational purposes only. Except for\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
464 " 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
|
465 " override these variables.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
466 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
467 " 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
|
468 " 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
|
469 " 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
|
470 " 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
|
471 " 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
|
472 " 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
|
473 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
474 " API_VERSION LOCALFCNFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
475 " ARCHLIBDIR LOCALOCTFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
476 " BINDIR LOCALSTARTUPFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
477 " CANONICAL_HOST_TYPE LOCALVERARCHLIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
478 " DATADIR LOCALVERFCNFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
479 " DATAROOTDIR LOCALVEROCTFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
480 " DEFAULT_PAGER MAN1DIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
481 " EXEC_PREFIX MAN1EXT\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
482 " EXEEXT MANDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
483 " FCNFILEDIR OCTAVE_EXEC_HOME\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
484 " IMAGEDIR OCTAVE_HOME\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
485 " INFODIR OCTAVE_VERSION\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
486 " INFOFILE OCTDATADIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
487 " LIBEXECDIR OCTDOCDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
488 " LOCALAPIARCHLIBDIR OCTFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
489 " LOCALAPIFCNFILEDIR OCTFONTSDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
490 " LOCALAPIOCTFILEDIR STARTUPFILEDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
491 " LOCALARCHLIBDIR\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
492 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
493 " --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
|
494 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
495 " --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
|
496 " default output extension to \".mex\".\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
497 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
498 " -s, --strip Strip output file.\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
499 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
500 " -n, --just-print, --dry-run\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
501 " 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
|
502 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
503 " -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
|
504 "\n" |
28058
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
505 " --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
|
506 " compiler steps.\n" |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
507 "\n" |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
508 " 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
|
509 "\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
510 " .c C source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
511 " .cc C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
512 " .cp C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
513 " .cpp C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
514 " .CPP C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
515 " .cxx C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
516 " .c++ C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
517 " .C C++ source\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
518 " .f Fortran source (fixed form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
519 " .F Fortran source (fixed form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
520 " .f90 Fortran source (free form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
521 " .F90 Fortran source (free form)\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
522 " .o object file\n" |
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
523 " .a library file\n" |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
524 #if defined (_MSC_VER) |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
525 " .lib library file\n" |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
526 #endif |
27934
49a0d90cd2a3
maint: Use Octave coding conventions in src/ directory.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
527 "\n"; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
528 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
529 static std::string |
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
530 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
|
531 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
532 std::string retval; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
533 |
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
|
534 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
|
535 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
536 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
|
537 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
|
538 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
|
539 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
|
540 |
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
|
541 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
|
542 { |
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
|
543 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
|
544 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
545 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
|
546 ? 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
|
547 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
548 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
|
549 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
|
550 } |
15299
8bd5c490b787
Fix mex compilation with subdirs on Windows platforms (bug #37122)
Rik <rik@octave.org>
parents:
15271
diff
changeset
|
551 |
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 return retval; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
553 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
554 |
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
|
555 inline bool |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
556 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
|
557 { |
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
|
558 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
|
559 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
560 |
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
|
561 inline bool |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
562 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
|
563 { |
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
|
564 return (s.length () >= suffix.length () |
12174 | 565 && 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
|
566 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
567 |
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
|
568 static int |
22472
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
569 run_command (const std::string& cmd, bool printonly = false) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
570 { |
22472
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
571 if (printonly) |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
572 { |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
573 std::cout << cmd << std::endl; |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
574 return 0; |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
575 } |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
576 |
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
|
577 if (debug) |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
578 std::cout << cmd << std::endl; |
18916
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
579 |
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
580 int result = system (cmd.c_str ()); |
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
581 |
21927
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
582 if (octave_wifexited_wrapper (result)) |
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
583 result = octave_wexitstatus_wrapper (result); |
18916
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
584 |
5999e654f256
WIFEXITED and WEXITSTATUS macros for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
18915
diff
changeset
|
585 return result; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
586 } |
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
587 |
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
|
588 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
|
589 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
|
590 { |
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
|
591 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
|
592 } |
96d02808a881
Support "true" or "yes" for %NO_OCT_FILE_STRIP% in mkoctfile.in.cc.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
15946
diff
changeset
|
593 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
594 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
|
595 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
|
596 { |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
597 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
|
598 |
26853
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
599 tempd = octave_getenv ("TMPDIR"); |
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
600 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
601 #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
|
602 |
26853
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
603 if (tempd.empty ()) |
b0f359a5ad35
mkoctfile: use the TMPDIR environment variable if set (bug #55814)
Mike Miller <mtmiller@octave.org>
parents:
26612
diff
changeset
|
604 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
|
605 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
606 if (tempd.empty ()) |
26370
190702f4a075
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26363
diff
changeset
|
607 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
|
608 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
609 #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
|
610 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
|
611 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
|
612 #endif |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
613 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
614 // 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
|
615 // 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
|
616 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
|
617 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
|
618 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
619 #else |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
620 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
621 #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
|
622 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
|
623 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
|
624 #else |
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 (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
|
626 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
|
627 #endif |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
628 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
629 #endif |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
630 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
631 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
|
632 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
633 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
634 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
|
635 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
|
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 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
|
638 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
639 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
|
640 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
641 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
|
642 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
643 // 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
|
644 // 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
|
645 // 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
|
646 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
|
647 |
26487 | 648 std::string retval (ctmpl); // make C++ string from filled-in template |
649 delete [] ctmpl; | |
650 | |
651 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
|
652 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
653 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
654 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
|
655 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
|
656 { |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
657 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
|
658 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
|
659 } |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
660 |
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
|
661 int |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
662 main (int argc, char **argv) |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
663 { |
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
|
664 initialize (); |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
665 |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
666 if (argc == 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
|
667 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
668 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
|
669 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
|
670 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
671 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
672 if (argc == 2 && (! strcmp (argv[1], "-v") |
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
673 || ! strcmp (argv[1], "-version") |
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
674 || ! strcmp (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
|
675 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
676 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
|
677 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
|
678 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
679 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
680 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
|
681 std::string output_ext = ".oct"; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
682 std::string objfiles, libfiles, octfile, outputfile; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
683 std::string incflags, defs, ldflags, pass_on_options; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
684 bool strip = false; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
685 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
|
686 bool compile_only = false; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
687 bool link_stand_alone = false; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
688 bool depend = false; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
689 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
|
690 bool output_file_option = false; |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
691 |
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
|
692 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
|
693 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
694 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
|
695 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
696 std::string file; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
697 |
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
|
698 if (ends_with (arg, ".c")) |
12174 | 699 { |
700 file = arg; | |
701 cfiles.push_back (file); | |
702 } | |
22031
2cfbb6b25428
mkoctfile: support more file extensions for C++ sources (bug #48381)
Mike Miller <mtmiller@octave.org>
parents:
22022
diff
changeset
|
703 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
|
704 || 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
|
705 || 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
|
706 || ends_with (arg, ".C")) |
12174 | 707 { |
708 file = arg; | |
709 ccfiles.push_back (file); | |
710 } | |
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
|
711 else if (ends_with (arg, ".f") || ends_with (arg, ".F") |
12174 | 712 || ends_with (arg, "f90") || ends_with (arg, ".F90")) |
713 { | |
714 file = arg; | |
715 f77files.push_back (file); | |
716 } | |
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 else if (ends_with (arg, ".o") || ends_with (arg, ".obj")) |
12174 | 718 { |
719 file = arg; | |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
720 objfiles += (' ' + quote_path (arg)); |
12174 | 721 } |
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
|
722 else if (ends_with (arg, ".lib") || ends_with (arg, ".a")) |
12174 | 723 { |
724 file = arg; | |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
725 libfiles += (' ' + quote_path (arg)); |
12174 | 726 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
727 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
|
728 || arg == "-v" || arg == "-verbose" || arg == "--verbose") |
12174 | 729 { |
730 debug = true; | |
731 if (vars["CC"] == "cc-msvc") | |
732 vars["CC"] += " -d"; | |
733 if (vars["CXX"] == "cc-msvc") | |
734 vars["CXX"] += " -d"; | |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
735 if (vars["CXXLD"] == "cc-msvc") |
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
736 vars["CXXLD"] += " -d"; |
12174 | 737 } |
28058
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
738 else if (arg == "-silent" || arg == "--silent") |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
739 { |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
740 // Ignored for now. |
cf59b503db2a
* mkoctfile.in.cc (main): Accept --silent option.
John W. Eaton <jwe@octave.org>
parents:
28048
diff
changeset
|
741 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
742 else if (arg == "-h" || arg == "-?" || arg == "-help" || arg == "--help") |
12174 | 743 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
744 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
|
745 std::cout << help_msg << std::endl; |
12174 | 746 return 0; |
747 } | |
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
|
748 else if (starts_with (arg, "-I")) |
12174 | 749 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
750 incflags += (' ' + quote_path (arg)); |
12174 | 751 } |
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
|
752 else if (arg == "-idirafter") |
12174 | 753 { |
754 if (i < argc-1) | |
755 { | |
756 arg = argv[++i]; | |
757 incflags += (" -idirafter " + arg); | |
758 } | |
759 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
760 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
|
761 << std::endl; |
12174 | 762 } |
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
|
763 else if (starts_with (arg, "-D")) |
12174 | 764 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
765 defs += (' ' + arg); |
12174 | 766 } |
22461
cc4f31e8477f
Accept, but ignore, mex argument -largeArrayDims, -compatibleArrayDims (bug #39984).
Rik <rik@octave.org>
parents:
22459
diff
changeset
|
767 else if (arg == "-largeArrayDims" || arg == "-compatibleArrayDims") |
cc4f31e8477f
Accept, but ignore, mex argument -largeArrayDims, -compatibleArrayDims (bug #39984).
Rik <rik@octave.org>
parents:
22459
diff
changeset
|
768 { |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
769 std::cerr << "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
|
770 } |
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
|
771 else if (starts_with (arg, "-Wl,") || starts_with (arg, "-l") |
12174 | 772 || starts_with (arg, "-L") || starts_with (arg, "-R")) |
773 { | |
28129
16ccaebe250a
mkoctfile: quote linker arguments that may contain spaces (bug #57878)
Mike Miller <mtmiller@octave.org>
parents:
28058
diff
changeset
|
774 ldflags += (' ' + quote_path (arg)); |
12174 | 775 } |
21979
d04da18a407a
use OCTAVE_USE_WINDOWS_API more consistently
John W. Eaton <jwe@octave.org>
parents:
21961
diff
changeset
|
776 #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
|
777 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
|
778 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
779 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
|
780 } |
50505bf88b82
make octave-config and mkoctfile consistent with last shell script versions
John W. Eaton <jwe@octave.org>
parents:
18342
diff
changeset
|
781 #endif |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
782 else if (arg == "-M" || arg == "-depend" || arg == "--depend") |
12174 | 783 { |
784 depend = true; | |
785 } | |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
786 else if (arg == "-o" || arg == "-output" || arg == "--output") |
12174 | 787 { |
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
|
788 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
|
789 |
12174 | 790 if (i < argc-1) |
791 { | |
792 arg = argv[++i]; | |
793 outputfile = arg; | |
794 } | |
795 else | |
20713
2469d78a1d8b
Consistently use 'filename' rather than 'file name' throughout code base.
Rik <rik@octave.org>
parents:
20507
diff
changeset
|
796 std::cerr << "mkoctfile: output filename missing" << std::endl; |
12174 | 797 } |
22481
541a20a4961c
mkoctfile: alias --dry-run option to --just-print because it's very common.
Carnë Draug <carandraug@octave.org>
parents:
22472
diff
changeset
|
798 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
|
799 { |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
800 printonly = true; |
76f2b0436423
Add -n option to print, not execute, mkoctfile commands.
Rik <rik@octave.org>
parents:
22461
diff
changeset
|
801 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
802 else if (arg == "-p" || arg == "-print" || arg == "--print") |
12174 | 803 { |
804 if (i < argc-1) | |
805 { | |
806 arg = argv[++i]; | |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
807 // FIXME: Remove LFLAGS checking in Octave 7.0 |
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
808 if (arg == "LFLAGS") |
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
809 std::cerr << "warning: LFLAGS is deprecated and will be removed in a future version of Octave, use LDFLAGS instead" << std::endl; |
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
810 |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
811 std::cout << vars[arg] << std::endl; |
12174 | 812 return 0; |
813 } | |
814 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
815 std::cerr << "mkoctfile: --print requires argument" << std::endl; |
12174 | 816 } |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
817 else if (arg == "-s" || arg == "-strip" || arg == "--strip") |
12174 | 818 { |
819 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
|
820 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
|
821 << std::endl; |
12174 | 822 else |
823 strip = true; | |
824 } | |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
825 else if (arg == "-c" || arg == "-compile" || arg == "--compile") |
12174 | 826 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
827 compile_only = true; |
12174 | 828 } |
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
|
829 else if (arg == "-g") |
12174 | 830 { |
831 vars["ALL_CFLAGS"] += " -g"; | |
832 vars["ALL_CXXFLAGS"] += " -g"; | |
833 vars["ALL_FFLAGS"] += " -g"; | |
834 } | |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
835 else if (arg == "-link-stand-alone" || arg == "--link-stand-alone") |
12174 | 836 { |
837 link_stand_alone = true; | |
838 } | |
9955
33537a4d223f
mkoctfile.cc.in: accept long options with single -
John W. Eaton <jwe@octave.org>
parents:
9794
diff
changeset
|
839 else if (arg == "-mex" || arg == "--mex") |
12174 | 840 { |
841 incflags += " -I."; | |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21301
diff
changeset
|
842 #if defined (_MSC_VER) |
12174 | 843 ldflags += " -Wl,-export:mexFunction"; |
9303
adf676387922
properly #ifdef MSVC linker specific flags
Benjamin Lindner <lindnerb@users.sourceforge.net>
parents:
9245
diff
changeset
|
844 #endif |
12174 | 845 output_ext = ".mex"; |
846 } | |
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
|
847 else if (starts_with (arg, "-W")) |
12174 | 848 { |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
849 pass_on_options += (' ' + arg); |
12174 | 850 } |
24742
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
851 else if (starts_with (arg, "-O")) |
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
852 { |
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
853 pass_on_options += (' ' + arg); |
9db2f757c7c0
Accept -O as an argument to mkoctfile (bug #53099).
Rik <rik@octave.org>
parents:
24634
diff
changeset
|
854 } |
19711
b59aabc08e63
Pass unrecognized '-' arguments through mkoctfile to compiler (bug #34169).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
855 else if (starts_with (arg, "-")) |
b59aabc08e63
Pass unrecognized '-' arguments through mkoctfile to compiler (bug #34169).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
856 { |
24634
ab2321d4ba03
maint: strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
24622
diff
changeset
|
857 // 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
|
858 pass_on_options += (' ' + arg); |
24634
ab2321d4ba03
maint: strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
24622
diff
changeset
|
859 // 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
|
860 // 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
|
861 if (i < argc-2) |
24622
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
862 { |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
863 arg = argv[i+1]; |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
864 if (arg[0] != '-') |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
865 { |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
866 pass_on_options += (' ' + arg); |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
867 i++; |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
868 } |
298c6a6bd869
Accept compound unrecognized arguments to mkoctfile (bug #52928).
Rik <rik@octave.org>
parents:
24534
diff
changeset
|
869 } |
19711
b59aabc08e63
Pass unrecognized '-' arguments through mkoctfile to compiler (bug #34169).
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
870 } |
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
|
871 else |
12174 | 872 { |
18796
dd57ca9ef7e4
Add missing newline to error message from mkoctfile.
Rik <rik@octave.org>
parents:
18364
diff
changeset
|
873 std::cerr << "mkoctfile: unrecognized argument " << arg << std::endl; |
12174 | 874 return 1; |
875 } | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
876 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
877 if (! file.empty () && octfile.empty ()) |
12174 | 878 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
|
879 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
880 |
22459
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
881 if (output_ext == ".mex" |
22599
51b395d24782
maint: strip tabs and trailing whitespace from C++ sources.
John W. Eaton <jwe@octave.org>
parents:
22486
diff
changeset
|
882 && vars["ALL_CFLAGS"].find ("-g") != std::string::npos) |
22459
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
883 { |
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
884 defs += " -DMEX_DEBUG"; |
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
885 } |
6af82fc041a4
Implement Matlab-compatible MEX functions mxAssert and mxAssertS.
Rik <rik@octave.org>
parents:
22412
diff
changeset
|
886 |
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
|
887 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
|
888 && (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
|
889 { |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
890 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
|
891 << std::endl; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
892 return 1; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
893 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
894 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
895 std::string output_option; |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
896 |
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
|
897 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
|
898 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
899 if (! outputfile.empty ()) |
12174 | 900 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
|
901 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
902 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
|
903 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
904 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
|
905 { |
25495
92a64cb5e475
mkoctfile: Prevent invalid string indexing crash.
John W. Eaton <jwe@octave.org>
parents:
25494
diff
changeset
|
906 // 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
|
907 // 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
|
908 // length. |
92a64cb5e475
mkoctfile: Prevent invalid string indexing crash.
John W. Eaton <jwe@octave.org>
parents:
25494
diff
changeset
|
909 |
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
|
910 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
|
911 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
|
912 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
|
913 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
|
914 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
|
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 |
12174 | 917 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
|
918 } |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
919 |
6a292b0fa88c
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: style fixes
John W. Eaton <jwe@octave.org>
parents:
8091
diff
changeset
|
920 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
|
921 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
922 for (const auto& f : cfiles) |
12174 | 923 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
924 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
|
925 |
21927
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
926 octave_unlink_wrapper (dfile.c_str ()); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
927 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
928 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
929 = (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
|
930 + 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
|
931 + 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
|
932 |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
933 // FIXME: Use wide character API for popen on Windows. |
12174 | 934 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
|
935 |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
936 #if defined (OCTAVE_USE_WINDOWS_API) |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
937 // FIXME: liboctinterp isn't linked in to mkoctfile. |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
938 // So we cannot use octave::sys::ofstream. Instead we fall back |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
939 // on using the functions available from libwrappers. |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
940 size_t srclen = dfile.length (); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
941 const uint8_t *src = reinterpret_cast<const uint8_t *> |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
942 (dfile.c_str ()); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
943 |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
944 size_t length = 0; |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
945 wchar_t *wchar = reinterpret_cast<wchar_t *> |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
946 (octave_u8_conv_to_encoding ("wchar_t", src, srclen, |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
947 &length)); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
948 |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
949 std::ofstream fo; |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
950 if (wchar != nullptr) |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
951 { |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
952 fo.open (wchar); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
953 free (static_cast<void *> (wchar)); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
954 } |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
955 else |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
956 fo.open (dfile.c_str ()); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
957 #else |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
958 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
|
959 #endif |
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
|
960 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
|
961 while (! feof (fd)) |
12174 | 962 { |
963 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
|
964 if ((pos = line.rfind (".o:")) != std::string::npos) |
12174 | 965 { |
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
|
966 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
|
967 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
|
968 = (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
|
969 ? 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
|
970 : 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
|
971 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
|
972 << dfile << line.substr (pos) << std::endl; |
12174 | 973 } |
974 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
975 fo << line << std::endl; |
12174 | 976 } |
977 pclose (fd); | |
978 fo.close (); | |
979 } | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
980 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
981 for (const auto& f : ccfiles) |
12174 | 982 { |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
983 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
|
984 |
21927
6f62bd248919
use wrapper functions for mkoctfile and main
John W. Eaton <jwe@octave.org>
parents:
21852
diff
changeset
|
985 octave_unlink_wrapper (dfile.c_str ()); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
986 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
987 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
988 = (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
|
989 + 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
|
990 + 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
|
991 |
29006
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
992 // FIXME: Use wide character API for popen on Windows. |
12174 | 993 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
|
994 |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
995 #if defined (OCTAVE_USE_WINDOWS_API) |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
996 // FIXME: liboctinterp isn't linked in to mkoctfile. |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
997 // So we cannot use octave::sys::ofstream. Instead we fall back |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
998 // on using the functions available from libwrappers. |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
999 size_t srclen = dfile.length (); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1000 const uint8_t *src = reinterpret_cast<const uint8_t *> |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1001 (dfile.c_str ()); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1002 |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1003 size_t length = 0; |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1004 wchar_t *wchar = reinterpret_cast<wchar_t *> |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1005 (octave_u8_conv_to_encoding ("wchar_t", src, srclen, |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1006 &length)); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1007 |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1008 std::ofstream fo; |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1009 if (wchar != nullptr) |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1010 { |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1011 fo.open (wchar); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1012 free (static_cast<void *> (wchar)); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1013 } |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1014 else |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1015 fo.open (dfile.c_str ()); |
139df373c107
Use wide character overload to open file streams on Windows.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28882
diff
changeset
|
1016 #else |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1017 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
|
1018 #endif |
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
|
1019 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
|
1020 while (! feof (fd)) |
12174 | 1021 { |
1022 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
|
1023 if ((pos = line.rfind (".o:")) != std::string::npos) |
12174 | 1024 { |
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
|
1025 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
|
1026 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
|
1027 = (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
|
1028 ? 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
|
1029 : 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
|
1030 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
|
1031 << dfile << line.substr (pos+2) << std::endl; |
12174 | 1032 } |
1033 else | |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1034 fo << line << std::endl; |
12174 | 1035 } |
1036 pclose (fd); | |
1037 fo.close (); | |
1038 } | |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1039 |
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
|
1040 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
|
1041 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1042 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1043 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
|
1044 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1045 if (! vars["F77"].empty ()) |
12174 | 1046 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1047 std::string o; |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1048 if (compile_only) |
12174 | 1049 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1050 if (! outputfile.empty ()) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1051 o = outputfile; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1052 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
|
1053 o = basename (f, true) + ".o"; |
12174 | 1054 } |
1055 else | |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1056 { |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1057 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
|
1058 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1059 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
|
1060 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1061 objfiles += (' ' + o); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1062 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1063 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1064 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1065 = (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
|
1066 + vars["ALL_FFLAGS"] + ' ' + incflags + ' ' + defs + ' ' |
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1067 + pass_on_options + ' ' + f + " -o " + o); |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1068 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1069 int status = run_command (cmd, printonly); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1070 |
25510
2710440ea566
mkoctfile: fix logic error with handling of -c option (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25507
diff
changeset
|
1071 if (status) |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1072 return status; |
12174 | 1073 } |
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
|
1074 else |
12174 | 1075 { |
18796
dd57ca9ef7e4
Add missing newline to error message from mkoctfile.
Rik <rik@octave.org>
parents:
18364
diff
changeset
|
1076 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
|
1077 << std::endl; |
12174 | 1078 return 1; |
1079 } | |
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
|
1080 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1081 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1082 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
|
1083 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1084 if (! vars["CC"].empty ()) |
12174 | 1085 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1086 std::string o; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1087 if (compile_only) |
12174 | 1088 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1089 if (! outputfile.empty ()) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1090 o = outputfile; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1091 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
|
1092 o = basename (f, true) + ".o"; |
12174 | 1093 } |
1094 else | |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1095 { |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1096 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
|
1097 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1098 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
|
1099 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1100 objfiles += (' ' + o); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1101 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1102 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1103 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1104 = (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
|
1105 + 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
|
1106 + pass_on_options + ' ' + incflags + ' ' + defs + ' ' |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1107 + quote_path (f) + " -o " + quote_path (o)); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1108 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1109 int status = run_command (cmd, printonly); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1110 |
25510
2710440ea566
mkoctfile: fix logic error with handling of -c option (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25507
diff
changeset
|
1111 if (status) |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1112 return status; |
12174 | 1113 } |
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
|
1114 else |
12174 | 1115 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1116 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
|
1117 << std::endl; |
12174 | 1118 return 1; |
1119 } | |
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 } |
12174 | 1121 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1122 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
|
1123 { |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20713
diff
changeset
|
1124 if (! vars["CXX"].empty ()) |
12174 | 1125 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1126 std::string o; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1127 if (compile_only) |
12174 | 1128 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1129 if (! outputfile.empty ()) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1130 o = outputfile; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1131 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
|
1132 o = basename (f, true) + ".o"; |
12174 | 1133 } |
1134 else | |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1135 { |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1136 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
|
1137 |
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1138 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
|
1139 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1140 objfiles += (' ' + o); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1141 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1142 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1143 std::string cmd |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23804
diff
changeset
|
1144 = (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
|
1145 + 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
|
1146 + pass_on_options + ' ' + incflags + ' ' + defs + ' ' |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1147 + quote_path (f) + " -o " + quote_path (o)); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1148 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1149 int status = run_command (cmd, printonly); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1150 |
25510
2710440ea566
mkoctfile: fix logic error with handling of -c option (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25507
diff
changeset
|
1151 if (status) |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1152 return status; |
12174 | 1153 } |
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
|
1154 else |
12174 | 1155 { |
18364
2e62b1f01bfe
* mkoctfile.in.cc: Use std:: instead of using declarartion.
John W. Eaton <jwe@octave.org>
parents:
18363
diff
changeset
|
1156 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
|
1157 << std::endl; |
12174 | 1158 return 1; |
1159 } | |
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
|
1160 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1161 |
26422
26be3dc2900f
Use LDFLAGS for mkoctfile linker flags (bug #48678).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1162 // 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
|
1163 |
49d3c6344afe
mkoctfile: fix one more logic error
John W. Eaton <jwe@octave.org>
parents:
25510
diff
changeset
|
1164 if (compile_only) |
49d3c6344afe
mkoctfile: fix one more logic error
John W. Eaton <jwe@octave.org>
parents:
25510
diff
changeset
|
1165 return 0; |
49d3c6344afe
mkoctfile: fix one more logic error
John W. Eaton <jwe@octave.org>
parents:
25510
diff
changeset
|
1166 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1167 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
|
1168 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1169 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
|
1170 return 1; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1171 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1172 |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1173 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
|
1174 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1175 if (link_stand_alone) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1176 { |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
1177 if (! vars["CXXLD"].empty ()) |
12174 | 1178 { |
26612
ab5cc8da283c
mkoctfile: restore LDFLAGS, warn only when LFLAGS used directly (bug #55447)
Mike Miller <mtmiller@octave.org>
parents:
26487
diff
changeset
|
1179 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
|
1180 + ' ' + vars["OCTAVE_LIBS"]; |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1181 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1182 std::string cmd |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
1183 = (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
|
1184 + 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
|
1185 + pass_on_options + ' ' + output_option + ' ' + objfiles + ' ' |
27df9b38391d
mkoctfile.in.cc: Pass linker flags last (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28129
diff
changeset
|
1186 + libfiles + ' ' + vars["ALL_LDFLAGS"] + ' ' + ldflags + ' ' |
27df9b38391d
mkoctfile.in.cc: Pass linker flags last (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28129
diff
changeset
|
1187 + 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
|
1188 + 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
|
1189 |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1190 int status = run_command (cmd, printonly); |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1191 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1192 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
|
1193 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1194 if (status) |
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1195 return status; |
12174 | 1196 } |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1197 else |
12174 | 1198 { |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1199 std::cerr |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1200 << "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
|
1201 << std::endl; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1202 return 1; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1203 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1204 } |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1205 else |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1206 { |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1207 #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
|
1208 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
|
1209 + ' ' + vars["OCTAVE_LIBS"]; |
26431
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1210 #endif |
ff6c90eb6f2d
mkoctfile.in.cc: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26422
diff
changeset
|
1211 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1212 std::string cmd |
27425
633f7a8347c8
Clean up implementation of CXXLD in build scripts (bug #56505).
Rik <rik@octave.org>
parents:
27277
diff
changeset
|
1213 = (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
|
1214 + pass_on_options + " -o " + octfile + ' ' + objfiles + ' ' |
27df9b38391d
mkoctfile.in.cc: Pass linker flags last (bug #59173).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28129
diff
changeset
|
1215 + libfiles + ' ' + vars["DL_LDFLAGS"] + ' ' + vars["LDFLAGS"] + ' ' |
26612
ab5cc8da283c
mkoctfile: restore LDFLAGS, warn only when LFLAGS used directly (bug #55447)
Mike Miller <mtmiller@octave.org>
parents:
26487
diff
changeset
|
1216 + 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
|
1217 + 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
|
1218 |
28048
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1219 #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
|
1220 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
|
1221 cmd += ' ' + vars["FLIBS"]; |
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1222 #endif |
42921bff241a
Fix mkoctfile on Windows platforms when compiling Fortran sources (bug #49548).
Mike Miller <mtmiller@octave.org>
parents:
27934
diff
changeset
|
1223 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1224 int status = run_command (cmd, printonly); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1225 |
25497
18f5f91f7348
mkoctfile: use tmp store tmp .o files in tmp directory (bug #54182)
John W. Eaton <jwe@octave.org>
parents:
25495
diff
changeset
|
1226 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
|
1227 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1228 if (status) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1229 return status; |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1230 } |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1231 |
25494
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1232 if (strip) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1233 { |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1234 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
|
1235 |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1236 int status = run_command (cmd, printonly); |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1237 |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1238 if (status) |
f35bd5cddedd
mkoctfile: disallow -c and -o with multiple source files
John W. Eaton <jwe@octave.org>
parents:
25491
diff
changeset
|
1239 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
|
1240 } |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1241 |
22866
b5cf18f8c18b
style fixes for mkoctfile.cc
John W. Eaton <jwe@octave.org>
parents:
22755
diff
changeset
|
1242 return 0; |
8091
4e7527a7b3f9
mkoctfile.cc.in, octave-config.cc.in, octave-bug.cc.in: new files
Michael Goffioul
parents:
diff
changeset
|
1243 } |