diff --git a/ChangeLog b/ChangeLog
index 57e1890602..4f8f2b17c2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,7 @@
* gst/gst.c:
* gst/gstbin.*:
+ * gst/config.h.in:
* gst/gstelement.*:
* gst/gstevent.h:
* gst/gstobject.*:
diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in
index a528d01962..054fd10201 100644
--- a/gst/gstconfig.h.in
+++ b/gst/gstconfig.h.in
@@ -67,4 +67,14 @@
# define GST_DISABLE_LOADSAVE_REGISTRY
#endif
+#ifdef WIN32
+#ifdef GSTREAMER_EXPORTS
+#define GSTREAMER_EXPORT __declspec(dllexport)
+#else
+#define GSTREAMER_EXPORT __declspec(dllimport)
+#endif
+#else
+#define GSTREAMER_EXPORT
+#endif
+
#endif /* __GST_CONFIG_H__ */
diff --git a/win32/GStreamer.vcproj b/win32/GStreamer.vcproj
index e256b12ce4..2b9c63ca6f 100644
--- a/win32/GStreamer.vcproj
+++ b/win32/GStreamer.vcproj
@@ -21,8 +21,8 @@
+ Name="VCPostBuildEventTool"
+ CommandLine="del gst.def"/>
@@ -95,8 +98,8 @@ move lex._gst_parse_yy.c $(ProjectDir)..\gst\parse\lex._gst_parse_yy.c
CharacterSet="2">
+ Name="VCPostBuildEventTool"
+ CommandLine="del gst.def"/>
@@ -255,6 +260,9 @@ move lex._gst_parse_yy.c $(ProjectDir)..\gst\parse\lex._gst_parse_yy.c
+
+
diff --git a/win32/Makefile b/win32/Makefile
index 236d1085af..bf802dd38a 100644
--- a/win32/Makefile
+++ b/win32/Makefile
@@ -79,12 +79,21 @@ clean:
make -f Makefile.inspect clean
make -f Makefile.launch clean
make -f Makefile.register clean
- $(RM) $(OBJ) $(HEADERS) gstreamer-0.8.lib libgstreamer-0.8.dll gstreamer.map gstreamer-0.8.exp lex._gst_parse_yy.c
+ $(RM) $(OBJ) $(HEADERS) gstreamer-0.8.lib libgstreamer-0.8.dll gstreamer.map gstreamer-0.8.exp lex._gst_parse_yy.c gst.def
-libgstreamer-0.8.dll: $(HEADERS) $(OBJ)
- link $(LDFLAGS) /OUT:$@ $(OBJ) /DEF:gstreamer.def glib-2.0.lib gobject-2.0.lib gthread-2.0.lib gmodule-2.0.lib libxml2.lib libpopt.lib wsock32.lib
+libgstreamer-0.8.dll: gst.def $(HEADERS) $(OBJ)
+ link $(LDFLAGS) /OUT:$@ $(OBJ) /DEF:gst.def glib-2.0.lib gobject-2.0.lib gthread-2.0.lib gmodule-2.0.lib libxml2.lib libpopt.lib wsock32.lib
+ifeq (yes,$(DEBUG))
+gst.def:
+ type gstreamer.def > gst.def
+ type gstreamer-dbg.def >> gst.def
+else
+gst.def:
+ type gstreamer.def > gst.def
+endif
+
$(SRC_DIR)\gstversion.h: gstversion.h
copy $< $@
diff --git a/win32/gst-inspect.vcproj b/win32/gst-inspect.vcproj
index e6985fb6fe..65cb2df035 100644
--- a/win32/gst-inspect.vcproj
+++ b/win32/gst-inspect.vcproj
@@ -21,7 +21,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\;..\;..\libs;..\..\libxml2\include\libxml2;..\..\popt\include;..\..\glib;..\..\glib\glib;..\..\glib\gmodule;..\..\glib\win32"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GST_DISABLE_GST_DEBUG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
diff --git a/win32/gst-launch.vcproj b/win32/gst-launch.vcproj
index 626e1f7070..c1a91aa201 100644
--- a/win32/gst-launch.vcproj
+++ b/win32/gst-launch.vcproj
@@ -21,7 +21,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\;..\;..\..\libxml2\include\libxml2;..\..\popt\include;..\..\glib;..\..\glib\glib;..\..\glib\gmodule;..\..\glib\win32"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GST_DISABLE_GST_DEBUG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
diff --git a/win32/gst-register.vcproj b/win32/gst-register.vcproj
index 56b537bf29..90aac86044 100644
--- a/win32/gst-register.vcproj
+++ b/win32/gst-register.vcproj
@@ -21,7 +21,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\;..\;..\..\libxml2\include\libxml2;..\..\popt\include;..\..\glib;..\..\glib\glib;..\..\glib\gmodule;..\..\glib\win32"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GST_DISABLE_GST_DEBUG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
diff --git a/win32/gstbytestream.vcproj b/win32/gstbytestream.vcproj
index 93fbf5c51b..71267ca4fd 100644
--- a/win32/gstbytestream.vcproj
+++ b/win32/gstbytestream.vcproj
@@ -20,8 +20,8 @@
+ Name="VCPostBuildEventTool"
+ CommandLine="del gst.def"/>
@@ -95,8 +98,8 @@ move lex._gst_parse_yy.c $(ProjectDir)..\gst\parse\lex._gst_parse_yy.c
CharacterSet="2">
+ Name="VCPostBuildEventTool"
+ CommandLine="del gst.def"/>
@@ -255,6 +260,9 @@ move lex._gst_parse_yy.c $(ProjectDir)..\gst\parse\lex._gst_parse_yy.c
+
+
diff --git a/win32/vs7/Makefile b/win32/vs7/Makefile
index 236d1085af..bf802dd38a 100644
--- a/win32/vs7/Makefile
+++ b/win32/vs7/Makefile
@@ -79,12 +79,21 @@ clean:
make -f Makefile.inspect clean
make -f Makefile.launch clean
make -f Makefile.register clean
- $(RM) $(OBJ) $(HEADERS) gstreamer-0.8.lib libgstreamer-0.8.dll gstreamer.map gstreamer-0.8.exp lex._gst_parse_yy.c
+ $(RM) $(OBJ) $(HEADERS) gstreamer-0.8.lib libgstreamer-0.8.dll gstreamer.map gstreamer-0.8.exp lex._gst_parse_yy.c gst.def
-libgstreamer-0.8.dll: $(HEADERS) $(OBJ)
- link $(LDFLAGS) /OUT:$@ $(OBJ) /DEF:gstreamer.def glib-2.0.lib gobject-2.0.lib gthread-2.0.lib gmodule-2.0.lib libxml2.lib libpopt.lib wsock32.lib
+libgstreamer-0.8.dll: gst.def $(HEADERS) $(OBJ)
+ link $(LDFLAGS) /OUT:$@ $(OBJ) /DEF:gst.def glib-2.0.lib gobject-2.0.lib gthread-2.0.lib gmodule-2.0.lib libxml2.lib libpopt.lib wsock32.lib
+ifeq (yes,$(DEBUG))
+gst.def:
+ type gstreamer.def > gst.def
+ type gstreamer-dbg.def >> gst.def
+else
+gst.def:
+ type gstreamer.def > gst.def
+endif
+
$(SRC_DIR)\gstversion.h: gstversion.h
copy $< $@
diff --git a/win32/vs7/gst-inspect.vcproj b/win32/vs7/gst-inspect.vcproj
index e6985fb6fe..65cb2df035 100644
--- a/win32/vs7/gst-inspect.vcproj
+++ b/win32/vs7/gst-inspect.vcproj
@@ -21,7 +21,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\;..\;..\libs;..\..\libxml2\include\libxml2;..\..\popt\include;..\..\glib;..\..\glib\glib;..\..\glib\gmodule;..\..\glib\win32"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GST_DISABLE_GST_DEBUG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
diff --git a/win32/vs7/gst-launch.vcproj b/win32/vs7/gst-launch.vcproj
index 626e1f7070..c1a91aa201 100644
--- a/win32/vs7/gst-launch.vcproj
+++ b/win32/vs7/gst-launch.vcproj
@@ -21,7 +21,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\;..\;..\..\libxml2\include\libxml2;..\..\popt\include;..\..\glib;..\..\glib\glib;..\..\glib\gmodule;..\..\glib\win32"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GST_DISABLE_GST_DEBUG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
diff --git a/win32/vs7/gst-register.vcproj b/win32/vs7/gst-register.vcproj
index 56b537bf29..90aac86044 100644
--- a/win32/vs7/gst-register.vcproj
+++ b/win32/vs7/gst-register.vcproj
@@ -21,7 +21,7 @@
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".\;..\;..\..\libxml2\include\libxml2;..\..\popt\include;..\..\glib;..\..\glib\glib;..\..\glib\gmodule;..\..\glib\win32"
- PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;GST_DISABLE_GST_DEBUG"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
MinimalRebuild="TRUE"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
diff --git a/win32/vs7/gstelements.vcproj b/win32/vs7/gstelements.vcproj
index 4215b9cba8..8cb3e07408 100644
--- a/win32/vs7/gstelements.vcproj
+++ b/win32/vs7/gstelements.vcproj
@@ -20,8 +20,8 @@