FreeBSD Manual Pages
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.2-RELEASE+and+Ports>