Mercurial > hg > octave-lyh
changeset 5695:f6ddb906e30f
[project @ 2006-03-20 18:34:13 by jwe]
author | jwe |
---|---|
date | Mon, 20 Mar 2006 18:34:13 +0000 |
parents | 95d90f781ca8 |
children | 70cc04f9af41 |
files | scripts/ChangeLog scripts/miscellaneous/mkoctfile.m |
diffstat | 2 files changed, 103 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,8 @@ +2006-03-20 Keith Goodman <kwgoodman@gmail.com> + + * miscellaneous/mkoctfile.m: Make it possible to call mkoctfile + shell script from Octave prompt. + 2006-03-17 John W. Eaton <jwe@octave.org> * deprecated/weibcdf.m, deprecated/weibinv.m,
--- a/scripts/miscellaneous/mkoctfile.m +++ b/scripts/miscellaneous/mkoctfile.m @@ -18,19 +18,108 @@ ## 02110-1301, USA. ## -*- texinfo -*- -## @deftypefn {Function File} {} mkoctfile () -## The @code{mkoctfile} shell script compiles source code written in C, -## C++, or Fortran. Depending on the command-line options used with -## @code{mkoctfile}, the compiled code can be called within Octave or -## can be used as a stand-alone application. +## @deftypefn {Function File} {} mkoctfile [-options] file ... +## +## The @code{mkoctfile} function compiles source code written in C, +## C++, or Fortran. Depending on the options used with @code{mkoctfile}, the +## compiled code can be called within Octave or can be used as a stand-alone +## application. +## +## @code{mkoctfile} can be called from the shell prompt or from the Octave +## prompt. +## +## @code{mkoctfile} accepts the following options, all of which are optional +## except for the file name of the code you wish to compile: +## +## @table @samp +## @item -I DIR +## Add the include directory DIR to compile commands. +## +## @item -D DEF +## Add the definition DEF to the compiler call. +## +## @item -l LIB +## Add the library LIB to the link command. +## +## @item -L DIR +## Add the library directory DIR to the link command. +## +## @item -M|--depend +## Generate dependency files (.d) for C and C++ source files. +## +## @item -c +## Compile but do not link. +## +## @item -o FILE|--output FILE +## Output file name; by default extension is .oct. +## +## @item -p VAR|--print VAR +## Print the configuration variable VAR. Recognized variables are: ## -## Run @code{mkoctfile} from the shell prompt, not from the Octave prompt. +## @example +## ALL_CFLAGS FFTW_LIBS +## ALL_CXXFLAGS FLIBS +## ALL_FFLAGS FPICFLAG +## ALL_LDFLAGS INCFLAGS +## BLAS_LIBS LDFLAGS +## CC LD_CXX +## CFLAGS LD_STATIC_FLAG +## CPICFLAG LFLAGS +## CPPFLAGS LIBCRUFT +## CXX LIBOCTAVE +## CXXFLAGS LIBOCTINTERP +## CXXPICFLAG LIBREADLINE +## DEPEND_EXTRA_SED_PATTERN LIBS +## DEPEND_FLAGS OCTAVE_LIBS +## DL_LD RDYNAMIC_FLAG +## DL_LDFLAGS RLD_FLAG +## F2C SED +## F2CFLAGS XTRA_CFLAGS +## F77 XTRA_CXXFLAGS +## FFLAGS +## @end example ## -## See the man or info page of @code{mkoctfile} for a full description. +## @item -s|--strip +## Strip the output file. +## +## @item -v|--verbose +## Echo commands as they are executed. +## +## @item file +## The file to compile or link. Recognised file types are +## +## @example +## .c C source +## .cc C++ source +## .C C++ source +## .cpp C++ source +## .f Fortran source +## .F Fortran source +## .o object file +## @end example +## +## @end table ## @end deftypefn -function mkoctfile () +## PKG_ADD: mark_as_command mkoctfile + +function mkoctfile (varargin) - error ("run mkoctfile from the shell prompt, not from the Octave prompt"); + mkoctpath = strcat (octave_config_info.bindir, filesep, "mkoctfile"); + + options = ""; + for i = 1:nargin + options = strcat (options, " ", varargin{i}); + endfor + + cmd = strcat (mkoctpath, options); + + status = system (cmd); + + if (status == 127) + warning ("unable to find mkoctfile in expected location: %s", mkoctpath); + elseif (status != 0) + warning ("mkoctfile exited with failure status"); + endif endfunction