Mercurial > octave-antonio
annotate scripts/miscellaneous/mkoctfile.m @ 13025:4a86826dbb0e
maint: remove remaining references to RLD_FLAG
* mkoctfile.m: Update docstring.
* mkoctfile.1: Update list of variables for --print option.
* mkoctfile.in, mkoctfile.cc.in: Delete remaining references to
RLD_FLAG.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 29 Aug 2011 11:56:42 -0400 |
parents | 00fbb05f099c |
children | 6a59b271cd91 |
rev | line source |
---|---|
11523 | 1 ## Copyright (C) 2006-2011 Keith Goodman |
5671 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
5671 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
5671 | 18 |
19 ## -*- texinfo -*- | |
11563
3c6e8aaa9555
Grammarcheck m-files before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11523
diff
changeset
|
20 ## @deftypefn {Command} {} mkoctfile [-options] file @dots{} |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
21 ## |
5695 | 22 ## The @code{mkoctfile} function compiles source code written in C, |
23 ## C++, or Fortran. Depending on the options used with @code{mkoctfile}, the | |
24 ## compiled code can be called within Octave or can be used as a stand-alone | |
25 ## application. | |
26 ## | |
27 ## @code{mkoctfile} can be called from the shell prompt or from the Octave | |
28 ## prompt. | |
29 ## | |
30 ## @code{mkoctfile} accepts the following options, all of which are optional | |
31 ## except for the file name of the code you wish to compile: | |
32 ## | |
33 ## @table @samp | |
34 ## @item -I DIR | |
35 ## Add the include directory DIR to compile commands. | |
36 ## | |
37 ## @item -D DEF | |
38 ## Add the definition DEF to the compiler call. | |
39 ## | |
40 ## @item -l LIB | |
41 ## Add the library LIB to the link command. | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
42 ## |
5695 | 43 ## @item -L DIR |
44 ## Add the library directory DIR to the link command. | |
45 ## | |
6573 | 46 ## @item -M |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
47 ## @itemx --depend |
5695 | 48 ## Generate dependency files (.d) for C and C++ source files. |
10996
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
49 ## |
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
50 ## @item -R DIR |
11575
d6619410e79c
Spellcheck documentation before 3.4 release.
Rik <octave@nomad.inbox5.com>
parents:
11563
diff
changeset
|
51 ## Add the run-time path to the link command. |
10996
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
52 ## |
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
53 ## @item -Wl,@dots{} |
12753
00fbb05f099c
Backout 2c54fde0f397 on stable; broke Octave-Forge packages
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
12662
diff
changeset
|
54 ## Pass flags though the linker like "-Wl,-rpath=@dots{}". |
10996
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
55 ## The quotes are needed since commas are interpreted as command |
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
56 ## separators. |
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
57 ## |
12753
00fbb05f099c
Backout 2c54fde0f397 on stable; broke Octave-Forge packages
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
12662
diff
changeset
|
58 ## @item -W@dots{} |
00fbb05f099c
Backout 2c54fde0f397 on stable; broke Octave-Forge packages
Jordi Gutiérrez Hermoso <jordigh@gmail.com>
parents:
12662
diff
changeset
|
59 ## Pass flags though the compiler like "-Wa,OPTION". |
10996
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
60 ## |
5695 | 61 ## @item -c |
62 ## Compile but do not link. | |
63 ## | |
5904 | 64 ## @item -g |
65 ## Enable debugging options for compilers. | |
66 ## | |
6573 | 67 ## @item -o FILE |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
68 ## @itemx --output FILE |
5904 | 69 ## Output file name. Default extension is .oct |
12175
2090995ca588
Correct en-dash,em-dash instances in docstrings.
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
70 ## (or .mex if @samp{--mex} is specified) unless linking |
5904 | 71 ## a stand-alone executable. |
5695 | 72 ## |
6573 | 73 ## @item -p VAR |
74 ## @itemx --print VAR | |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
75 ## Print the configuration variable VAR@. Recognized variables are: |
5671 | 76 ## |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
77 ## @example |
13025
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
78 ## ALL_CFLAGS FFTW3F_LIBS |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
79 ## ALL_CXXFLAGS FLIBS |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
80 ## ALL_FFLAGS FPICFLAG |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
81 ## ALL_LDFLAGS INCFLAGS |
13025
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
82 ## BLAS_LIBS LAPACK_LIBS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
83 ## CC LDFLAGS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
84 ## CFLAGS LD_CXX |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
85 ## CPICFLAG LD_STATIC_FLAG |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
86 ## CPPFLAGS LFLAGS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
87 ## CXX LIBCRUFT |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
88 ## CXXFLAGS LIBOCTAVE |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
89 ## CXXPICFLAG LIBOCTINTERP |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
90 ## DEPEND_EXTRA_SED_PATTERN LIBS |
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
91 ## DEPEND_FLAGS OCTAVE_LIBS |
13025
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
92 ## DL_LD OCTAVE_LINK_DEPS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
93 ## DL_LDFLAGS OCT_LINK_DEPS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
94 ## EXEEXT RDYNAMIC_FLAG |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
95 ## F77 READLINE_LIBS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
96 ## F77_INTEGER_8_FLAG SED |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
97 ## FFLAGS XTRA_CFLAGS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
98 ## FFTW3_LDFLAGS XTRA_CXXFLAGS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
99 ## FFTW3_LIBS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
100 ## FFTW3F_LDFLAGS |
4a86826dbb0e
maint: remove remaining references to RLD_FLAG
John W. Eaton <jwe@octave.org>
parents:
12753
diff
changeset
|
101 ## |
5695 | 102 ## @end example |
5671 | 103 ## |
5745 | 104 ## @item --link-stand-alone |
105 ## Link a stand-alone executable file. | |
106 ## | |
5904 | 107 ## @item --mex |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
108 ## Assume we are creating a MEX file. Set the default output extension |
5904 | 109 ## to ".mex". |
110 ## | |
6573 | 111 ## @item -s |
112 ## @itemx --strip | |
5695 | 113 ## Strip the output file. |
114 ## | |
6573 | 115 ## @item -v |
116 ## @itemx --verbose | |
5695 | 117 ## Echo commands as they are executed. |
118 ## | |
119 ## @item file | |
9080
ec41eabf4499
Cleanup documentation files dynamic.texi, testfun.texi, tips.texi
Rik <rdrider0-list@yahoo.com>
parents:
9051
diff
changeset
|
120 ## The file to compile or link. Recognized file types are |
5695 | 121 ## |
122 ## @example | |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
123 ## @group |
5695 | 124 ## .c C source |
125 ## .cc C++ source | |
126 ## .C C++ source | |
127 ## .cpp C++ source | |
10996
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
128 ## .f Fortran source (fixed form) |
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
129 ## .F Fortran source (fixed form) |
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
130 ## .f90 Fortran source (free form) |
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
131 ## .F90 Fortran source (free form) |
5695 | 132 ## .o object file |
10996
72640afb02b9
mkoctfile.m: Change help text to be consistent with the shell version.
Ben Abbott <bpabbott@mac.com>
parents:
10793
diff
changeset
|
133 ## .a library file |
9051
1bf0ce0930be
Grammar check TexInfo in all .m files
Rik <rdrider0-list@yahoo.com>
parents:
8920
diff
changeset
|
134 ## @end group |
5695 | 135 ## @end example |
136 ## | |
137 ## @end table | |
5671 | 138 ## @end deftypefn |
139 | |
5695 | 140 function mkoctfile (varargin) |
5671 | 141 |
5696 | 142 bindir = octave_config_info ("bindir"); |
143 | |
144 shell_script = fullfile (bindir, sprintf ("mkoctfile-%s", OCTAVE_VERSION)); | |
145 | |
7540
3422f39573b1
strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents:
7017
diff
changeset
|
146 cmd = cstrcat ("\"", shell_script, "\""); |
5695 | 147 for i = 1:nargin |
7540
3422f39573b1
strcat.m: Matlab compatibility, with cstrcat.m replacing conventional strcat.m.
Ben Abbott <bpabbott@mac.com>
parents:
7017
diff
changeset
|
148 cmd = cstrcat (cmd, " \"", varargin{i}, "\""); |
5695 | 149 endfor |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11575
diff
changeset
|
150 |
5695 | 151 status = system (cmd); |
152 | |
153 if (status == 127) | |
5696 | 154 warning ("unable to find mkoctfile in expected location: `%s'", |
10549 | 155 shell_script); |
6706 | 156 |
5695 | 157 warning ("mkoctfile exited with failure status"); |
158 endif | |
5671 | 159 |
160 endfunction |