Provided by: icmake_9.03.01-1_amd64 bug

NAME

       icmstart - A startup script for icmbuild program maintenance

SYNOPSIS

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

DESCRIPTION

       Although  icmake-scripts  can  be  written from scratch to handle 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 calling icmake to
       process the icmbuild script in (commonly) /usr/lib/icmake.

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

       The  icmstart script is a generic script that is 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 adding additional skeleton source files. If the
       predefined  set of files doesn’t fit your needs, then the default set can easily be modified. 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 switching to the directory created by icmstart icmbuild(1) may be used for program maintenance.

OPTIONS

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

       o      -b
              basic  installation: the files VERSION, usage.cc and version.cc 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  using  the  files  found  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 asks 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 are 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 FILES

       Skeleton resource files may contain comment (empty lines and lines beginning  with  the  hash-mark  (#)).
       Comment lines are ignored. Otherwise, lines should contain specifications of resource s to be installed.

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

           CLASSES
           icmconf
           P main.cc
           P main.ih
           P usage.cc
           P version.cc
           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  also  contain  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.

CONFIGURATION FILES

       The  configuration 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 <f.b.brokken@rug.nl>"

              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. E.g.,

                  #define VERSION "1.00.00"

              If it does not exist icmstart uses the default:
              #define VERSION "0.01.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 "2020"

              or a range of years can be defined:

                  #define YEARS "1992-2020"

              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, 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.

FILES

       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.

SEE ALSO

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

BUGS

       Path names containing blanks are not supported.

COPYRIGHT

       This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).