summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <abaumann@yahoo.com>2012-08-13 10:51:02 +0200
committerAndreas Baumann <abaumann@yahoo.com>2012-08-13 10:51:02 +0200
commitf4e9d771337a7e7c72b74af4d0b3346c7428e94c (patch)
tree006da49b4e44224f08c461abe876471bbffbce6b
parent4f6c381315a7875be1d4c27c6fd2f82b53eeb9c0 (diff)
downloadcrawler-f4e9d771337a7e7c72b74af4d0b3346c7428e94c.tar.gz
crawler-f4e9d771337a7e7c72b74af4d0b3346c7428e94c.tar.bz2
solved static linking problem of module classes on Windows
-rw-r--r--.gitignore1
-rw-r--r--BUGS10
-rwxr-xr-x[-rw-r--r--]makefiles/nmake/compiler.mk6
-rwxr-xr-x[-rw-r--r--]src/modules/Makefile.W325
-rwxr-xr-xsrc/modules/deduper/null/Makefile.W327
-rwxr-xr-xsrc/modules/fetcher/file/Makefile.W328
-rwxr-xr-xsrc/modules/fetcher/winhttp/Makefile.W328
-rwxr-xr-xsrc/modules/frontier/memory/Makefile.W327
-rwxr-xr-xsrc/modules/processor/htmllinkextract/Makefile.W327
-rwxr-xr-xsrc/modules/urlfilter/chain/Makefile.W327
-rwxr-xr-xsrc/modules/urlfilter/host/Makefile.W327
-rwxr-xr-xsrc/modules/urlfilter/protocol/Makefile.W327
-rwxr-xr-xsrc/modules/urlnormalizer/googleurl/Makefile.W327
-rwxr-xr-xsrc/modules/urlnormalizer/simpleurl/Makefile.W327
-rwxr-xr-xsrc/modules/urlseen/memory/Makefile.W327
15 files changed, 62 insertions, 39 deletions
diff --git a/.gitignore b/.gitignore
index 71fd749..9597a02 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,7 @@
*.d
*.o
*.obj
+*.dllobj
*.sho++
*.db
*.a
diff --git a/BUGS b/BUGS
index 596dd88..e69de29 100644
--- a/BUGS
+++ b/BUGS
@@ -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)