bionic (1) icmstart.1.gz

Provided by: icmake_9.02.06-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 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 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  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 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:

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

CONFIGURATION FILES

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

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

       None reported

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

AUTHOR

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