You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Justin Erenkrantz <je...@apache.org> on 2002/04/18 20:04:35 UTC
[PATCH] Get dependency generation working with VPATH
Since this is a fairly large patch, I'll post it first to give
people a chance to comment.
This attempts to get "make depend" working when using VPATH. Since
we rely on $(srcdir) to always be defined, I'm adding srcdir and
VPATH to all Makefiles. This also has the (good) side-effect of
making these variables persist across config.status invocations.
I also switched from using the mkdep.sh script to creating a .deps
file (which is what httpd-2.0 uses). Is there any reason to keep
on using the old way? I much prefer creating a .deps file than
hacking the Makefile.
Thoughts? -- justin
Index: Makefile.in
===================================================================
RCS file: /home/cvs/apr/Makefile.in,v
retrieving revision 1.73
diff -u -r1.73 Makefile.in
--- Makefile.in 15 Apr 2002 22:01:39 -0000 1.73
+++ Makefile.in 18 Apr 2002 17:59:13 -0000
@@ -42,6 +42,7 @@
includedir=@includedir@
installbuilddir=@installbuilddir@
srcdir=@srcdir@
+VPATH=@srcdir@
top_srcdir=@top_srcdir@
top_blddir=@top_builddir@
Index: configure.in
===================================================================
RCS file: /home/cvs/apr/configure.in,v
retrieving revision 1.430
diff -u -r1.430 configure.in
--- configure.in 18 Apr 2002 09:14:53 -0000 1.430
+++ configure.in 18 Apr 2002 17:59:14 -0000
@@ -1717,13 +1717,7 @@
if test -n "$USE_VPATH"; then
for makefile in $MAKEFILE1 $MAKEFILE2 $MAKEFILE3; do
- dir=`echo $makefile|sed 's%/*[^/][^/]*$%%'`
- (cat <<EOF
-srcdir = $apr_srcdir/$dir
-VPATH = $apr_srcdir/$dir
-
-EOF
-) | cat - $makefile | \
+ cat $makefile | \
sed \
-e 's#-I\($(INCDIR[0-9]*)\)#-I\1 -I$(srcdir)/\1#g' \
-e 's#-I\($(OSDIR[0-9]*)\)#-I\1 -I$(srcdir)/\1#g' \
Index: atomic/os390/Makefile.in
===================================================================
RCS file: /home/cvs/apr/atomic/os390/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- atomic/os390/Makefile.in 22 Mar 2002 19:01:03 -0000 1.1
+++ atomic/os390/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = atomic.lo
Index: atomic/solaris_sparc/Makefile.in
===================================================================
RCS file: /home/cvs/apr/atomic/solaris_sparc/Makefile.in,v
retrieving revision 1.7
diff -u -r1.7 Makefile.in
--- atomic/solaris_sparc/Makefile.in 29 Mar 2002 18:20:57 -0000 1.7
+++ atomic/solaris_sparc/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = @apr_atomic_sparc_compile@
@@ -8,7 +10,6 @@
# bring in rules.mk for standard functionality
@INCLUDE_RULES@
-srcdir=@srcdir@
apr_atomic_sparc.lo: $(srcdir)/apr_atomic_sparc.s
$(ASCPP) $(ASCPPFLAGS) $(srcdir)/$*.s > $*.S
Index: atomic/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/atomic/unix/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- atomic/unix/Makefile.in 12 Feb 2002 21:51:30 -0000 1.1
+++ atomic/unix/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = apr_atomic.lo
Index: build/Makefile.in
===================================================================
RCS file: /home/cvs/apr/build/Makefile.in,v
retrieving revision 1.3
diff -u -r1.3 Makefile.in
--- build/Makefile.in 17 May 2001 22:25:56 -0000 1.3
+++ build/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,6 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
+
TARGETS=
INCLUDES=
DISTCLEAN_TARGETS = rules.mk
Index: build/rules.mk.in
===================================================================
RCS file: /home/cvs/apr/build/rules.mk.in,v
retrieving revision 1.23
diff -u -r1.23 rules.mk.in
--- build/rules.mk.in 13 Mar 2002 20:39:08 -0000 1.23
+++ build/rules.mk.in 18 Apr 2002 17:59:14 -0000
@@ -195,10 +195,9 @@
local-all: $(TARGETS)
local-depend: x-local-depend
- @if test -n "`ls *.c 2> /dev/null`"; then \
- echo $(MKDEP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) *.c ; \
- CC=${CC} $(MKDEP) $(ALL_CPPFLAGS) $(ALL_INCLUDES) *.c ; \
- fi
+ @if test -n "`ls $(srcdir)/*.c 2> /dev/null`"; then \
+ $(CC) -MM $(ALL_CPPFLAGS) $(ALL_INCLUDES) $(srcdir)/*.c | sed 's/\.o:/.lo:/' > .deps || true; \
+ fi
# to be filled in by the actual Makefile
x-local-depend x-local-clean x-local-distclean x-local-extraclean:
Index: dso/aix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/dso/aix/Makefile.in,v
retrieving revision 1.8
diff -u -r1.8 Makefile.in
--- dso/aix/Makefile.in 2 Apr 2001 19:33:05 -0000 1.8
+++ dso/aix/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = dso.lo
Index: dso/beos/Makefile.in
===================================================================
RCS file: /home/cvs/apr/dso/beos/Makefile.in,v
retrieving revision 1.9
diff -u -r1.9 Makefile.in
--- dso/beos/Makefile.in 9 Jan 2001 11:05:38 -0000 1.9
+++ dso/beos/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = dso.lo
Index: dso/os2/Makefile.in
===================================================================
RCS file: /home/cvs/apr/dso/os2/Makefile.in,v
retrieving revision 1.10
diff -u -r1.10 Makefile.in
--- dso/os2/Makefile.in 9 Jan 2001 11:05:40 -0000 1.10
+++ dso/os2/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = dso.lo
Index: dso/os390/Makefile.in
===================================================================
RCS file: /home/cvs/apr/dso/os390/Makefile.in,v
retrieving revision 1.5
diff -u -r1.5 Makefile.in
--- dso/os390/Makefile.in 12 Feb 2001 20:45:58 -0000 1.5
+++ dso/os390/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = dso.lo
Index: dso/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/dso/unix/Makefile.in,v
retrieving revision 1.15
diff -u -r1.15 Makefile.in
--- dso/unix/Makefile.in 9 Jan 2001 11:05:44 -0000 1.15
+++ dso/unix/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = dso.lo
Index: file_io/os2/Makefile.in
===================================================================
RCS file: /home/cvs/apr/file_io/os2/Makefile.in,v
retrieving revision 1.23
diff -u -r1.23 Makefile.in
--- file_io/os2/Makefile.in 2 Feb 2002 06:12:34 -0000 1.23
+++ file_io/os2/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
dir.lo \
Index: file_io/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/file_io/unix/Makefile.in,v
retrieving revision 1.24
diff -u -r1.24 Makefile.in
--- file_io/unix/Makefile.in 1 Feb 2002 01:40:38 -0000 1.24
+++ file_io/unix/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
copy.lo \
Index: i18n/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/i18n/unix/Makefile.in,v
retrieving revision 1.11
diff -u -r1.11 Makefile.in
--- i18n/unix/Makefile.in 9 Jan 2001 11:05:51 -0000 1.11
+++ i18n/unix/Makefile.in 18 Apr 2002 17:59:14 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = xlate.lo
Index: locks/beos/Makefile.in
===================================================================
RCS file: /home/cvs/apr/locks/beos/Makefile.in,v
retrieving revision 1.19
diff -u -r1.19 Makefile.in
--- locks/beos/Makefile.in 13 Apr 2002 13:52:25 -0000 1.19
+++ locks/beos/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
thread_mutex.lo \
Index: locks/os2/Makefile.in
===================================================================
RCS file: /home/cvs/apr/locks/os2/Makefile.in,v
retrieving revision 1.19
diff -u -r1.19 Makefile.in
--- locks/os2/Makefile.in 9 Apr 2002 07:05:29 -0000 1.19
+++ locks/os2/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
thread_mutex.lo \
Index: locks/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/locks/unix/Makefile.in,v
retrieving revision 1.24
diff -u -r1.24 Makefile.in
--- locks/unix/Makefile.in 9 Apr 2002 06:56:56 -0000 1.24
+++ locks/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
thread_mutex.lo \
Index: memory/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/memory/unix/Makefile.in,v
retrieving revision 1.8
diff -u -r1.8 Makefile.in
--- memory/unix/Makefile.in 28 Sep 2001 14:05:23 -0000 1.8
+++ memory/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = apr_pools.lo
Index: misc/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/misc/unix/Makefile.in,v
retrieving revision 1.29
diff -u -r1.29 Makefile.in
--- misc/unix/Makefile.in 11 Nov 2001 07:23:57 -0000 1.29
+++ misc/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
start.lo getopt.lo otherchild.lo errorcodes.lo rand.lo \
Index: mmap/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/mmap/unix/Makefile.in,v
retrieving revision 1.18
diff -u -r1.18 Makefile.in
--- mmap/unix/Makefile.in 9 Jan 2001 11:06:03 -0000 1.18
+++ mmap/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = mmap.lo common.lo
Index: network_io/beos/Makefile.in
===================================================================
RCS file: /home/cvs/apr/network_io/beos/Makefile.in,v
retrieving revision 1.15
diff -u -r1.15 Makefile.in
--- network_io/beos/Makefile.in 9 Jan 2001 11:06:05 -0000 1.15
+++ network_io/beos/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = poll.lo sendrecv.lo socketcommon.lo
Index: network_io/os2/Makefile.in
===================================================================
RCS file: /home/cvs/apr/network_io/os2/Makefile.in,v
retrieving revision 1.16
diff -u -r1.16 Makefile.in
--- network_io/os2/Makefile.in 19 Mar 2001 12:35:14 -0000 1.16
+++ network_io/os2/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
poll.lo \
Index: network_io/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/network_io/unix/Makefile.in,v
retrieving revision 1.22
diff -u -r1.22 Makefile.in
--- network_io/unix/Makefile.in 9 Jan 2001 11:06:09 -0000 1.22
+++ network_io/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
poll.lo \
Index: passwd/Makefile.in
===================================================================
RCS file: /home/cvs/apr/passwd/Makefile.in,v
retrieving revision 1.5
diff -u -r1.5 Makefile.in
--- passwd/Makefile.in 9 Jan 2001 11:06:12 -0000 1.5
+++ passwd/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = apr_md5.lo apr_getpass.lo
Index: shmem/beos/Makefile.in
===================================================================
RCS file: /home/cvs/apr/shmem/beos/Makefile.in,v
retrieving revision 1.2
diff -u -r1.2 Makefile.in
--- shmem/beos/Makefile.in 11 Jan 2002 12:16:40 -0000 1.2
+++ shmem/beos/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = shm.lo
Index: shmem/os2/Makefile.in
===================================================================
RCS file: /home/cvs/apr/shmem/os2/Makefile.in,v
retrieving revision 1.8
diff -u -r1.8 Makefile.in
--- shmem/os2/Makefile.in 10 Jan 2002 02:09:20 -0000 1.8
+++ shmem/os2/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = shm.lo
Index: shmem/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/shmem/unix/Makefile.in,v
retrieving revision 1.18
diff -u -r1.18 Makefile.in
--- shmem/unix/Makefile.in 10 Jan 2002 00:20:06 -0000 1.18
+++ shmem/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = shm.lo
Index: strings/Makefile.in
===================================================================
RCS file: /home/cvs/apr/strings/Makefile.in,v
retrieving revision 1.9
diff -u -r1.9 Makefile.in
--- strings/Makefile.in 23 May 2001 14:15:43 -0000 1.9
+++ strings/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
apr_cpystrn.lo \
Index: tables/Makefile.in
===================================================================
RCS file: /home/cvs/apr/tables/Makefile.in,v
retrieving revision 1.6
diff -u -r1.6 Makefile.in
--- tables/Makefile.in 9 Jan 2001 11:06:18 -0000 1.6
+++ tables/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = apr_tables.lo apr_hash.lo
Index: test/Makefile.in
===================================================================
RCS file: /home/cvs/apr/test/Makefile.in,v
retrieving revision 1.80
diff -u -r1.80 Makefile.in
--- test/Makefile.in 21 Feb 2002 17:10:55 -0000 1.80
+++ test/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
PROGRAMS = \
client@EXEEXT@ \
Index: threadproc/beos/Makefile.in
===================================================================
RCS file: /home/cvs/apr/threadproc/beos/Makefile.in,v
retrieving revision 1.19
diff -u -r1.19 Makefile.in
--- threadproc/beos/Makefile.in 9 Jan 2001 11:06:21 -0000 1.19
+++ threadproc/beos/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
proc.lo \
Index: threadproc/os2/Makefile.in
===================================================================
RCS file: /home/cvs/apr/threadproc/os2/Makefile.in,v
retrieving revision 1.13
diff -u -r1.13 Makefile.in
--- threadproc/os2/Makefile.in 9 Jan 2001 11:06:23 -0000 1.13
+++ threadproc/os2/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
proc.lo \
Index: threadproc/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/threadproc/unix/Makefile.in,v
retrieving revision 1.28
diff -u -r1.28 Makefile.in
--- threadproc/unix/Makefile.in 9 Jan 2001 11:06:25 -0000 1.28
+++ threadproc/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = \
proc.lo \
Index: time/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/time/unix/Makefile.in,v
retrieving revision 1.21
diff -u -r1.21 Makefile.in
--- time/unix/Makefile.in 9 Jan 2001 11:06:26 -0000 1.21
+++ time/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = time.lo timestr.lo
Index: user/unix/Makefile.in
===================================================================
RCS file: /home/cvs/apr/user/unix/Makefile.in,v
retrieving revision 1.6
diff -u -r1.6 Makefile.in
--- user/unix/Makefile.in 28 Jan 2001 01:18:04 -0000 1.6
+++ user/unix/Makefile.in 18 Apr 2002 17:59:15 -0000
@@ -1,3 +1,5 @@
+srcdir = @srcdir@
+VPATH = @srcdir@
TARGETS = userinfo.lo groupinfo.lo
RE: [PATCH] Get dependency generation working with VPATH
Posted by Sander Striker <st...@apache.org>.
> From: Justin Erenkrantz [mailto:jerenkrantz@apache.org]
> Sent: 18 April 2002 20:05
> To: dev@apr.apache.org
> Subject: [PATCH] Get dependency generation working with VPATH
>
>
> Since this is a fairly large patch, I'll post it first to give
> people a chance to comment.
>
> This attempts to get "make depend" working when using VPATH. Since
> we rely on $(srcdir) to always be defined, I'm adding srcdir and
> VPATH to all Makefiles. This also has the (good) side-effect of
> making these variables persist across config.status invocations.
>
> I also switched from using the mkdep.sh script to creating a .deps
> file (which is what httpd-2.0 uses). Is there any reason to keep
> on using the old way? I much prefer creating a .deps file than
> hacking the Makefile.
>
> Thoughts? -- justin
+1 on using .deps everywhere. I'd like APR and httpd to have
a consistent build system.
No comments on the rest (no time to review).
Sander