|
|
| |
aemakegen(1) |
|
aemakegen(1) |
aemakegen - generate a Makefile.in from file manifest
aemakegen [ option... ][ filename... ]
aemakegen -Help
aemakegen -VERSion
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.
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:library‐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
$(prefix)/include/libproject/
- prog/
The source for each executable is contained in its own
directory. 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)/ directory. 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 target 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.)
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
extensions.
- AC_OBJEXT
- The makefile defines the $(OBJEXT) macro, for object file extensions.
- AC_PROG_LIBTOOL
- Synonym for the longer libtool form, above.
- AC_PATH_XTRA
- The project uses the X11 window system.
The following project_specific attributes are known:
- aemakegen:debian:brief−description:package
- Used by the debian target to set the first line of the Description 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 different and
separate to the project version, see libtool(1) for discussion).
Three colon‐separated decimal numbers. Defaults to 0:0:0 if not
set.
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.
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).
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 output 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 environment
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 single project, the project name
defaults to that project. Otherwise, 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 manifest, 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
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 “-project”,
“-PROJ” and “-p” are all interpreted 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.
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.
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.
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.
Peter Miller |
E‐Mail: |
pmiller@opensource.org.au |
/\/\* |
WWW: |
http://miller.emu.id.au/pmiller/ |
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |