
--- koffice-1.6.3/configure.in.in	2007-05-30 17:43:57.000000000 -0400
+++ koffice-1.6.3-new/configure.in.in	2007-11-14 00:34:40.000000000 -0500
@@ -11,6 +11,7 @@
 
 KDE_INIT_DOXYGEN([The KOffice API Reference], [Version $VERSION])
 
+KDE_ENABLE_HIDDEN_VISIBILITY
 # Check for GraphicsMagick...
 
 have_graphicsmagick=no
--- koffice-1.6.3/filters/kchart/libimageexport/imageexport.h	2007-05-30 17:39:42.000000000 -0400
+++ koffice-1.6.3-new/filters/kchart/libimageexport/imageexport.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,9 +21,10 @@
 #define __IMAGEEXPORT_H__
 
 #include <KoFilter.h>
+#include <koffice_export.h>
 
 class QPixmap;
-class ImageExport : public KoFilter
+class KOFFICEFILTER_EXPORT ImageExport : public KoFilter
 {
     Q_OBJECT
 
--- koffice-1.6.3/filters/kpresenter/libimageexport/imageexport.h	2007-05-30 17:39:00.000000000 -0400
+++ koffice-1.6.3-new/filters/kpresenter/libimageexport/imageexport.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,9 +21,10 @@
 #define __IMAGEEXPORT_H__
 
 #include <KoFilter.h>
+#include <koffice_export.h>
 
 class QPixmap;
-class ImageExport : public KoFilter
+class KOFFICEFILTER_EXPORT ImageExport : public KoFilter
 {
     Q_OBJECT
 
--- koffice-1.6.3/karbon/Makefile.am	2007-05-30 17:43:57.000000000 -0400
+++ koffice-1.6.3-new/karbon/Makefile.am	2007-11-14 00:34:40.000000000 -0500
@@ -30,7 +30,8 @@
 	$(LIBART_LIBS) \
 	$(LIBFONTCONFIG_LIBS) \
 	$(LIBMAGICK_LIBS) \
-	$(LIBFREETYPE_LIBS)
+	$(LIBFREETYPE_LIBS) \
+	$(LIB_X11)
 
 libkarbonpart_la_SOURCES = karbon_factory_init.cc
 libkarbonpart_la_LDFLAGS = $(KDE_PLUGIN) $(LIBFREETYPE_RPATH)
--- koffice-1.6.3/karbon/core/vgradient.h	2007-05-30 17:43:43.000000000 -0400
+++ koffice-1.6.3-new/karbon/core/vgradient.h	2007-11-14 00:34:40.000000000 -0500
@@ -74,7 +74,7 @@
 		repeat  = 2
 	};
 
-	class VColorStopList : public QPtrList<VColorStop>
+	class KARBONBASE_EXPORT VColorStopList : public QPtrList<VColorStop>
 	{
 		protected:
 			virtual int compareItems( QPtrCollection::Item item1, QPtrCollection::Item item2 );
--- koffice-1.6.3/karbon/visitors/vcomputeboundingbox.h	2007-05-30 17:43:52.000000000 -0400
+++ koffice-1.6.3-new/karbon/visitors/vcomputeboundingbox.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,6 +22,7 @@
 
 #include "KoRect.h"
 #include "vvisitor.h"
+#include <koffice_export.h>
 
 class VDocument;
 class VLayer;
@@ -34,7 +35,7 @@
  * This visitor visits objects and calculates the combined bounding box of the
  * objects and their child objects.
  */
-class VComputeBoundingBox : public VVisitor
+class KARBONBASE_EXPORT VComputeBoundingBox : public VVisitor
 {
 public:
 	VComputeBoundingBox( bool omitHidden = false );
--- koffice-1.6.3/karbon/visitors/vselectobjects.h	2007-05-30 17:43:52.000000000 -0400
+++ koffice-1.6.3-new/karbon/visitors/vselectobjects.h	2007-11-14 00:34:40.000000000 -0500
@@ -29,13 +29,15 @@
 #include "vimage.h"
 #include "vvisitor.h"
 
+#include <koffice_export.h>
+
 /**
  * This visitor visits a selection and selects objects that are contained
  * in a paramater selection rectangle. For composites it makes a more accurate test, if the
  * selection rectangle intersects with any part of the composite, it is selected.
  * Also this visitor can be used to deselect objects.
  */
-class VSelectObjects : public VVisitor
+class KARBONBASE_EXPORT VSelectObjects : public VVisitor
 {
 public:
 	VSelectObjects( VObjectList& selection, bool select = true )
--- koffice-1.6.3/kchart/kchart_factory.h	2007-05-30 17:41:47.000000000 -0400
+++ koffice-1.6.3-new/kchart/kchart_factory.h	2007-11-14 00:34:40.000000000 -0500
@@ -9,7 +9,7 @@
 
 
 #include <KoFactory.h>
-
+#include <koffice_export.h>
 
 class KInstance;
 class KAboutData;
@@ -17,7 +17,7 @@
 namespace KChart
 {
 
-class KChartFactory : public KoFactory
+class KCHART_EXPORT KChartFactory : public KoFactory
 {
     Q_OBJECT
 public:
--- koffice-1.6.3/kchart/kdchart/KDChartVectorTable.h	2007-05-30 17:41:38.000000000 -0400
+++ koffice-1.6.3-new/kchart/kdchart/KDChartVectorTable.h	2007-11-14 00:34:40.000000000 -0500
@@ -36,6 +36,8 @@
 #include <KDChartDataIntern.h>
 #include <KDChartTableBase.h>
 
+#include <koffice_export.h>
+
 class KDCHART_EXPORT KDChartVectorTablePrivate : public QShared
 {
 public:
@@ -182,31 +184,39 @@
     }
 
 public slots:
-    Iterator begin() {
+
+    /*
+       we have to add KDCHART_EXPORT to each of these slots
+       because -fvisibility-inlines-hidden will hide them; since
+       they're public, this would be considered by some to be
+       undesireable.  ;)
+    */
+
+    Iterator begin() KDCHART_EXPORT {
         return sh->matrix.begin();
     }
 
-    ConstIterator begin() const {
+    ConstIterator begin() const KDCHART_EXPORT {
         return sh->matrix.begin();
     }
 
-    Iterator end() {
+    Iterator end() KDCHART_EXPORT {
         return sh->matrix.end();
     }
 
-    ConstIterator end() const {
+    ConstIterator end() const KDCHART_EXPORT {
         return sh->matrix.end();
     }
 
-    bool isEmpty() const {
+    bool isEmpty() const KDCHART_EXPORT {
         return ( sh->col_count == 0 && sh->row_count == 0 );
     }
 
-    uint cols() const {
+    uint cols() const KDCHART_EXPORT {
         return sh->col_count;
     }
 
-    uint rows() const {
+    uint rows() const KDCHART_EXPORT {
         return sh->row_count;
     }
     // WARNING: The KDChartData class is an internal class now,
@@ -221,7 +231,7 @@
 */
     virtual bool cellCoord( uint _row, uint _col,
                             QVariant& _value,
-                            int coordinate=1 ) const
+                            int coordinate=1 ) const KDCHART_EXPORT
     {
         if( _row >= sh->row_count || _col >= sh->col_count )
             return false;
@@ -230,7 +240,7 @@
     }
 
     virtual bool cellProp( uint _row, uint _col,
-                           int& _prop ) const
+                           int& _prop ) const KDCHART_EXPORT 
     {
         if( _row >= sh->row_count || _col >= sh->col_count )
             return false;
@@ -240,29 +250,29 @@
 
     virtual void setCell( uint _row, uint _col,
                           const QVariant& _value1,
-                          const QVariant& _value2=QVariant() ) {
+                          const QVariant& _value2=QVariant() ) KDCHART_EXPORT {
         detach();
         const KDChartData element( _value1, _value2 );
         sh->setCell( _row, _col, element );
     }
 
     virtual void setProp( uint _row, uint _col,
-                          int _propSet=0 )
+                          int _propSet=0 ) KDCHART_EXPORT
     {
         sh->cell( _row, _col ).setPropertySet( _propSet );
     }
     
-    void clearCell( uint _row, uint _col ) {
+    void clearCell( uint _row, uint _col ) KDCHART_EXPORT {
         detach();
         sh->clearCell( _row, _col );
     }
 
-    void clearAllCells() {
+    void clearAllCells() KDCHART_EXPORT {
         detach();
         sh->clearAllCells();
     }
 
-    void expand( uint _rows, uint _cols ) {
+    void expand( uint _rows, uint _cols ) KDCHART_EXPORT {
         detach();
         sh->expand( _rows, _cols );
         // adjust the usedRows / usedCols, if they had been set before
@@ -272,7 +282,7 @@
             setUsedRows( QMIN( _usedRows, _rows ) );
     }
 
-    void setUsedRows( uint _rows ) {
+    void setUsedRows( uint _rows ) KDCHART_EXPORT {
         Q_ASSERT( _rows <= rows() );
         if( _usedRows < _rows )
             setSorted( false );
@@ -280,11 +290,13 @@
         _useUsedRows = true;
     }
 
-    uint usedRows() const {
+    uint usedRows() const KDCHART_EXPORT
+    {
         return _useUsedRows ? _usedRows : rows();
     }
 
-    void setUsedCols( uint _cols ) {
+    void setUsedCols( uint _cols ) KDCHART_EXPORT
+    {
         Q_ASSERT( _cols <= cols() );
         if( _usedCols < _cols )
             setSorted( false );
@@ -292,7 +304,8 @@
         _useUsedCols = true;
     }
 
-    uint usedCols() const {
+    uint usedCols() const KDCHART_EXPORT
+    {
         return _useUsedCols ? _usedCols : cols();
     }
 
--- koffice-1.6.3/kexi/Makefile.global	2007-05-30 17:36:09.000000000 -0400
+++ koffice-1.6.3-new/kexi/Makefile.global	2007-11-14 00:34:40.000000000 -0500
@@ -9,7 +9,7 @@
 KDE_CXXFLAGS = \
 $(USE_EXCEPTIONS) $(KEXI_OPTIONS)
 
-KDE_CXXFLAGS += -include $(top_srcdir)/kexi/kexi_global.h
+KDE_CXXFLAGS += $(KOFFICECORE_INCLUDES) -include $(top_srcdir)/kexi/kexi_global.h
 
 # temporary:
 ##KDE_CXXFLAGS += -DKEXI_NO_AUTOFIELD_WIDGET
--- koffice-1.6.3/kexi/examples/build_kexi_file.sh	2007-05-30 17:36:09.000000000 -0400
+++ koffice-1.6.3-new/kexi/examples/build_kexi_file.sh	2007-11-14 00:34:40.000000000 -0500
@@ -7,7 +7,7 @@
 # Only .kexi file that is older than .sql file is recreated.
 # ksqlite is needed on the $PATH.
 
-KEXISQL3PATH=../3rdparty/kexisql3/src/.libs/
+KEXISQL3PATH=../3rdparty/kexisql3/src/
 PATH=$KEXISQL3PATH:$PATH
 export PATH
 LD_LIBRARY_PATH=$KEXISQL3PATH:$LD_LIBRARY_PATH
--- koffice-1.6.3/kexi/kexi_export.h	2007-05-30 17:36:09.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexi_export.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,6 +22,25 @@
 
 #include <kexidb/kexidb_export.h>
 
+#ifdef __KDE_HAVE_GCC_VISIBILITY
+#define MAKE_KEXICORE_LIB
+#define MAKE_KEXIMAIN_LIB
+#define MAKE_KEXITABLEFILTERS_LIB
+#define MAKE_KEXIDATATABLE_LIB
+#define MAKE_KEXIEXTWIDGETS_LIB
+#define MAKE_KFORMEDITOR_LIB
+#define MAKE_KEXIPRJWIZARD_LIB
+#define MAKE_KEXIFILTER_LIB
+#define MAKE_KEXIWIDGETS_LIB
+#define MAKE_KEXIUUID_LIB
+#define MAKE_KEXIRELATIONSVIEW_LIB
+#define MAKE_KEXIGUIUTILS_LIB
+#define MAKE_KROSS_MAIN_LIB
+#define MAKE_KEXIFORMUTILS_LIB
+#define MAKE_KEXIREPORTUTILS_LIB
+#define MAKE_KOPROPERTY_LIB
+#endif
+
 #ifdef MAKE_KEXICORE_LIB
 # define KEXICORE_EXPORT KDE_EXPORT
 #elif defined(KDE_MAKE_LIB)
--- koffice-1.6.3/kexi/kexidb/drivers/configure.in.bot	2007-05-30 17:35:52.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/drivers/configure.in.bot	2007-11-14 00:34:40.000000000 -0500
@@ -15,7 +15,7 @@
 fi
 
 if test -z "$PG_INCDIR" -o -z "$PG_LIBDIR" -o \
-        -z "$PQXX_INCDIR" -o -z "$PQXX_LIBDIR"; then
+        -z "$PQXX_CFLAGS" -o -z "$PQXX_LIBS"; then
 
   echo "----------------------------------------------------------------------"
 
@@ -50,28 +50,28 @@
   fi
 
 # LIBPQXX messages
-  if test -z "$PQXX_INCDIR"; then
+  if test -z "$PQXX_CFLAGS"; then
     echo "  + The PostgreSQL C++ API (libpqxx) headers were not found."
   fi
 
-  if test -z "$PQXX_LIBDIR"; then
+  if test -z "$PQXX_LIBS"; then
     echo "  + The PostgreSQL C++ API (libpqxx) shared libraries were not found."
   fi
 
-  if test -z "$PQXX_INCDIR" -a -z "$PQXX_LIBDIR" ; then
+  if test -z "$PQXX_INCLUDES" -a -z "$PQXX_LIBS" ; then
       pqxx_parts_missing="HEADER or the libpqxx LIBRARY"
-  elif test -z "$PQXX_INCDIR" ; then
+  elif test -z "$PQXX_INCLUDES" ; then
       pqxx_parts_missing="HEADER"
-  elif test -z "$PQXX_LIBDIR" ; then
+  elif test -z "$PQXX_LIBS" ; then
       pqxx_parts_missing="LIBRARY"
   fi
 
-  if test -z "$PQXX_INCDIR" -o -z "$PQXX_LIBDIR" ; then
+  if test -z "$PQXX_INCLUDES" -o -z "$PQXX_LIBS" ; then
   cat <<EOS
     Could not find the libpqxx $pqxx_parts_missing files.
     These are required by Kexi's PostgreSQL drivers.
 
-    Note: Kexi requires the SHARED libpqxx.so library files.
+    Note: Kexi requires the SHARED libpqxx library files.
           If you build pqxx library on your own, don't forget to use the
           --enable-shared option when you run libpqxx's configure script.
           This is necessary to compile the SHARED .so library, and
--- koffice-1.6.3/kexi/kexidb/drivers/configure.in.in	2007-05-30 17:35:52.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/drivers/configure.in.in	2007-11-14 00:34:40.000000000 -0500
@@ -206,39 +206,11 @@
 ], ac_pqxx_libdir=
 )
 
-
-dnl ========================================
-dnl   libpqxx headers
-dnl ========================================
-if test "$compile_pgsql_plugin" = "yes"; then
-  AC_MSG_CHECKING([for PostgreSQL C++ includes])
-  pqxx_incdirs="$ac_pqxx_incdir /usr/local/include /usr/include"
-  AC_FIND_FILE(pqxx/pqxx, $pqxx_incdirs, pqxx_incdir)
-  if test -r $pqxx_incdir/pqxx/pqxx; then
-    PQXX_INCDIR=$pqxx_incdir
-    AC_MSG_RESULT([$PQXX_INCDIR])
-    AC_SUBST(PQXX_INCDIR)
-  else
-    compile_pgsql_plugin="no"
-    AC_MSG_RESULT([not found])
-  fi
-fi
-
-dnl ========================================
-dnl   libpqxx libraries
-dnl ========================================
 if test "$compile_pgsql_plugin" = "yes"; then
-  AC_MSG_CHECKING([for PostgreSQL C++ libraries])
-  pqxx_libdirs="$ac_pqxx_libdir /usr/local/lib$kdelibsuff /usr/lib$kdelibsuff"
-  AC_FIND_FILE(libpqxx.so, $pqxx_libdirs, pqxx_libdir)
-  if test -r $pqxx_libdir/libpqxx.so; then
-    PQXX_LIBDIR=$pqxx_libdir
-    AC_MSG_RESULT([$PQXX_LIBDIR])
-    AC_SUBST(PQXX_LIBDIR)
-  else
-    compile_pgsql_plugin="no"
-    AC_MSG_RESULT([not found])
-  fi
+	ac_save_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
+	PKG_CONFIG_PATH="$ac_pqxx_libdir/pkgconfig:$PKG_CONFIG_PATH"
+	PKG_CHECK_MODULES([PQXX], [libpqxx >= 2.4.0], [], [compile_pgsql_plugin=no])
+	PKG_CONFIG_PATH="$ac_save_PKG_CONFIG_PATH"
 fi
 
 AM_CONDITIONAL(compile_pgsql_plugin, test "$compile_pgsql_plugin" = "yes")
--- koffice-1.6.3/kexi/kexidb/drivers/mySQL/Makefile.am	2007-05-30 17:35:52.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/drivers/mySQL/Makefile.am	2007-11-14 00:34:40.000000000 -0500
@@ -20,7 +20,8 @@
   $(LIB_QT) \
   $(MYSQL_LIBS) \
   -lmysqlclient \
-  ../../libkexidb.la
+  ../../libkexidb.la \
+  ../../parser/libkexidbparser.la
 
 kexidb_mysqldriver_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(VER_INFO) -no-undefined
 
--- koffice-1.6.3/kexi/kexidb/drivers/mySQL/mysqlpreparedstatement.h	2007-05-30 17:35:52.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/drivers/mySQL/mysqlpreparedstatement.h	2007-11-14 00:34:40.000000000 -0500
@@ -30,7 +30,7 @@
 {
 
 /*! Implementation of prepared statements for MySQL driver. */
-class MySqlPreparedStatement : public PreparedStatement, public MySqlConnectionInternal
+class KEXI_DB_EXPORT MySqlPreparedStatement : public PreparedStatement, public MySqlConnectionInternal
 {
 	public:
 		MySqlPreparedStatement(StatementType type, ConnectionInternal& conn, FieldList& fields);
--- koffice-1.6.3/kexi/kexidb/drivers/pqxx/Makefile.am	2007-05-30 17:35:49.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/drivers/pqxx/Makefile.am	2007-11-14 00:34:40.000000000 -0500
@@ -2,17 +2,17 @@
 
 kde_module_LTLIBRARIES = kexidb_pqxxsqldriver.la
 
-INCLUDES = -I$(srcdir)/../../.. $(all_includes) -I$(PG_INCDIR) -I$(PQXX_INCDIR)
+INCLUDES = -I$(srcdir)/../../.. $(all_includes) -I$(PG_INCDIR) $(PQXX_CFLAGS)
 
 kexidb_pqxxsqldriver_la_METASOURCES = AUTO
 
 kexidb_pqxxsqldriver_la_SOURCES = pqxxdriver.cpp pqxxcursor.cpp pqxxconnection.cpp \
 	pqxxkeywords.cpp pqxxconnection_p.cpp pqxxpreparedstatement.cpp
 
-kexidb_pqxxsqldriver_la_LIBADD = $(LIB_KPARTS) $(LIB_QT) -lpqxx ../../libkexidb.la
+kexidb_pqxxsqldriver_la_LIBADD = $(LIB_KPARTS) $(LIB_QT) -lpqxx.2 ../../libkexidb.la ../../parser/libkexidbparser.la
 
 kexidb_pqxxsqldriver_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) \
-	-L$(PQXX_LIBDIR) -L$(PG_LIBDIR) $(VER_INFO) -no-undefined
+	$(PQXX_LIBS) -L$(PG_LIBDIR) $(VER_INFO) -no-undefined
 
 kde_services_DATA = kexidb_pqxxsqldriver.desktop
 
--- koffice-1.6.3/kexi/kexidb/kexidb_export.h	2007-05-30 17:35:52.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/kexidb_export.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,6 +26,12 @@
 /* KDE_EXPORT will be defined multiple times without this on kdelibs 3.3 (tested on 3.3.1) */
 #include <kdemacros.h>
 
+#ifdef __KDE_HAVE_GCC_VISIBILITY
+#define MAKE_KEXI_DB_LIB
+#define MAKE_KEXIMIGR_LIB
+#define MAKE_KEXI_SERVER_SUPPORT
+#endif
+
 /* workaround for KDElibs < 3.2 on !win32 */
 #ifndef KDE_EXPORT
 # define KDE_EXPORT
@@ -51,6 +57,10 @@
 /* -- compile-time settings -- */
 #if defined(Q_WS_WIN) || defined(KEXI_OPTIONS)
 /* defined in a .pro file or 'KEXI_OPTIONS' env. variable */
+#elif defined(MAKE_KEXI_SERVER_SUPPORT)
+# define KEXI_SERVER_SUPPORT KDE_EXPORT
+#elif defined(KDE_MAKE_LIB)
+# define KEXI_SERVER_SUPPORT KDE_IMPORT
 #else
 
 #endif
--- koffice-1.6.3/kexi/kexidb/parser/Makefile.am	2007-05-30 17:35:46.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/parser/Makefile.am	2007-11-14 00:34:40.000000000 -0500
@@ -3,7 +3,7 @@
 lib_LTLIBRARIES = libkexidbparser.la
 libkexidbparser_la_SOURCES = sqlscanner.cpp sqlparser.cpp parser.cpp parser_p.cpp
 libkexidbparser_la_LIBADD = $(LIB_KPARTS) $(LIB_KDEUI) ../libkexidb.la
-libkexidbparser_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(VER_INFO)
+libkexidbparser_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) $(VER_INFO) -no-undefined
 
 noinst_HEADERS = parser_p.h
 
@@ -24,7 +24,7 @@
 	cat sqlparser.tab.h >> sqlparser.h; \
 	echo '#endif' >> sqlparser.h; \
 	cat sqlparser.tab.c > sqlparser.cpp; \
-	echo "const char * const tname(int offset) { return yytname[offset]; }" >> sqlparser.cpp; \
+	echo "KDE_EXPORT const char * const tname(int offset) { return yytname[offset]; }" >> sqlparser.cpp; \
 	./extract_tokens.sh > tokens.cpp; \
 	rm -f sqlparser.tab.h sqlparser.tab.c
 
--- koffice-1.6.3/kexi/kexidb/parser/sqlparser.cpp	2007-05-30 17:35:46.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexidb/parser/sqlparser.cpp	2007-11-14 00:34:40.000000000 -0500
@@ -814,6 +814,8 @@
 #include "parser_p.h"
 #include "sqltypes.h"
 
+#include <koffice_export.h>
+
 int yylex();
 
 //	using namespace std;
@@ -3469,4 +3471,4 @@
 
 
 
-const char * const tname(int offset) { return yytname[offset]; }
+KDE_EXPORT const char * const tname(int offset) { return yytname[offset]; }
--- koffice-1.6.3/kexi/kexiutils/kexiutils_export.h	2007-05-30 17:34:58.000000000 -0400
+++ koffice-1.6.3-new/kexi/kexiutils/kexiutils_export.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,6 +22,12 @@
 
 #include <kdemacros.h>
 
+#include <koffice_export.h>
+
+#ifdef __KDE_HAVE_GCC_VISIBILITY
+#define MAKE_KEXIUTILS_LIB
+#endif
+
 #ifdef MAKE_KEXIUTILS_LIB
 # define KEXIUTILS_EXPORT KDE_EXPORT
 #elif defined(KDE_MAKE_LIB)
--- koffice-1.6.3/kexi/main/configure.in.in	2007-05-30 17:35:24.000000000 -0400
+++ koffice-1.6.3-new/kexi/main/configure.in.in	2007-11-14 00:34:40.000000000 -0500
@@ -20,7 +20,7 @@
 AC_FIND_FILE(knewstuff/downloaddialog.h, $kde_incdirs, knewstuff_incdir)
 ac_knewstuff_includes="$knewstuff_incdir"
 
-AC_FIND_FILE(libknewstuff.so, $kde_libdirs, knewstuff_libdir)
+AC_FIND_FILE(libknewstuff.dylib, $kde_libdirs, knewstuff_libdir)
 ac_knewstuff_libraries="$knewstuff_libdir"
 
 if test "$ac_knewstuff_includes" = NO || test "$ac_knewstuff_libraries" = NO; then
--- koffice-1.6.3/kexi/main.cpp	2007-05-30 17:36:09.000000000 -0400
+++ koffice-1.6.3-new/kexi/main.cpp	2007-11-14 00:34:40.000000000 -0500
@@ -25,7 +25,7 @@
 #include <qapplication.h>
 #include <main/keximainwindowimpl.h>
 
-extern "C" int kdemain(int argc, char *argv[])
+extern "C" KDE_EXPORT int kdemain(int argc, char *argv[])
 {
 	int result = KexiMainWindowImpl::create(argc, argv);
 	if (!qApp)
--- koffice-1.6.3/kexi/widget/relations/Makefile.am	2007-05-30 17:35:19.000000000 -0400
+++ koffice-1.6.3-new/kexi/widget/relations/Makefile.am	2007-11-14 00:35:01.000000000 -0500
@@ -6,7 +6,7 @@
 				kexirelationviewtable.cpp kexirelationwidget.cpp
 
 libkexirelationsview_la_LDFLAGS = $(all_libraries) $(VER_INFO) -Wnounresolved
-libkexirelationsview_la_LIBADD = ../../core/libkexicore.la
+libkexirelationsview_la_LIBADD = ../../core/libkexicore.la ../libkexiextendedwidgets.la
 
 libkexirelationsview_la_METASOURCES = AUTO
 
--- koffice-1.6.3/kivio/kiviopart/kivio_command.h	2007-05-30 17:42:41.000000000 -0400
+++ koffice-1.6.3-new/kivio/kiviopart/kivio_command.h	2007-11-14 00:34:40.000000000 -0500
@@ -226,7 +226,7 @@
 };
 
 
-class KivioChangeStencilHAlignmentCommand : public KNamedCommand
+class KIVIO_EXPORT KivioChangeStencilHAlignmentCommand : public KNamedCommand
 {
   public:
     KivioChangeStencilHAlignmentCommand(const QString& _name, KivioPage* _page, KivioStencil* _stencil,
@@ -244,7 +244,7 @@
     QString m_textBoxName;
 };
 
-class KivioChangeStencilVAlignmentCommand : public KNamedCommand
+class KIVIO_EXPORT KivioChangeStencilVAlignmentCommand : public KNamedCommand
 {
   public:
     KivioChangeStencilVAlignmentCommand(const QString& _name, KivioPage* _page, KivioStencil* _stencil,
@@ -263,7 +263,7 @@
 };
 
 
-class KivioChangeStencilFontCommand : public KNamedCommand
+class KIVIO_EXPORT KivioChangeStencilFontCommand : public KNamedCommand
 {
   public:
     KivioChangeStencilFontCommand(const QString& _name, KivioPage* _page, KivioStencil* _stencil,
@@ -282,7 +282,7 @@
     QString m_textBoxName;
 };
 
-class KivioChangeStencilColorCommand : public KNamedCommand
+class KIVIO_EXPORT KivioChangeStencilColorCommand : public KNamedCommand
 {
   public:
     enum ColorType { CT_TEXTCOLOR, CT_FGCOLOR, CT_BGCOLOR };
@@ -410,7 +410,7 @@
     bool m_bValue;
 };
 
-class KivioAddConnectorTargetCommand : public KNamedCommand
+class KIVIO_EXPORT KivioAddConnectorTargetCommand : public KNamedCommand
 {
   public:
     KivioAddConnectorTargetCommand(const QString& name, KivioPage* page,
@@ -425,7 +425,7 @@
     KoPoint m_targetPoint;
 };
 
-class KivioCustomDragCommand : public KNamedCommand
+class KIVIO_EXPORT KivioCustomDragCommand : public KNamedCommand
 {
   public:
     KivioCustomDragCommand(const QString& name, KivioPage* page, KivioStencil* stencil,
--- koffice-1.6.3/kivio/kiviopart/kivio_map.h	2007-05-30 17:42:41.000000000 -0400
+++ koffice-1.6.3-new/kivio/kiviopart/kivio_map.h	2007-11-14 00:34:40.000000000 -0500
@@ -36,11 +36,13 @@
 #include <qptrlist.h>
 #include <qstringlist.h>
 
+#include <koffice_export.h>
+
 /*
  * A map is a simple container for all pages. Usually a complete map is saved in one file.
  */
 
-class KivioMap : public QObject
+class KIVIO_EXPORT KivioMap : public QObject
 {
   public:
     /**
--- koffice-1.6.3/kivio/kiviopart/kiviosdk/kivio_layer.h	2007-05-30 17:42:39.000000000 -0400
+++ koffice-1.6.3-new/kivio/kiviopart/kiviosdk/kivio_layer.h	2007-11-14 00:34:40.000000000 -0500
@@ -36,12 +36,14 @@
 
 #include "kivio_stencil.h"
 
+#include <koffice_export.h>
+
 #define FLOW_LAYER_VISIBLE 0x0001
 #define FLOW_LAYER_CONNECTABLE 0x0002
 #define FLOW_LAYER_NOT_EDITABLE 0x0004
 #define FLOW_LAYER_NOT_PRINTABLE 0x0008
 
-class KivioLayer
+class KIVIO_EXPORT KivioLayer
 {
 protected:
     friend class KivioGroupStencil;
--- koffice-1.6.3/kivio/kiviopart/kiviosdk/kivio_screen_painter.h	2007-05-30 17:42:39.000000000 -0400
+++ koffice-1.6.3-new/kivio/kiviopart/kiviosdk/kivio_screen_painter.h	2007-11-14 00:34:40.000000000 -0500
@@ -25,10 +25,12 @@
 #include <qpainter.h>
 #include <qpixmap.h>
 
+#include <koffice_export.h>
+
 class KivioPoint;
 
 
-class KivioScreenPainter : public KivioPainter
+class KIVIO_EXPORT KivioScreenPainter : public KivioPainter
 {
 protected:
     QPainter *m_pPainter;
--- koffice-1.6.3/kpresenter/KPrCanvas.h	2007-05-30 17:43:06.000000000 -0400
+++ koffice-1.6.3-new/kpresenter/KPrCanvas.h	2007-11-14 00:34:40.000000000 -0500
@@ -41,6 +41,8 @@
 #include <KoTextFormat.h>
 #include "presstep.h"
 
+#include <koffice_export.h>
+
 class KURL;
 class KoTextFormatInterface;
 class KPrView;
@@ -79,7 +81,7 @@
  *
  * It manages the graphical representation of all the objects.
  */
-class KPrCanvas : public QWidget
+class KPRESENTER_EXPORT KPrCanvas : public QWidget
 {
     Q_OBJECT
 
--- koffice-1.6.3/kpresenter/KPrFactory.h	2007-05-30 17:43:06.000000000 -0400
+++ koffice-1.6.3-new/kpresenter/KPrFactory.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,9 +22,11 @@
 #define KPRESENTER_FACTORY_H
 
 #include <KoFactory.h>
+#include <koffice_export.h>
+
 class KAboutData;
 
-class KPrFactory : public KoFactory
+class KPRESENTER_EXPORT KPrFactory : public KoFactory
 {
     Q_OBJECT
 public:
--- koffice-1.6.3/kpresenter/KPrView.cpp	2007-05-30 17:43:06.000000000 -0400
+++ koffice-1.6.3-new/kpresenter/KPrView.cpp	2007-11-14 00:34:40.000000000 -0500
@@ -206,7 +206,9 @@
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/Xmd.h>
+extern "C" {
 #include <X11/extensions/dpms.h>
+}
 #include <fixx11h.h>
 
 extern "C" {
--- koffice-1.6.3/kpresenter/KPrView.h	2007-05-30 17:43:06.000000000 -0400
+++ koffice-1.6.3-new/kpresenter/KPrView.h	2007-11-14 00:34:40.000000000 -0500
@@ -35,6 +35,8 @@
 #include <KoPen.h>
 #include <KoRuler.h>
 
+#include <koffice_export.h>
+
 class QPopupMenu;
 class QSplitter;
 class QLabel;
@@ -114,7 +116,7 @@
 };
 
 
-class KPrView : public KoView
+class KPRESENTER_EXPORT KPrView : public KoView
 {
     friend class PageBase;
     Q_OBJECT
--- koffice-1.6.3/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.h	2007-05-30 17:41:22.000000000 -0400
+++ koffice-1.6.3-new/krita/colorspaces/ycbcr_u16/kis_ycbcr_u16_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,6 +21,7 @@
 #define KIS_YCBCR_U16_COLORSPACE_H
 
 #include <kis_u16_base_colorspace.h>
+#include <koffice_export.h>
 
 #include <klocale.h>
 
@@ -28,7 +29,7 @@
 #define LUMA_GREEN 0.587
 #define LUMA_BLUE 0.114
 
-class KisYCbCrU16ColorSpace : public KisU16BaseColorSpace
+class KRITATOOL_EXPORT KisYCbCrU16ColorSpace : public KisU16BaseColorSpace
 {
     public:
         KisYCbCrU16ColorSpace(KisColorSpaceFactoryRegistry* parent, KisProfile* p);
--- koffice-1.6.3/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h	2007-05-30 17:41:23.000000000 -0400
+++ koffice-1.6.3-new/krita/colorspaces/ycbcr_u8/kis_ycbcr_u8_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,6 +21,7 @@
 #define KIS_YCBCR_U8_COLORSPACE_H
 
 #include <kis_u8_base_colorspace.h>
+#include <koffice_export.h>
 
 #include <klocale.h>
 
@@ -28,7 +29,7 @@
 #define LUMA_GREEN 0.587
 #define LUMA_BLUE 0.114
 
-class KisYCbCrU8ColorSpace : public KisU8BaseColorSpace
+class KRITATOOL_EXPORT KisYCbCrU8ColorSpace : public KisU8BaseColorSpace
 {
     public:
         KisYCbCrU8ColorSpace(KisColorSpaceFactoryRegistry* parent, KisProfile* p);
--- koffice-1.6.3/krita/core/kis_alpha_mask.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_alpha_mask.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,12 +26,14 @@
 #include "kis_global.h"
 #include "kis_types.h"
 
+#include <koffice_export.h>
+
 /**
  * KisAlphaMask is intended to create alpha values from a QImage for use
  * in brush creation. It is not a generic alpha mask that can be used with
  * KisPaintDevices: use a KisSelection for that.
  */
-class KisAlphaMask : public KShared {
+class KRITACORE_EXPORT KisAlphaMask : public KShared {
     
  public:
     /**
--- koffice-1.6.3/krita/core/kis_autobrush_resource.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_autobrush_resource.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,7 +21,9 @@
 
 #include "kis_brush.h"
 
-class KisAutobrushShape {
+#include <koffice_export.h>
+
+class KRITACORE_EXPORT KisAutobrushShape {
     public:
         KisAutobrushShape(Q_INT32 w, Q_INT32 h, double fh, double fv) : m_w(w), m_h(h), m_fh(fh), m_fv(fv)
         { };
@@ -32,7 +34,7 @@
         double m_fh, m_fv;
 };
 
-class KisAutobrushCircleShape : public KisAutobrushShape {
+class KRITACORE_EXPORT KisAutobrushCircleShape : public KisAutobrushShape {
     public:
         KisAutobrushCircleShape(Q_INT32 w, Q_INT32 h, double fh, double fv);
     public:
@@ -48,7 +50,7 @@
         double m_xfadecoef, m_yfadecoef;
 };
 
-class KisAutobrushRectShape : public KisAutobrushShape {
+class KRITACORE_EXPORT KisAutobrushRectShape : public KisAutobrushShape {
     public:
         KisAutobrushRectShape(Q_INT32 w, Q_INT32 h, double fh, double fv);
     protected:
@@ -57,7 +59,7 @@
         double m_xcentre, m_ycentre, m_c;
 };
 
-class KisAutobrushResource : public KisBrush
+class KRITACORE_EXPORT KisAutobrushResource : public KisBrush
 {
     public:
         KisAutobrushResource(QImage& img) : KisBrush("")
--- koffice-1.6.3/krita/core/kis_autogradient_resource.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_autogradient_resource.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,7 +22,9 @@
 
 #include "kis_gradient.h"
 
-class KisAutogradientResource : public KisGradient
+#include <koffice_export.h>
+
+class KRITACORE_EXPORT KisAutogradientResource : public KisGradient
 {
 
 public:
--- koffice-1.6.3/krita/core/kis_background.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_background.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,8 +21,9 @@
 #include <qimage.h>
 
 #include <ksharedptr.h>
+#include <koffice_export.h>
 
-class KisBackground : public KShared {
+class KRITACORE_EXPORT KisBackground : public KShared {
 
 public:
     KisBackground();
--- koffice-1.6.3/krita/core/kis_command.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_command.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,10 +22,11 @@
 
 #include <qstring.h>
 #include <kcommand.h>
+#include <koffice_export.h>
 
 class KisUndoAdapter;
 
-class KisCommand : public KCommand {
+class KRITACORE_EXPORT KisCommand : public KCommand {
     typedef KCommand super;
 
 public:
--- koffice-1.6.3/krita/core/kis_convolution_painter.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_convolution_painter.h	2007-11-14 00:34:40.000000000 -0500
@@ -37,7 +37,7 @@
 class KisKernel;
 typedef KSharedPtr<KisKernel> KisKernelSP;
 
-class KisKernel : public KShared 
+class KRITACORE_EXPORT KisKernel : public KShared 
 {
 
 public:
--- koffice-1.6.3/krita/core/kis_exif_value.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_exif_value.h	2007-11-14 00:34:40.000000000 -0500
@@ -25,6 +25,8 @@
 #include <qcstring.h>
 #include <qstring.h>
 
+#include <koffice_export.h>
+
 typedef QMemArray<Q_UINT8> UByteArray;
 
 struct KisExifRational {
@@ -37,7 +39,7 @@
     Q_INT32 denominator;
 };
 
-class ExifValue {
+class KRITACORE_EXPORT ExifValue {
     typedef union {
         Q_UINT8 m_byte;
         Q_UINT16 m_short;
--- koffice-1.6.3/krita/core/kis_filter_config_widget.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_filter_config_widget.h	2007-11-14 00:34:40.000000000 -0500
@@ -20,13 +20,14 @@
 
 #include <qwidget.h>
 #include "kis_filter_configuration.h"
+#include <koffice_export.h>
 
 /**
  * Empty base class. Filters can build their own configuration widgets that
  * inherit this class. The configuration widget can emit sigPleaseUpdatePreview
  * when it wants the preview in the filter dialog to be updated. 
  */
-class KisFilterConfigWidget : public QWidget {
+class KRITACORE_EXPORT KisFilterConfigWidget : public QWidget {
 
     Q_OBJECT
 
--- koffice-1.6.3/krita/core/kis_filter_strategy.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_filter_strategy.h	2007-11-14 00:34:40.000000000 -0500
@@ -25,8 +25,9 @@
 #include "kis_types.h"
 #include "kis_generic_registry.h"
 #include "kis_id.h"
+#include <koffice_export.h>
 
-class KisFilterStrategy
+class KRITACORE_EXPORT KisFilterStrategy
 {
     public:
         KisFilterStrategy(KisID id) : m_id(id) {}
@@ -44,7 +45,7 @@
         KisID m_id;
 };
 
-class KisHermiteFilterStrategy : public KisFilterStrategy
+class KRITACORE_EXPORT KisHermiteFilterStrategy : public KisFilterStrategy
 {
     public:
         KisHermiteFilterStrategy() : KisFilterStrategy(KisID("Hermite", i18n("Hermite")))
@@ -66,7 +67,7 @@
         virtual double valueAt(double t) const;
 };
 
-class KisBoxFilterStrategy : public KisFilterStrategy
+class KRITACORE_EXPORT KisBoxFilterStrategy : public KisFilterStrategy
 {
     public:
         KisBoxFilterStrategy() : KisFilterStrategy(KisID("Box", i18n("Box")))
@@ -78,7 +79,7 @@
         virtual bool boxSpecial() { return true;};
 };
 
-class KisTriangleFilterStrategy : public KisFilterStrategy
+class KRITACORE_EXPORT KisTriangleFilterStrategy : public KisFilterStrategy
 {
     public:
         KisTriangleFilterStrategy() : KisFilterStrategy(KisID("Triangle", i18n("Triangle aka (bi)linear")))
@@ -89,7 +90,7 @@
         virtual double valueAt(double t) const;
 };
 
-class KisBellFilterStrategy : public KisFilterStrategy
+class KRITACORE_EXPORT KisBellFilterStrategy : public KisFilterStrategy
 {
     public:
         KisBellFilterStrategy() : KisFilterStrategy(KisID("Bell", i18n("Bell")))
@@ -99,7 +100,7 @@
         virtual double valueAt(double t) const;
 };
 
-class KisBSplineFilterStrategy : public KisFilterStrategy
+class KRITACORE_EXPORT KisBSplineFilterStrategy : public KisFilterStrategy
 {
     public:
         KisBSplineFilterStrategy() : KisFilterStrategy(KisID("BSpline", i18n("BSpline")))
@@ -109,7 +110,7 @@
         virtual double valueAt(double t) const;
 };
 
-class KisLanczos3FilterStrategy : public KisFilterStrategy
+class KRITACORE_EXPORT KisLanczos3FilterStrategy : public KisFilterStrategy
 {
     public:
         KisLanczos3FilterStrategy() : KisFilterStrategy(KisID("Lanczos3", i18n("Lanczos3")))
@@ -121,7 +122,7 @@
         double sinc(double x) const; 
 };
 
-class KisMitchellFilterStrategy : public KisFilterStrategy
+class KRITACORE_EXPORT KisMitchellFilterStrategy : public KisFilterStrategy
 {
     public:
         KisMitchellFilterStrategy() : KisFilterStrategy(KisID("Mitchell", i18n("Mitchell")))
@@ -131,7 +132,7 @@
         virtual double valueAt(double t) const;
 };
 
-class KisFilterStrategyRegistry : public KisGenericRegistry<KisFilterStrategy *>
+class KRITACORE_EXPORT KisFilterStrategyRegistry : public KisGenericRegistry<KisFilterStrategy *>
 {
 public:
     virtual ~KisFilterStrategyRegistry();
--- koffice-1.6.3/krita/core/kis_gradient.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_gradient.h	2007-11-14 00:34:40.000000000 -0500
@@ -32,6 +32,8 @@
 #include "kis_resource.h"
 #include "kis_global.h"
 
+#include <koffice_export.h>
+
 class QImage;
 
 enum {
@@ -62,7 +64,7 @@
         double m_alpha;
 };
 
-class KisGradientSegment {
+class KRITACORE_EXPORT KisGradientSegment {
     public:
         KisGradientSegment(int interpolationType, int colorInterpolationType, double startOffset, double middleOffset, double endOffset, const Color& startColor, const Color& endColor);
 
@@ -229,7 +231,7 @@
         Color m_endColor;
 };
 
-class KisGradient : public KisResource {
+class KRITACORE_EXPORT KisGradient : public KisResource {
     typedef KisResource super;
     Q_OBJECT
 
--- koffice-1.6.3/krita/core/kis_group_layer.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_group_layer.h	2007-11-14 00:34:40.000000000 -0500
@@ -25,6 +25,8 @@
 
 #include "kis_paint_layer.h"
 
+#include <koffice_export.h>
+
 class KisMergeVisitor;
 
 /**
@@ -33,7 +35,7 @@
  * KisLayer::nextSibling() moves towards higher indices, from the top to the bottom layer; prevSibling() the reverse.
  * (Implementation detail: internally, the indices are reversed, for speed.)
  **/
-class KisGroupLayer : public KisLayer {
+class KRITACORE_EXPORT KisGroupLayer : public KisLayer {
     typedef KisLayer super;
 
     Q_OBJECT
--- koffice-1.6.3/krita/core/kis_histogram.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_histogram.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,6 +22,7 @@
 #include "kis_types.h"
 #include "kis_colorspace.h"
 #include "kis_histogram_producer.h"
+#include <koffice_export.h>
 
 enum enumHistogramType {
     LINEAR,
@@ -40,7 +41,7 @@
  * The calculations are done in the range 0 - 1, instead of the native range that a pixel
  * might have, so it's not always as precise as it could be. But you can't have it all...
  */
-class KisHistogram : public KShared {
+class KRITACORE_EXPORT KisHistogram : public KShared {
 
 public:
     /**
--- koffice-1.6.3/krita/core/kis_imagepipe_brush.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_imagepipe_brush.h	2007-11-14 00:34:40.000000000 -0500
@@ -31,6 +31,8 @@
 #include "kis_brush.h"
 #include "kis_global.h"
 
+#include <koffice_export.h>
+
 class QCString;
 class QImage;
 class QPoint;
@@ -98,7 +100,7 @@
 };
 
 
-class KisImagePipeBrush : public KisBrush {
+class KRITACORE_EXPORT KisImagePipeBrush : public KisBrush {
     typedef KisBrush super;
     Q_OBJECT
 
--- koffice-1.6.3/krita/core/kis_iterator.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_iterator.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,6 +21,7 @@
 
 #include <qglobal.h>
 #include <ksharedptr.h>
+#include <koffice_export.h>
 
 class KisTiledRectIterator;
 typedef KSharedPtr<KisTiledRectIterator> KisTiledRectIteratorSP;
@@ -37,7 +38,7 @@
  * The KisRectIterator iterators over a rectangular area in the most efficient order. That is,
  * there is no guarantee that the iterator will work scanline by scanline.
  */
-class KisRectIterator
+class KRITACORE_EXPORT KisRectIterator
 {
 
 
@@ -81,7 +82,7 @@
     KisTiledRectIteratorSP m_iter;
 };
 
-class KisHLineIterator
+class KRITACORE_EXPORT KisHLineIterator
 {
 
 public:
@@ -132,7 +133,7 @@
     KisTiledHLineIteratorSP m_iter;
 };
 
-class KisVLineIterator
+class KRITACORE_EXPORT KisVLineIterator
 {
 
 public:
--- koffice-1.6.3/krita/core/kis_meta_registry.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_meta_registry.h	2007-11-14 00:34:40.000000000 -0500
@@ -18,6 +18,8 @@
 #ifndef _KIS_META_REGISTRY_
 #define _KIS_META_REGISTRY_
 
+#include <koffice_export.h>
+
 class KisColorSpaceFactoryRegistry;
 class KisMathToolboxFactoryRegistry;
 
@@ -26,7 +28,7 @@
  *
  * XXX: Maybe this should go into the SDK
  */
-class KisMetaRegistry {
+class KRITACORE_EXPORT KisMetaRegistry {
 
 public:
 
--- koffice-1.6.3/krita/core/kis_nameserver.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_nameserver.h	2007-11-14 00:34:40.000000000 -0500
@@ -20,8 +20,9 @@
 
 #include <qstring.h>
 #include "kis_global.h"
+#include <koffice_export.h>
 
-class KisNameServer {
+class KRITACORE_EXPORT KisNameServer {
 public:
     KisNameServer(const QString& prefix, Q_INT32 seed = 1);
     ~KisNameServer();
--- koffice-1.6.3/krita/core/kis_paint_layer.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_paint_layer.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,10 +22,12 @@
 #include "kis_layer.h"
 #include "kis_paint_device.h"
 #include "kis_colorspace.h"
+#include <koffice_export.h>
+
 /**
  * This layer is of a type that can be painted on.
  */
-class KisPaintLayer : public KisLayer, public KisLayerSupportsIndirectPainting {
+class KRITACORE_EXPORT KisPaintLayer : public KisLayer, public KisLayerSupportsIndirectPainting {
     typedef KisLayer super;
 
     Q_OBJECT
--- koffice-1.6.3/krita/core/kis_paintop.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_paintop.h	2007-11-14 00:34:40.000000000 -0500
@@ -108,7 +108,7 @@
  * If there is an optionWidget, the derived paintop itself must support settings,
  * and it's up to the factory to do that.
  */
-class KisPaintOpFactory  : public KShared
+class KRITACORE_EXPORT KisPaintOpFactory  : public KShared
 {
 
 public:
--- koffice-1.6.3/krita/core/kis_palette.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_palette.h	2007-11-14 00:34:40.000000000 -0500
@@ -31,6 +31,8 @@
 #include "kis_gradient.h"
 #include "kis_alpha_mask.h"
 
+#include <koffice_export.h>
+
 class QPoint;
 class QPixmap;
 class KisPaintDevice;
@@ -47,7 +49,7 @@
  * Open Gimp, Photoshop or RIFF palette files. This is a straight port
  * from the Gimp.
  */
-class KisPalette : public KisResource {
+class KRITACORE_EXPORT KisPalette : public KisResource {
     typedef KisResource super;
 
     Q_OBJECT
--- koffice-1.6.3/krita/core/kis_pattern.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_pattern.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,13 +26,14 @@
 #include "kis_debug_areas.h"
 #include "kis_resource.h"
 #include "kis_types.h"
+#include <koffice_export.h>
 
 class QPoint;
 class QImage;
 class KisColorSpace;
 class KisPaintDevice;
 
-class KisPattern : public KisResource {
+class KRITACORE_EXPORT KisPattern : public KisResource {
     typedef KisResource super;
     Q_OBJECT
 
--- koffice-1.6.3/krita/core/kis_perspective_grid.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_perspective_grid.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,6 +26,7 @@
 #include <kis_perspective_math.h>
 #include <kis_point.h>
 #include <ksharedptr.h>
+#include <koffice_export.h>
 
 class KisPerspectiveGridNode : public KisPoint, public KShared {
     public:
@@ -34,7 +35,7 @@
 };
 typedef KSharedPtr<KisPerspectiveGridNode> KisPerspectiveGridNodeSP;
 
-class KisSubPerspectiveGrid {
+class KRITACORE_EXPORT KisSubPerspectiveGrid {
     public:
         KisSubPerspectiveGrid(KisPerspectiveGridNodeSP topLeft, KisPerspectiveGridNodeSP topRight, KisPerspectiveGridNodeSP bottomRight, KisPerspectiveGridNodeSP bottomLeft);
         
@@ -83,7 +84,7 @@
         static int s_lastIndex;
 };
 
-class KisPerspectiveGrid {
+class KRITACORE_EXPORT KisPerspectiveGrid {
     public:
         KisPerspectiveGrid();
         ~KisPerspectiveGrid();
--- koffice-1.6.3/krita/core/kis_perspective_math.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_perspective_math.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,10 +21,11 @@
 #define _KIS_PERSPECTVE_MATH_H_
 
 #include "kis_point.h"
+#include <koffice_export.h>
 
 class QRect;
 
-class KisPerspectiveMath {
+class KRITACORE_EXPORT KisPerspectiveMath {
     private:
         KisPerspectiveMath() { }
     public:
--- koffice-1.6.3/krita/core/kis_perspectivetransform_worker.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_perspectivetransform_worker.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,11 +22,12 @@
 
 #include "kis_types.h"
 #include "kis_progress_subject.h"
+#include <koffice_export.h>
 
 class KisPoint;
 class KisProgressDisplayInterface;
 
-class KisPerspectiveTransformWorker : public KisProgressSubject
+class KRITACORE_EXPORT KisPerspectiveTransformWorker : public KisProgressSubject
 {
     public:
         KisPerspectiveTransformWorker(KisPaintDeviceSP dev, const KisPoint& topLeft, const KisPoint& topRight, const KisPoint& bottomLeft, const KisPoint& bottomRight, KisProgressDisplayInterface *progress);
--- koffice-1.6.3/krita/core/kis_random_accessor.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_random_accessor.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,6 +21,7 @@
 #define KIS_RANDOM_ACCESSOR_H
 
 #include <ksharedptr.h>
+#include <koffice_export.h>
 
 #include <kis_global.h>
 
@@ -29,7 +30,7 @@
 
 class KisTiledDataManager;
 
-class KisRandomAccessor{
+class KRITACORE_EXPORT KisRandomAccessor{
     public:
         KisRandomAccessor(KisTiledDataManager *ktm, Q_INT32 x, Q_INT32 y, Q_INT32 offsetx, Q_INT32 offsety, bool writable);
         KisRandomAccessor(const KisRandomAccessor& rhs);
--- koffice-1.6.3/krita/core/kis_random_sub_accessor.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_random_sub_accessor.h	2007-11-14 00:34:40.000000000 -0500
@@ -23,8 +23,9 @@
 #include "kis_point.h"
 #include "kis_random_accessor.h"
 #include "kis_types.h"
+#include <koffice_export.h>
 
-class KisRandomSubAccessorPixel{
+class KRITACORE_EXPORT KisRandomSubAccessorPixel{
     public:
         KisRandomSubAccessorPixel(KisPaintDeviceSP device);
         ~KisRandomSubAccessorPixel();
--- koffice-1.6.3/krita/core/kis_resource.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_resource.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,7 +21,7 @@
 #include <qimage.h>
 #include <qobject.h>
 #include <qstring.h>
-
+#include <koffice_export.h>
 
 /**
  * The KisResource class provides a representation of Krita image resources.  This
@@ -29,7 +29,7 @@
  *
  * This replaces the KisKrayon facility that used to be present in Krayon.
  */
-class KisResource : public QObject {
+class KRITACORE_EXPORT KisResource : public QObject {
     typedef QObject super;
     Q_OBJECT
 
--- koffice-1.6.3/krita/core/kis_rotate_visitor.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_rotate_visitor.h	2007-11-14 00:34:40.000000000 -0500
@@ -20,12 +20,13 @@
 
 #include "kis_types.h"
 #include "kis_progress_subject.h"
+#include <koffice_export.h>
 
 class QRect;
 class KisPaintDevice;
 class KisProgressDisplayInterface;
 
-class KisRotateVisitor : public KisProgressSubject {
+class KRITACORE_EXPORT KisRotateVisitor : public KisProgressSubject {
         typedef KisProgressSubject super;  
         
         /* Structs for the image rescaling routine */
--- koffice-1.6.3/krita/core/kis_scale_visitor.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_scale_visitor.h	2007-11-14 00:34:40.000000000 -0500
@@ -37,7 +37,7 @@
 class KisProgressDisplayInterface;
 class KisFilterStrategy;
 
-class KisScaleWorker : public KisThread {
+class KRITACORE_EXPORT KisScaleWorker : public KisThread {
 
     /* Structs for the image rescaling routine */
     class Contrib {
--- koffice-1.6.3/krita/core/kis_thread_pool.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_thread_pool.h	2007-11-14 00:34:40.000000000 -0500
@@ -24,6 +24,7 @@
 #include <qmutex.h>
 
 #include "kis_thread.h"
+#include <koffice_export.h>
 
 /**
  * A thread pool starts executing threads some time after they are added,
@@ -33,7 +34,7 @@
  * have run. This means that you cannot add getters for important data to
  * threads you feed the threadpool. Instead, post the data using a customevent.
  */
-class KisThreadPool : public KisThread {
+class KRITACORE_EXPORT KisThreadPool : public KisThread {
 
 public:
 
--- koffice-1.6.3/krita/core/kis_transaction.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_transaction.h	2007-11-14 00:34:40.000000000 -0500
@@ -25,10 +25,12 @@
 
 #include "kis_types.h"
 
+#include <koffice_export.h>
+
 class QRect;
 class KisTransactionPrivate;
 
-class KisTransaction : public KCommand {
+class KRITACORE_EXPORT KisTransaction : public KCommand {
 public:
     KisTransaction(const QString& name, KisPaintDeviceSP device);
     virtual ~KisTransaction();
--- koffice-1.6.3/krita/core/kis_transform_worker.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_transform_worker.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,6 +22,7 @@
 
 #include "kis_types.h"
 #include "kis_progress_subject.h"
+#include <koffice_export.h>
 
 class KisPaintDevice;
 class KisProgressDisplayInterface;
@@ -29,7 +30,7 @@
 class KisVLineIteratorPixel;
 class KisFilterStrategy;
 
-class KisTransformWorker : public KisProgressSubject {
+class KRITACORE_EXPORT KisTransformWorker : public KisProgressSubject {
     typedef KisProgressSubject super;
 
 public:
--- koffice-1.6.3/krita/core/kis_vec.h	2007-05-30 17:40:31.000000000 -0400
+++ koffice-1.6.3-new/krita/core/kis_vec.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,12 +26,14 @@
 #include <qpoint.h>
 #include "kis_point.h"
 
+#include <koffice_export.h>
+
 /*
  * vector classes
  */
 const double epsilon = DBL_EPSILON;
 
-class KisVector2D
+class KRITACORE_EXPORT KisVector2D
 {
 public:
     KisVector2D();
@@ -229,7 +231,7 @@
     return KisPoint(m_x, m_y);
 }
 
-class KisVector3D
+class KRITACORE_EXPORT KisVector3D
 {
 public:
     KisVector3D();
--- koffice-1.6.3/krita/core/tiles/kis_tile.h	2007-05-30 17:40:24.000000000 -0400
+++ koffice-1.6.3-new/krita/core/tiles/kis_tile.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,6 +21,8 @@
 #include <qglobal.h>
 #include <qrect.h>
 
+#include <koffice_export.h>
+
 class KisTiledDataManager;
 class KisTiledIterator;
 
@@ -29,7 +31,7 @@
  * a part of a PaintDevice, but only the individual pixels
  * are accesable and that only via iterators.
  */
-class KisTile  {
+class KRITACORE_EXPORT KisTile  {
 public:
     KisTile(Q_INT32 pixelSize, Q_INT32 col, Q_INT32 row, const Q_UINT8 *defPixel);
     KisTile(const KisTile& rhs, Q_INT32 col, Q_INT32 row);
--- koffice-1.6.3/krita/core/tiles/kis_tilemanager.cc	2007-05-30 17:40:24.000000000 -0400
+++ koffice-1.6.3-new/krita/core/tiles/kis_tilemanager.cc	2007-11-14 00:34:40.000000000 -0500
@@ -18,8 +18,8 @@
 
 #include <kdebug.h>
 
-#include <sys/mman.h>
 #include <sys/types.h>
+#include <sys/mman.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
--- koffice-1.6.3/krita/core/tiles/kis_tilemanager.h	2007-05-30 17:40:24.000000000 -0400
+++ koffice-1.6.3-new/krita/core/tiles/kis_tilemanager.h	2007-11-14 00:34:40.000000000 -0500
@@ -27,6 +27,8 @@
 
 #include <ktempfile.h>
 
+#include <koffice_export.h>
+
 class KisTile;
 class KisTiledDataManager;
 
@@ -41,7 +43,7 @@
  *  * tries to preallocate and recycle some tiles to make future allocations faster
  *    (not done yet)
  */
-class KisTileManager  {
+class KRITACORE_EXPORT KisTileManager  {
 public:
     ~KisTileManager();
     static KisTileManager* instance();
--- koffice-1.6.3/krita/kritacolor/kis_abstract_colorspace.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_abstract_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -34,7 +34,6 @@
 #include "kis_colorspace.h"
 #include "koffice_export.h"
 
-
 class QPainter;
 class KisPixelRO;
 class KisColorSpaceFactoryRegistry;
--- koffice-1.6.3/krita/kritacolor/kis_basic_histogram_producers.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_basic_histogram_producers.h	2007-11-14 00:34:40.000000000 -0500
@@ -28,9 +28,11 @@
 #include "kis_colorspace.h"
 #include "kis_id.h"
 
+#include <koffice_export.h>
+
 class KisLabColorSpace;
 
-class KisBasicHistogramProducer : public KisHistogramProducer {
+class KRITA_EXPORT KisBasicHistogramProducer : public KisHistogramProducer {
 public:
     KisBasicHistogramProducer(const KisID& id, int channels, int nrOfBins, KisColorSpace *colorSpace);
     virtual ~KisBasicHistogramProducer() {}
@@ -82,7 +84,7 @@
     QValueVector<Q_INT32> m_external;
 };
 
-class KisBasicU8HistogramProducer : public KisBasicHistogramProducer {
+class KRITA_EXPORT KisBasicU8HistogramProducer : public KisBasicHistogramProducer {
 public:
     KisBasicU8HistogramProducer(const KisID& id, KisColorSpace *colorSpace);
     virtual void addRegionToBin(Q_UINT8 * pixels, Q_UINT8 * selectionMask, Q_UINT32 nPixels, KisColorSpace *colorSpace);
@@ -90,7 +92,7 @@
     virtual double maximalZoom() const { return 1.0; }
 };
 
-class KisBasicU16HistogramProducer : public KisBasicHistogramProducer {
+class KRITA_EXPORT KisBasicU16HistogramProducer : public KisBasicHistogramProducer {
 public:
     KisBasicU16HistogramProducer(const KisID& id, KisColorSpace *colorSpace);
     virtual void addRegionToBin(Q_UINT8 * pixels, Q_UINT8 * selectionMask, Q_UINT32 nPixels, KisColorSpace *colorSpace);
@@ -98,7 +100,7 @@
     virtual double maximalZoom() const;
 };
 
-class KisBasicF32HistogramProducer : public KisBasicHistogramProducer {
+class KRITA_EXPORT KisBasicF32HistogramProducer : public KisBasicHistogramProducer {
 public:
     KisBasicF32HistogramProducer(const KisID& id, KisColorSpace *colorSpace);
     virtual void addRegionToBin(Q_UINT8 * pixels, Q_UINT8 * selectionMask, Q_UINT32 nPixels, KisColorSpace *colorSpace);
@@ -107,7 +109,7 @@
 };
 
 #ifdef HAVE_OPENEXR
-class KisBasicF16HalfHistogramProducer : public KisBasicHistogramProducer {
+class KRITA_EXPORT KisBasicF16HalfHistogramProducer : public KisBasicHistogramProducer {
 public:
     KisBasicF16HalfHistogramProducer(const KisID& id, KisColorSpace *colorSpace);
     virtual void addRegionToBin(Q_UINT8 * pixels, Q_UINT8 * selectionMask, Q_UINT32 nPixels, KisColorSpace *colorSpace);
@@ -122,7 +124,7 @@
  * Factories with Producers in the code because they are incompatible types, and
  * in the GUI we actually only need a producer's name, not a factory's.
  */
-template<class T> class KisBasicHistogramProducerFactory : public KisHistogramProducerFactory {
+template<class T> class KRITA_EXPORT KisBasicHistogramProducerFactory : public KisHistogramProducerFactory {
 public:
     KisBasicHistogramProducerFactory(const KisID& id, KisColorSpace *colorSpace)
         : KisHistogramProducerFactory(id), m_cs(colorSpace) {}
@@ -140,7 +142,7 @@
  * Registry, because it isCompatibleWith all colorspaces, and should only be used in extreme
  * cases (like no other producer being available
  **/
-class KisGenericRGBHistogramProducer : public KisBasicHistogramProducer {
+class KRITA_EXPORT KisGenericRGBHistogramProducer : public KisBasicHistogramProducer {
 public:
     KisGenericRGBHistogramProducer();
     virtual void addRegionToBin(Q_UINT8 * pixels, Q_UINT8 * selectionMask, Q_UINT32 nPixels, KisColorSpace *colorSpace);
@@ -152,7 +154,7 @@
 };
 
 /** KisGenericRGBHistogramProducer his special Factory that isCompatibleWith everything. */
-class KisGenericRGBHistogramProducerFactory : public KisHistogramProducerFactory {
+class KRITA_EXPORT KisGenericRGBHistogramProducerFactory : public KisHistogramProducerFactory {
 public:
     KisGenericRGBHistogramProducerFactory()
         : KisHistogramProducerFactory(KisID("GENRGBHISTO", i18n("Generic RGB"))) {}
@@ -168,7 +170,7 @@
  * to L*a*b*, and then does its counting.
  * It isCompatibleWith all colorspaces
  **/
-class KisGenericLabHistogramProducer : public KisBasicHistogramProducer {
+class KRITA_EXPORT KisGenericLabHistogramProducer : public KisBasicHistogramProducer {
     public:
         KisGenericLabHistogramProducer();
         virtual ~KisGenericLabHistogramProducer();
@@ -183,7 +185,7 @@
 };
 
 /** KisGenericLabHistogramProducer his special Factory that isCompatibleWith everything. */
-class KisGenericLabHistogramProducerFactory : public KisHistogramProducerFactory {
+class KRITA_EXPORT KisGenericLabHistogramProducerFactory : public KisHistogramProducerFactory {
     public:
         KisGenericLabHistogramProducerFactory()
     : KisHistogramProducerFactory(KisID("GENLABHISTO", i18n("Generic L*a*b*"))) {}
--- koffice-1.6.3/krita/kritacolor/kis_color.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_color.h	2007-11-14 00:34:40.000000000 -0500
@@ -25,12 +25,14 @@
 #include "kis_profile.h"
 #include "kis_colorspace.h"
 
+#include <koffice_export.h>
+
 
 /**
  * A KisColor describes a color in a certain colorspace.
  *
  */
-class KisColor {
+class KRITA_EXPORT KisColor {
 
 public:
     /// Create an empty KisColor. It will be valid, but also black and transparent
--- koffice-1.6.3/krita/kritacolor/kis_color_conversions.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_color_conversions.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,29 +21,31 @@
 
 #include <qglobal.h>
 
+#include <koffice_export.h>
+
 /**
  * A number of often-used conversions between color models
  */
 
 // 8-bit integer versions. RGBSL are 0-255, H is 0-360.
- void rgb_to_hsv(int R, int G, int B, int *H, int *S, int *V);
- void hsv_to_rgb(int H, int S, int V, int *R, int *G, int *B);
+ void KRITA_EXPORT rgb_to_hsv(int R, int G, int B, int *H, int *S, int *V);
+ void KRITA_EXPORT hsv_to_rgb(int H, int S, int V, int *R, int *G, int *B);
 
 // Floating point versions. RGBSL are 0-1, H is 0-360.
- void RGBToHSV(float r, float g, float b, float *h, float *s, float *v);
- void HSVToRGB(float h, float s, float v, float *r, float *g, float *b);
+ void KRITA_EXPORT RGBToHSV(float r, float g, float b, float *h, float *s, float *v);
+ void KRITA_EXPORT HSVToRGB(float h, float s, float v, float *r, float *g, float *b);
 
- void RGBToHSL(float r, float g, float b, float *h, float *s, float *l);
- void HSLToRGB(float h, float sl, float l, float *r, float *g, float *b);
+ void KRITA_EXPORT RGBToHSL(float r, float g, float b, float *h, float *s, float *l);
+ void KRITA_EXPORT HSLToRGB(float h, float sl, float l, float *r, float *g, float *b);
 
- void rgb_to_hls(Q_UINT8 r, Q_UINT8 g, Q_UINT8 b, float * h, float * l, float * s);
+ void KRITA_EXPORT rgb_to_hls(Q_UINT8 r, Q_UINT8 g, Q_UINT8 b, float * h, float * l, float * s);
 
- float hue_value(float n1, float n2, float hue);
+ float KRITA_EXPORT hue_value(float n1, float n2, float hue);
 
- void hls_to_rgb(float h, float l, float s, Q_UINT8 * r, Q_UINT8 * g, Q_UINT8 * b);
+ void KRITA_EXPORT hls_to_rgb(float h, float l, float s, Q_UINT8 * r, Q_UINT8 * g, Q_UINT8 * b);
 
- void rgb_to_hls(Q_UINT8 r, Q_UINT8 g, Q_UINT8 b, int * h, int * l, int * s);
- void hls_to_rgb(int h, int l, int s, Q_UINT8 * r, Q_UINT8 * g, Q_UINT8 * b);
+ void KRITA_EXPORT rgb_to_hls(Q_UINT8 r, Q_UINT8 g, Q_UINT8 b, int * h, int * l, int * s);
+ void KRITA_EXPORT hls_to_rgb(int h, int l, int s, Q_UINT8 * r, Q_UINT8 * g, Q_UINT8 * b);
 
 #endif // _KIS_CONVERSIONS_H_
 
--- koffice-1.6.3/krita/kritacolor/kis_colorspace.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -27,6 +27,8 @@
 #include "kis_composite_op.h"
 #include "kis_channelinfo.h"
 
+#include <koffice_export.h>
+
 class DCOPObject;
 
 class KisProfile;
@@ -55,7 +57,7 @@
  * in Krita. This is the definition of the public API for
  * colormodels.
  */
-class KisColorSpace {
+class KRITA_EXPORT KisColorSpace {
 
 
 public:
@@ -421,7 +423,7 @@
 
 };
 
-class KisColorSpaceFactory {
+class KRITA_EXPORT KisColorSpaceFactory {
 public:
     /**
      * Krita definition for use in .kra files and internally: unchanging name +
--- koffice-1.6.3/krita/kritacolor/kis_colorspace_factory_registry.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_colorspace_factory_registry.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,6 +22,7 @@
 #include "qobject.h"
 #include "kis_generic_registry.h"
 #include "kis_colorspace.h"
+#include <koffice_export.h>
 
 class QStringList;
 class KisPaintDeviceAction;
@@ -32,7 +33,7 @@
  *      - a registry of singleton colorspace factories.
  *      - a registry of icc profiles
  */
-class KisColorSpaceFactoryRegistry : public QObject,  public KisGenericRegistry<KisColorSpaceFactory *> {
+class KRITA_EXPORT KisColorSpaceFactoryRegistry : public QObject,  public KisGenericRegistry<KisColorSpaceFactory *> {
 
 
     Q_OBJECT
--- koffice-1.6.3/krita/kritacolor/kis_composite_op.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_composite_op.h	2007-11-14 00:34:40.000000000 -0500
@@ -24,6 +24,8 @@
 //#include "kis_global.h"
 #include "kis_id.h"
 
+#include <koffice_export.h>
+
 enum CompositeOp {
     COMPOSITE_OVER,
     COMPOSITE_IN,
@@ -72,7 +74,7 @@
     COMPOSITE_UNDEF
 };
 
-class KisCompositeOp {
+class KRITA_EXPORT KisCompositeOp {
 public:
     KisCompositeOp();
     KisCompositeOp(const QString& id);
--- koffice-1.6.3/krita/kritacolor/kis_f16half_base_colorspace.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_f16half_base_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,6 +26,8 @@
 #include "kis_abstract_colorspace.h"
 #include "kis_integer_maths.h"
 
+#include <koffice_export.h>
+
 /**
  * This class is the base for all 16-bit float colorspaces using the
  * OpenEXR half format. This format can be used with the OpenGL
@@ -58,7 +60,7 @@
 #define F16HALF_OPACITY_OPAQUE ((half)1.0f)
 #define F16HALF_OPACITY_TRANSPARENT ((half)0.0f)
 
-class KisF16HalfBaseColorSpace : public KisAbstractColorSpace {
+class KRITA_EXPORT KisF16HalfBaseColorSpace : public KisAbstractColorSpace {
 
 public:
 
--- koffice-1.6.3/krita/kritacolor/kis_f32_base_colorspace.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_f32_base_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -24,6 +24,8 @@
 #include "kis_abstract_colorspace.h"
 #include "kis_integer_maths.h"
 
+#include <koffice_export.h>
+
 /**
  * This class is the base for all 32-bit float colorspaces.
  */
@@ -54,7 +56,7 @@
 #define F32_OPACITY_OPAQUE 1.0f
 #define F32_OPACITY_TRANSPARENT 0.0f
 
-class KisF32BaseColorSpace : public KisAbstractColorSpace {
+class KRITA_EXPORT KisF32BaseColorSpace : public KisAbstractColorSpace {
 
 public:
 
--- koffice-1.6.3/krita/kritacolor/kis_histogram_producer.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_histogram_producer.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,6 +26,8 @@
 
 #include "kis_generic_registry.h"
 
+#include <koffice_export.h>
+
 class KisRectIteratorPixel;
 class QString;
 class KisChannelInfo;
@@ -110,7 +112,7 @@
     KisID m_id;
 };
 
-class KisHistogramProducerFactoryRegistry
+class KRITA_EXPORT KisHistogramProducerFactoryRegistry
     : public KisGenericRegistry<KisHistogramProducerFactory*> {
 public:
     virtual ~KisHistogramProducerFactoryRegistry();
--- koffice-1.6.3/krita/kritacolor/kis_profile.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_profile.h	2007-11-14 00:34:40.000000000 -0500
@@ -33,10 +33,12 @@
 
 #include <kis_annotation.h>
 
+#include <koffice_export.h>
+
 //XXX: Profiles should be loaded by the color strategies
 //     and be available only through the color strategy
 //     that matches the profile's color model
-class KisProfile {
+class KRITA_EXPORT KisProfile {
 
 public:
     KisProfile(QByteArray rawData);
--- koffice-1.6.3/krita/kritacolor/kis_u16_base_colorspace.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_u16_base_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,12 +22,14 @@
 #include "kis_abstract_colorspace.h"
 #include "kis_integer_maths.h"
 
+#include <koffice_export.h>
+
 /**
  * This is the base class for 16-bit/channel colorspaces with 16-bit alpha
  * channels. It defines a number of common methods, like handling 16-bit alpha
  * and up- and down-scaling of channels.
  */
-class KisU16BaseColorSpace : public KisAbstractColorSpace {
+class KRITA_EXPORT KisU16BaseColorSpace : public KisAbstractColorSpace {
 
 public:
 
--- koffice-1.6.3/krita/kritacolor/kis_u8_base_colorspace.h	2007-05-30 17:41:15.000000000 -0400
+++ koffice-1.6.3-new/krita/kritacolor/kis_u8_base_colorspace.h	2007-11-14 00:34:40.000000000 -0500
@@ -26,10 +26,12 @@
 #include "kis_abstract_colorspace.h"
 #include "kis_integer_maths.h"
 
+#include <koffice_export.h>
+
 /**
  * This class is the base for all homogenous 8-bit/channel colorspaces with 8-bit alpha channels
  */
-class KisU8BaseColorSpace : public KisAbstractColorSpace {
+class KRITA_EXPORT KisU8BaseColorSpace : public KisAbstractColorSpace {
 
 public:
 
--- koffice-1.6.3/krita/plugins/viewplugins/scripting/kritascripting/kis_script_monitor.h	2007-05-30 17:40:17.000000000 -0400
+++ koffice-1.6.3-new/krita/plugins/viewplugins/scripting/kritascripting/kis_script_monitor.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,6 +21,8 @@
 
 #include <qobject.h>
 
+#include <koffice_export.h>
+
 namespace Kross {
     namespace Api {
         class ScriptGUIClient;
@@ -31,7 +33,7 @@
 /**
 	@author Cyrille Berger <cberger@cberger.net>
 */
-class KisScriptMonitor : public QObject {
+class KRITA_EXPORT KisScriptMonitor : public QObject {
     Q_OBJECT
     private:
         KisScriptMonitor();
--- koffice-1.6.3/krita/plugins/viewplugins/scripting/kritascripting/kis_script_progress.h	2007-05-30 17:40:17.000000000 -0400
+++ koffice-1.6.3-new/krita/plugins/viewplugins/scripting/kritascripting/kis_script_progress.h	2007-11-14 00:34:40.000000000 -0500
@@ -21,13 +21,15 @@
 
 #include <kis_progress_subject.h>
 
+#include <koffice_export.h>
+
 class KisView;
 
 /**
  * TODO: clarify the situation, while, in the future, multiple scripts could be running at a same time,
  * some of the functions are global to all script and some aren't.
  */
-class KisScriptProgress : public KisProgressSubject
+class KRITA_EXPORT KisScriptProgress : public KisProgressSubject
 {
     public:
         KisScriptProgress(KisView* view) : m_view(view) {};
--- koffice-1.6.3/krita/sdk/kis_generic_registry.h	2007-05-30 17:40:21.000000000 -0400
+++ koffice-1.6.3-new/krita/sdk/kis_generic_registry.h	2007-11-14 00:34:40.000000000 -0500
@@ -35,6 +35,7 @@
  * user-visible, translated string that can be used in the 
  * user interface.
  */
+#undef _T
 template<typename _T>
 class KisGenericRegistry {
 protected:
--- koffice-1.6.3/krita/ui/imageviewer.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/imageviewer.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,6 +22,8 @@
 #include <qscrollview.h>
 #include <qimage.h>
 
+#include <koffice_export.h>
+
 class QLabel;
 
 /**
@@ -30,7 +32,7 @@
  * XXX: We should add a signal that emits newly eposed rects so the filters
  *      don't have to filter everything, but just the the new bits.
  */
-class ImageViewer : public QScrollView {
+class KRITAUI_EXPORT ImageViewer : public QScrollView {
     Q_OBJECT
 
 public:
--- koffice-1.6.3/krita/ui/kis_canvas.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_canvas.h	2007-11-14 00:34:40.000000000 -0500
@@ -35,6 +35,8 @@
 #include "kis_vec.h"
 #include "kis_input_device.h"
 
+#include <koffice_export.h>
+
 #ifdef Q_WS_X11
 
 // Irix has a different (and better) XInput tablet driver to
@@ -276,7 +278,7 @@
 #endif // Q_WS_X11
 };
 
-class KisCanvas : public QObject {
+class KRITAUI_EXPORT KisCanvas : public QObject {
     Q_OBJECT
 
 public:
--- koffice-1.6.3/krita/ui/kis_canvas_painter.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_canvas_painter.h	2007-11-14 00:34:40.000000000 -0500
@@ -27,6 +27,8 @@
 
 #include "kis_global.h"
 
+#include <koffice_export.h>
+
 class KisCanvas;
 class KisCanvasWidget;
 
@@ -188,7 +190,7 @@
     QWMatrix m_defaultWorldMatrix;
 };
 
-class KisCanvasPainter {
+class KRITAUI_EXPORT KisCanvasPainter {
 public:
     KisCanvasPainter();
     KisCanvasPainter(KisCanvas *canvas);
--- koffice-1.6.3/krita/ui/kis_cmb_idlist.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_cmb_idlist.h	2007-11-14 00:34:40.000000000 -0500
@@ -25,12 +25,14 @@
 
 #include "kis_id.h"
 
+#include <koffice_export.h>
+
 /**
  * A combobox that is associated with a list of KisID's. The
  * descriptive (i18n'ed) text is displayed, but the various
  * signals return a KisID.
  */
-class KisCmbIDList : public QComboBox
+class KRITAUI_EXPORT KisCmbIDList : public QComboBox
 {
     typedef QComboBox super;
 
--- koffice-1.6.3/krita/ui/kis_filters_listview.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_filters_listview.h	2007-11-14 00:34:40.000000000 -0500
@@ -31,6 +31,8 @@
 #include "kis_paint_device.h"
 #include "kis_thread.h"
 
+#include <koffice_export.h>
+
 class KisView;
 class KisFilter;
 class KisFilterConfiguration;
@@ -102,7 +104,7 @@
     KisFiltersThumbnailThread * m_thread;
 };
 
-class KisFiltersListView : public KIconView {
+class KRITAUI_EXPORT KisFiltersListView : public KIconView {
 
 public:
     explicit KisFiltersListView(QWidget * parent = 0, const char * name = 0, WFlags f = 0, bool filterForAdjustmentLayers = false);
--- koffice-1.6.3/krita/ui/kis_histogram_view.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_histogram_view.h	2007-11-14 00:34:40.000000000 -0500
@@ -28,6 +28,8 @@
 #include "kis_histogram_producer.h"
 #include "kis_histogram.h"
 
+#include <koffice_export.h>
+
 class KisChannelInfo;
 
 /**
@@ -45,7 +47,7 @@
  * some functionality will disappear, like listProducers(). Setting a histogram will discard
  * info on the layer, and setting a layer will discard info on the histogram.
  **/
-class KisHistogramView : public QLabel {
+class KRITAUI_EXPORT KisHistogramView : public QLabel {
     Q_OBJECT
 public:
     KisHistogramView(QWidget *parent = 0, const char *name = 0, WFlags f = 0);
--- koffice-1.6.3/krita/ui/kis_input_device.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_input_device.h	2007-11-14 00:34:40.000000000 -0500
@@ -20,8 +20,9 @@
 #define KIS_INPUT_DEVICE_H_
 
 #include <qvaluevector.h>
+#include <koffice_export.h>
 
-class KisInputDevice {
+class KRITAUI_EXPORT KisInputDevice {
 public:
     KisInputDevice();
 
--- koffice-1.6.3/krita/ui/kis_int_spinbox.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_int_spinbox.h	2007-11-14 00:34:40.000000000 -0500
@@ -27,12 +27,14 @@
 
 #include <knumvalidator.h>
 
+#include <koffice_export.h>
+
 class QLabel;
 class QLineEdit;
 class QLayout;
 class QValidator;
 
-class KisPopupSlider : public QPopupMenu {
+class KRITAUI_EXPORT KisPopupSlider : public QPopupMenu {
     Q_OBJECT
 
 public:
@@ -70,7 +72,7 @@
  *
  *
  */
-class KisIntSpinbox : public QWidget
+class KRITAUI_EXPORT KisIntSpinbox : public QWidget
 {
 
     Q_OBJECT
--- koffice-1.6.3/krita/ui/kis_matrix_widget.ui	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_matrix_widget.ui	2007-11-14 00:34:40.000000000 -0500
@@ -4,6 +4,7 @@
     <property name="name">
         <cstring>KisMatrixWidget</cstring>
     </property>
+    <exportmacro>KRITAUI_EXPORT</exportmacro>
     <property name="geometry">
         <rect>
             <x>0</x>
@@ -199,6 +200,7 @@
 </tabstops>
 <includes>
     <include location="local" impldecl="in implementation">kis_matrix_widget.ui.h</include>
+    <include location="local" impldecl="in declaration">koffice_export.h</include>
 </includes>
 <signals>
     <signal>valueChanged()</signal>
--- koffice-1.6.3/krita/ui/kis_perspective_grid_manager.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_perspective_grid_manager.h	2007-11-14 00:34:40.000000000 -0500
@@ -22,13 +22,14 @@
 #define KIS_PERSPECTIVE_GRID_MANAGER_H
 
 #include <qobject.h>
+#include <koffice_export.h>
 
 class KAction;
 class KActionCollection;
 class KToggleAction;
 class KisView;
 
-class KisPerspectiveGridManager : public QObject
+class KRITA_EXPORT KisPerspectiveGridManager : public QObject
 {
     Q_OBJECT
     public:
--- koffice-1.6.3/krita/ui/kis_previewwidget.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_previewwidget.h	2007-11-14 00:34:40.000000000 -0500
@@ -30,6 +30,8 @@
 
 #include "kis_previewwidgetbase.h"
 
+#include <koffice_export.h>
+
 class QWidget;
 class KisProfile;
 class KisFilter;
@@ -45,7 +47,7 @@
  * (maybe not those that create a new image) would use this. This can prevent the distracting
  * effect the GIMP has with a different preview for almost every filter.
  */
-class KisPreviewWidget : public PreviewWidgetBase
+class KRITAUI_EXPORT KisPreviewWidget : public PreviewWidgetBase
 {
     Q_OBJECT
 
--- koffice-1.6.3/krita/ui/kis_resourceserver.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_resourceserver.h	2007-11-14 00:34:40.000000000 -0500
@@ -27,9 +27,11 @@
 
 #include "kis_generic_registry.h"
 
+#include <koffice_export.h>
+
 class KisResource;
 
-class KisResourceServerBase : public QObject {
+class KRITAUI_EXPORT KisResourceServerBase : public QObject {
     Q_OBJECT
 public:
     KisResourceServerBase(QString type);
@@ -56,7 +58,7 @@
 };
 
 
-template <class T> class KisResourceServer : public KisResourceServerBase {
+template <class T> class KRITAUI_EXPORT KisResourceServer : public KisResourceServerBase {
     typedef KisResourceServerBase super;
 
 public:
@@ -70,7 +72,7 @@
 
 
 
-class KisResourceServerRegistry : public KisGenericRegistry<KisResourceServerBase*>
+class KRITAUI_EXPORT KisResourceServerRegistry : public KisGenericRegistry<KisResourceServerBase*>
 {
 
 public:
--- koffice-1.6.3/krita/ui/kis_tool.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/kis_tool.h	2007-11-14 00:34:40.000000000 -0500
@@ -29,6 +29,8 @@
 #include "kis_shared_ptr_vector.h"
 #include "kis_canvas_observer.h"
 
+#include <koffice_export.h>
+
 class QCursor;
 class QEvent;
 class QKeyEvent;
@@ -58,7 +60,7 @@
 
 const Q_UINT8 NUMBER_OF_TOOLTYPES = 6;
 
-class KisTool : public QObject, public KisCanvasObserver, public KShared {
+class KRITAUI_EXPORT KisTool : public QObject, public KisCanvasObserver, public KShared {
     Q_OBJECT
 
 public:
--- koffice-1.6.3/krita/ui/squeezedcombobox.h	2007-05-30 17:41:33.000000000 -0400
+++ koffice-1.6.3-new/krita/ui/squeezedcombobox.h	2007-11-14 00:34:40.000000000 -0500
@@ -30,6 +30,8 @@
 #include <qcombobox.h>
 #include <qtooltip.h>
 
+#include <koffice_export.h>
+
 class SqueezedComboBox;
 
 /** @class SqueezedComboBoxTip
@@ -79,7 +81,7 @@
  * @image html squeezedcombobox.png "This is how it looks"
  * @author Tom Albers
  */
-class SqueezedComboBox : public QComboBox
+class KRITAUI_EXPORT SqueezedComboBox : public QComboBox
 {
     Q_OBJECT
 
--- koffice-1.6.3/kspread/kspread_factory.h	2007-05-30 17:43:29.000000000 -0400
+++ koffice-1.6.3-new/kspread/kspread_factory.h	2007-11-14 00:34:40.000000000 -0500
@@ -28,7 +28,7 @@
 namespace KSpread
 {
 
-class Factory : public KoFactory
+class KSPREAD_EXPORT Factory : public KoFactory
 {
     Q_OBJECT
 public:
--- koffice-1.6.3/kspread/kspread_util.h	2007-05-30 17:43:29.000000000 -0400
+++ koffice-1.6.3-new/kspread/kspread_util.h	2007-11-14 00:34:40.000000000 -0500
@@ -318,11 +318,11 @@
 QPen        util_toPen( QDomElement & element );
 int         util_penCompare( QPen const & pen1, QPen const & pen2 );
 
-QString convertRefToRange( const QString & sheet, const QRect & rect );
-QString convertRefToBase( const QString & sheet, const QRect & rect );
-QString convertRangeToRef( const QString & sheetName, const QRect & _area );
+KSPREAD_EXPORT QString convertRefToRange( const QString & sheet, const QRect & rect );
+KSPREAD_EXPORT QString convertRefToBase( const QString & sheet, const QRect & rect );
+KSPREAD_EXPORT QString convertRangeToRef( const QString & sheetName, const QRect & _area );
 
-void insertBracket( QString & s );
+KSPREAD_EXPORT void insertBracket( QString & s );
 QString convertOasisPenToString( const QPen & pen );
 QPen convertOasisStringToPen( const QString &str );
 
--- koffice-1.6.3/kspread/manipulator_data.h	2007-05-30 17:43:29.000000000 -0400
+++ koffice-1.6.3-new/kspread/manipulator_data.h	2007-11-14 00:34:40.000000000 -0500
@@ -24,6 +24,7 @@
 #include "manipulator.h"
 #include "kspread_global.h"
 #include "kspread_value.h"
+#include <koffice_export.h>
 
 namespace KSpread {
 
@@ -63,7 +64,7 @@
  * If multiple ranges are selected, they all get set to the same values
  */
 
-class DataManipulator : public AbstractDataManipulator {
+class KSPREAD_EXPORT DataManipulator : public AbstractDataManipulator {
   public:
     DataManipulator ();
     virtual ~DataManipulator ();
@@ -97,7 +98,7 @@
 
 /** class ProtectedCheck can be used to check, whether a particular
   range is protected or not */
-class ProtectedCheck : public Region {
+class KSPREAD_EXPORT ProtectedCheck : public Region {
   public:
     ProtectedCheck ();
     virtual ~ProtectedCheck ();
--- koffice-1.6.3/kspread/selection.h	2007-05-30 17:43:29.000000000 -0400
+++ koffice-1.6.3-new/kspread/selection.h	2007-11-14 00:34:40.000000000 -0500
@@ -31,7 +31,7 @@
 {
 class View;
 
-class Selection : public QObject, public Region
+class KSPREAD_EXPORT Selection : public QObject, public Region
 {
   Q_OBJECT
 public:
--- koffice-1.6.3/kugar/kudesigner/Makefile.am	2007-05-30 17:39:51.000000000 -0400
+++ koffice-1.6.3-new/kugar/kudesigner/Makefile.am	2007-11-14 00:34:41.000000000 -0500
@@ -8,7 +8,7 @@
 lib_LTLIBRARIES = libkudesignercore.la
 libkudesignercore_la_SOURCES = kudesigner_view.cpp kudesigner_factory.cpp \
 	kudesigner_doc.cpp
-libkudesignercore_la_LDFLAGS = -avoid-version $(all_libraries) $(KDE_RPATH) -no-undefined
+libkudesignercore_la_LDFLAGS = $(all_libraries) $(KDE_RPATH) -no-undefined
 libkudesignercore_la_LIBADD = ../kudesigner_lib/libkudesignercommon.la $(LIB_KOFFICEUI) $(LIB_KPARTS) $(LIB_KOFFICECORE) $(LIB_KOPROPERTY) $(LIB_KIO) $(LIB_KDEPRINT)
 
 ## The part
--- koffice-1.6.3/kword/KWFactory.h	2007-05-30 17:34:52.000000000 -0400
+++ koffice-1.6.3-new/kword/KWFactory.h	2007-11-14 00:34:41.000000000 -0500
@@ -21,10 +21,11 @@
 #define KWORD_FACTORY_H
 
 #include <KoFactory.h>
+#include <koffice_export.h>
 
 class KAboutData;
 
-class KWFactory : public KoFactory
+class KWORD_EXPORT KWFactory : public KoFactory
 {
     Q_OBJECT
 public:
--- koffice-1.6.3/lib/configure.in.in	2007-05-30 17:38:54.000000000 -0400
+++ koffice-1.6.3-new/lib/configure.in.in	2007-11-14 00:34:41.000000000 -0500
@@ -8,7 +8,7 @@
 AC_SUBST(KFORMULA_INCLUDES, '-I$(top_srcdir)/lib/kformula -I$(top_builddir)/lib/kformula')
 dnl those are included with e.g. <koproperty/set.h>
 AC_SUBST(KOPROPERTY_INCLUDES, '-I$(top_srcdir)/lib -I$(top_builddir)/lib')
-AC_SUBST(KROSS_INCLUDES, '-I$(top_srcdir)/lib/kross -I$(top_builddir)/lib/kross')
+AC_SUBST(KROSS_INCLUDES, '-I$(top_srcdir)/lib/kross -I$(top_builddir)/lib/kross $(KOFFICECORE_INCLUDES)')
 AC_SUBST(LIB_KOFFICEUI, '$(top_builddir)/lib/kofficeui/libkofficeui.la')
 AC_SUBST(LIB_KOFFICECORE, '$(top_builddir)/lib/kofficecore/libkofficecore.la')
 AC_SUBST(LIB_KSTORE, '$(top_builddir)/lib/store/libkstore.la')
--- koffice-1.6.3/lib/kofficecore/KoTemplates.h	2007-05-30 17:38:15.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficecore/KoTemplates.h	2007-11-14 00:34:41.000000000 -0500
@@ -105,7 +105,7 @@
 };
 
 
-class KoTemplateTree {
+class KOFFICECORE_EXPORT KoTemplateTree {
 
 public:
     KoTemplateTree(const QCString &templateType, KInstance *instance,
@@ -144,7 +144,7 @@
 
 
 namespace KoTemplates {
-QString stripWhiteSpace(const QString &string);
+KOFFICECORE_EXPORT QString stripWhiteSpace(const QString &string);
 }
 
 #endif
--- koffice-1.6.3/lib/kofficecore/Makefile.am	2007-05-30 17:38:15.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficecore/Makefile.am	2007-11-14 00:34:41.000000000 -0500
@@ -4,7 +4,7 @@
 KDE_CXXFLAGS = $(USE_RTTI) $(WOVERLOADED_VIRTUAL)
 INCLUDES= $(KSTORE_INCLUDES) $(KWMF_INCLUDES) $(all_includes)
 libkofficecore_la_LIBADD  = $(LIB_KSTORE) $(LIB_KOWMF) $(LIB_KPARTS) \
-	$(LIB_KDEPRINT) $(LIB_KABC) $(LIB_KWMF)
+	$(LIB_KDEPRINT) $(LIB_KABC) $(LIB_KWMF) $(LIB_X11)
 
 ####### Files
 
--- koffice-1.6.3/lib/kofficecore/koffice_export.h	2007-05-30 17:38:15.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficecore/koffice_export.h	2007-11-14 00:34:41.000000000 -0500
@@ -134,6 +134,7 @@
 # endif
 #endif
 
+#define KROSS_EXPORT KDE_EXPORT
 #define KPRESENTER_EXPORT KDE_EXPORT
 #define KCHART_EXPORT KDE_EXPORT
 #define KDCHART_EXPORT KDE_EXPORT
@@ -168,6 +169,7 @@
 /* kdemacros is OK, we can use gcc visibility macros */
 #define KOFFICECORE_EXPORT KOFFICE_EXPORT
 #define KOFFICEUI_EXPORT KOFFICE_EXPORT
+#define KROSS_EXPORT KOFFICE_EXPORT
 #define KOPALETTE_EXPORT KOFFICE_EXPORT
 #define KOTEXT_EXPORT KOFFICE_EXPORT
 #define KOFORMULA_EXPORT KOFFICE_EXPORT
--- koffice-1.6.3/lib/kofficeui/KoBrush.h	2007-05-30 17:38:40.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficeui/KoBrush.h	2007-11-14 00:34:41.000000000 -0500
@@ -22,6 +22,7 @@
 #define KOBRUSH_H
 
 #include <qbrush.h>
+#include <koffice_export.h>
 
 class KoGenStyle;
 class KoGenStyles;
@@ -47,7 +48,7 @@
     FT_GRADIENT = 1
 };
 
-class KoBrush
+class KOFFICEUI_EXPORT KoBrush
 {
 public:
     KoBrush();
--- koffice-1.6.3/lib/kofficeui/KoGeneralPropertyUi.ui	2007-05-30 17:38:40.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficeui/KoGeneralPropertyUi.ui	2007-11-14 00:34:41.000000000 -0500
@@ -4,6 +4,7 @@
     <property name="name">
         <cstring>KoGeneralPropertyUI</cstring>
     </property>
+    <exportmacro>KOFFICEUI_EXPORT</exportmacro>
     <property name="geometry">
         <rect>
             <x>0</x>
@@ -190,4 +191,7 @@
     </image>
 </images>
 <layoutdefaults spacing="6" margin="11"/>
+<includes>
+    <include location="global" impldecl="in declaration">koffice_export.h</include>
+</includes>
 </UI>
--- koffice-1.6.3/lib/kofficeui/KoGuideLineDia.h	2007-05-30 17:38:40.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficeui/KoGuideLineDia.h	2007-11-14 00:34:41.000000000 -0500
@@ -27,6 +27,7 @@
 #include "KoRect.h"
 #include "KoPoint.h"
 
+#include <koffice_export.h>
 
 class KoUnitDoubleSpinBox;
 class QRadioButton;
@@ -34,7 +35,7 @@
 /**
  * @brief Class for setting a guide line position.
  */
-class KoGuideLineDia : public KDialogBase
+class KOFFICEUI_EXPORT KoGuideLineDia : public KDialogBase
 {
     Q_OBJECT
 public:
--- koffice-1.6.3/lib/kofficeui/KoPageLayoutColumns.h	2007-05-30 17:38:40.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficeui/KoPageLayoutColumns.h	2007-11-14 00:34:41.000000000 -0500
@@ -25,6 +25,7 @@
 #include <KoUnit.h>
 #include <KoPageLayout.h>
 #include <KoPageLayoutColumnsBase.h>
+#include <koffice_export.h>
 
 class QWidget;
 class KoUnitDoubleSpinBox;
@@ -33,7 +34,7 @@
 /**
  * This class is a widget that shows the KoColumns data structure and allows the user to change it.
  */
-class KoPageLayoutColumns : public KoPageLayoutColumnsBase {
+class KOFFICEUI_EXPORT KoPageLayoutColumns : public KoPageLayoutColumnsBase {
     Q_OBJECT
 
 public:
--- koffice-1.6.3/lib/kofficeui/KoPageLayoutSize.h	2007-05-30 17:38:40.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficeui/KoPageLayoutSize.h	2007-11-14 00:34:41.000000000 -0500
@@ -26,6 +26,7 @@
 #include <kdialogbase.h>
 #include <KoPageLayout.h>
 #include <KoPageLayoutDia.h>
+#include <koffice_export.h>
 
 class QComboBox;
 class KoUnitDoubleSpinBox;
@@ -34,7 +35,7 @@
 /**
  * This class is a widget that shows the KoPageLayout data structure and allows the user to change it.
  */
-class KoPageLayoutSize : public QWidget {
+class KOFFICEUI_EXPORT KoPageLayoutSize : public QWidget {
     Q_OBJECT
 
 public:
--- koffice-1.6.3/lib/kofficeui/KoPen.h	2007-05-30 17:38:40.000000000 -0400
+++ koffice-1.6.3-new/lib/kofficeui/KoPen.h	2007-11-14 00:34:41.000000000 -0500
@@ -21,13 +21,14 @@
 #define KOPEN_H
 
 #include <qpen.h>
+#include <koffice_export.h>
 
 class KoZoomHandler;
 
 /**
  * Pen that handles line widths in points
  */
-class KoPen : public QPen
+class KOFFICEUI_EXPORT KoPen : public QPen
 {
   public:
     KoPen();
--- koffice-1.6.3/lib/kopainter/ko_gray_widget.h	2007-05-30 17:38:30.000000000 -0400
+++ koffice-1.6.3-new/lib/kopainter/ko_gray_widget.h	2007-11-14 00:34:41.000000000 -0500
@@ -32,7 +32,7 @@
 class QSpinBox;
 class KDualColorButton;
 
-class KoGrayWidget
+class KOPAINTER_EXPORT KoGrayWidget
      : public QWidget
 {
     Q_OBJECT
--- koffice-1.6.3/lib/kopainter/ko_hsv_widget.h	2007-05-30 17:38:30.000000000 -0400
+++ koffice-1.6.3-new/lib/kopainter/ko_hsv_widget.h	2007-11-14 00:34:41.000000000 -0500
@@ -35,7 +35,7 @@
 class QLabel;
 class QSpinBox;
 
-class KoHSVWidget
+class KOPAINTER_EXPORT KoHSVWidget
      : public QWidget
 {
     Q_OBJECT
--- koffice-1.6.3/lib/kopainter/ko_rgb_widget.h	2007-05-30 17:38:30.000000000 -0400
+++ koffice-1.6.3-new/lib/kopainter/ko_rgb_widget.h	2007-11-14 00:34:41.000000000 -0500
@@ -34,7 +34,7 @@
 class KoColorSlider;
 class QColor;
 
-class KoRGBWidget
+class KOPAINTER_EXPORT KoRGBWidget
      : public QWidget
 {
     Q_OBJECT
--- koffice-1.6.3/lib/kotext/KoParagDia_p.h	2007-05-30 17:38:51.000000000 -0400
+++ koffice-1.6.3-new/lib/kotext/KoParagDia_p.h	2007-11-14 00:34:41.000000000 -0500
@@ -26,6 +26,8 @@
 #include <qgroupbox.h>
 #include <KoParagCounter.h>
 #include <qspinbox.h>
+#include <koffice_export.h>
+
 class QWidget;
 class QPainter;
 
@@ -110,7 +112,7 @@
 /* class KoBorderPreview                                          */
 /******************************************************************/
 
-class KoBorderPreview : public QFrame/*QGroupBox*/
+class KOTEXT_EXPORT KoBorderPreview : public QFrame/*QGroupBox*/
 {
     Q_OBJECT
 
--- koffice-1.6.3/lib/kross/api/callable.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/callable.h	2007-11-14 00:34:41.000000000 -0500
@@ -36,7 +36,7 @@
      * and implement the \a Object::call() method to handle
      * the call.
      */
-    class Callable : public Object
+    class KDE_EXPORT Callable : public Object
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/dict.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/dict.h	2007-11-14 00:34:41.000000000 -0500
@@ -32,7 +32,7 @@
      * The Dict class implementates \a Value to handle
      * key=value base dictonaries/maps.
      */
-    class Dict : public Value< List, QMap<QString, Object::Ptr> >
+    class KDE_EXPORT Dict : public Value< List, QMap<QString, Object::Ptr> >
     {
             friend class Value< List, QMap<QString, Object::Ptr> >;
         public:
--- koffice-1.6.3/lib/kross/api/eventaction.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/eventaction.h	2007-11-14 00:34:41.000000000 -0500
@@ -37,7 +37,7 @@
      * into the Kross object hierachy and provide access to
      * them.
      */
-    class EventAction : public Event<EventAction>
+    class KDE_EXPORT EventAction : public Event<EventAction>
     {
 
         public:
--- koffice-1.6.3/lib/kross/api/eventsignal.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/eventsignal.h	2007-11-14 00:34:41.000000000 -0500
@@ -38,7 +38,7 @@
      * instance and a functionname is represented with
      * a EventSignal and handled by \a EventManager.
      */
-    class EventSignal : public Event<EventSignal>
+    class KDE_EXPORT EventSignal : public Event<EventSignal>
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/eventslot.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/eventslot.h	2007-11-14 00:34:41.000000000 -0500
@@ -33,7 +33,7 @@
      * instance and a functionname is represented with
      * a EventSlot and handled by the \a EventManager.
      */
-    class EventSlot : public Event<EventSlot>
+    class KDE_EXPORT EventSlot : public Event<EventSlot>
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/exception.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/exception.h	2007-11-14 00:34:41.000000000 -0500
@@ -35,7 +35,7 @@
      * exceptions. Those exceptions are inherited from \a Object
      * and therefore they are first class citizens in Kross.
      */
-    class Exception : public Object
+    class KDE_EXPORT Exception : public Object
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/interpreter.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/interpreter.h	2007-11-14 00:34:41.000000000 -0500
@@ -38,7 +38,7 @@
      * is used to provide some abstract informations about each interpreter
      * we are able to use within the \a Manager singelton.
      */
-    class InterpreterInfo
+    class KDE_EXPORT InterpreterInfo
     {
         public:
 
@@ -159,7 +159,7 @@
      * The Interpreter will be managed by the \a Kross::Manager
      * class.
      */
-    class Interpreter
+    class KDE_EXPORT Interpreter
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/list.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/list.h	2007-11-14 00:34:41.000000000 -0500
@@ -33,7 +33,7 @@
      * The List class implementates \a Value to handle
      * lists and collections.
      */
-    class List : public Value< List, QValueList<Object::Ptr> >
+    class KDE_EXPORT List : public Value< List, QValueList<Object::Ptr> >
     {
             friend class Value< List, QValueList<Object::Ptr> >;
         public:
--- koffice-1.6.3/lib/kross/api/object.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/object.h	2007-11-14 00:34:41.000000000 -0500
@@ -47,7 +47,7 @@
      * This class implementates reference counting for shared
      * objects. So, no need to take care of freeing objects.
      */
-    class Object : public KShared
+    class KDE_EXPORT Object : public KShared
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/qtobject.h	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/qtobject.h	2007-11-14 00:34:41.000000000 -0500
@@ -42,7 +42,7 @@
      * This class publishs all SIGNAL's, SLOT's and Q_PROPERTY's
      * the QObject has.
      */
-    class QtObject : public Kross::Api::Class<QtObject>
+    class KDE_EXPORT QtObject : public Kross::Api::Class<QtObject>
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/script.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/script.h	2007-11-14 00:34:41.000000000 -0500
@@ -42,7 +42,7 @@
      * that implements the \a Script functionality for the
      * defined \a Interpreter .
      */
-    class Script
+    class KDE_EXPORT Script
     {
         public:
 
--- koffice-1.6.3/lib/kross/api/variant.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/api/variant.h	2007-11-14 00:34:41.000000000 -0500
@@ -35,7 +35,7 @@
      * Variant value to wrap a QVariant into a \a Kross::Api::Value
      * to enable primitive types like strings or numerics.
      */
-    class Variant : public Value<Variant, QVariant>
+    class KDE_EXPORT Variant : public Value<Variant, QVariant>
     {
             friend class Value<Variant, QVariant>;
         public:
--- koffice-1.6.3/lib/kross/configure.in.in	2007-05-30 17:38:35.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/configure.in.in	2007-11-14 00:34:41.000000000 -0500
@@ -14,8 +14,8 @@
 
 # Compile the Kross python plugin only if both, $LIBPYTHON and
 # $PYTHONINC, are defined.
-AM_CONDITIONAL(compile_kross_python,
-               test -n "$LIBPYTHON" && test -n "$PYTHONINC")
+AM_CONDITIONAL(compile_kross_python, false)
+#               test -n "$LIBPYTHON" && test -n "$PYTHONINC")
 
 ###############################
 # Check for Ruby
--- koffice-1.6.3/lib/kross/main/krossconfig.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/main/krossconfig.h	2007-11-14 00:34:41.000000000 -0500
@@ -21,6 +21,7 @@
 #define KROSS_MAIN_KROSSCONFIG_H
 
 #include <qstring.h>
+#include <koffice_export.h>
 
 /**
  * The Kross scripting bridge to embed scripting functionality
@@ -57,12 +58,12 @@
         /**
          * Debugging function.
          */
-        void krossdebug(const QString &s);
+        KROSS_EXPORT void krossdebug(const QString &s);
 
         /**
          * Warning function.
          */
-        void krosswarning(const QString &s);
+        KROSS_EXPORT void krosswarning(const QString &s);
 
     #else
         // Define these to an empty statement if debugging is disabled.
--- koffice-1.6.3/lib/kross/main/mainmodule.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/main/mainmodule.h	2007-11-14 00:34:41.000000000 -0500
@@ -50,7 +50,7 @@
      * for a root node in a tree of \a Kross::Api::Object
      * instances.
      */
-    class MainModule : public Module
+    class KDE_EXPORT MainModule : public Module
     {
         public:
 
--- koffice-1.6.3/lib/kross/main/scriptaction.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/main/scriptaction.h	2007-11-14 00:34:41.000000000 -0500
@@ -25,6 +25,8 @@
 
 #include "scriptcontainer.h"
 
+#include <koffice_export.h>
+
 namespace Kross { namespace Api {
 
     // Forward declarations.
@@ -36,7 +38,7 @@
      * A ScriptAction extends a KAction by providing a wrapper around
      * a \a ScriptContainer to execute scripting code on activation.
      */
-    class ScriptAction
+    class KROSS_EXPORT ScriptAction
         : public KAction
         , public Kross::Api::ScriptContainer
     {
--- koffice-1.6.3/lib/kross/main/scriptcontainer.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/main/scriptcontainer.h	2007-11-14 00:34:41.000000000 -0500
@@ -47,7 +47,7 @@
      * The class \a ScriptAction provides a higher level class
      * to work with a \a ScriptContainer instances.
      */
-    class ScriptContainer : public MainModule
+    class KDE_EXPORT ScriptContainer : public MainModule
     {
             // We protected the constructor cause ScriptContainer
             // instances should be created only within the
--- koffice-1.6.3/lib/kross/main/wdgscriptsmanager.h	2007-05-30 17:38:34.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/main/wdgscriptsmanager.h	2007-11-14 00:34:41.000000000 -0500
@@ -22,6 +22,8 @@
 #include "main/scriptaction.h"
 #include "main/wdgscriptsmanagerbase.h"
 
+#include <koffice_export.h>
+
 class Scripting;
 
 namespace Kross { namespace Api {
@@ -32,7 +34,7 @@
 /**
 @author Cyrille Berger
 */
-class WdgScriptsManager : public WdgScriptsManagerBase
+class KROSS_EXPORT WdgScriptsManager : public WdgScriptsManagerBase
 {
     Q_OBJECT
     public:
--- koffice-1.6.3/lib/kross/ruby/Makefile.am	2007-05-30 17:38:32.000000000 -0400
+++ koffice-1.6.3-new/lib/kross/ruby/Makefile.am	2007-11-14 00:34:41.000000000 -0500
@@ -1,6 +1,6 @@
 include $(top_srcdir)/lib/kross/Makefile.global
 
-INCLUDES = -I$(top_srcdir)/lib/kross -I$(RUBY_INCLUDEDIR) $(all_includes)
+INCLUDES = $(KROSS_INCLUDES) -I$(RUBY_INCLUDEDIR) $(all_includes)
 METASOURCES = AUTO
 kde_module_LTLIBRARIES = krossruby.la
 
