2 # Makefile for the Squid Object Cache server
4 # $Id: Makefile.am,v 1.108 2005/04/23 20:40:50 serassio Exp $
6 # Uncomment and customize the following to suit your needs:
10 AUTOMAKE_OPTIONS = subdir-objects
15 DNSSOURCE = dns_internal.cc
20 SNMPSOURCE = snmp_core.cc snmp_agent.cc
25 TESTS=$(check_PROGRAMS)
28 DELAY_POOL_ALL_SOURCE = \
53 DELAY_POOL_SOURCE = $(DELAY_POOL_ALL_SOURCE)
90 ESI_SOURCE = $(ESI_ALL_SOURCE)
96 XPROF_STATS_SOURCE = ProfStats.cc
102 HTCPSOURCE = htcp.cc htcp.h
106 LEAKFINDERSOURCE = leakfinder.cc
112 UNLINKDSOURCE = unlinkd.cc
126 ACLCertificateData.cc \
127 ACLCertificateData.h \
133 SSL_SOURCE = $(SSL_ALL_SOURCE)
138 if ENABLE_WIN32SPECIFIC
139 WIN32SOURCE = win32.cc
144 IDENT_ALL_SOURCE = ACLIdent.cc ACLIdent.h ident.cc
146 IDENT_SOURCE = $(IDENT_ALL_SOURCE)
151 ARP_ACL_ALL_SOURCE = ACLARP.cc ACLARP.h
153 ARP_ACL_SOURCE = $(ARP_ACL_ALL_SOURCE)
158 AM_CFLAGS = @SQUID_CFLAGS@
159 AM_CXXFLAGS = @SQUID_CXXFLAGS@
161 SUBDIRS = fs repl auth
163 EXTRA_LIBRARIES = libAIO.a libBlocking.a libDiskDaemon.a libDiskThreads.a
164 noinst_LIBRARIES = @DISK_LIBS@
166 INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir)/lib/libTrie/include
167 INCLUDES += @SQUID_CPPUNIT_INC@
170 DiskIO/DiskDaemon/diskd \
194 cf_gen_SOURCES = cf_gen.cc defines.h
195 nodist_cf_gen_HEADER = cf_gen_defines.h
196 cf_gen.$(OBJEXT): cf_gen_defines.h
197 squidclient_SOURCES = client.cc
198 cachemgr__CGIEXT__SOURCES = cachemgr.cc
199 cachemgr__CGIEXT__CFLAGS = -DDEFAULT_CACHEMGR_CONFIG=\"$(DEFAULT_CACHEMGR_CONFIG)\" $(AM_CFLAGS)
202 fs/aufs/StoreFSaufs.cc \
203 fs/coss/StoreFScoss.cc \
204 fs/diskd/StoreFSdiskd.cc \
205 fs/null/StoreFSnull.cc \
208 all_DISKIOMODULES = \
209 DiskIO/AIO/AIODiskIOModule.cc \
210 DiskIO/Blocking/BlockingDiskIOModule.cc \
211 DiskIO/DiskDaemon/DiskDaemonDiskIOModule.cc \
212 DiskIO/DiskThreads/DiskThreadsDiskIOModule.cc
215 DiskIO/DiskIOModule.cc \
216 DiskIO/ReadRequest.cc \
217 DiskIO/ReadRequest.h \
218 DiskIO/WriteRequest.cc \
219 DiskIO/WriteRequest.h \
221 DiskIO/DiskIOStrategy.h \
222 DiskIO/IORequestor.h \
223 DiskIO/DiskIOModule.h \
227 auth/basic/basicScheme.cc \
228 auth/basic/basicScheme.h \
229 auth/digest/digestScheme.cc \
230 auth/digest/digestScheme.h \
231 auth/ntlm/ntlmScheme.cc \
232 auth/ntlm/ntlmScheme.h
234 EXTRA_squid_SOURCES = \
236 $(all_DISKIOMODULES) \
238 $(ARP_ACL_ALL_SOURCE) \
240 $(DELAY_POOL_ALL_SOURCE) \
246 $(IDENT_ALL_SOURCE) \
260 ACLDestinationASN.h \
265 ACLDestinationDomain.cc \
266 ACLDestinationDomain.h \
267 ACLDestinationIP.cc \
277 ACLMaxConnection.cc \
299 ACLReplyHeaderStrategy.h \
300 ACLReplyMIMEType.cc \
302 ACLRequestHeaderStrategy.h \
303 ACLRequestMIMEType.cc \
304 ACLRequestMIMEType.h \
334 $(squid_ACLSOURCES) \
352 client_side_reply.cc \
353 client_side_reply.h \
354 client_side_request.cc \
355 client_side_request.h \
372 $(DELAY_POOL_SOURCE) \
383 ExternalACLEntry.cc \
397 HierarchyLogEntry.h \
407 HttpHdrContRange.cc \
431 $(LEAKFINDERSOURCE) \
449 $(XPROF_STATS_SOURCE) \
495 StoreMetaUnpacker.cc \
496 StoreMetaUnpacker.h \
502 StoreSwapLogData.cc \
518 noinst_HEADERS = ACLChecklist.cci \
522 client_side_request.cci \
530 nodist_squid_SOURCES = \
554 squid_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a @STORE_OBJS@ @STORE_LINKOBJS@ \
561 unlinkd_SOURCES = unlinkd.cc SquidNew.cc
562 unlinkd_CXXFLAGS = -DUNLINK_DAEMON
569 dnsserver_SOURCES = dnsserver.cc SquidNew.cc
570 recv_announce_SOURCES = recv-announce.cc SquidNew.cc
572 ## What requires what..
573 ## many things want ACLChecklist.cc
574 ## ACLChecklist.cc wants AuthUserRequest.cc
575 ## ACLChecklist.cc wants AuthScheme.cc
576 ## ACLChecklist.cc wants ACLProxyAuth.cc directly
577 ## ACLProxyAuth.cc wants ACLUserData
578 ## ACLProxyAuth.cc wants ACLRegexData
579 ## cache_cf.cc wants AuthConfig
580 ## cache_cf.cc wants Swapdir
581 ## client_side wants client_db
582 ## client_db wants SNMP_SOURCE
583 ## snmp_core wants ACLStringData
584 ## SwapDir wants ConfigOption
586 ufsdump_SOURCES = debug.cc \
597 StoreMetaUnpacker.cc \
598 StoreMetaUnpacker.h \
603 StoreSwapLogData.cc \
624 client_side_reply.cc \
625 client_side_request.cc \
626 client_side_request.h \
638 $(DELAY_POOL_SOURCE) \
647 ExternalACLEntry.cc \
664 HttpHdrContRange.cc \
681 $(LEAKFINDERSOURCE) \
697 $(XPROF_STATS_SOURCE) \
754 ufsdump_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a
755 nodist_ufsdump_SOURCES = \
761 nodist_pinger_SOURCES = \
778 LDADD = -L../lib -lmiscutil @XTRA_LIBS@ @EPOLL_LIBS@
784 mk-string-arrays.pl \
791 DiskIO/AIO/async_io.h \
792 DiskIO/AIO/AIODiskFile.cc \
793 DiskIO/AIO/AIODiskFile.h \
794 DiskIO/AIO/AIODiskIOStrategy.cc \
795 DiskIO/AIO/AIODiskIOStrategy.h \
796 DiskIO/AIO/AIODiskIOModule.h
798 libBlocking_a_SOURCES = \
799 DiskIO/Blocking/BlockingFile.cc \
800 DiskIO/Blocking/BlockingFile.h \
801 DiskIO/Blocking/BlockingIOStrategy.cc \
802 DiskIO/Blocking/BlockingIOStrategy.h \
803 DiskIO/Blocking/BlockingDiskIOModule.h
805 libDiskDaemon_a_SOURCES = \
806 DiskIO/DiskDaemon/DiskdFile.cc \
807 DiskIO/DiskDaemon/DiskdFile.h \
808 DiskIO/DiskDaemon/DiskdIOStrategy.cc \
809 DiskIO/DiskDaemon/DiskdIOStrategy.h \
810 DiskIO/DiskDaemon/diomsg.h \
811 DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h
813 libDiskThreads_a_SOURCES = \
814 DiskIO/DiskThreads/aiops.cc \
815 DiskIO/DiskThreads/async_io.cc \
816 DiskIO/DiskThreads/DiskThreads.h \
817 DiskIO/DiskThreads/DiskThreadsDiskFile.cc \
818 DiskIO/DiskThreads/DiskThreadsDiskFile.h \
819 DiskIO/DiskThreads/DiskThreadsDiskIOModule.h \
820 DiskIO/DiskThreads/DiskThreadsIOStrategy.cc \
821 DiskIO/DiskThreads/DiskThreadsIOStrategy.h
823 DiskIO_DiskDaemon_diskd_SOURCES = DiskIO/DiskDaemon/diskd.cc
824 DiskIO_DiskDaemon_diskd_LDADD = $(top_builddir)/lib/libmiscutil.a @XTRA_LIBS@
827 DEFAULT_PREFIX = $(prefix)
828 DEFAULT_CONFIG_FILE = $(sysconfdir)/squid.conf
829 DEFAULT_CACHEMGR_CONFIG = $(sysconfdir)/cachemgr.conf
830 DEFAULT_MIME_TABLE = $(sysconfdir)/mime.conf
831 DEFAULT_DNSSERVER = $(libexecdir)/`echo dnsserver | sed '$(transform);s/$$/$(EXEEXT)/'`
832 DEFAULT_LOG_PREFIX = $(localstatedir)/logs
833 DEFAULT_CACHE_LOG = $(DEFAULT_LOG_PREFIX)/cache.log
834 DEFAULT_ACCESS_LOG = $(DEFAULT_LOG_PREFIX)/access.log
835 DEFAULT_STORE_LOG = $(DEFAULT_LOG_PREFIX)/store.log
836 DEFAULT_PID_FILE = $(DEFAULT_LOG_PREFIX)/squid.pid
837 DEFAULT_SWAP_DIR = $(localstatedir)/cache
838 DEFAULT_PINGER = $(libexecdir)/`echo pinger | sed '$(transform);s/$$/$(EXEEXT)/'`
839 DEFAULT_UNLINKD = $(libexecdir)/`echo unlinkd | sed '$(transform);s/$$/$(EXEEXT)/'`
840 DEFAULT_DISKD = $(libexecdir)/`echo diskd | sed '$(transform);s/$$/$(EXEEXT)/'`
841 DEFAULT_ICON_DIR = $(datadir)/icons
842 DEFAULT_ERROR_DIR = $(datadir)/errors/@ERR_DEFAULT_LANGUAGE@
843 DEFAULT_MIB_PATH = $(datadir)/mib.txt
844 DEFAULT_HOSTS = @OPT_DEFAULT_HOSTS@
846 DEFS = @DEFS@ -DDEFAULT_CONFIG_FILE=\"$(DEFAULT_CONFIG_FILE)\"
848 $(OBJS): $(top_srcdir)/include/version.h ../include/autoconf.h
850 snmp_core.o snmp_agent.o: ../snmplib/libsnmp.a $(top_srcdir)/include/cache_snmp.h
852 globals.cc: globals.h mk-globals-c.pl
853 $(PERL) $(srcdir)/mk-globals-c.pl < $(srcdir)/globals.h > $@
855 string_arrays.c: enums.h mk-string-arrays.pl
856 $(PERL) $(srcdir)/mk-string-arrays.pl < $(srcdir)/enums.h > $@
858 cache_diff: cache_diff.o debug.o globals.o store_key_md5.o
859 $(CC) -o $@ $(LDFLAGS) $@.o debug.o globals.o store_key_md5.o $(STD_APP_LIBS)
861 test_cache_digest: test_cache_digest.o CacheDigest.o debug.o globals.o store_key_md5.o
862 $(CC) -o $@ $(LDFLAGS) $@.o CacheDigest.o debug.o globals.o store_key_md5.o $(STD_APP_LIBS)
864 ## If autodependency works well this is not needed anymore
865 cache_cf.o: cf_parser.h
867 squid.conf.default: cf_parser.h
868 $(SHELL) -c "test -f squid.conf.default || ./cf_gen cf.data"
870 cf_parser.h: cf.data cf_gen$(EXEEXT)
873 cf_gen_defines.h: $(srcdir)/cf_gen_defines $(srcdir)/cf.data.pre
874 awk -f $(srcdir)/cf_gen_defines <$(srcdir)/cf.data.pre >cf_gen_defines.h
877 ## FIXME: generate a sed command file from configure. Then this doesn't
878 ## depend on the Makefile.
879 cf.data: cf.data.pre Makefile
881 s%@DEFAULT_MIME_TABLE@%$(DEFAULT_MIME_TABLE)%g;\
882 s%@DEFAULT_DNSSERVER@%$(DEFAULT_DNSSERVER)%g;\
883 s%@DEFAULT_UNLINKD@%$(DEFAULT_UNLINKD)%g;\
884 s%@DEFAULT_PINGER@%$(DEFAULT_PINGER)%g;\
885 s%@DEFAULT_DISKD@%$(DEFAULT_DISKD)%g;\
886 s%@DEFAULT_CACHE_LOG@%$(DEFAULT_CACHE_LOG)%g;\
887 s%@DEFAULT_ACCESS_LOG@%$(DEFAULT_ACCESS_LOG)%g;\
888 s%@DEFAULT_STORE_LOG@%$(DEFAULT_STORE_LOG)%g;\
889 s%@DEFAULT_PID_FILE@%$(DEFAULT_PID_FILE)%g;\
890 s%@DEFAULT_SWAP_DIR@%$(DEFAULT_SWAP_DIR)%g;\
891 s%@DEFAULT_ICON_DIR@%$(DEFAULT_ICON_DIR)%g;\
892 s%@DEFAULT_MIB_PATH@%$(DEFAULT_MIB_PATH)%g;\
893 s%@DEFAULT_ERROR_DIR@%$(DEFAULT_ERROR_DIR)%g;\
894 s%@DEFAULT_PREFIX@%$(DEFAULT_PREFIX)%g;\
895 s%@DEFAULT_HOSTS@%$(DEFAULT_HOSTS)%g;\
896 s%@[V]ERSION@%$(VERSION)%g;"\
897 < $(srcdir)/cf.data.pre >$@
899 repl_modules.cc: repl_modules.sh Makefile
900 $(SHELL) $(srcdir)/repl_modules.sh $(REPL_POLICIES) > repl_modules.cc
902 install-data-local: install-sysconfDATA install-dataDATA
903 @if test -f $(DESTDIR)$(DEFAULT_MIME_TABLE) ; then \
904 echo "$@ will not overwrite existing $(DESTDIR)$(DEFAULT_MIME_TABLE)" ; \
906 echo "$(INSTALL_DATA) $(srcdir)/mime.conf.default $(DESTDIR)$(DEFAULT_MIME_TABLE)" ;\
907 $(INSTALL_DATA) $(srcdir)/mime.conf.default $(DESTDIR)$(DEFAULT_MIME_TABLE); \
909 @if test -f $(DESTDIR)$(DEFAULT_CONFIG_FILE) ; then \
910 echo "$@ will not overwrite existing $(DESTDIR)$(DEFAULT_CONFIG_FILE)" ; \
912 echo "$(INSTALL_DATA) squid.conf.default $(DESTDIR)$(DEFAULT_CONFIG_FILE)"; \
913 $(INSTALL_DATA) squid.conf.default $(DESTDIR)$(DEFAULT_CONFIG_FILE); \
915 @if test -f $(DESTDIR)$(DEFAULT_CACHEMGR_CONFIG) ; then \
916 echo "$@ will not overwrite existing $(DESTDIR)$(DEFAULT_CACHEMGR_CONFIG)" ; \
918 echo "$(INSTALL_DATA) $(srcdir)/cachemgr.conf $(DESTDIR)$(DEFAULT_CACHEMGR_CONFIG)"; \
919 $(INSTALL_DATA) $(srcdir)/cachemgr.conf $(DESTDIR)$(DEFAULT_CACHEMGR_CONFIG); \
921 $(mkinstalldirs) $(DESTDIR)$(DEFAULT_LOG_PREFIX)
924 @if test -f $(DESTDIR)$(DEFAULT_MIME_TABLE) ; then \
925 echo "rm -f $(DESTDIR)$(DEFAULT_MIME_TABLE)"; \
926 $(RM) -f $(DESTDIR)$(DEFAULT_MIME_TABLE); \
929 # Don't automatically uninstall config files
930 # @if test -f $(DESTDIR)$(DEFAULT_CONFIG_FILE) ; then \
931 # echo "rm -f $(DESTDIR)$(DEFAULT_CONFIG_FILE)"; \
932 # $(RM) -f $(DESTDIR)$(DEFAULT_CONFIG_FILE); \
935 DISTCLEANFILES = cf_gen_defines.h cf.data cf_parser.h squid.conf.default \
936 globals.cc string_arrays.c repl_modules.cc
939 ## @f=$(PINGER_EXE); \
940 ## if test -f $(libexecdir)/$$f; then \
941 ## echo $(MV) $(libexecdir)/$$f $(libexecdir)/-$$f; \
942 ## $(MV) $(libexecdir)/$$f $(libexecdir)/-$$f; \
944 ## echo $(INSTALL_SUID) $$f $(libexecdir); \
945 ## $(INSTALL_SUID) $$f $(libexecdir) || exit 1; \
946 ## if test -f $(libexecdir)/-$$f; then \
947 ## echo $(RM) -f $(libexecdir)/-$$f; \
948 ## $(RM) -f $(libexecdir)/-$$f; \
951 TESTSOURCES=../test-suite/test_tools.cc
953 check_PROGRAMS+=tests/testAuth tests/testStore tests/testUfs tests/testCoss tests/testNull
954 tests_testAuth_SOURCES= tests/testAuth.cc tests/testMain.cc tests/testAuth.h $(TESTSOURCES) \
955 AuthScheme.cc globals.cc authenticate.cc AuthUser.cc AuthUserRequest.cc AuthConfig.cc \
956 tests/stub_acl.cc tests/stub_cache_cf.cc \
957 tests/stub_helper.cc cbdata.cc String.cc tests/stub_cache_manager.cc \
958 tests/stub_store.cc HttpHeaderTools.cc HttpHeader.cc acl.cc event.cc mem.cc \
959 MemBuf.cc HttpHdrContRange.cc Packer.cc ACLChecklist.cc HttpHdrCc.cc HttpHdrSc.cc \
960 HttpHdrScTarget.cc url.cc ACLProxyAuth.cc ACLRegexData.cc ACLUserData.cc \
961 StatHist.cc HttpHdrRange.cc ETag.cc tests/stub_errorpage.cc \
962 tests/stub_HttpRequest.cc
963 ## acl.cc cache_cf.cc tools.cc \
964 ## helper.cc String.cc cbdata.cc HttpHeaderTools.cc store.cc cache_manager.cc \
965 ## HttpHeader.cc url.cc event.cc mem.cc HttpRequest.cc Packer.cc access_log.cc \
966 ## MemBuf.cc StatHist.cc logfile.cc
968 tests_testAuth_LDADD= \
969 @AUTH_LINKOBJS@ @AUTH_OBJS@ \
970 -L../lib -lmiscutil \
973 tests_testAuth_LDFLAGS = $(LIBADD_DL)
974 tests_testAuth_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a \
991 AuthScheme.cc authenticate.cc AuthUser.cc AuthUserRequest.cc AuthConfig.cc \
992 tests/stub_acl.cc tests/stub_cache_cf.cc \
993 tests/stub_helper.cc cbdata.cc String.cc tests/stub_cache_manager.cc \
998 tests/stub_store_client.cc \
999 tests/stub_tools.cc \
1000 HttpHeaderTools.cc HttpHeader.cc acl.cc event.cc mem.cc \
1001 MemBuf.cc HttpHdrContRange.cc Packer.cc ACLChecklist.cc HttpHdrCc.cc HttpHdrSc.cc \
1002 HttpHdrScTarget.cc url.cc ACLProxyAuth.cc ACLRegexData.cc ACLUserData.cc \
1003 StatHist.cc HttpHdrRange.cc ETag.cc tests/stub_errorpage.cc \
1004 tests/stub_HttpRequest.cc
1006 ## why so many sources? well httpHeaderTools requites ACLChecklist & friends.
1007 ## first line - what we are testing.
1008 tests_testStore_SOURCES= tests/testStore.cc \
1009 tests/testStoreController.cc \
1010 tests/testStoreHashIndex.cc \
1013 tests/testStoreController.h \
1014 tests/testStoreHashIndex.h \
1015 tests/TestSwapDir.cc \
1016 tests/TestSwapDir.h \
1017 tests/stub_store_swapout.cc \
1019 tests/stub_HttpReply.cc \
1020 tests/stub_MemObject.cc \
1021 $(STORE_TEST_SOURCES)
1023 tests_testStore_LDADD= \
1024 -L../lib -lmiscutil \
1026 tests_testStore_LDFLAGS = $(LIBADD_DL)
1027 tests_testStore_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a \
1031 tests/stub_store_rebuild.cc \
1032 tests/stub_internal.cc \
1044 StoreSwapLogData.cc \
1049 StoreMetaUnpacker.cc \
1052 StoreFileSystem.cc \
1057 $(STORE_TEST_SOURCES) \
1061 DiskIO/Blocking/BlockingDiskIOModule.o \
1062 repl/lru/store_repl_lru.o \
1067 -L../lib -lmiscutil \
1070 $(top_builddir)/lib/libmiscutil.a \
1071 DiskIO/Blocking/BlockingDiskIOModule.o \
1072 repl/lru/store_repl_lru.o \
1080 tests_testUfs_SOURCES= tests/testUfs.cc \
1083 $(SWAP_TEST_SOURCES)
1084 tests_testUfs_LDADD= \
1086 tests_testUfs_LDFLAGS = $(LIBADD_DL)
1087 tests_testUfs_DEPENDENCIES = \
1090 tests_testCoss_SOURCES= tests/testCoss.cc \
1093 $(SWAP_TEST_SOURCES)
1094 tests_testCoss_LDADD= \
1096 tests_testCoss_LDFLAGS = $(LIBADD_DL)
1097 tests_testCoss_DEPENDENCIES = \
1100 tests_testNull_SOURCES= tests/testNull.cc \
1103 $(SWAP_TEST_SOURCES)
1104 tests_testNull_LDADD= \
1106 tests_testNull_LDFLAGS = $(LIBADD_DL)
1107 tests_testNull_DEPENDENCIES = \