HTML automatically generated with rman
Table of Contents


mknemo - attempt to find NEMO (and related) programs and install them


mknemo program(s)


mknemo attempts to find the source code of the program(s) specified on the command line, and tries to compile them. If successfull, the binary will be placed in $NEMOBIN. Add the ’-u’ flag if your NEMO is under git control, so you can force an update before the build.

Finding the method how to install program takes several paths:

First, if a file $NEMO/src/scripts/mknemo.d/program exists, it is assumed to be a shell script with directions how to install this program. gyrfalcON is an example of such a complex program. In this case program can also be a package name, in which case the script will be more complex.

Next, within the $NEMO/src (optionally also the $NEMO/usr tree) a source file program.c (or C++ or Fortran) is looked for, which is compiled with a local Makefile (or a template if none is available). tsf is an example of this type of program, but also more specialized plotting programs such as snapplot or orboom, which need an extra 3rd party library.

Finally, if still no source code is found, a directory with the name program is searched for, and a local Makefile is then used to install the program. hackcode1 is an example of this type of program.

Initially mknemo was nothing more than a convenience tool to build (new) binaries from your working directory, without having to remember where the source code lived... but since it has also acquired being a semi-package manager, it should be mentioned there are many other options to solve this problem.


  -c CODE   search for CODE.c to set the directory for target(s)
  -n N      selection of N-th element from unresolved list [1]
  -s DIR    root directory to start search [$NEMO/src]
  -r        remove lockfile before starting
  -d        also make doc file (only for true NEMO programs)
  -t        cleanup after having made the binaries
  -T        cleanup before making the binaries
  -u        update your NEMO git tree before (re)making
  -l        update the library before (re)making
  -L        force recompile the library before (re)making
  -g        use gmake, instead of make
  -a        also search $NEMO/usr 
  -v        more verbose, it will report version and cvsid of program (deprecated)
  -D        show special projects from the mknemo.d directory


All compile flags and libraries that are used should have been configured in the $NEMOLIB/makedefs file. Here are some critical programs that you could use to test if that specific library was properly referenced in makedefs:
heated_plate_openmp    openmp
cfitsio                sdfits  (no test data present in NEMO)
fftw                -
gsl                -
hdf4                tsd (no test data present in NEMO) - hdf.h
hdf5                orboom eaglesnap (but needs install in $NEMO/usr/eagle)
miriad                -
pgplot                via YAPP_PGPLOT
plplot                  via YAPP_PLPLOT
png                 via YAPP_PGPLOT
yapp                tabhist
If any of these fail for obvious reasons, you can try and fix them by rerunning configure and comparing $NEMOLIB/makedefs with $NEMO/makedefs, or simply editing $NEMOLIB/makedefs directly.


Here are some examples of the non-default control files in $NEMO/src/scripts/mknemo.d:
firstn        the very first (?) nbody code
glnemo2       glnemo graphics
gyrfalcON       falcON tools (gyrfalcON, mkplum, the acc’s and manip’s)
rotcur        rotcur program (there is also a confusing rotcur potential(5NEMO))
galaxy15    Sellwood’s GALAXY V15.
cfitsio        CFITSIO library
For a 3rd party library system type library, such as cfitsio, the sources will be under $NEMO/local, and being built with --prefix=$NEMO/opt.


The mknemo attempts to (re)install a program or package for NEMO, but there is no guarentee this works. For programs it typically depends on a matching sourcecode (e.g. name.c) and a proper Makefile in the directory where this code lives, or in more complicated cases, a matching script name in $NEMO/src/scripts/mknemo.d

See Also

bake(8NEMO) , mkbin(8NEMO)


Peter Teuben


$NEMO/src/scripts/mknemo.d    directory with non-default control files for mknemo
$NEMO/src/scripts/template    NEMO program template generator
$NEMO/src/scripts/mkman        NEMO man page template generator
$NEMOLIB/makedefs    make variables
$NEMOLIB/libnemo.a    main NEMO library
$NEMOLIB/yapp*.o    various device drivers
$NEMO/src              source tree searched for programs/directories
$NEMO/adm/install/mknemo.log    logfile of all previous installs done
$NEMO/adm/install/mknemo.lock    lockfile, to prevent multiple usage
$NEMO/local/<package>        source of a <package>
$NEMO/opt/{bin,include,lib}    --prefix location of <package> binaries and headers
for public use

Update History

21-jun-91    V1.0: doc created           PJT
25-jun-91    V1.1: added lockfile         PJT
4-apr-01    V1.3: added extension making for NEMO V3    PJT
20-jun-03    V1.4: added -u flag    PJT
16-dec-03    V1.5: added -l flag, also cloned sbin/mkstarlab    PJT
11-jun-04    V2.4: added -a flag    PJT
11-apr-2019    V4.0: git based
dec-2019    document critical binaries    PJT
jul-2020    added -L options, switch -L and -l meaning    PJT

Table of Contents