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	Mon Mar 20 18:30:21 2006 +0000
+++ b/scripts/ChangeLog	Mon Mar 20 18:34:13 2006 +0000
@@ -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	Mon Mar 20 18:30:21 2006 +0000
+++ b/scripts/miscellaneous/mkoctfile.m	Mon Mar 20 18:34:13 2006 +0000
@@ -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