icmstart(1)
π icmstart(1) β starts icmbuild program maintenance π
β¨ NAME β¨
icmstart β A startup script for icmbuild program maintenance
π¦ SYNOPSIS π¦
icmstart [Options] top-dir [program|library]
πΈ DESCRIPTION πΈ
okay bestie, so icmake-scripts can totally be written from scratch to handle program maintenance, but the required actions are often very comparable. That 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:
-bβ basic installation: the filesVERSION,usage.ccandversion.ccare not installed, and the#define USE_VERSIONentry inicmconfis commented out;-cconfpathβ use the configuration files (icmstart.rc,AUTHOR,YEARSandVERSION) if found inconfpathrather than using the files found in~/.icmakeand/or/etc/icmake/. Once a file is found it is used, allowing partial overrides of the default files provided byicmake(1);-dβ do not execute any commands, but show the commands that would have been executed on the standard output;-Iβ do not install files;-rβ unconditionally replace existing files. If-ris not providedicmstartasks 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;-sskeleton-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 theICMenvironment variable, which -in turn- may be overruled by the path specified with the-soption. 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 beicmstart.rc(see below at SKELETON FILES). Sinceicmstartusescpto install files,cpmust be available whenicmstartshould 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:
- If the file
AUTHORexists 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 "".
- If the file
VERSIONexists 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".
- If the file
YEARSexists 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:
/usr/share/icmake/icmconfExample of aicmbuildconfiguration file;/usr/share/icmake/CLASSESExample of aicmbuildCLASSESfile./etc/icmake/icmstart.rcDefault 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).
signed, sealed, and slaying with icmake.13.07.00, dated 1992-2026 π
π¦ where this page comes from
- arch rolling: icmake 13.07.00-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms