PSV completed. Next PLV and PSV modifiers
This commit is contained in:
+269
-3
@@ -1106,9 +1106,7 @@ if test "x$(build_opt_prog)" = xyes;
|
||||
\end_layout
|
||||
|
||||
\begin_layout Plain Layout
|
||||
optional_programs=$(optional_programs) optprog
|
||||
\lang american
|
||||
### 1 ###
|
||||
optional_programs=$(optional_programs) optprog ### 1 ###
|
||||
\end_layout
|
||||
|
||||
\begin_layout Plain Layout
|
||||
@@ -1276,5 +1274,273 @@ These files can be executable,
|
||||
Let us see the default primaries supported by Automake.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Itemize
|
||||
|
||||
\series bold
|
||||
PROGRAMS
|
||||
\series default
|
||||
:
|
||||
These are binary executable programs.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Itemize
|
||||
|
||||
\series bold
|
||||
LIBRARIES/LTLIBRARIES
|
||||
\series default
|
||||
:
|
||||
The LIBRARIES primary enables Automake to generate rules for building static libraries using system compiler and librarian (
|
||||
\series bold
|
||||
ar
|
||||
\series default
|
||||
).
|
||||
The LTLIBRARIES also do the same thing but to build
|
||||
\shape italic
|
||||
libtool
|
||||
\shape default
|
||||
shared libraries which are generated by executing
|
||||
\shape italic
|
||||
libtool scripts
|
||||
\shape default
|
||||
.
|
||||
The installation of these products are limited to
|
||||
\family typewriter
|
||||
$(libdir)
|
||||
\family default
|
||||
or
|
||||
\family typewriter
|
||||
$(pkglibdir)
|
||||
\family default
|
||||
.
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Itemize
|
||||
|
||||
\series bold
|
||||
SCRIPTS
|
||||
\series default
|
||||
:
|
||||
Scripts are generally handwritten which may be a part of project,
|
||||
however,
|
||||
Automake don't have the assumption that it will not make any rules to build the scripts or they are static files in the project.
|
||||
The scripts can be generated from handwritten rules in Makefile.am files,
|
||||
sometimes by processing a input file using the sed or awk utility tools.
|
||||
Even if the static script are present in the project and is intended to be distributed with the project tarball,
|
||||
then
|
||||
\series bold
|
||||
dist
|
||||
\series default
|
||||
modifier should be used with
|
||||
\series bold
|
||||
SCRIPT
|
||||
\series default
|
||||
primary.
|
||||
The installation location for scripts includes
|
||||
\family typewriter
|
||||
$(bindir)
|
||||
\family default
|
||||
,
|
||||
|
||||
\family typewriter
|
||||
$(sbindir)
|
||||
\family default
|
||||
,
|
||||
|
||||
\family typewriter
|
||||
$(libexecdir)
|
||||
\family default
|
||||
,
|
||||
and
|
||||
\family typewriter
|
||||
$(pkgdatadir)
|
||||
\family default
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Itemize
|
||||
|
||||
\series bold
|
||||
DATA
|
||||
\series default
|
||||
:
|
||||
Data files are similar to what scripts files are intended for and can be distributed with project tarball and for that we can use
|
||||
\series bold
|
||||
dist
|
||||
\series default
|
||||
modifier with
|
||||
\series bold
|
||||
DATA
|
||||
\series default
|
||||
primary.
|
||||
The installation location for these type of files are
|
||||
\family typewriter
|
||||
$(datadir)
|
||||
\family default
|
||||
,
|
||||
|
||||
\family typewriter
|
||||
$(sysconfdir)
|
||||
\family default
|
||||
,
|
||||
|
||||
\family typewriter
|
||||
$(sharedstatedir)
|
||||
\family default
|
||||
and
|
||||
\family typewriter
|
||||
$(localstatedir)
|
||||
\family default
|
||||
.
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Itemize
|
||||
|
||||
\series bold
|
||||
HEADERS
|
||||
\series default
|
||||
:
|
||||
Headers files are just like static files but are used for building of the project.
|
||||
These files generally contained the public interface of the installed libraries which can be used by other projects for using the libraries functionality.
|
||||
The PLV for these type of files are pkginclude_HEADERS and include_HEADERS and the installation locations are
|
||||
\family typewriter
|
||||
$(includedir)
|
||||
\family default
|
||||
and
|
||||
\family typewriter
|
||||
$(pkgincludedir)
|
||||
\family default
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
There are also other types of primaries that Automake supports,
|
||||
but we will currently discuss about the ones which are used the most.
|
||||
The rest of the commonly used primaries are
|
||||
\series bold
|
||||
MANS
|
||||
\series default
|
||||
,
|
||||
|
||||
\series bold
|
||||
TEXTINFOS
|
||||
\series default
|
||||
,
|
||||
|
||||
\series bold
|
||||
PYTHON
|
||||
\series default
|
||||
,
|
||||
|
||||
\series bold
|
||||
JAVA
|
||||
\series default
|
||||
,
|
||||
etc.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Subsection
|
||||
Product Source Variable
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
If you notice,
|
||||
the second line in Listing 7 is an example of Automake
|
||||
\shape italic
|
||||
product source variable
|
||||
\shape default
|
||||
(PSV).
|
||||
\begin_inset CommandInset line
|
||||
LatexCommand rule
|
||||
offset "0.5ex"
|
||||
width "100col%"
|
||||
height "1pt"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
\begin_inset listings
|
||||
inline false
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
[modifier-list]product_SOURCES = file1 file2 ...
|
||||
fileN
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\begin_inset CommandInset line
|
||||
LatexCommand rule
|
||||
offset "0.5ex"
|
||||
width "100col%"
|
||||
height "1pt"
|
||||
|
||||
\end_inset
|
||||
|
||||
Just like PLV which represent list of products,
|
||||
PSV represent list of files on which the product is dependent on.
|
||||
These are the source files which are used to build the products of the projects.
|
||||
Only characters that are allowed in make variables (letters,
|
||||
numbers,
|
||||
and the at sign) are allowed in the product tag of a PSV.
|
||||
So,
|
||||
Automake converst illegal characters into underscores.
|
||||
\begin_inset CommandInset line
|
||||
LatexCommand rule
|
||||
offset "0.5ex"
|
||||
width "100col%"
|
||||
height "1pt"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Standard
|
||||
\begin_inset listings
|
||||
inline false
|
||||
status open
|
||||
|
||||
\begin_layout Plain Layout
|
||||
lib_LIBRARIES = libc++.a
|
||||
\end_layout
|
||||
|
||||
\begin_layout Plain Layout
|
||||
libc___a_SOURCES = ...
|
||||
\begin_inset Caption Standard
|
||||
|
||||
\begin_layout Plain Layout
|
||||
Illegal make variable characters are converted to underscores in product tags.
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\begin_inset CommandInset line
|
||||
LatexCommand rule
|
||||
offset "0.5ex"
|
||||
width "100col%"
|
||||
height "1pt"
|
||||
|
||||
\end_inset
|
||||
|
||||
|
||||
\end_layout
|
||||
|
||||
\begin_layout Subsection
|
||||
PLV and PSV Modifiers
|
||||
\end_layout
|
||||
|
||||
\end_body
|
||||
\end_document
|
||||
|
||||
Reference in New Issue
Block a user