MKOCTFILE(1)

πŸ’… mkoctfile β€” the girlies' guide (manual page, General Commands Manual, section 1)

okay so bestie, welcome to mkoctfile, and yes the name is literally "make oct file" squished together, she's efficient like that πŸ’–


✨ NAME ✨

mkoctfile β€” Compile dynamic-load modules for GNU Octave πŸ¦‹


🌸 SYNOPSIS 🌸

mkoctfile [OPTION]... file...

πŸŽ€ DESCRIPTION πŸŽ€

So like, mkoctfile is the girl you call when you have C, C++, or Fortran source code and you need it to become a dynamically loadable .oct file for octave(1). That's it. That's the whole job. She takes your little source files and turns them into the thing Octave can actually load and run. Iconic behavior, no notes πŸ’…


✨ OPTIONS ✨

  • -h, -?, --help β€” Print help message. She'll tell you what she can do πŸ’–
  • -Idir β€” Add include directory dir to compile commands.
  • -idirafterdir β€” Add include directory to second include search path after -I. Second place is still a place bestie 🫢
  • -Ddef β€” Add definition def to compiler command.
  • -llib β€” Add library lib to link command.
  • -Ldir β€” Add library directory dir to link command.
  • -Rdir β€” Pass -Rdir to link command.
  • -g β€” Enable debugging option for all compilers. For when you need to see exactly what went wrong 😭
  • -pthread β€” Add -pthread to link command.
  • -W... β€” Pass flags to the compiler such as -Wa,OPTION.
  • -Wl,... β€” Pass flags to the linker such as -Wl,-rpath=....
  • -M, --depend β€” Generate dependency files (.d) for C and C++ source files.
  • -c β€” Compile but do not link. She does half the job and she does it well ✨
  • --link-stand-alone β€” Link a stand-alone executable file.
  • -s, --strip β€” Strip the output file.
  • --mex β€” Create a MEX file. Set the default output extension to .mex.
  • -o file, --output file β€” Output filename. Default extension is .oct (or .mex if --mex is specified) unless linking a stand-alone executable.
  • -p VAR, --print VAR β€” Print configuration variable VAR. There are three categories of variables:
    • Octave configuration variables that users may override with environment variables. These are used in commands that mkoctfile executes.
ALL_CFLAGS                  INCLUDEDIR
ALL_CXXFLAGS                LAPACK_LIBS
ALL_FFLAGS                  LDFLAGS
ALL_LDFLAGS                 LD_STATIC_FLAG
BLAS_LIBS                   LFLAGS
CC                          LIBDIR
CFLAGS                      LIBOCTAVE
CPICFLAG                    LIBOCTINTERP
CPPFLAGS                    OCTAVE_LINK_OPTS
CXX                         OCTINCLUDEDIR
CXXFLAGS                    OCTAVE_LIBS
CXXLD                       OCTAVE_LINK_DEPS
CXXPICFLAG                  OCTLIBDIR
DL_LDFLAGS                  OCT_LINK_DEPS
F77                         OCT_LINK_OPTS
F77_INTEGER8_FLAG           RDYNAMIC_FLAG
FFLAGS                      SPECIAL_MATH_LIB
FPICFLAG                    XTRA_CFLAGS
INCFLAGS                    XTRA_CXXFLAGS
  • Octave configuration variables as above, but currently unused by mkoctfile. They're just sitting there, existing, being cute 🧚
AR
DEPEND_EXTRA_SED_PATTERN
DEPEND_FLAGS
FFTW3F_LDFLAGS
FFTW3F_LIBS
FFTW3_LDFLAGS
FFTW3_LIBS
FFTW_LIBS
FLIBS
LIBS
RANLIB
READLINE_LIBS
  • Octave configuration variables that are provided for informational purposes only. Except for OCTAVE_HOME and OCTAVE_EXEC_HOME, users may not override these variables.
okay listen, this part is important: if OCTAVE_HOME or OCTAVE_EXEC_HOME are set in the environment, then other variables are adjusted accordingly with OCTAVE_HOME or OCTAVE_EXEC_HOME substituted for the original value of the directory specified by the --prefix or --exec-prefix options that were used when Octave was configured. It's giving "everything is connected" 🌈
API_VERSION                 LOCALARCHLIBDIR
ARCHLIBDIR                  LOCALFCNFILEDIR
BINDIR                      LOCALOCTFILEDIR
CANONICAL_HOST_TYPE         LOCALSTARTUPFILEDIR
DATADIR                     LOCALVERARCHLIBDIR
DATAROOTDIR                 LOCALVERFCNFILEDIR
DEFAULT_PAGER               LOCALVEROCTFILEDIR
EXEC_PREFIX                 MAN1DIR
EXEEXT                      MAN1EXT
FCNFILEDIR                  MANDIR
IMAGEDIR                    OCTAVE_EXEC_HOME
INCLUDEDIR                  OCTAVE_HOME
INFODIR                     OCTDATADIR
INFOFILE                    OCTDOCDIR
LIBDIR                      OCTFILEDIR
LIBEXECDIR                  OCTFONTSDIR
LOCALAPIARCHLIBDIR          OCTINCLUDEDIR
LOCALAPIFCNFILEDIR          OCTLIBDIR
LOCALAPIOCTFILEDIR          STARTUPFILEDIR
LOCALAPIPKGDIR              VERSION
  • -v, --verbose β€” Echo commands as they are executed. She'll narrate her whole process for you, main character energy πŸ‘‘
  • file β€” Compile or link file. Recognized file types are:
.c    C source
.cc   C++ source
.cp   C++ source
.cpp  C++ source
.CPP  C++ source
.cxx  C++ source
.c++  C++ source
.C    C++ source
.f    Fortran source (fixed form)
.F    Fortran source (fixed form)
.f90  Fortran source (free form)
.F90  Fortran source (free form)
.o    object file
.a    library file

πŸ’œ AUTHOR πŸ’œ

John W. Eaton <jwe@octave.org> β€” the legend himself 🫢

This manual page was contributed by Dirk Eddelbuettel <edd@debian.org> for the Debian GNU/Linux distribution but may be used by others. Sharing is caring fr fr πŸŽ€


🌈 SEE ALSO 🌈

octave (1).


and that's the whole page bestie!! this one came from GNU Octave, dated 3 January 2014 β€” yes she's an elder but she still eats πŸ’…βœ¨ no cap, go compile something gorgeous πŸ¦‹πŸ’–πŸŒΈ

πŸ“¦ where this page comes from