Changes with Apache 2.3.0
[Remove entries to the current 2.0 and 2.2 section below, when backported]
+ *) apxs: Enhance -q flag to print all known variables and their values
+ when invoked without variable name(s).
+ [William Rowe, Sander Temme]
+
*) mod_dbd: Create memory sub-pools for each DB connection and close
DB connections in a pool cleanup function. Ensure prepared statements
are destroyed before DB connection is closed. When using reslists,
.el .ne 3
.IP "\\$1" \\$2
..
-.TH "APXS" 8 "2004-10-01" "Apache HTTP Server" "apxs"
+.TH "APXS" 8 "2007-02-01" "Apache HTTP Server" "apxs"
.SH NAME
apxs \- APache eXtenSion tool
\fBapxs\fR -\fBg\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] -\fBn\fR \fImodname\fR
.PP
-\fBapxs\fR -\fBq\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] \fIquery\fR \&.\&.\&.
+\fBapxs\fR -\fBq\fR [ -\fBv\fR ] [ -\fBS\fR \fIname\fR=\fIvalue\fR ] \fIquery\fR \&.\&.\&.
.PP
\fBapxs\fR -\fBc\fR [ -\fBS\fR \fIname\fR=\fIvalue\fR ] [ -\fBo\fR \fIdsofile\fR ] [ -\fBI\fR \fIincdir\fR ] [ -\fBD\fR \fIname\fR=\fIvalue\fR ] [ -\fBL\fR \fIlibdir\fR ] [ -\fBl\fR \fIlibname\fR ] [ -\fBWc,\fR\fIcompiler-flags\fR ] [ -\fBWl,\fR\fIlinker-flags\fR ] \fIfiles\fR \&.\&.\&.
.TP
-q
-Performs a query for apxs's knowledge about certain settings\&. The \fIquery\fR parameters can be one or more of the following strings: CC, CFLAGS, CFLAGS_SHLIB, INCLUDEDIR, LD_SHLIB, LDFLAGS_SHLIB, LIBEXECDIR, LIBS_SHLIB, SBINDIR, SYSCONFDIR, TARGET\&. .PP Use this for manually determining settings\&. For instance use INC=-I`apxs -q INCLUDEDIR` .PP inside your own Makefiles if you need manual access to Apache's C header files\&.
+Performs a query for variables and environment settings used to build httpd\&. When invoked without \fIquery\fR parameters, it prints all known variables and their values\&. The optional -v parameter formats the list output\&. .PP Use this to manually determine settings used to build the httpd that will load your module\&. For instance use INC=-I`apxs -q INCLUDEDIR` .PP inside your own Makefiles if you need manual access to Apache's C header files\&.
.SS "Configuration Options"
-<strong>n</strong> <var>modname</var></code></p>
<p><code><strong>apxs</strong> -<strong>q</strong>
+ [ -<strong>v</strong> ]
[ -<strong>S</strong> <var>name</var>=<var>value</var> ]
<var>query</var> ...</code></p>
<h3><a name="options.query" id="options.query">Query Options</a></h3>
<dl>
<dt><code>-q</code></dt>
- <dd>Performs a query for <code>apxs</code>'s knowledge about certain
- settings. The <var>query</var> parameters can be one or more of the
- following strings: <code>CC</code>, <code>CFLAGS</code>,
- <code>CFLAGS_SHLIB</code>, <code>INCLUDEDIR</code>, <code>LD_SHLIB</code>,
- <code>LDFLAGS_SHLIB</code>, <code>LIBEXECDIR</code>,
- <code>LIBS_SHLIB</code>, <code>SBINDIR</code>, <code>SYSCONFDIR</code>,
- <code>TARGET</code>.
-
- <p>Use this for manually determining settings. For instance use</p>
+ <dd>Performs a query for variables and environment settings used to
+ build <code>httpd</code>. When invoked without <var>query</var> parameters,
+ it prints all known variables and their values. The optional <code>-v</code>
+ parameter formats the list output.
+
+ <p>Use this to manually determine settings used to build the
+ <code>httpd</code> that will load your module. For instance use</p>
<div class="example"><p><code>
INC=-I`apxs -q INCLUDEDIR`
</code></p></div>
-<strong>n</strong> <var>modname</var></code></p>
<p><code><strong>apxs</strong> -<strong>q</strong>
+ [ -<strong>v</strong> ]
[ -<strong>S</strong> <var>name</var>=<var>value</var> ]
<var>query</var> ...</code></p>
<section id="options.query"><title>Query Options</title>
<dl>
<dt><code>-q</code></dt>
- <dd>Performs a query for <code>apxs</code>'s knowledge about certain
- settings. The <var>query</var> parameters can be one or more of the
- following strings: <code>CC</code>, <code>CFLAGS</code>,
- <code>CFLAGS_SHLIB</code>, <code>INCLUDEDIR</code>, <code>LD_SHLIB</code>,
- <code>LDFLAGS_SHLIB</code>, <code>LIBEXECDIR</code>,
- <code>LIBS_SHLIB</code>, <code>SBINDIR</code>, <code>SYSCONFDIR</code>,
- <code>TARGET</code>.
-
- <p>Use this for manually determining settings. For instance use</p>
+ <dd>Performs a query for variables and environment settings used to
+ build <code>httpd</code>. When invoked without <var>query</var> parameters,
+ it prints all known variables and their values. The optional <code>-v</code>
+ parameter formats the list output.
+
+ <p>Use this to manually determine settings used to build the
+ <code>httpd</code> that will load your module. For instance use</p>
<example>
INC=-I`apxs -q INCLUDEDIR`
</example>
my $opt_q = 0;
my $opt_h = 0;
my $opt_p = 0;
+my $opt_v = 0;
# this subroutine is derived from Perl's getopts.pl with the enhancement of
# the "+" metacharacter at the format string to allow a list to be built by
sub usage {
print STDERR "Usage: apxs -g [-S <var>=<val>] -n <modname>\n";
- print STDERR " apxs -q [-S <var>=<val>] <query> ...\n";
+ print STDERR " apxs -q [-v] [-S <var>=<val>] [<query> ...]\n";
print STDERR " apxs -c [-S <var>=<val>] [-o <dsofile>] [-D <name>[=<value>]]\n";
print STDERR " [-I <incdir>] [-L <libdir>] [-l <libname>] [-Wc,<flags>]\n";
print STDERR " [-Wl,<flags>] [-p] <files> ...\n";
# option handling
my $rc;
-($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaAp", @ARGV);
+($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+W+S+eiaApv", @ARGV);
&usage if ($rc == 0);
-&usage if ($#ARGV == -1 and not $opt_g);
+&usage if ($#ARGV == -1 and not $opt_g and not $opt_q);
&usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not $opt_c and not $opt_e);
# argument handling
##
## QUERY INFORMATION
##
- my $result = get_vars(@args);
- print "$result\n";
+ my $result;
+ if ($#args >= 0) {
+ $result = get_vars(@args);
+ print "$result\n";
+ } else {
+ # -q without var name prints all variables and their values
+
+ # Additional -v pretty-prints output
+ if ($opt_v) {
+ # Variable names in alphabetic order
+ my @vars = sort {uc($a) cmp uc($b)} keys %config_vars;
+
+ # Make the left column as wide as the longest variable name
+ my $width = 0;
+ foreach (@vars) {
+ my $l = length $_;
+ $width = $l unless ($l <= $width);
+ }
+
+ foreach (@vars) {
+ printf "%-${width}s = %s\n", $_, $config_vars{$_};
+ }
+ } else {
+ # Unprettified name=value list
+ foreach (keys %config_vars) {
+ print "$_=$config_vars{$_}\n";
+ }
+ }
+ }
}
my $apr_config = get_vars("APR_CONFIG");