home | help
icmstart(1)	       starts icmbuild program maintenance	     icmstart(1)

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 main-
     tenance, 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) pro-
     grams).  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  (com-
     monly) /usr/lib/icmake.

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

     The icmstart script is a generic script that is used to initialize a direc-
     tory 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 com-
	    mented 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  ~/.ic-
	    make  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 icm-
	    start asks the user to confirm that an existing file must  be  over-
	    written. 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  direc-
	    tory, in which case the skeleton resource file is assumed to be icm-
	    start.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 begin-
     ning 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, con-
     taining:

	 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 follow-
     ing 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 configura-
     tion directory and referred to by the configuration directory's  file  icm-
     start.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  recog-
     nized as skeleton files and are, if available, processed by icmstart.

     If the -c option was specified configuration files found in the path speci-
     fied  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  au-
	    thor 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  pro-
	    gram'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  in-
     stalls 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 Pub-
     lic License (GPL).

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

icmake.9.03.01.tar.gz		    1992-2020			     icmstart(1)

home | help