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
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
optional_programs=$(optional_programs) optprog
|
optional_programs=$(optional_programs) optprog ### 1 ###
|
||||||
\lang american
|
|
||||||
### 1 ###
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
\begin_layout Plain Layout
|
||||||
@@ -1276,5 +1274,273 @@ These files can be executable,
|
|||||||
Let us see the default primaries supported by Automake.
|
Let us see the default primaries supported by Automake.
|
||||||
\end_layout
|
\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_body
|
||||||
\end_document
|
\end_document
|
||||||
|
|||||||
Reference in New Issue
Block a user