You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rs...@hyperreal.org on 1998/04/03 15:29:09 UTC
cvs commit: apache-1.3/src/support apxs.pl apxs.8
rse 98/04/03 05:29:08
Modified: . STATUS
src CHANGES
src/support apxs.pl apxs.8
Log:
Add query option to APXS for manually determining setting.
Revision Changes Path
1.257 +1 -0 apache-1.3/STATUS
Index: STATUS
===================================================================
RCS file: /export/home/cvs/apache-1.3/STATUS,v
retrieving revision 1.256
retrieving revision 1.257
diff -u -r1.256 -r1.257
--- STATUS 1998/04/03 12:12:48 1.256
+++ STATUS 1998/04/03 13:29:03 1.257
@@ -136,6 +136,7 @@
* Martin's fix accept (and pass) http://user:pass@host proxy requests
* Martin's fix CONNECT proxy handling again
* Ralf's fallback strategy for DSO by trying to guess flags from Perl
+ * Ralf's add of the query (-q) option to apxs
Available Patches:
1.754 +6 -0 apache-1.3/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
retrieving revision 1.753
retrieving revision 1.754
diff -u -r1.753 -r1.754
--- CHANGES 1998/04/03 12:12:50 1.753
+++ CHANGES 1998/04/03 13:29:05 1.754
@@ -1,5 +1,11 @@
Changes with Apache 1.3b6
+ *) Add query (-q) option to apxs support tool to be able to manually query
+ specific settings from apxs. This is needed for instance when you
+ manually want to access Apache's header files and you need to assemble
+ the -I option. Now you can do -I`apxs -q INCLUDEDIR`.
+ [Ralf S. Engelschall]
+
*) Now src/Configure uses a fallback strategy for the shared object support
on platforms where no explicit information is available: If a Perl
installation exists we ask it about its shared object support and if it's
1.3 +52 -14 apache-1.3/src/support/apxs.pl
Index: apxs.pl
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/support/apxs.pl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- apxs.pl 1998/04/01 11:48:28 1.2
+++ apxs.pl 1998/04/03 13:29:07 1.3
@@ -75,11 +75,18 @@
my $CFG_LDFLAGS_SHLIB = '@LDFLAGS_SHLIB@'; # substituted via Makefile.tmpl
my $CFG_PREFIX = '@prefix@'; # substituted via APACI install
my $CFG_SBINDIR = '@sbindir@'; # substituted via APACI install
-my $CFG_INCDIR = '@includedir@'; # substituted via APACI install
+my $CFG_INCLUDEDIR = '@includedir@'; # substituted via APACI install
my $CFG_LIBEXECDIR = '@libexecdir@'; # substituted via APACI install
my $CFG_SYSCONFDIR = '@sysconfdir@'; # substituted via APACI install
##
+## Cleanup the above stuff
+##
+$CFG_CFLAGS =~ s|^\s+||;
+$CFG_CFLAGS =~ s|\s+$||;
+$CFG_CFLAGS =~ s|\s+`.+apaci`||;
+
+##
## Initial shared object support check
##
if (not grep(/mod_so/, `$CFG_SBINDIR/httpd -l`)) {
@@ -106,6 +113,7 @@
my $opt_i = 0;
my $opt_a = 0;
my $opt_A = 0;
+my $opt_q = 0;
# this subroutine is derived from Perl's getopts.pl with the enhancement of
# the "+" metacharater at the format string to allow a list to be build by
@@ -173,21 +181,23 @@
}
sub usage {
- print STDERR "apxs:Usage: apxs -g -n <name>\n";
- print STDERR "apxs:Usage: apxs -c [-o mod_<name>.so] [-D..] [-I..] [-l..] [-L..] mod_<name>.c ...\n";
- print STDERR "apxs:Usage: apxs -i [-e] [-n <name>] mod_<name>.so ...\n";
+ print STDERR "Usage: apxs -g -n <modname>\n";
+ print STDERR " apxs -q <query> ...\n";
+ print STDERR " apxs -c [-o <dsofile>] [-D <name>[=<value>]] [-I <incdir>]\n";
+ print STDERR " [-L <libdir>] [-l <libname>] <files> ...\n";
+ print STDERR " apxs -i [-a] [-n <modname>] <dsofile> ...\n";
exit(1);
}
# option handling
my $rc;
-($rc, @ARGV) = &Getopts("n:gco:I+D+L+l+iaA", @ARGV);
+($rc, @ARGV) = &Getopts("qn:gco:I+D+L+l+iaA", @ARGV);
&usage if ($rc == 0);
&usage if ($#ARGV == -1 and not $opt_g);
-&usage if (not ($opt_g and $opt_n) and not $opt_i and not $opt_c);
+&usage if (not $opt_q and not ($opt_g and $opt_n) and not $opt_i and not $opt_c);
# argument handling
-my @files = @ARGV;
+my @args = @ARGV;
my $name = 'unknown';
$name = $opt_n if ($opt_n ne '');
@@ -240,6 +250,37 @@
exit(0);
}
+
+if ($opt_q) {
+ ##
+ ## QUERY INFORMATION
+ ##
+
+ my $result = '';
+ my $arg;
+ foreach $arg (@args) {
+ my $ok = 0;
+ my $name;
+ foreach $name (qw(
+ CC LD CFLAGS CFLAGS_SHLIB LDFLAGS_SHLIB
+ PREFIX SBINDIR INCLUDEDIR LIBEXECDIR SYSCONFDIR
+ )) {
+ if ($arg eq $name or $arg eq lc($name)) {
+ my $val = eval "\$CFG_$name";
+ $result .= "${val}::";
+ $ok = 1;
+ }
+ }
+ if (not $ok) {
+ printf(STDERR "apxs:Error: Invalid query string `%s'\n", $arg);
+ exit(1);
+ }
+ }
+ $result =~ s|::$||;
+ $result =~ s|::| |;
+ print $result;
+}
+
if ($opt_c) {
##
## SHARED OBJECT COMPILATION
@@ -249,7 +290,7 @@
my @srcs = ();
my @objs = ();
my $f;
- foreach $f (@files) {
+ foreach $f (@args) {
if ($f =~ m|\.c$|) {
push(@srcs, $f);
}
@@ -288,14 +329,11 @@
$opt .= "-D$opt_D ";
}
my $cflags = "$CFG_CFLAGS $CFG_CFLAGS_SHLIB";
- $cflags =~ s|^\s+||;
- $cflags =~ s|\s+$||;
- $cflags =~ s|\s+`.+apaci`||;
my $s;
foreach $s (@srcs) {
my $o = $s;
$o =~ s|\.c$|.o|;
- push(@cmds, "$CFG_CC $cflags -I$CFG_INCDIR $opt -c $s");
+ push(@cmds, "$CFG_CC $cflags -I$CFG_INCLUDEDIR $opt -c $s");
unshift(@objs, $o);
}
@@ -321,7 +359,7 @@
# allow one-step compilation and installation
if ($opt_i) {
- @files = ( $dso_file );
+ @args = ( $dso_file );
}
}
@@ -335,7 +373,7 @@
my @lmd = ();
my @cmds = ();
my $f;
- foreach $f (@files) {
+ foreach $f (@args) {
if ($f !~ m|\.so$|) {
print STDERR "apxs:Error: file $f is not a shared object\n";
exit(1);
1.2 +30 -4 apache-1.3/src/support/apxs.8
Index: apxs.8
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/support/apxs.8,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- apxs.8 1998/03/31 15:46:16 1.1
+++ apxs.8 1998/04/03 13:29:08 1.2
@@ -59,6 +59,10 @@
.BI \-n " modname"
.B apxs
+.B \-q
+.IR query " ..."
+
+.B apxs
.B \-c
[
.BI \-o " dsofile"
@@ -168,7 +172,7 @@
.PP
.SH OPTIONS
-Shared options:
+Common options:
.TP 12
.BI \-n " modname"
This explicitly sets the module name for the
@@ -186,7 +190,29 @@
tool tries to determine the name from the source or (as a fallback) at least
by guessing it from the filename.
.PP
-Template generation:
+Query options:
+.TP 12
+.B \-q
+Performs a query for
+.BR apxs 's
+knowledge about certain settings. The
+.I query
+parameters can be one or more of the following strings:
+.nf
+ CC PREFIX
+ LD SBINDIR
+ CFLAGS INCLUDEDIR
+ CFLAGS_SHLIB LIBEXECDIR
+ LDFLAGS_SHLIB SYSCONFDIR
+.fi
+Use this for manually determining settings. For instance use
+.nf
+ INC=-I`apxs -q INCLUDEDIR`
+.fi
+inside your own Makefiles if you need manual access
+to Apache's C header files.
+.PP
+Template Generation options:
.TP 12
.B \-g
This generates a subdirectory
@@ -201,7 +227,7 @@
.B Makefile
for even easier build and installing of this module.
.PP
-Shared object compilation:
+DSO compilation options:
.TP 12
.B \-c
This indicates the compilation operation. It first compiles the C source
@@ -244,7 +270,7 @@
This option is directly passed through to the linker command.
Use this to add your own libraries to search to the build process.
.PP
-Shared object installation:
+DSO installation options:
.TP 12
.B \-i
This indicates the installation operartion and installs one or more