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)

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

home | help