Mercurial > hg > octave-lyh
changeset 14121:6a59b271cd91 stable
mkoctfile.m: Return the output and exit status from the mkoctfile shell command
author | Jordi Gutiérrez Hermoso <jordigh@octave.org> |
---|---|
date | Thu, 29 Dec 2011 09:53:33 -0500 |
parents | 0a051c406242 |
children | c299bb9f0ad0 |
files | scripts/miscellaneous/mkoctfile.m |
diffstat | 1 files changed, 13 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/miscellaneous/mkoctfile.m +++ b/scripts/miscellaneous/mkoctfile.m @@ -18,6 +18,7 @@ ## -*- texinfo -*- ## @deftypefn {Command} {} mkoctfile [-options] file @dots{} +## @deftypefnx {Function File} {[@var{output}, @var{status} =} mkoctfile (@dots{}) ## ## The @code{mkoctfile} function compiles source code written in C, ## C++, or Fortran. Depending on the options used with @code{mkoctfile}, the @@ -25,7 +26,9 @@ ## application. ## ## @code{mkoctfile} can be called from the shell prompt or from the Octave -## prompt. +## prompt. Calling it from the Octave prompt simply delegates the +## call to the shell prompt. The output is stored in the @var{output} +## variable and the exit status in the @var{status} variable. ## ## @code{mkoctfile} accepts the following options, all of which are optional ## except for the file name of the code you wish to compile: @@ -137,7 +140,7 @@ ## @end table ## @end deftypefn -function mkoctfile (varargin) +function [output, status] = mkoctfile (varargin) bindir = octave_config_info ("bindir"); @@ -148,9 +151,15 @@ cmd = cstrcat (cmd, " \"", varargin{i}, "\""); endfor - status = system (cmd); + [sys, out] = system (cmd); - if (status == 127) + if (nargout > 0) + [output, status] = deal (out, sys); + else + printf ("%s", out); + endif + + if (sys == 127) warning ("unable to find mkoctfile in expected location: `%s'", shell_script);