Provided by: icmake_13.02.00-1ubuntu1_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 very  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/libexec/icmake.

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

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

       Icmstart  creates  an  initial directory (here named `top-dir’) installing 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) can 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 normally 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 "2024"

              or a range of years can be defined:

                  #define YEARS "1992-2024"

              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 combined in 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).

icmake.13.02.00                                     1992-2025                                        icmstart(1)