aemakegen(1) aemakegen(1) NNAAMMEE aemakegen - generate a Makefile.in from file manifest SSYYNNOOPPSSIISS aaeemmaakkeeggeenn [ _o_p_t_i_o_n... ][ _f_i_l_e_n_a_m_e... ] aaeemmaakkeeggeenn --HHeellpp aaeemmaakkeeggeenn --VVEERRSSiioonn DDEESSCCRRIIPPTTIIOONN The _a_e_m_a_k_e_g_e_n 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. PPrroojjeecctt SSttrruuccttuurree The _a_e_m_a_k_e_g_e_n command assumes a particular project structure. This is as follows: lib/ The _l_i_b 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.) lib_p_r_o_j_e_c_t/ An alternative name to _l_i_b, above. If there is a lib_p_r_o_j_e_c_t/lib_p_r_o_j_e_c_t.h file, this is installed as $(prefix)/include/lib_p_r_o_j_e_c_t/lib_p_r_o_j_e_c_t.h and any project file it includes in turn are also installed below $(pre- fix)/include/lib_p_r_o_j_e_c_t/ _p_r_o_g/ 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/_n_a_m_e/* will be linked as an executable bin/test__n_a_m_e bin/ Each program is compiled and linked, with the executable placed in the _b_i_n directory. datadir/ These files will be installed into the $(DATADIR)/_p_r_o_j_e_c_t_- _n_a_m_e/ 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.) ccoonnffiigguurree..aacc If the _c_o_n_f_i_g_u_r_e_._a_c file contains certain lines, additional features will be added to the file. These include: AC_CHECK_PROGS(GROFF, The project uses the _g_r_o_f_f(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. PPrroojjeecctt AAttttrriibbuutteess The following project_specific attributes are known: aemakegen:debian:brief-description:_p_a_c_k_a_g_e 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:_p_a_c_k_a_g_e Used by the debian target to set the Conflicts field of each package. aemakegen:debian:description:_p_a_c_k_a_g_e 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:_p_a_c_k_a_g_e Used by the debian target to set the Provides field of each package. aemakegen:debian:recommends:_p_a_c_k_a_g_e Used by the debian target to set the Recommends field of each package. aemakegen:debian:replaces:_p_a_c_k_a_g_e 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:_p_a_c_k_a_g_e Used by the debian target to set the Suggests field of each package. aemakegen:libtool Boolean, whether or not to use _l_i_b_t_o_o_l(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 _l_i_b_t_o_o_l(1) for discussion). Three colon-separated decimal numbers. Defaults to 0:0:0 if not set. CChhaannggee SSeett AAttttrriibbuutteess 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. FFiillee AAttttrriibbuutteess The following file attributes are known: aemakegen:noinst boolean. If true, _a_e_m_a_k_e_g_e_n(1) will not cause the program to be installed. Usually attached to the source file containing the _m_a_i_n function, or to script files. Defaults to false if not defined (_i_._e_. do install program). OOPPTTIIOONNSS The following options are understood: --CChhaannggee _n_u_m_b_e_r This option may be used to specify a particular change within a project. See _a_e_g_i_s(1) for a complete description of this option. --OOuuttppuutt _f_i_l_e_n_a_m_e This option may be used to specify the output file. The out- put is sent to the standard output by default. --PPrroojjeecctt _n_a_m_e This option may be used to select the project of interest. When no --PPrroojjeecctt option is specified, the _A_E_G_I_S___P_R_O_J_E_C_T envi- ronment variable is consulted. If that does not exist, the user's _$_H_O_M_E_/_._a_e_g_i_s_r_c file is examined for a default project field (see _a_e_u_c_o_n_f(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. --SSCCRRiipptt _p_a_t_t_e_r_n 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. --TTAArrggeett _n_a_m_e The option may be used to select the desired output format by name. The known names are: automake Generate _a_u_t_o_m_a_k_e(1) input, suitable for use as a top- level Makefile.am file. makefile Generate _m_a_k_e(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 _p_k_g_-_c_o_n_f_i_g(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 _r_p_m_-_b_u_i_l_d(1). --HHeellpp This option may be used to obtain more information about how to use the _a_e_m_a_k_e_g_e_n program. See also _a_e_g_i_s(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 inter- preted to mean the --PPrroojjeecctt 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 _a_e_m_a_k_e_g_e_n are long, this means ignoring the extra leading '-'. The "----_o_p_t_i_o_n==_v_a_l_u_e" convention is also understood. EEXXIITT SSTTAATTUUSS The _a_e_m_a_k_e_g_e_n command will exit with a status of 1 on any error. The _a_e_m_a_k_e_g_e_n command will only exit with a status of 0 if there are no errors. EENNVVIIRROONNMMEENNTT VVAARRIIAABBLLEESS See _a_e_g_i_s(1) for a list of environment variables which may affect this command. See _a_e_p_c_o_n_f(5) for the project configuration file's _p_r_o_j_e_c_t___s_p_e_c_i_f_i_c field for how to set environment variables for all commands executed by Aegis. CCOOPPYYRRIIGGHHTT aemakegen version 4.25.D611 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Peter Miller The aemakegen program comes with ABSOLUTELY NO WARRANTY; for details use the '_a_e_m_a_k_e_g_e_n _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the '_a_e_m_a_k_e_g_e_n _-_V_E_R_S_i_o_n _L_i_c_e_n_s_e' command. AAUUTTHHOORR Peter Miller E-Mail: pmiller@opensource.org.au /\/\* WWW: http://miller.emu.id.au/pmiller/ Reference Manual Aegis aemakegen(1)