Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


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

       icmstart	- A startup script for icmbuild	program	maintenance

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

       Although	 icmake-scripts	 can be	written	from scratch for handling pro-
       gram maintenance, often the required  actions  are  highly  comparable.
       This observation	resulted in the	construction of	two icmake-tools: icm-
       start(1), initializing a	directory for  program	development  and  icm-
       build(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  icm-
       build 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)

       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  de-
       veloping	a C++ or C program.

       Icmstart	 creates  an  initial directory	(here named `top-dir') and in-
       stalls 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  in-
       formation 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.

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

       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 VER-
	      SION) 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	direc-
	      tory, the	full directory and  its	 subdirectories	 will  be  re-

       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 be-
       ginning 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,

	   P main.ih
	   P ? scanner
	   P ? parser

       This file is overruled by ~/.icmake/icmstart.rc.	The  ~/.icmake	direc-
       tory (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	direc-
       tory'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 VER-
       SION  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

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

		  #define VERSION "1.00.00"

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

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

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

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

       Path names containing blanks are	not supported.

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

       Frank B.	Brokken	(

icmake.9.02.07.tar.gz		   1992-2018			   icmstart(1)


Want to link to this manual page? Use this URL:

home | help