Hello,

    In preparation for src/{ICAP,eCAP} move to src/adaptation, I needed
to move AsyncJob.* files away from src/ICAP/. I have decided to put them
into the new src/base directory until a better place is found. While
adding src/base, I discovered and started to fix a few problems with
adding more src/ subdirectories.

These changes are small steps towards a nice layout. I wanted to post
them anyway because they affect a couple of strange places in our
Makefiles (e.g., src/ip found in the top-level Makefile and seemingly
bogus cf_gen dependencies).

I also wanted to ask whether AsyncJob and related Async* classes belong
to src/base/ or their own subdirectory. If we want a separate dir,
should we use src/jobs/ or perhaps src/calls (keeping in mind that not
all calls are between jobs and that jobs do more than just async calls)?
Probably not src/async as that clashes with I/O APIs.

Detailed change log is below.

Thank you,

Alex.

=== modified file 'Makefile.am'

Removed src/ip from the top-level SUBDIRS list. That directory is not
a top-level subdirectory and it is already listed in src/Makefile.am.

The commit message introducing the change talked about libip being a "POD
library". I do not know what that is, but, hopefully, we do not really
need to
make this kind of exceptions for any src/ libraries.


=== added file 'src/common.am'

Copied common Makefile.am stuff seen in a few Makefile.ams to a single
Makefile "header". This avoids evil code duplication. This file should be
included by most Makefile.ams inside src/. Needs more work as some of the
copied code is questionable and more code can probably be extracted
here. See
XXXs.

TODO: The .h dependency test script part seems pretty universal, but if
many subdirs need to customize it, we may want to put it into a separate
Makefile "header".


=== modified file 'src/AsyncJobCalls.h'
=== modified file 'src/BodyPipe.h'
=== modified file 'src/Server.h'
=== modified file 'src/adaptation/AccessCheck.h'
=== modified file 'src/adaptation/Initiate.h'
=== modified file 'src/adaptation/Initiator.h'
=== modified file 'src/client_side.h'
=== modified file 'src/client_side_request.h'

Moved src/ICAP/AsyncJob.* to src/base/ to prepare for the src/ICAP move to
src/adaptation/icap.


=== added dir 'src/base'
=== added dir 'src/base/Makefile.am'
=== modified file 'src/Makefile.am'
=== modified file 'configure.in'

Added src/base directory for fundamental, commonly-used code pieces that are
not large enough to warrant their own directories. Currently base/ contains
the beginning of AsyncCalls hierarchy, which may eventually get its own
directory.


=== modified file 'src/Makefile.am'

Reduced cf_gen dependencies so that it can be built before subdirectories,
as, apparently, required by BUILT_SOURCES.

Moved some libraries that are used by virtually all executables to
COMMON_LIBS.
The list will probably grow as we try to reduce the insane complexity of the
current Makefile.am.


# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: [email protected]\
#   yh0tbx1cwwao6h5j
# target_branch: http://www.squid-cache.org/bzr/squid3/trunk
# testament_sha1: 7fa69373f801658a092a1d124cc3dbab90f00e7a
# timestamp: 2009-02-19 00:23:41 -0700
# base_revision_id: [email protected]\
#   tfo2bh5i9obd9csi
# 
# Begin patch
=== modified file 'Makefile.am'
--- Makefile.am	2009-02-14 13:18:34 +0000
+++ Makefile.am	2009-02-19 07:11:38 +0000
@@ -3,7 +3,7 @@
 
 AUTOMAKE_OPTIONS = dist-bzip2 subdir-objects 1.5 foreign
 DIST_SUBDIRS	= compat lib snmplib scripts src icons errors contrib doc helpers test-suite tools
-SUBDIRS		= compat lib @makesnmplib@ scripts src/ip src icons errors doc helpers test-suite tools
+SUBDIRS		= compat lib @makesnmplib@ scripts src icons errors doc helpers test-suite tools
 
 DISTCLEANFILES = include/stamp-h include/stamp-h[0-9]*
 DEFAULT_PINGER		= $(libexecdir)/`echo pinger | sed '$(transform);s/$$/$(EXEEXT)/'`

=== modified file 'configure.in'
--- configure.in	2009-02-18 09:45:46 +0000
+++ configure.in	2009-02-19 07:15:47 +0000
@@ -3795,6 +3795,7 @@
 	scripts/RunCache \
 	scripts/RunAccel \
 	src/Makefile \
+	src/base/Makefile \
 	src/fs/Makefile \
 	src/repl/Makefile \
 	src/auth/Makefile \

=== modified file 'src/AsyncJobCalls.h'
--- src/AsyncJobCalls.h	2009-01-21 03:47:47 +0000
+++ src/AsyncJobCalls.h	2009-02-19 07:17:31 +0000
@@ -6,7 +6,7 @@
 #ifndef SQUID_ASYNCJOBCALLS_H
 #define SQUID_ASYNCJOBCALLS_H
 
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 
 /*
  * *MemFunT are member function (i.e., class method) wrappers. They store

=== modified file 'src/BodyPipe.h'
--- src/BodyPipe.h	2008-10-10 08:02:53 +0000
+++ src/BodyPipe.h	2009-02-19 07:17:31 +0000
@@ -4,7 +4,7 @@
 
 #include "MemBuf.h"
 #include "AsyncCall.h"
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 
 class BodyPipe;
 

=== modified file 'src/Makefile.am'
--- src/Makefile.am	2009-02-18 10:58:53 +0000
+++ src/Makefile.am	2009-02-19 07:16:14 +0000
@@ -32,7 +32,7 @@
 TESTS=$(check_PROGRAMS)
 check_PROGRAMS=
 
-SUBDIRS		= fs repl auth icmp ip
+SUBDIRS	= base fs repl auth icmp ip
 
 if USE_ADAPTATION
 SUBDIRS += adaptation
@@ -210,6 +210,13 @@
 noinst_LIBRARIES = @DISK_LIBS@
 noinst_LTLIBRARIES = libsquid.la libauth.la
 
+# libraries used by many targets
+COMMON_LIBS = \
+	libsquid.la \
+	libauth.la \
+	base/libbase.la \
+	ip/libip.la
+
 INCLUDES = \
 	-I$(top_srcdir) \
 	-I$(top_srcdir)/src \
@@ -247,18 +254,10 @@
 	@DISK_PROGRAMS@ \
 	$(UNLINKD)
 
-cf_gen_SOURCES = \
-	cf_gen.cc \
-	defines.h \
-	debug.cc \
-	time.cc
-
-nodist_cf_gen_SOURCES = globals.cc
+cf_gen_SOURCES = cf_gen.cc
 nodist_cf_gen_HEADER = cf_gen_defines.h
 cf_gen_LDADD= \
-	libsquid.la \
-	libauth.la \
-	ip/libip.la \
+	../compat/libcompat.la \
 	-L../lib -lmiscutil \
 	@XTRA_LIBS@ \
 	@EPOLL_LIBS@ \
@@ -432,8 +431,6 @@
 	CommCalls.h \
 	DescriptorSet.cc \
 	DescriptorSet.h \
-        ICAP/AsyncJob.cc \
-        ICAP/AsyncJob.h \
 	SquidConfig.cc \
         TextException.cc \
         TextException.h
@@ -695,10 +692,8 @@
 	string_arrays.c
 
 squid_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	-L../lib \
 	@XTRA_OBJS@ \
 	@DISK_LINKOBJS@ \
@@ -921,10 +916,8 @@
 	wordlist.cc \
 	$(WIN32_SOURCE)
 ufsdump_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	@XTRA_OBJS@ \
 	@REPL_OBJS@ \
 	@STORE_OBJS@ \
@@ -968,7 +961,7 @@
 data_DATA = \
 	mib.txt
 
-LDADD = libsquid.la libauth.la ip/libip.la -L../lib -lmiscutil @XTRA_LIBS@ @EPOLL_LIBS@ @MINGW_LIBS@
+LDADD = $(COMMON_LIBS) -L../lib -lmiscutil @XTRA_LIBS@ @EPOLL_LIBS@ @MINGW_LIBS@
 
 EXTRA_DIST = \
 	cf_gen_defines \
@@ -1251,9 +1244,7 @@
 	$(TESTSOURCES)
 
 tests_testAuth_LDADD= \
-	libsquid.la \
-	libauth.la \
-	ip/libip.la \
+	$(COMMON_LIBS) \
 	@AUTH_LINKOBJS@ @AUTH_OBJS@ \
 	-L../lib -lmiscutil \
 	@REGEXLIB@ \
@@ -1325,9 +1316,7 @@
 nodist_tests_testACLMaxUserIP_SOURCES= \
 	$(TESTSOURCES)
 tests_testACLMaxUserIP_LDADD= \
-	libsquid.la \
-	libauth.la \
-	ip/libip.la \
+	$(COMMON_LIBS) \
 	-L../lib -lmiscutil \
 	@REGEXLIB@ \
 	@SQUID_CPPUNIT_LIBS@ \
@@ -1490,10 +1479,8 @@
 	repl_modules.cc \
 	string_arrays.c
 tests_testCacheManager_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	@REPL_OBJS@ \
 	${ADAPTATION_LIBS} \
 	@REGEXLIB@ \
@@ -1517,8 +1504,7 @@
 nodist_tests_testDiskIO_SOURCES= \
 	$(SWAP_TEST_GEN_SOURCES)
 tests_testDiskIO_LDADD = \
-	ip/libip.la \
-	libsquid.la \
+	$(COMMON_LIBS) \
 	@DISK_LIBS@ \
 	$(SWAP_TEST_LDADD) \
 	SquidConfig.o
@@ -1668,10 +1654,8 @@
 	repl_modules.cc \
 	string_arrays.c
 tests_testEvent_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	@REPL_OBJS@ \
 	${ADAPTATION_LIBS} \
 	@REGEXLIB@ \
@@ -1825,10 +1809,8 @@
 	repl_modules.cc \
 	string_arrays.c
 tests_testEventLoop_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	@REPL_OBJS@ \
 	${ADAPTATION_LIBS} \
 	@REGEXLIB@ \
@@ -1977,10 +1959,8 @@
 	repl_modules.cc \
 	string_arrays.c
 tests_test_http_range_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	@REPL_OBJS@ \
 	@STORE_OBJS@ \
 	${ADAPTATION_LIBS} \
@@ -2135,10 +2115,8 @@
 	repl_modules.cc \
 	string_arrays.c
 tests_testHttpRequest_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	@REPL_OBJS@ \
 	${ADAPTATION_LIBS} \
 	@REGEXLIB@ \
@@ -2226,9 +2204,7 @@
 	$(STORE_TEST_GEN_SOURCES)
 
 tests_testStore_LDADD= \
-	libsquid.la \
-	libauth.la \
-	ip/libip.la \
+	$(COMMON_LIBS) \
 	-L../lib -lmiscutil \
 	@REGEXLIB@ \
 	@SQUID_CPPUNIT_LIBS@ \
@@ -2250,8 +2226,7 @@
 nodist_tests_testString_SOURCES = \
 	$(TESTSOURCES)
 tests_testString_LDADD = \
-	libsquid.la \
-	ip/libip.la \
+	$(COMMON_LIBS) \
 	-L../lib -lmiscutil \
 	@REGEXLIB@ \
 	@SQUID_CPPUNIT_LIBS@ \
@@ -2296,7 +2271,6 @@
 	$(DISKIO_GEN_SOURCE)
 
 SWAP_TEST_LDADD = \
-	libauth.la \
 	@REGEXLIB@ \
 	@STORE_LINKOBJS@ \
 	@STORE_OBJS@ \
@@ -2322,8 +2296,7 @@
 nodist_tests_testUfs_SOURCES = \
 	$(SWAP_TEST_GEN_SOURCES)
 tests_testUfs_LDADD = \
-	libsquid.la \
-	ip/libip.la \
+	$(COMMON_LIBS) \
 	$(SWAP_TEST_LDADD) \
 	@SSLLIB@
 tests_testUfs_LDFLAGS = $(LIBADD_DL)
@@ -2500,10 +2473,8 @@
 	repl_modules.cc \
 	string_arrays.c
 tests_testURL_LDADD = \
-	libsquid.la \
-	libauth.la \
+	$(COMMON_LIBS) \
 	icmp/libicmp.la icmp/libicmp-core.la \
-	ip/libip.la \
 	@REGEXLIB@ \
 	@REPL_OBJS@ \
 	${ADAPTATION_LIBS} \

=== modified file 'src/Server.h'
--- src/Server.h	2009-01-21 03:47:47 +0000
+++ src/Server.h	2009-02-19 07:17:31 +0000
@@ -37,7 +37,7 @@
 #include "StoreIOBuffer.h"
 #include "forward.h"
 #include "BodyPipe.h"
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 #include "CommCalls.h"
 
 #if USE_ADAPTATION

=== modified file 'src/adaptation/AccessCheck.h'
--- src/adaptation/AccessCheck.h	2008-10-10 08:02:53 +0000
+++ src/adaptation/AccessCheck.h	2009-02-19 07:17:31 +0000
@@ -1,7 +1,7 @@
 #ifndef SQUID_ADAPTATION__ACCESS_CHECK_H
 #define SQUID_ADAPTATION__ACCESS_CHECK_H
 
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 #include "adaptation/Elements.h"
 #include "adaptation/forward.h"
 

=== modified file 'src/adaptation/Initiate.h'
--- src/adaptation/Initiate.h	2008-10-10 08:02:53 +0000
+++ src/adaptation/Initiate.h	2009-02-19 07:17:31 +0000
@@ -2,7 +2,7 @@
 #define SQUID_ADAPTATION__INITIATE_H
 
 #include "AsyncCall.h"
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 #include "adaptation/forward.h"
 
 class HttpMsg;

=== modified file 'src/adaptation/Initiator.h'
--- src/adaptation/Initiator.h	2008-10-10 08:02:53 +0000
+++ src/adaptation/Initiator.h	2009-02-19 07:17:31 +0000
@@ -1,7 +1,7 @@
 #ifndef SQUID_ADAPTATION__INITIATOR_H
 #define SQUID_ADAPTATION__INITIATOR_H
 
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 #include "adaptation/forward.h"
 
 /*

=== added directory 'src/base'
=== renamed file 'src/ICAP/AsyncJob.cc' => 'src/base/AsyncJob.cc'
=== renamed file 'src/ICAP/AsyncJob.h' => 'src/base/AsyncJob.h'
--- src/ICAP/AsyncJob.h	2009-01-21 03:47:47 +0000
+++ src/base/AsyncJob.h	2009-02-19 07:17:31 +0000
@@ -5,9 +5,6 @@
 #ifndef SQUID_ASYNC_JOB_H
 #define SQUID_ASYNC_JOB_H
 
-/// \todo move src/ICAP/AsyncJob.* to src/
-
-
 #include "AsyncCall.h"
 #include "TextException.h"
 

=== added file 'src/base/Makefile.am'
--- src/base/Makefile.am	1970-01-01 00:00:00 +0000
+++ src/base/Makefile.am	2009-02-19 07:15:47 +0000
@@ -0,0 +1,8 @@
+
+include $(top_srcdir)/src/common.am
+
+noinst_LTLIBRARIES = libbase.la
+
+libbase_la_SOURCES = \
+	AsyncJob.h \
+	AsyncJob.cc

=== modified file 'src/client_side.h'
--- src/client_side.h	2009-01-21 03:47:47 +0000
+++ src/client_side.h	2009-02-19 07:17:31 +0000
@@ -37,7 +37,7 @@
 #include "StoreIOBuffer.h"
 #include "BodyPipe.h"
 #include "RefCount.h"
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 #include "CommCalls.h"
 
 class ConnStateData;

=== modified file 'src/client_side_request.h'
--- src/client_side_request.h	2009-01-21 03:47:47 +0000
+++ src/client_side_request.h	2009-02-19 07:17:31 +0000
@@ -41,7 +41,7 @@
 #include "client_side.h"
 #include "AccessLogEntry.h"
 #include "dlink.h"
-#include "ICAP/AsyncJob.h"
+#include "base/AsyncJob.h"
 
 #if USE_ADAPTATION
 #include "adaptation/forward.h"

=== added file 'src/common.am'
--- src/common.am	1970-01-01 00:00:00 +0000
+++ src/common.am	2009-02-19 07:14:08 +0000
@@ -0,0 +1,37 @@
+# Settings common to many Squid Makefiles
+
+# This file should be included first in all src/subdir/Makefile.am
+# so it must not contain stuff specific to or bad for some subdirectories.
+
+# TODO: make this set by configure?
+AM_CFLAGS = @SQUID_CFLAGS@
+AM_CXXFLAGS = @SQUID_CXXFLAGS@
+DEFS = @DEFS@
+
+# so that others can always use += for this variable
+CLEANFILES =
+
+INCLUDES = \
+	-I$(top_srcdir) \
+	-I$(top_srcdir)/include \
+	-I$(top_srcdir)/src \
+	-I$(top_builddir)/lib \
+	@SQUID_CPPUNIT_INC@
+
+# make all compiled sources depend on generated files
+# XXX: Do we really need this? Does auto-dependency tracking work?
+# XXX: And should not autoconf be in $(top_builddir)?
+$(OBJS): $(top_srcdir)/include/version.h $(top_srcdir)/include/autoconf.h
+
+check_PROGRAMS = testHeaders
+TESTS = $(check_PROGRAMS)
+
+## Special Universal .h dependency test script
+## aborts build process on errors
+testHeaders: $(srcdir)/*.h
+	$(SHELL) $(top_srcdir)/test-suite/testheaders.sh "$(CXXCOMPILE)" "$(srcdir)/" || exit 1
+
+## No such file...
+testHeaders.c:
+	touch testHeaders.c
+CLEANFILES += testHeaders.c

# Begin bundle
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

Reply via email to