Provided by: icmake_9.02.06-1_amd64 bug


       icmstart - A startup script for icmbuild program maintenance


       icmstart [Options] top-dir [program|library]


       Although  icmake-scripts  can  be  written  from scratch for handling program maintenance,
       often the required actions  are  highly  comparable.  This  observation  resulted  in  the
       construction  of  two  icmake-tools:  icmstart(1),  initializing  a  directory for program
       development and icmbuild(1), handling the actual program maintenance. Both come predefined
       with  icmake’s  distribution,  to  initialize and maintain C++ programs (or, after minimal
       adaptation, C) programs). They can also easily be tailored to other programming languages.
       The  icmstart  script  and  icmbuild program can directly be called: icmstart is an icmake
       script, for which the command-shell calls icmake; icmbuild is a small C program that calls
       icmake to process the icmbuild script in (commonly) /usr/lib/icmake.

       This  man-page  covers  the  icmstart  script;  refer  to  the  icmbuild(1)  man-page  for
       information about how icmbuild can be used.

       The icmstart script is a generic script that can be used to initialize a directory with  a
       basic set of files that are commonly used when developing a C++ or C program.

       Icmstart  creates  an  initial  directory  (here  named  `top-dir’) and installs the files
       CLASSES, VERSION and icmconf below top-dir. A second argument `program’ or  `library’  may
       be specified as the default mode of operation of the icmbuild(1) script, usually resulting
       in the addition of additional skeleton source  files.  If  the  predefined  set  of  files
       doesn’t  fit  your  needs,  then the default set can easily be tailored to your needs. The
       default set of skeleton files is listed in the file /etc/icmake/icmstart.rc. Refer to  the
       icmstart.rc(7)  man-page  for information about how this file is structured and how it can
       be adapted.

       After changing to the directory created by icmstart icmbuild(1) may be  used  for  program


       Icmstart  supports  the following options, which (when specified) must be icmstart’s first

       o      -b
              Basic installation: the files VERSION, and are  not  installed,
              and the #define USE_VERSION entry in icmconf is commented out.

       o      -c confpath
              Use  the  configuration  files (icmstart.rc, AUTHOR, YEARS and VERSION) if found in
              `confpath’ rather than in ~/.icmake and/or /etc/icmake/. Once a file is found it is
              used allowing partial overrides of the default files provided by icmake(1).

       o      -d
              Do not execute any commands, but show the commands that would have been executed on
              the standard output.

       o      -I
              Do not install files.

       o      -r Unconditionally replace existing files. If -r is not provided icmstart will  ask
              the  user  to  confirm  that  an  existing  file must be overwritten. If a skeleton
              specification refers to a directory, the full directory and its subdirectories will
              be replaced.

       o      -s skeleton-path
              By   default   skeleton   files   are   listed   in   the  skeleton  resource  file
              /usr/share/icmake/icmstart.rc. Alternatively, the skeleton  resource  file  may  be
              specified  by the ICM environment variable, which -in turn- may be overruled by the
              path specified with the -s option. The skeleton path may be  specified  as  a  full
              file-path or as a directory, in which case the skeleton resource file is assumed to
              be icmstart.rc (see below at SKELETON FILES).  Since icmstart uses  cp  to  install
              files, cp must be available when icmstart should install skeleton files.


       Skeleton  resource  files  may  contain  comment (empty lines and lines beginning with the
       hash-mark (#)) which is ignored, and should otherwise contain specifications of resource s
       to install.

       The default resource specification file is /etc/icmake/icmstart.rc, containing:

           P main.ih
           P ? scanner
           P ? parser

       This   file  is  overruled  by  ~/.icmake/icmstart.rc.  The  ~/.icmake  directory  (called
       `configuration directory’ below) can be prepared using the following system command:

           cp -r /etc/icmake ~/.icmake

       This directory can be provided with skeleton files. Default skeleton  files  are  commonly
       found  in  /usr/share/icmake,  and  could  be  copied  to  the configuration directory and
       referred to by the configuration directory’s file  icmstart.rc.   See  icmstart.rc(7)  for
       details about how skeleton files can be referred to icmstart.rc.


       The  configuration directory’s files icmstart.rc, AUTHOR, YEARS and VERSION are recognized
       as skeleton files and are, if available, processed by icmstart.

       If the -c option was specified configuration files found in the  path  specified  at  this
       option  are  used.  If  not  specified  or if a file isn’t found then the path ~/icmake is
       inspected. If a configuration file isn’t found in ~/icmake either, configuration files  in
       /etc/icmake are used.

       Configuration  files  are  optional;  if absent  icmstart can still be used, but in normal
       cases at least icmstart.rc is provided.

       In addition to icstart.rc consider defining the files AUTHOR, VERSION, and  YEARS  in  the
       configuration directory:

       o      If  the  file  AUTHOR  exists  it  should have one line, defining the author of the
              program. E.g.,

                  #define AUTHOR "Frank B. Brokken <>"

              If it does not exist icmstart uses the default #define AUTHOR "".

       o      If the file VERSION exists it should have one line, defining the program’s version.

                  #define VERSION "1.00.00"

              If it does not exist icmstart uses the default #define VERSION "0.00.00".

       o      If  the  file  YEARS exists it should have one line, defining the program’s initial
              release year or range of release years. E.g.,

                  #define YEARS "2016"

              or a range of years can be defined:

                  #define YEARS "1992-2016"

              If it does not exist icmstart uses the default #define YEARS "yyyy" where  yyyy  is
              the current year.

       The  AUTHOR,  VERSION, and YEARS definitions are concatenated to one file, called VERSION,
       which is installed in the top-level directory.

       If the file icmstart.rc does  not  exist  (or  is  empty)  icmstart  merely  installs  the
       top-level directory, icmconf and VERSION.


       The mentioned paths are sugestive only and may be installation dependent:

       o      /usr/share/icmake/icmconf Example of a icmbuild configuration file;

       o      /usr/share/icmake/CLASSES Example of a icmbuild CLASSES file.

       o      /etc/icmake/icmstart.rc Default skeleton resource file.


       icmake(1), icmbuild(1), icmconf(7), icmstart.rc(7).


       None reported


       This  is  free  software,  distributed  under  the terms of the GNU General Public License


       Frank B. Brokken (