diff options
author | Andreas Baumann <abaumann@yahoo.com> | 2012-08-13 10:51:02 +0200 |
---|---|---|
committer | Andreas Baumann <abaumann@yahoo.com> | 2012-08-13 10:51:02 +0200 |
commit | f4e9d771337a7e7c72b74af4d0b3346c7428e94c (patch) | |
tree | 006da49b4e44224f08c461abe876471bbffbce6b | |
parent | 4f6c381315a7875be1d4c27c6fd2f82b53eeb9c0 (diff) | |
download | crawler-f4e9d771337a7e7c72b74af4d0b3346c7428e94c.tar.gz crawler-f4e9d771337a7e7c72b74af4d0b3346c7428e94c.tar.bz2 |
solved static linking problem of module classes on Windows
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | BUGS | 10 | ||||
-rwxr-xr-x[-rw-r--r--] | makefiles/nmake/compiler.mk | 6 | ||||
-rwxr-xr-x[-rw-r--r--] | src/modules/Makefile.W32 | 5 | ||||
-rwxr-xr-x | src/modules/deduper/null/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/fetcher/file/Makefile.W32 | 8 | ||||
-rwxr-xr-x | src/modules/fetcher/winhttp/Makefile.W32 | 8 | ||||
-rwxr-xr-x | src/modules/frontier/memory/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/processor/htmllinkextract/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/urlfilter/chain/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/urlfilter/host/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/urlfilter/protocol/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/urlnormalizer/googleurl/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/urlnormalizer/simpleurl/Makefile.W32 | 7 | ||||
-rwxr-xr-x | src/modules/urlseen/memory/Makefile.W32 | 7 |
15 files changed, 62 insertions, 39 deletions
@@ -4,6 +4,7 @@ *.d *.o *.obj +*.dllobj *.sho++ *.db *.a @@ -1,10 +0,0 @@ -Windows: -- static module libraries contain the create/destroy functions and the - registry structure (because there is just one rule for *.obj files - which needs /DSHARED to be present for the static and the DLL version - of the module). This has to be fixed deep in the NMAKE build system. - Also this requires the derivation of names like $(OBJS:.c:.obj). - Maybe also the idea with one header one c file per module and the - /SHARED switch there is not a good idea. Push this to the makefile - when building *.dll or *.so to pull in a small additional file - XXXModule.cpp diff --git a/makefiles/nmake/compiler.mk b/makefiles/nmake/compiler.mk index f4461de..4323c22 100644..100755 --- a/makefiles/nmake/compiler.mk +++ b/makefiles/nmake/compiler.mk @@ -74,13 +74,13 @@ CXX_LINK = link.exe $(CXX) $(CXXFLAGS) /Fo$@ $< .c.dllobj: - $(CC) $(CFLAGS) /D "BUILD_SHARED" /Fo$@ $< + $(CC) $(CFLAGS) /DSHARED /Fo$@ $< .cpp.dllobj: - $(CXX) $(CXXFLAGS) /D "BUILD_SHARED" /Fo$@ $< + $(CXX) $(CXXFLAGS) /DSHARED /Fo$@ $< .cc.dllobj: - $(CXX) $(CXXFLAGS) /D "BUILD_SHARED" /Fo$@ $< + $(CXX) $(CXXFLAGS) /DSHARED /Fo$@ $< .obj.exe: $(CXX_LINK) $(LDFLAGS) $(LIBS) /out:$@ $(OBJS) $** diff --git a/src/modules/Makefile.W32 b/src/modules/Makefile.W32 index fd4004b..afff54e 100644..100755 --- a/src/modules/Makefile.W32 +++ b/src/modules/Makefile.W32 @@ -3,10 +3,7 @@ TOPDIR = ..\.. SUBDIRS = \ urlnormalizer urlfilter frontier fetcher urlseen \ deduper processor - -#SUBDIRS = \ -# urlnormalizer urlfilter frontier fetcher urlseen \ -# deduper processor typedetect +# typedetect !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk diff --git a/src/modules/deduper/null/Makefile.W32 b/src/modules/deduper/null/Makefile.W32 index e115ad2..685e9e6 100755 --- a/src/modules/deduper/null/Makefile.W32 +++ b/src/modules/deduper/null/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -25,12 +25,15 @@ STATIC_LIB = \ CPP_OBJS = \ NullDeduper.obj +SHARED_CPP_OBJS = \ + NullDeduper.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/fetcher/file/Makefile.W32 b/src/modules/fetcher/file/Makefile.W32 index 4145c84..928cad0 100755 --- a/src/modules/fetcher/file/Makefile.W32 +++ b/src/modules/fetcher/file/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -26,12 +26,16 @@ CPP_OBJS = \ FileFetcher.obj \ FileRewindInputStream.obj +SHARED_CPP_OBJS = \ + FileFetcher.dllobj \ + FileRewindInputStream.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/fetcher/winhttp/Makefile.W32 b/src/modules/fetcher/winhttp/Makefile.W32 index 01ee0e3..b006c34 100755 --- a/src/modules/fetcher/winhttp/Makefile.W32 +++ b/src/modules/fetcher/winhttp/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -27,12 +27,16 @@ CPP_OBJS = \ WinHttpFetcher.obj \ WinHttpRewindInputStream.obj +SHARED_CPP_OBJS = \ + WinHttpFetcher.dllobj \ + WinHttpRewindInputStream.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/frontier/memory/Makefile.W32 b/src/modules/frontier/memory/Makefile.W32 index 751db28..4337655 100755 --- a/src/modules/frontier/memory/Makefile.W32 +++ b/src/modules/frontier/memory/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -25,12 +25,15 @@ STATIC_LIB = \ CPP_OBJS = \ MemoryFrontier.obj +SHARED_CPP_OBJS = \ + MemoryFrontier.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/processor/htmllinkextract/Makefile.W32 b/src/modules/processor/htmllinkextract/Makefile.W32 index f4161ba..ff84dea 100755 --- a/src/modules/processor/htmllinkextract/Makefile.W32 +++ b/src/modules/processor/htmllinkextract/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -27,12 +27,15 @@ STATIC_LIB = \ CPP_OBJS = \ HTMLLinkExtractProcessor.obj +SHARED_CPP_OBJS = \ + HTMLLinkExtractProcessor.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/urlfilter/chain/Makefile.W32 b/src/modules/urlfilter/chain/Makefile.W32 index e66db24..2358227 100755 --- a/src/modules/urlfilter/chain/Makefile.W32 +++ b/src/modules/urlfilter/chain/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -25,12 +25,15 @@ STATIC_LIB = \ CPP_OBJS = \ ChainURLFilter.obj +SHARED_CPP_OBJS = \ + ChainURLFilter.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/urlfilter/host/Makefile.W32 b/src/modules/urlfilter/host/Makefile.W32 index fb6ba2e..4f1412b 100755 --- a/src/modules/urlfilter/host/Makefile.W32 +++ b/src/modules/urlfilter/host/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -25,12 +25,15 @@ STATIC_LIB = \ CPP_OBJS = \ HostURLFilter.obj +SHARED_CPP_OBJS = \ + HostURLFilter.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/urlfilter/protocol/Makefile.W32 b/src/modules/urlfilter/protocol/Makefile.W32 index e3959d9..91b8302 100755 --- a/src/modules/urlfilter/protocol/Makefile.W32 +++ b/src/modules/urlfilter/protocol/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -25,12 +25,15 @@ STATIC_LIB = \ CPP_OBJS = \ ProtocolURLFilter.obj +SHARED_CPP_OBJS = \ + ProtocolURLFilter.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/urlnormalizer/googleurl/Makefile.W32 b/src/modules/urlnormalizer/googleurl/Makefile.W32 index 712f493..d56c568 100755 --- a/src/modules/urlnormalizer/googleurl/Makefile.W32 +++ b/src/modules/urlnormalizer/googleurl/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED /DWIN32 + /D_WIN32_WINNT=0x504 /DWIN32 INCLUDE_DIRS = \ /I. \ @@ -28,12 +28,15 @@ STATIC_LIB = \ CPP_OBJS = \ GoogleURLNormalizer.obj +SHARED_CPP_OBJS = \ + GoogleURLNormalizer.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/urlnormalizer/simpleurl/Makefile.W32 b/src/modules/urlnormalizer/simpleurl/Makefile.W32 index 259bcc4..b0af459 100755 --- a/src/modules/urlnormalizer/simpleurl/Makefile.W32 +++ b/src/modules/urlnormalizer/simpleurl/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -24,13 +24,16 @@ STATIC_LIB = \ CPP_OBJS = \ SimpleURLNormalizer.obj + +SHARED_CPP_OBJS = \ + SimpleURLNormalizer.dllobj !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) diff --git a/src/modules/urlseen/memory/Makefile.W32 b/src/modules/urlseen/memory/Makefile.W32 index 26a94ae..c5d4609 100755 --- a/src/modules/urlseen/memory/Makefile.W32 +++ b/src/modules/urlseen/memory/Makefile.W32 @@ -5,7 +5,7 @@ SUBDIRS = !INCLUDE $(TOPDIR)\makefiles\nmake\platform.mk INCLUDE_CXXFLAGS = \ - /D_WIN32_WINNT=0x504 /DSHARED + /D_WIN32_WINNT=0x504 INCLUDE_DIRS = \ /I. \ @@ -25,12 +25,15 @@ STATIC_LIB = \ CPP_OBJS = \ MemoryURLSeen.obj +SHARED_CPP_OBJS = \ + MemoryURLSeen.dllobj + !INCLUDE $(TOPDIR)\makefiles\nmake\sub.mk $(STATIC_LIB): $(CPP_OBJS) $(LINK) /lib /nologo /out:$@ $(STATIC_LDFLAGS) $? -$(DYNAMIC_MODULE): $(CPP_OBJS) +$(DYNAMIC_MODULE): $(SHARED_CPP_OBJS) $(LINK) /dll /nologo /out:$@ $(LDFLAGS) $(LIBS) $? local_all: $(STATIC_LIB) $(DYNAMIC_MODULE) |