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

FreeBSD Manual Pages

  
 
  

home | help
C_INCL(1)		    General Commands Manual		     C_INCL(1)

NAME
	c_incl - determine dependencies

SYNOPSIS
	c_incl [ option...  ] filename
	c_incl -Help
	c_incl -VERSion

DESCRIPTION
	The c_incl program is used to traverse source files looking for
	include	dependencies suitable for [collect]ion or #include-cooked-ing
	by cook.

	The filename ``-'' is understood to mean the standard input.  When you
	use this file name, caching is ignored.

	Several	input languages	are supported, see the options list for
	details.

OPTIONS
	The following options are understood.

	-C	The source file	is a C source file.  It	is assumed that	it
		will have the dependencies resolved by the cpp(1) command.
		The same include semantics as the cpp(1) command will be
		employed.  This	is the default.	 This is short-hand for
		``--language=c''

	--Language=name
		This option may	be used	to specify the language	of the source
		file.  Know names include ``C'', ``M4'', ``optimistic''	and
		``roff''.

		The ``optimistic'' language will take on almost	anything.  It
		accepts	an include keyword in any case,	including mixed, with
		leading	white space, but at most one leading punctuation
		character.  It assumes that the	filename follows the include
		keyword	and does not contain white space, and does not start
		or end with punctuation	characters (it strips off any it may
		find).	The rest of the	line is	ignored.  The drawback is that
		it will	sometimes recognise commands and other text as
		unintended include directives, hence the name.	This is	often
		used to	recognise include directives in	a wide variety of
		assembler input.

	-Roff	The source file	is a *roff source file.	 It is assumed that it
		will have the dependencies resolved by the roffpp(1) command.
		The same include semantics as the roffpp(1) command will be
		employed.  This	is short-hand for ``--language=roff''

	-Verbose
		Tell what is happening.

	-Ipath
		Specify	include	path, a	la cc(1).

	-I-
		Any directories	you specify with -I options before the -I-
		option are searched only for the case of #include "file"; they
		are  not  searched for #include	_file_.

		If  additional	directories are	specified with -I options
		after  the -I-,	these directories are searched for all
		#include directives.  (Ordinarily all -I directories are used
		this way.)

		In addition, the -I- option inhibits the  use  of the current
		directory (where the current input file	came from) as the
		first search directory for #include "file".  There is no way
		to override this effect	of -I-.	 With -I. you can specify
		searching the directory	which was current when c_incl was
		invoked.  That is not exactly the same as what the
		preprocessor does by default, but it is	often satisfactory.

		The -I-	option does not	inhibit	the use	of the standard	system
		directories for	header files.  Thus, -I- and -No_System	are
		independent.

	-Absolute_Paths
		This option may	be used	to allow absolute paths	in the output.
		This is	usually	the default.

	-No_Absolute_Paths
		This option may	be used	to exclude absolute paths from the
		output.

	-Absent_Local_Ignore
		For files included using a #include ''filename.h'' directive,
		ignore the file	if it cannot be	found.

	-Absent_Local_Mention
		For files included using a #include ''filename.h'' directive,
		print the file name even if the	file cannot be found.  This is
		the default (it	probably needs to be built).

	-Absent_Local_Error
		For files included using a #include ''filename.h'' directive,
		print a	fatal error if the file	cannot be found.

	-Absent_System_Ignore
		For files included with	a #include _filename.h_	directive,
		ignore the file	if it cannot be	found.	This is	the default
		(it was	probably ifdef'ed out).

	-Absent_System_Mention
		For files included with	a #include _filename.h_	directive,
		print the file name even if the	file cannot be found.

	-Absent_System_Error
		For files included with	a #include _filename.h_	directive,
		print a	fatal error if the file	cannot be found.

	-Absent_Program_Ignore
		If the file named on the command line cannot be	found, behave
		as if the file were found, but was empty.

	-Absent_Program_Error
		If the file named on the command line cannot be	found, print a
		fatal error message.  This is the default.

	-Escape_Newlines
		This option may	be used	to request that	newlines in the	output
		are escaped with backslash (``\'') characters.

	-Help
		Give information on how	to use c_incl.

	-EXclude filename
		This option may	be used	to nominate include file names which
		are not	to be used.

	-VERSion
		Tell what version of c_incl is being run.

	-Interior_Files	filename...
		This option may	be used	to tell	c_incl about include files
		which don't exist yet.	This is	because	they are interior to
		the dependency graph, but cook(1) hasn't finished walking it
		yet.  Often used with Cook's [interior-files] function.
		(Note: the filename list has an	arbitrary number of files; it
		ends at	the next option	or end-of-line,	so you need to be
		careful	where you put the input	filename.)

	-No_System
		Do not search the /usr/include directory.  By default this is
		searched last.	This option implies the	-No_Absolute_Paths
		option,	unless explicitly contradicted.

	-CAche
		This option may	be used	to turn	caching	on.  This is the
		default.

	-No_Cache
		This option may	be used	to turn	caching	off.

	-PREfix	string
		This option may	be used	to print a string before any of	the
		filenames are printed.	It will	not be printed if no file
		names are printed.

	-Quote_FileNames
		This option may	be used	to have	c_incl quote filenames.	 This
		permits	filenames to contain characters	which are special to
		Cook, including	spaces.

	-SUFfix	string
		This option may	be used	to print a string after	all of the
		filenames are printed.	It will	not be printed if no file
		names are printed.

	-Output	filename
		This option may	be used	to specify the output file.  Defaults
		to the standard	output if not set.

	-No_Source_Relative_Includes
		This option will give a	fatal error if a #include
		''filename.h'' directive is used.  This	is necessary when you
		are using Cook's search_list functionality to stitch together
		a baseline and a private work area.

	-RECursion
		This option may	be used	to specify that	nested include files
		are to be scanned, so that their includes may also be
		discovered.  This is the default.

	-No_RECursion
		This option may	be use to specify that nested include files
		are not	to be scanned.	This option is recommended for use
		with the Cook cascade-for recipes.  This option	implies
		-No_Cache, unless a -Cache option is specified.

	-Remove_Leading_Path path
		This option may	be used	to remove path prefixes	from the
		included filenames.  May be used more than once.  This is
		necessary when you are using Cook's search_list	functionality
		to stitch together a baseline and a private work area; usually
		as ``[prepost "-rlp=" "" [search_list]]''

	-STripdot
		This option may	be used	to specify that	leading	redundant dot
		directories are	to be removed from paths before	processing.
		This is	the default.

	-No_STripdot
		This option may	be used	to specify that	leading	redundant dot
		directories need not be	removed	from paths before processing.
		(Some path flattening may still	occur.)

	-Substitute_Leading_Path from to
		This option may	be used	to modify path prefixes	from the
		included filenames.  May be used more than once.  This is
		necessary when you are performing heterogeneous	builds in the
		same directory tree.  By using an ``arch'' variable to hold
		the architecture, and placing each architecture's objects in a
		separate directory tree, this option may be used as ``-slp
		[arch] "'[arch]'"'' (The outer quotes protect from Cook, the
		inner quotes protect from the shell.)  If you need more
		intricate editing, used	sed(1).

	Any other options will generate	an error.

	All options may	be abbreviated;	the abbreviation is documented as the
	upper case letters, all	lower case letters and underscores (_) are
	optional.  You must use	consecutive sequences of optional letters.

	All options are	case insensitive, you may type them in upper case or
	lower case or a	combination of both, case is not important.

	For example: the arguments "-help", "-HEL" and "-h" are	all
	interpreted to mean the	-Help option.  The argument "-hlp" will	not be
	understood, because consecutive	optional characters were not supplied.

	Options	and other command line arguments may be	mixed arbitrarily on
	the command line.

	The GNU	long option names are understood.  Since all option names for
	c_incl are long, this means ignoring the extra leading '-'.  The
	"--option=value" convention is also understood.

CACHING
	The caching mechanism use by the c_incl	program	caches the results of
	searching files	for include files (in a	file called .c_inclrc in the
	current	directory).  The cache is only refreshed when a	file changes.

	The use	of this	cache has been shown to	dramatically increase the
	performance of the c_incl program.  Typically, only a small
	proportions files in a project change between builds, resulting	in a
	very high cache	hit rate.

	When using caching, always use the same	command	line options,
	otherwise weird	and wonderful things will happen.

	The .c_inclrc file is a	binary file.  If you wish to rebuild the
	cache, simply delete this file with the	rm(1) command.	Being a	binary
	file, the .c_inclrc file is not	portable across	machines or operating
	systems, so you	will need to delete it when you	move your sources.  It
	is a binary file for performance.

	Accesses to the	.c_inclrc file use file	locking, so recipies using
	c_incl need not	use the	single-thread clause.

EXIT STATUS
	The c_incl command will	exit with a status of 1	on any error.  The
	c_incl command will only exit with a status of 0 if there are no
	errors.

COPYRIGHT
	c_incl version 2.30
	Copyright (C) 1988, 1989, 1990,	1991, 1992, 1993, 1994,	1995, 1996,
	1997, 1998, 1999, 2000,	2001, 2002, 2003, 2004,	2005, 2006, 2007 Peter
	Miller;	All rights reserved.

	The c_incl program comes with ABSOLUTELY NO WARRANTY; for details use
	the 'c_incl -VERSion License' command.	This is	free software and you
	are welcome to redistribute it under certain conditions; for details
	use the	'c_incl	-VERSion License' command.

AUTHOR
	Peter Miller   E-Mail:	 millerp@canb.auug.org.au
	/\/\*		  WWW:	 http://www.canb.auug.org.au/~millerp/

Reference Manual		     Cook			     C_INCL(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | CACHING | EXIT STATUS | COPYRIGHT | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=c_incl&sektion=1&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help