OOMMF Home next up previous contents index
Next: Oxs regression tests: oxsregression Up: Command Line Utilities Previous: ODT Column Extraction: odtcols

Oxs package management: oxspkg

The oxspkg command is used to manage optional Oxs extension packages. Each package is stored in a separate directory under oommf/app/oxs/contrib/. These packages can be ``installed'' and ``uninstalled'' to and from the oommf/app/oxs/local/ directory by the oxspkg command. The install is a simple copy that does not automatically build the package or link it into the Oxs executable--a separate invocation of pimake is needed for that.

The oxspkg launch command is:

tclsh oommf.tcl oxspkg list
tclsh oommf.tcl oxspkg listfiles pkg [pkg ...]
tclsh oommf.tcl oxspkg install [-v] [-nopatch] pkg [pkg ...]
tclsh oommf.tcl oxspkg uninstall pkg [pkg ...]
tclsh oommf.tcl oxspkg copyout pkg [pkg ...] destination
Glob-style wildcards (*, ?) or the keyword all are accepted in package specifications. (If your command shell expands wildcards, as is common on Unix systems, then you may need to escape or quote the wildcards so that they are passed unadulterated to the oxspkg program.) The first argument following the oxspkg keyword is one of the sub-commands list, listfiles, install, uninstall, or copyout:
Lists all the packges available under oommf/app/oxs/contrib/, how many (installable) files are in each package, and the package install status.
listfiles pkg [pkg ...]
List each of the ``installable'' files for the selected package. (There may be additional files for the package, e.g. README or files with versioning information, included in the oommf/app/oxs/contrib/<pkg>/ directory. However, those files are ignored by the oxspkg install command.)
install [-v] [-nopatch] pkg [pkg ...]
Install (copies) the installable files for the selected package from oommf/app/oxs/contrib/ to oommf/app/oxs/local/. This command does not to compile the files or link them into the Oxs executable. The user is responsible for making a separate call to pimake to build and link the package.

For third-party packages, the contents of the oommf/app/oxs/contrib/<pkg>/ directory will mirror some release of the package from the official maintainer of the package. If those files don't compile cleanly against the current OOMMF distribution, then a patch file will be included in the parent oommf/app/oxs/contrib/ directory. Normally that patch file (if any) is automatically applied as part of the installation procedure. The -nopatch option skips the patch step. Note: The patch step requires that a patch command exists on the system executable search path. patch is a standard system utility on Unix systems. Versions of patch for Windows are available, such as the one from the GnuWin project. If there are no patches for a particular package, then the message No patches found will be reported during the install process.

The -v option requests more verbose output.

uninstall pkg [pkg ...]
Deletes all files in oommf/app/oxs/local/ associated with the selected package. Here ``associated'' means a file name match with a file in the package directory oommf/app/oxs/contrib/<pkg>/. There is no checking of contents or timestamps between the files.
copyout pkg [pkg ...] destination
Selects files in the same manner as the uninstall command, but rather than deleting the files instead copies them to the destination directory. This is intended as a development aid for creating patches for packages.

Most of the optional packages controlled by oxspkg are from third-party contributors. However, some may originate with the OOMMF core development team, but are made optional because they require third-party libraries or are considered too experimental to be included among the standard OOMMF packages. See the README file in the various oommf/app/oxs/contrib/<pkg>/ directories for details.

OOMMF Home next up previous Contents index

OOMMF Documentation Team
May 11, 2021