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

FreeBSD Manual Pages

  
 
  

home | help
aemakegen(1)							  aemakegen(1)

NAME
	aemakegen - generate a Makefile.in from	file manifest

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

DESCRIPTION
	The aemakegen command is used to generate a Makefile.in	file from a
	file manifest.	The search path	and file manifest is derived from
	Aegis meta-data.  File names on	the command line are considered	to be
	additional files, and will be added to the manifest.

   Project Structure
	The aemakegen command assumes a	particular project structure.  This is
	as follows:

	lib/	The lib	directory contains C++ files to	be compiled, and
		placed into the	lib/lib.a file,	to be linked with the other
		executables.  (You can override	this with the aemakegen:li-
		brary-directory	project	specific attribute.)

	libproject/
		An alternative name to lib, above.

		If there is a libproject/libproject.h file, this is installed
		as $(prefix)/include/libproject/libproject.h and any project
		file it	includes in turn are also installed below $(pre-
		fix)/include/libproject/

	prog/
		The source for each executable is contained in its own direc-
		tory.  Which directories contain programs are determined by
		the presence of	a main.c or main.cc file.

		As a special case, files named test/name/* will	be linked as
		an executable bin/test_name

	bin/	Each program is	compiled and linked, with the executable
		placed in the bin directory.

	datadir/
		These files will be installed into the $(DATADIR)/project-
		name/ directory.

	datarootdir/
		These files will be installed into the $(DATAROOTDIR)/ direc-
		tory.  This is usually meta-data to tell other packages	about
		this package's existence.

	libdir/	These files will be installed into $(LIBDIR)/

	test_*/	These commands are expected to be in support of	the check tar-
		get and	are compiled but not installed.	 (Can use a minus
		rather than an underscore, if you prefer.)

	noinst_*/
		These commands are expected to be in support of	the build, or
		the check target, and are compiled but not installed.  (Can
		use a minus rather than	an underscore, if you prefer.)

   configure.ac
	If the configure.ac file contains certain lines, additional features
	will be	added to the file.  These include:

	AC_CHECK_PROGS(GROFF,
		The project uses the groff(1) and the GNU Groff	documentation
		suite.

	AC_CHECK_PROGS(LIBTOOL,	...
		This will cause	the library to be built	as a shared library,
		and installed so as to make it accessible to the programs
		linked against it.  Note that you can set the project_specific
		attribute aemakegen:libtool to true for	the same effect.

	AC_CHECK_PROGS(SOELIM,
		One of the programs in the GNU Groff documentation suite.

	AC_EXEEXT
		The makefile defines the $(EXEEXT) macro, for executable file
		extensions.

	AC_LANG([C])
		The source files are all assumed to be in C.

	AC_LANG([C++])
		The source files are all assumed to be in C++.

	AC_LANG_C
		The source files are all assumed to be in C.

	AC_LANG_CPLUSPLUS
		The source files are all assumed to be in C++.

	AC_LIBEXT
		The makefile defines the $(LIBEXT) macro, for library file ex-
		tensions.

	AC_OBJEXT
		The makefile defines the $(OBJEXT) macro, for object file ex-
		tensions.

	AC_PROG_LIBTOOL
		Synonym	for the	longer libtool form, above.

	AC_PATH_XTRA
		The project uses the X11 window	system.

   Project Attributes
	The following project_specific attributes are known:

	aemakegen:debian:brief-description:package
		Used by	the debian target to set the first line	of the De-
		scription field	of each	package.

	aemakegen:debian:build-depends
		Used by	the debian target to set the Build-Depends.

	aemakegen:debian:conflicts:package
		Used by	the debian target to set the Conflicts field of	each
		package.

	aemakegen:debian:description:package
		Used by	the debian target to set the Description field of each
		package.

	aemakegen:debian:dm-upload-allowed
		Used by	the debian target.  If true, the DM-Upload-Allowed
		field will be set to yes.

	aemakegen:debian:homepage
		Used by	the debian target to set the homepage.	Omitted	of not
		set.

	aemakegen:debian:priority
		Used by	the debian target to set the priority.	Defaults to
		"extra"	if not set.

	aemakegen:debian:maintainer
		Used by	the debian target to set the maintainer.

	aemakegen:debian:provides:package
		Used by	the debian target to set the Provides field of each
		package.

	aemakegen:debian:recommends:package
		Used by	the debian target to set the Recommends	field of each
		package.

	aemakegen:debian:replaces:package
		Used by	the debian target to set the Replaces field of each
		package.

	aemakegen:debian:section
		Used by	the debian target to set the section.  Defaults	to
		"unknown" if not set.

	aemakegen:debian:suggests:package
		Used by	the debian target to set the Suggests field of each
		package.

	aemakegen:libtool
		Boolean, whether or not	to use libtool(1) to build the
		project's libraries.  This is of most interest to projects
		which build shared libraries.

	aemakegen:rpm-spec:build-requires
		Additional packages required to	build the project.

	aemakegen:rpm-spec:description
		A description of the project.

	aemakegen:version-info
		String;	the shared library's version number (completely	dif-
		ferent and separate to the project version, see	libtool(1) for
		discussion).  Three colon-separated decimal numbers.  Defaults
		to 0:0:0 if not	set.

   Change Set Attributes
	The following change set attributes are	known:

	aemakegen:debian:accepted
		Normally, when the "debian/changelog" file is written, it
		gathers	up all of the Debian "Changed" information, and	places
		it into	the change-log entry for the first (i.e. most recent)
		change in the changelog.  This ensures it will be transferred
		into the "*.changes" files.  If	a change set is	marked with
		aemakegen:debian:accepted=true,	it drops all of	the "Closed"
		information, as	this has already been processed	by the Debian
		bug tracking system.

   File	Attributes
	The following file attributes are known:

	aemakegen:noinst
		boolean.  If true, aemakegen(1)	will not cause the program to
		be installed.  Usually attached	to the source file containing
		the main function, or to script	files.	Defaults to false if
		not defined (i.e. do install program).

OPTIONS
	The following options are understood:

	-Change	number
		This option may	be used	to specify a particular	change within
		a project.  See	aegis(1) for a complete	description of this
		option.

	-Output	filename
		This option may	be used	to specify the output file.  The out-
		put is sent to the standard output by default.

	-Project name
		This option may	be used	to select the project of interest.
		When no	-Project option	is specified, the AEGIS_PROJECT	envi-
		ronment	variable is consulted.	If that	does not exist,	the
		user's $HOME/.aegisrc file is examined for a default project
		field (see aeuconf(5) for more information).  If that does not
		exist, when the	user is	only working on	changes	within a sin-
		gle project, the project name defaults to that project.	 Oth-
		erwise,	it is an error.

	-SCRipt	pattern
		This option may	be used	to nominate file which are scripts.
		The patterns are normal	shell file name	globbing patterns, so
		you may	need to	quote it.  You may use this option more	than
		once.  Scripts in the script/ or scripts/ directories will be
		installed.  Scripts with a basename starting with test_	will
		be build to support the	"make check" target.

	-TArget	name
		The option may be used to select the desired output format by
		name.  The known names are:

		automake
			Generate automake(1) input, suitable for use as	a top-
			level Makefile.am file.

		makefile
			Generate make(1) input,	suitable for as	as a top-level
			Makefile.in file.  This	is the default.

		debian	Generate the debian/ directory contents, which will
			exactly	match the Makefile generated by	the above two.

		pkg-config
			Generate a pkg-config(1) configuration (.pc) file.  It
			will exactly match the above targets, provided they
			expect to see this output in a .pc file	in the mani-
			fest, or are given on on the command line.

		rpm-spec
			Generate an RPM	.spec file, for	use with rpm-build(1).

	-Help
		This option may	be used	to obtain more information about how
		to use the aemakegen program.

	See also aegis(1) for options common to	all aegis commands.

	All options may	be abbreviated;	the abbreviation is documented as the
	upper case letters, all	lower case letters and underscores (_) are op-
	tional.	 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 "-project", "-PROJ" and "-p"	are all	inter-
	preted to mean the -Project option.  The argument "-prj" 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, after	the function selectors.

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

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

ENVIRONMENT VARIABLES
	See aegis(1) for a list	of environment variables which may affect this
	command.  See aepconf(5) for the project configuration file's
	project_specific field for how to set environment variables for	all
	commands executed by Aegis.

COPYRIGHT
	aemakegen version 4.25.D510
	Copyright (C) 1991, 1992, 1993,	1994, 1995, 1996, 1997,	1998, 1999,
	2000, 2001, 2002, 2003,	2004, 2005, 2006, 2007,	2008, 2009, 2010,
	2011, 2012 Peter Miller

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

AUTHOR
	Peter Miller   E-Mail:	 pmiller@opensource.org.au
	/\/\*		  WWW:	 http://miller.emu.id.au/pmiller/

Reference Manual		     Aegis			  aemakegen(1)

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | EXIT STATUS | ENVIRONMENT VARIABLES | COPYRIGHT | AUTHOR

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

home | help