=== modified file 'configure.in' --- configure.in 2009-03-29 07:13:39 +0000 +++ configure.in 2009-03-30 21:49:46 +0000 @@ -509,6 +509,12 @@ STORE_TESTS="$STORE_TESTS tests/testUfs$EXEEXT" fi +AH_TEMPLATE(HAVE_FS_UFS, "Define to 1 if ufs filesystem module is build") +AH_TEMPLATE(HAVE_FS_AUFS, "Define to 1 if aufs filesystem module is build") +AH_TEMPLATE(HAVE_FS_DISKD, "Define to 1 if diskd filesystem module is build") +AH_TEMPLATE(HAVE_FS_COSS, "Define to 1 if coss filesystem module is build") + + dnl got final STORE_MODULES, build library lists dnl This list will not be needed when each fs library has its own Makefile STORE_LIBS_TO_BUILD= @@ -516,8 +522,10 @@ dnl These are the same as STORE_LIBS_TO_BUILD, but with a path STORE_LIBS_TO_ADD= for fs in $STORE_MODULES; do - STORE_LIBS_TO_BUILD="$STORE_LIBS_TO_BUILD lib${fs}.a" - STORE_LIBS_TO_ADD="$STORE_LIBS_TO_ADD fs/lib${fs}.a" + STORE_LIBS_TO_BUILD="$STORE_LIBS_TO_BUILD lib${fs}.la" + STORE_LIBS_TO_ADD="$STORE_LIBS_TO_ADD fs/lib${fs}.la" + HAVE_FS_TYPE=HAVE_FS_`echo $fs | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + AC_DEFINE_UNQUOTED($HAVE_FS_TYPE, 1) done AC_SUBST(STORE_LIBS_TO_BUILD) === modified file 'src/Makefile.am' --- src/Makefile.am 2009-03-28 17:41:32 +0000 +++ src/Makefile.am 2009-03-30 21:47:47 +0000 @@ -168,7 +168,8 @@ auth/libauth.la \ acl/libapi.la \ base/libbase.la \ - ip/libip.la + ip/libip.la \ + fs/libfs.la INCLUDES = \ -I$(top_srcdir) \ @@ -532,7 +533,6 @@ @XTRA_OBJS@ \ @DISK_LINKOBJS@ \ @REPL_OBJS@ \ - @STORE_LIBS_TO_ADD@ \ @DISK_LIBS@ \ @CRYPTLIB@ \ @REGEXLIB@ \ @@ -545,7 +545,6 @@ @EPOLL_LIBS@ \ @MINGW_LIBS@ squid_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a \ - @STORE_LIBS_TO_ADD@ \ @DISK_LIBS@ \ @DISK_LINKOBJS@ \ @REPL_OBJS@ \ @@ -613,7 +612,6 @@ $(COMMON_LIBS) \ @XTRA_OBJS@ \ @REPL_OBJS@ \ - @STORE_LIBS_TO_ADD@ \ @CRYPTLIB@ \ @REGEXLIB@ \ @SNMPLIB@ \ @@ -623,7 +621,7 @@ @EPOLL_LIBS@ \ @MINGW_LIBS@ ufsdump_DEPENDENCIES = $(top_builddir)/lib/libmiscutil.a \ - @STORE_LIBS_TO_ADD@ \ + $(COMMON_LIBS) \ @DISK_LIBS@ \ @DISK_LINKOBJS@ \ @REPL_OBJS@ @@ -1595,7 +1593,6 @@ $(COMMON_LIBS) \ icmp/libicmp.la icmp/libicmp-core.la \ @REPL_OBJS@ \ - @STORE_LIBS_TO_ADD@ \ ${ADAPTATION_LIBS} \ ${ESI_LIBS} \ @REGEXLIB@ \ @@ -1895,7 +1892,7 @@ SWAP_TEST_LDADD = \ @REGEXLIB@ \ - @STORE_LIBS_TO_ADD@ \ + $(COMMON_LIBS) \ @REPL_OBJS@ \ @DISK_LIBS@ \ -L../lib -lmiscutil \ @@ -1905,7 +1902,7 @@ $(top_builddir)/lib/libmiscutil.a \ repl_modules.o \ @DISK_LIBS@ \ - @STORE_LIBS_TO_ADD@ \ + $(COMMON_LIBS) \ @REPL_OBJS@ \ @SQUID_CPPUNIT_LA@ === modified file 'src/fs/Makefile.am' --- src/fs/Makefile.am 2009-02-25 20:35:16 +0000 +++ src/fs/Makefile.am 2009-03-30 22:00:06 +0000 @@ -1,20 +1,20 @@ include $(top_srcdir)/src/Common.am -EXTRA_LIBRARIES = libaufs.a libdiskd.a libcoss.a libufs.a -noinst_LIBRARIES = @STORE_LIBS_TO_BUILD@ +EXTRA_LTLIBRARIES = libaufs.la libdiskd.la libcoss.la libufs.la +noinst_LTLIBRARIES = @STORE_LIBS_TO_BUILD@ libfs.la ## TODO: add libfs -- file system framework; this library is always built ## TODO: use libtool and add @STORE_LIBS_TO_BUILD@ to libfs.la # aufs is a "fake" legacy store -libaufs_a_SOURCES = \ +libaufs_la_SOURCES = \ aufs/StoreFSaufs.cc # diskd is a "fake" legacy store -libdiskd_a_SOURCES = \ +libdiskd_la_SOURCES = \ diskd/StoreFSdiskd.cc -libcoss_a_SOURCES = \ +libcoss_la_SOURCES = \ coss/StoreFScoss.h \ coss/StoreFScoss.cc \ coss/store_coss.h \ @@ -22,7 +22,7 @@ coss/store_dir_coss.cc \ coss/CossSwapDir.h -libufs_a_SOURCES = \ +libufs_la_SOURCES = \ ufs/StoreFSufs.h \ ufs/StoreFSufs.cc \ ufs/store_dir_ufs.cc \ @@ -31,6 +31,8 @@ ufs/ufscommon.cc \ ufs/ufscommon.h +libfs_la_SOURCES = Module.c +libfs_la_LIBADD = @STORE_LIBS_TO_BUILD@ EXTRA_DIST = \ coss/coss-notes.txt @@ -56,7 +58,7 @@ CLEANFILES += testHeaders.c ## targets below to emulate distributed makefiles -coss/all: libcoss.a +coss/all: libcoss.la coss/clean: clean -ufs/all: libufs.a +ufs/all: libufs.la ufs/clean: clean === added file 'src/fs/Module.cc' --- src/fs/Module.cc 1970-01-01 00:00:00 +0000 +++ src/fs/Module.cc 2009-03-30 21:10:26 +0000 @@ -0,0 +1,65 @@ +#include "squid.h" +#include "Module.h" +#if defined(HAVE_FS_UFS) || defined(HAVE_FS_AUFS) || defined(HAVE_FS_DISKD) +#include "fs/ufs/StoreFSufs.h" +#include "fs/ufs/ufscommon.h" +#endif + +#ifdef HAVE_FS_COSS +#include "fs/coss/StoreFScoss.h" +#endif + +#ifdef HAVE_FS_UFS +static StoreFSufs *UfsInstance; +#endif + +#ifdef HAVE_FS_AUFS +static StoreFSufs *AufsInstance; +#endif + + +#ifdef HAVE_FS_DISKD +static StoreFSufs *DiskdInstance; +#endif + +#ifdef HAVE_FS_COSS + StoreFScoss &CossInstance = StoreFScoss::GetInstance(); +#endif + + +void FS::Init() { + +#ifdef HAVE_FS_UFS + UfsInstance = new StoreFSufs("Blocking", "ufs"); +#endif + +#ifdef HAVE_FS_AUFS + AufsInstance = new StoreFSufs("DiskThreads", "aufs");; +#endif + + +#ifdef HAVE_FS_DISKD + DiskdInstance = new StoreFSufs("DiskDaemon", "diskd");; +#endif + +} + + +void FS::Clean() { +#ifdef HAVE_FS_UFS + assert(UfsInstance); + delete UfsInstance; +#endif + +#ifdef HAVE_FS_AUFS + assert(AufsInstance); + delete AufsInstance; +#endif + + +#ifdef HAVE_FS_DISKD + assert(DiskdInstance); + delete DiskdInstance; +#endif + +} === added file 'src/fs/Module.h' --- src/fs/Module.h 1970-01-01 00:00:00 +0000 +++ src/fs/Module.h 2009-03-30 17:55:35 +0000 @@ -0,0 +1,11 @@ +#ifndef SQUID_FS_MODULE_H +#define SQUID_FS_MODULE_H + +namespace FS { + + extern void Init(); + extern void Clean(); + +}; // namespace FS + +#endif /* SQUID_FS_MODULE_H */ === modified file 'src/fs/aufs/StoreFSaufs.cc' --- src/fs/aufs/StoreFSaufs.cc 2009-01-21 03:47:47 +0000 +++ src/fs/aufs/StoreFSaufs.cc 2009-03-30 20:01:28 +0000 @@ -51,4 +51,5 @@ */ /// \ingroup AUFS -static StoreFSufs AufsInstance("DiskThreads", "aufs"); +//static StoreFSufs AufsInstance("DiskThreads", "aufs"); +StoreFSufs *AufsInstance_foo = NULL; === modified file 'src/fs/diskd/StoreFSdiskd.cc' --- src/fs/diskd/StoreFSdiskd.cc 2009-01-21 03:47:47 +0000 +++ src/fs/diskd/StoreFSdiskd.cc 2009-03-30 20:01:16 +0000 @@ -49,4 +49,5 @@ */ /// \ingroup diskd -static StoreFSufs DiskdInstance("DiskDaemon", "diskd"); +//static StoreFSufs DiskdInstance("DiskDaemon", "diskd"); +StoreFSufs *DiskdInstance_foo = NULL; === modified file 'src/fs/ufs/StoreFSufs.cc' --- src/fs/ufs/StoreFSufs.cc 2009-01-21 03:47:47 +0000 +++ src/fs/ufs/StoreFSufs.cc 2009-03-30 20:00:55 +0000 @@ -46,5 +46,6 @@ /** \todo FIXME: break UFSSwapDir out so we don't build all the extras */ #include "fs/ufs/ufscommon.h" -static StoreFSufs UfsInstance("Blocking", "ufs"); +//static StoreFSufs UfsInstance("Blocking", "ufs"); +StoreFSufs *UfsInstance_foo = NULL; === modified file 'src/main.cc' --- src/main.cc 2009-03-17 16:57:05 +0000 +++ src/main.cc 2009-03-30 20:49:02 +0000 @@ -90,6 +90,8 @@ #include "esi/Module.h" #endif +#include "fs/Module.h" + #if USE_WIN32_SERVICE #include "squid_windows.h" @@ -1226,6 +1228,7 @@ Mem::Init(); storeFsInit(); /* required for config parsing */ + FS::Init(); /* May not be needed for parsing, have not audited for such */ DiskIOModule::SetupAllModules();