[Libreoffice-commits] .: basic/AllLangResTarget_sb.mk basic/AllLangResTarget_stt.mk basic/inc basic/Library_sb.mk basic/Makefile basic/Module_basic.mk basic/Package_inc.mk basic/prj basic/source basic/StaticLibrary_app.mk basic/StaticLibrary_sample.mk basic/util

Matus Kukan mkukan at kemper.freedesktop.org
Sat Jul 30 01:42:32 PDT 2011


 basic/AllLangResTarget_sb.mk               |   47 +++++++
 basic/AllLangResTarget_stt.mk              |   48 +++++++
 basic/Library_sb.mk                        |  180 +++++++++++++++++++++++++++++
 basic/Makefile                             |   38 ++++++
 basic/Module_basic.mk                      |   39 ++++++
 basic/Package_inc.mk                       |   67 ++++++++++
 basic/StaticLibrary_app.mk                 |   64 ++++++++++
 basic/StaticLibrary_sample.mk              |   50 ++++++++
 basic/inc/basic/basicdllapi.h              |   16 ++
 basic/inc/basic/basicmanagerrepository.hxx |    5 
 basic/inc/basic/basicrt.hxx                |    7 -
 basic/inc/basic/basmgr.hxx                 |   31 ++--
 basic/inc/basic/basrdll.hxx                |    3 
 basic/inc/basic/modsizeexceeded.hxx        |    3 
 basic/inc/basic/mybasic.hxx                |    5 
 basic/inc/basic/process.hxx                |    7 -
 basic/inc/basic/sbdef.hxx                  |   50 +++++++-
 basic/inc/basic/sbmeth.hxx                 |    9 -
 basic/inc/basic/sbmod.hxx                  |   11 -
 basic/inc/basic/sbobjmod.hxx               |   15 +-
 basic/inc/basic/sbprop.hxx                 |    7 -
 basic/inc/basic/sbstar.hxx                 |   15 +-
 basic/inc/basic/sbstdobj.hxx               |   10 -
 basic/inc/basic/sbuno.hxx                  |   11 -
 basic/inc/basic/sbx.hxx                    |   21 +--
 basic/inc/basic/sbxbase.hxx                |    3 
 basic/inc/basic/sbxcore.hxx                |    3 
 basic/inc/basic/sbxfac.hxx                 |    3 
 basic/inc/basic/sbxform.hxx                |   43 +++---
 basic/inc/basic/sbxmeth.hxx                |    3 
 basic/inc/basic/sbxmstrm.hxx               |    3 
 basic/inc/basic/sbxobj.hxx                 |    7 -
 basic/inc/basic/sbxprop.hxx                |    3 
 basic/inc/basic/sbxvar.hxx                 |   11 -
 basic/inc/basic/testtool.hxx               |    5 
 basic/inc/basic/ttstrhlp.hxx               |    9 -
 basic/inc/basic/vbahelper.hxx              |   11 -
 basic/inc/makefile.mk                      |   47 -------
 basic/prj/build.lst                        |   12 -
 basic/prj/d.lst                            |   29 ----
 basic/prj/makefile.mk                      |   40 ++++++
 basic/source/app/dialogs.cxx               |    1 
 basic/source/app/makefile.mk               |   77 ------------
 basic/source/app/testbasi.cxx              |   34 -----
 basic/source/app/ttbasic.cxx               |   39 ------
 basic/source/basmgr/makefile.mk            |   47 -------
 basic/source/classes/makefile.mk           |   76 ------------
 basic/source/comp/makefile.mk              |   57 ---------
 basic/source/inc/sbintern.hxx              |   60 ++++++++-
 basic/source/runtime/makefile.mk           |   84 -------------
 basic/source/sample/makefile.mk            |   61 ---------
 basic/source/sbx/makefile.mk               |   77 ------------
 basic/source/uno/makefile.mk               |   49 -------
 basic/util/makefile.mk                     |  153 ------------------------
 54 files changed, 837 insertions(+), 969 deletions(-)

New commits:
commit bf5d809b31e6e3118d50c51e8df1da360795f3db
Author: Matúš Kukan <matus.kukan at gmail.com>
Date:   Thu Jul 28 18:17:31 2011 +0200

    convert basic to gbuild

diff --git a/basic/AllLangResTarget_sb.mk b/basic/AllLangResTarget_sb.mk
new file mode 100644
index 0000000..2fe6ba6
--- /dev/null
+++ b/basic/AllLangResTarget_sb.mk
@@ -0,0 +1,47 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,sb))
+
+
+$(eval $(call gb_AllLangResTarget_add_srs,sb,\
+	sb/res \
+))
+
+$(eval $(call gb_SrsTarget_SrsTarget,sb/res))
+
+$(eval $(call gb_SrsTarget_set_include,sb/res,\
+	$$(INCLUDE) \
+    -I$(realpath $(SRCDIR)/basic/inc) \
+))
+
+$(eval $(call gb_SrsTarget_add_files,sb/res,\
+	basic/source/classes/sb.src \
+	basic/source/sbx/format.src \
+))
+
+# vim: set noet sw=4:
diff --git a/basic/AllLangResTarget_stt.mk b/basic/AllLangResTarget_stt.mk
new file mode 100644
index 0000000..1e054a8
--- /dev/null
+++ b/basic/AllLangResTarget_stt.mk
@@ -0,0 +1,48 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,stt))
+
+$(eval $(call gb_AllLangResTarget_add_srs,stt,\
+	stt/res \
+))
+
+$(eval $(call gb_SrsTarget_SrsTarget,stt/res))
+
+$(eval $(call gb_SrsTarget_set_include,stt/res,\
+	$$(INCLUDE) \
+))
+
+$(eval $(call gb_SrsTarget_add_files,stt/res,\
+	basic/source/app/basic.src \
+	basic/source/app/basmsg.src \
+	basic/source/app/svtmsg.src \
+	basic/source/app/testtool.src \
+	basic/source/app/ttmsg.src \
+))
+
+# vim: set noet sw=4:
diff --git a/basic/Library_sb.mk b/basic/Library_sb.mk
new file mode 100644
index 0000000..0502a2d
--- /dev/null
+++ b/basic/Library_sb.mk
@@ -0,0 +1,180 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Library_Library,sb))
+
+$(eval $(call gb_Library_add_package_headers,sb,basic_inc))
+
+$(eval $(call gb_Library_add_precompiled_header,sb,$(SRCDIR)/basic/inc/pch/precompiled_basic))
+
+$(eval $(call gb_Library_set_componentfile,sb,basic/util/sb))
+
+$(eval $(call gb_Library_set_include,sb,\
+	$$(INCLUDE) \
+	-I$(realpath $(SRCDIR)/basic/inc) \
+	-I$(realpath $(SRCDIR)/basic/inc/pch) \
+	-I$(realpath $(SRCDIR)/basic/source/inc) \
+))
+
+$(eval $(call gb_Library_add_api,sb,\
+	udkapi \
+	offapi \
+	oovbaapi \
+))
+
+$(eval $(call gb_Library_add_defs,sb,\
+	-DBASIC_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_add_linked_libs,sb,\
+	comphelper \
+	cppu \
+	cppuhelper \
+	sal \
+	salhelper \
+	sot \
+	svl \
+	svt \
+	tl \
+	utl \
+	vcl \
+	xcr \
+	$(gb_STDLIBS) \
+))
+
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/basmgr/basicmanagerrepository \
+	basic/source/basmgr/basmgr \
+	basic/source/basmgr/vbahelper \
+	basic/source/classes/disas \
+	basic/source/classes/errobject \
+	basic/source/classes/eventatt \
+	basic/source/classes/image \
+	basic/source/classes/propacc \
+	basic/source/classes/sb \
+	basic/source/classes/sbintern \
+	basic/source/classes/sbunoobj \
+	basic/source/classes/sbxmod \
+	basic/source/comp/buffer \
+	basic/source/comp/codegen \
+	basic/source/comp/dim \
+	basic/source/comp/exprtree \
+	basic/source/comp/exprgen \
+	basic/source/comp/exprnode \
+	basic/source/comp/io \
+	basic/source/comp/loops \
+	basic/source/comp/parser \
+	basic/source/comp/sbcomp \
+	basic/source/comp/scanner \
+	basic/source/comp/symtbl \
+	basic/source/comp/token \
+	basic/source/uno/dlgcont \
+	basic/source/uno/modsizeexceeded \
+	basic/source/uno/namecont \
+	basic/source/uno/sbmodule \
+	basic/source/uno/sbservices \
+	basic/source/uno/scriptcont \
+	basic/source/runtime/basrdll \
+	basic/source/runtime/comenumwrapper \
+	basic/source/runtime/ddectrl \
+	basic/source/runtime/inputbox \
+	basic/source/runtime/iosys \
+	basic/source/runtime/methods \
+	basic/source/runtime/methods1 \
+	basic/source/runtime/props \
+	basic/source/runtime/runtime \
+	basic/source/runtime/sbdiagnose \
+	basic/source/runtime/stdobj \
+	basic/source/runtime/stdobj1 \
+	basic/source/runtime/step0 \
+	basic/source/runtime/step1 \
+	basic/source/runtime/step2 \
+	basic/source/sbx/sbxarray \
+	basic/source/sbx/sbxbase \
+	basic/source/sbx/sbxbool \
+	basic/source/sbx/sbxbyte \
+	basic/source/sbx/sbxchar \
+	basic/source/sbx/sbxcoll \
+	basic/source/sbx/sbxcurr \
+	basic/source/sbx/sbxdate \
+	basic/source/sbx/sbxdbl \
+	basic/source/sbx/sbxdec \
+	basic/source/sbx/sbxexec \
+	basic/source/sbx/sbxform \
+	basic/source/sbx/sbxint \
+	basic/source/sbx/sbxlng \
+	basic/source/sbx/sbxmstrm \
+	basic/source/sbx/sbxobj \
+	basic/source/sbx/sbxres \
+	basic/source/sbx/sbxscan \
+	basic/source/sbx/sbxsng \
+	basic/source/sbx/sbxstr \
+	basic/source/sbx/sbxuint \
+	basic/source/sbx/sbxulng \
+	basic/source/sbx/sbxvalue \
+	basic/source/sbx/sbxvar \
+))
+
+# Uncomment the following line if DBG_TRACE_PROFILING is active in source/inc/sbtrace.hxx
+# $(eval $(call gb_Library_add_linked_libs,sb,\
+	canvastools \
+))
+
+ifeq ($(GUI),WNT)
+$(eval $(call gb_Library_add_linked_libs,sb,\
+	uwinapi \
+	oleaut32 \
+))
+endif
+
+ifeq ($(GUI)$(CPU),WNTI)
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/runtime/dllmgr-x86 \
+))
+else
+ifeq ($(GUI)$(CPU),WNTX)
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/runtime/dllmgr-x64 \
+))
+else
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/runtime/dllmgr-none \
+))
+endif
+endif
+ifeq ($(GUI)$(COM)$(CPU),WNTMSCI)
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/runtime/wnt-x86 \
+))
+endif
+ifeq ($(GUI)$(COM)$(CPU),WNTGCCI)
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/runtime/wnt-mingw \
+))
+endif
+
+# vim: set noet sw=4:
diff --git a/basic/Makefile b/basic/Makefile
new file mode 100644
index 0000000..5bedaf0
--- /dev/null
+++ b/basic/Makefile
@@ -0,0 +1,38 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
+
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
+
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
+
+# vim: set noet sw=4 ts=4:
diff --git a/basic/Module_basic.mk b/basic/Module_basic.mk
new file mode 100644
index 0000000..af830da
--- /dev/null
+++ b/basic/Module_basic.mk
@@ -0,0 +1,39 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Module_Module,basic))
+
+$(eval $(call gb_Module_add_targets,basic,\
+	AllLangResTarget_sb \
+	AllLangResTarget_stt \
+	Library_sb \
+	Package_inc \
+	StaticLibrary_app \
+	StaticLibrary_sample \
+))
+
+# vim: set noet sw=4:
diff --git a/basic/Package_inc.mk b/basic/Package_inc.mk
new file mode 100644
index 0000000..bb6a885
--- /dev/null
+++ b/basic/Package_inc.mk
@@ -0,0 +1,67 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_Package_Package,basic_inc,$(SRCDIR)/basic/inc))
+
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/basicdllapi.h,basic/basicdllapi.h))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/basicmanagerrepository.hxx,basic/basicmanagerrepository.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/basicrt.hxx,basic/basicrt.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/basmgr.hxx,basic/basmgr.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/basrdll.hxx,basic/basrdll.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/dispdefs.hxx,basic/dispdefs.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/modsizeexceeded.hxx,basic/modsizeexceeded.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/mybasic.hxx,basic/mybasic.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/process.hxx,basic/process.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbdef.hxx,basic/sbdef.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sberrors.hxx,basic/sberrors.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbmeth.hxx,basic/sbmeth.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbmod.hxx,basic/sbmod.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbobjmod.hxx,basic/sbobjmod.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbprop.hxx,basic/sbprop.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbstar.hxx,basic/sbstar.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbstdobj.hxx,basic/sbstdobj.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbuno.hxx,basic/sbuno.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxbase.hxx,basic/sbxbase.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxcore.hxx,basic/sbxcore.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxdef.hxx,basic/sbxdef.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxfac.hxx,basic/sbxfac.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxform.hxx,basic/sbxform.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbx.hxx,basic/sbx.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxmeth.hxx,basic/sbxmeth.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxmstrm.hxx,basic/sbxmstrm.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxobj.hxx,basic/sbxobj.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxprop.hxx,basic/sbxprop.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/sbxvar.hxx,basic/sbxvar.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/svtmsg.hrc,basic/svtmsg.hrc))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/testtool.hrc,basic/testtool.hrc))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/testtool.hxx,basic/testtool.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/ttglobal.hrc,basic/ttglobal.hrc))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/ttmsg.hrc,basic/ttmsg.hrc))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/ttstrhlp.hxx,basic/ttstrhlp.hxx))
+$(eval $(call gb_Package_add_file,basic_inc,inc/basic/vbahelper.hxx,basic/vbahelper.hxx))
+
+# vim: set noet sw=4:
diff --git a/basic/StaticLibrary_app.mk b/basic/StaticLibrary_app.mk
new file mode 100644
index 0000000..5cce0b5
--- /dev/null
+++ b/basic/StaticLibrary_app.mk
@@ -0,0 +1,64 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.	If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,app))
+
+$(eval $(call gb_StaticLibrary_add_package_headers,app,basic_inc))
+
+$(eval $(call gb_StaticLibrary_add_precompiled_header,app,$(SRCDIR)/basic/inc/pch/precompiled_basic))
+
+$(eval $(call gb_StaticLibrary_set_include,app,\
+	$$(INCLUDE) \
+	-I$(realpath $(SRCDIR)/basic/inc) \
+	-I$(realpath $(SRCDIR)/basic/inc/pch) \
+	-I$(realpath $(SRCDIR)/basic/source/inc) \
+))
+
+$(eval $(call gb_StaticLibrary_add_api,app,\
+	udkapi \
+	offapi \
+))
+
+$(eval $(call gb_StaticLibrary_add_exception_objects,app,\
+	basic/source/app/appbased \
+	basic/source/app/app \
+	basic/source/app/appedit \
+	basic/source/app/apperror \
+	basic/source/app/appwin \
+	basic/source/app/basicrt \
+	basic/source/app/brkpnts \
+	basic/source/app/dialogs \
+	basic/source/app/msgedit \
+	basic/source/app/mybasic \
+	basic/source/app/printer \
+	basic/source/app/process \
+	basic/source/app/processw \
+	basic/source/app/status \
+	basic/source/app/textedit \
+))
+
+# vim: set noet sw=4:
diff --git a/basic/StaticLibrary_sample.mk b/basic/StaticLibrary_sample.mk
new file mode 100644
index 0000000..e824be9
--- /dev/null
+++ b/basic/StaticLibrary_sample.mk
@@ -0,0 +1,50 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2011 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.	If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,sample))
+
+$(eval $(call gb_StaticLibrary_add_package_headers,sample,basic_inc))
+
+$(eval $(call gb_StaticLibrary_add_precompiled_header,sample,$(SRCDIR)/basic/inc/pch/precompiled_basic))
+
+$(eval $(call gb_StaticLibrary_set_include,sample,\
+	$$(INCLUDE) \
+	-I$(realpath $(SRCDIR)/basic/inc/pch) \
+	-I$(realpath $(SRCDIR)/basic/source/inc) \
+))
+
+$(eval $(call gb_StaticLibrary_add_api,sample,\
+	udkapi \
+	offapi \
+))
+
+$(eval $(call gb_StaticLibrary_add_exception_objects,sample,\
+	basic/source/sample/collelem \
+	basic/source/sample/object \
+))
+
+# vim: set noet sw=4:
diff --git a/basic/inc/basic/basicdllapi.h b/basic/inc/basic/basicdllapi.h
new file mode 100644
index 0000000..922a4d7
--- /dev/null
+++ b/basic/inc/basic/basicdllapi.h
@@ -0,0 +1,16 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+#ifndef INCLUDED_BASICDLLAPI_H
+#define INCLUDED_BASICDLLAPI_H
+
+#include "sal/types.h"
+
+#if defined(BASIC_DLLIMPLEMENTATION)
+#define BASIC_DLLPUBLIC  SAL_DLLPUBLIC_EXPORT
+#else
+#define BASIC_DLLPUBLIC  SAL_DLLPUBLIC_IMPORT
+#endif
+#define BASIC_DLLPRIVATE SAL_DLLPRIVATE
+
+#endif /* INCLUDED_BASICDLLAPI_H */
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basic/inc/basic/basicmanagerrepository.hxx b/basic/inc/basic/basicmanagerrepository.hxx
index 9af9f16..34af845 100644
--- a/basic/inc/basic/basicmanagerrepository.hxx
+++ b/basic/inc/basic/basicmanagerrepository.hxx
@@ -33,6 +33,7 @@
 #include <com/sun/star/frame/XModel.hpp>
 #include <com/sun/star/embed/XStorage.hpp>
 /** === end UNO includes === **/
+#include "basicdllapi.h"
 
 class BasicManager;
 
@@ -47,7 +48,7 @@ namespace basic
     /** specifies a callback for instances which are interested in BasicManagers
         created by the BasicManagerRepository.
     */
-    class SAL_NO_VTABLE BasicManagerCreationListener
+    class BASIC_DLLPUBLIC SAL_NO_VTABLE BasicManagerCreationListener
     {
     public:
         /** is called when a BasicManager has been created
@@ -69,7 +70,7 @@ namespace basic
     //====================================================================
     //= BasicManagerRepository
     //====================================================================
-    class BasicManagerRepository
+    class BASIC_DLLPUBLIC BasicManagerRepository
     {
     public:
         /** returns the BasicManager belonging to the given document
diff --git a/basic/inc/basic/basicrt.hxx b/basic/inc/basic/basicrt.hxx
index 2e9a9d4..c6247d5 100644
--- a/basic/inc/basic/basicrt.hxx
+++ b/basic/inc/basic/basicrt.hxx
@@ -30,11 +30,12 @@
 
 #include <tools/string.hxx>
 #include <basic/sbxdef.hxx>
+#include "basicdllapi.h"
 
 class SbiRuntime;
 class SbErrorStackEntry;
 
-class BasicRuntime
+class BASIC_DLLPUBLIC BasicRuntime
 {
     SbiRuntime* pRun;
 public:
@@ -50,7 +51,7 @@ public:
     BasicRuntime GetNextRuntime();
 };
 
-class BasicErrorStackEntry
+class BASIC_DLLPUBLIC BasicErrorStackEntry
 {
     SbErrorStackEntry *pEntry;
 public:
@@ -63,7 +64,7 @@ public:
     xub_StrLen GetCol2();
 };
 
-class BasicRuntimeAccess
+class BASIC_DLLPUBLIC BasicRuntimeAccess
 {
 public:
     static BasicRuntime GetRuntime();
diff --git a/basic/inc/basic/basmgr.hxx b/basic/inc/basic/basmgr.hxx
index a5239b0..a919b43 100644
--- a/basic/inc/basic/basmgr.hxx
+++ b/basic/inc/basic/basmgr.hxx
@@ -33,10 +33,11 @@
 #include <basic/sbstar.hxx>
 #include <com/sun/star/script/XStorageBasedLibraryContainer.hpp>
 #include <com/sun/star/script/XStarBasicAccess.hpp>
+#include "basicdllapi.h"
 
 
 // Basic XML Import/Export
-com::sun::star::uno::Reference< com::sun::star::script::XStarBasicAccess >
+BASIC_DLLPUBLIC com::sun::star::uno::Reference< com::sun::star::script::XStarBasicAccess >
     getStarBasicAccess( BasicManager* pMgr );
 
 
@@ -65,7 +66,7 @@ class SotStorage;
 
 #define BASERR_REASON_STDLIB			0x0100
 
-class BasicError
+class BASIC_DLLPUBLIC BasicError
 {
 private:
     sal_uIntPtr	nErrorId;
@@ -95,7 +96,7 @@ class BasicErrorManager;
 namespace basic { class BasicManagerCleaner; }
 
 // Library password handling for 5.0 documents
-class OldBasicPassword
+class BASIC_DLLPUBLIC OldBasicPassword
 {
 public:
     virtual void setLibraryPassword( const String& rLibraryName, const String& rPassword ) = 0;
@@ -132,7 +133,7 @@ struct BasicManagerImpl;
 
 #define LIB_NOTFOUND	0xFFFF
 
-class BasicManager : public SfxBroadcaster
+class BASIC_DLLPUBLIC BasicManager : public SfxBroadcaster
 {
     friend class LibraryContainer_Impl;
     friend class StarBasicAccess_Impl;
@@ -150,7 +151,7 @@ private:
 
     BasicManagerImpl*	mpImpl;
 
-    void				Init();
+    BASIC_DLLPRIVATE void Init();
 
 protected:
     sal_Bool			ImpLoadLibary( BasicLibInfo* pLibInfo ) const;
@@ -243,25 +244,25 @@ public:
     ErrCode         ExecuteMacro( String const& i_fullyQualifiedName, String const& i_commaSeparatedArgs, SbxValue* i_retValue );
 
 private:
-    sal_Bool		    IsReference( sal_uInt16 nLib );
+    BASIC_DLLPRIVATE sal_Bool IsReference( sal_uInt16 nLib );
 
-    sal_Bool		    SetLibName( sal_uInt16 nLib, const String& rName );
+    BASIC_DLLPRIVATE sal_Bool SetLibName( sal_uInt16 nLib, const String& rName );
 
-    StarBASIC*  	GetStdLib() const;
-    StarBASIC*      AddLib( SotStorage& rStorage, const String& rLibName, sal_Bool bReference );
-    sal_Bool		    RemoveLib( sal_uInt16 nLib );
-    sal_Bool	    	HasLib( const String& rName ) const;
+    BASIC_DLLPRIVATE StarBASIC* GetStdLib() const;
+    BASIC_DLLPRIVATE StarBASIC* AddLib( SotStorage& rStorage, const String& rLibName, sal_Bool bReference );
+    BASIC_DLLPRIVATE sal_Bool RemoveLib( sal_uInt16 nLib );
+    BASIC_DLLPRIVATE sal_Bool HasLib( const String& rName ) const;
 
-    StarBASIC*	    CreateLibForLibContainer( const String& rLibName,
+    BASIC_DLLPRIVATE StarBASIC* CreateLibForLibContainer( const String& rLibName,
                         const com::sun::star::uno::Reference< com::sun::star::script::XLibraryContainer >&
                             xScriptCont );
     // For XML import/export:
-    StarBASIC*      CreateLib( const String& rLibName );
-    StarBASIC*      CreateLib( const String& rLibName, const String& Password,
+    BASIC_DLLPRIVATE StarBASIC* CreateLib( const String& rLibName );
+    BASIC_DLLPRIVATE StarBASIC* CreateLib( const String& rLibName, const String& Password,
                                const String& LinkTargetURL );
 };
 
-void SetAppBasicManager( BasicManager* pBasMgr );
+BASIC_DLLPUBLIC void SetAppBasicManager( BasicManager* pBasMgr );
 
 #endif	//_BASMGR_HXX
 
diff --git a/basic/inc/basic/basrdll.hxx b/basic/inc/basic/basrdll.hxx
index abf7ec9..c398faf 100644
--- a/basic/inc/basic/basrdll.hxx
+++ b/basic/inc/basic/basrdll.hxx
@@ -32,8 +32,9 @@
 class ResMgr;
 
 #include <vcl/accel.hxx>
+#include "basicdllapi.h"
 
-class BasicDLL
+class BASIC_DLLPUBLIC BasicDLL
 {
 private:
     ResMgr*		pSttResMgr;
diff --git a/basic/inc/basic/modsizeexceeded.hxx b/basic/inc/basic/modsizeexceeded.hxx
index 6e290b8..6840f6d 100644
--- a/basic/inc/basic/modsizeexceeded.hxx
+++ b/basic/inc/basic/modsizeexceeded.hxx
@@ -31,8 +31,9 @@
 
 #include <com/sun/star/task/XInteractionHandler.hpp>
 #include <cppuhelper/implbase1.hxx>
+#include "basicdllapi.h"
 
-class ModuleSizeExceeded : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
+class BASIC_DLLPUBLIC ModuleSizeExceeded : public ::cppu::WeakImplHelper1< ::com::sun::star::task::XInteractionRequest >
 {
     // C++ interface
     public:
diff --git a/basic/inc/basic/mybasic.hxx b/basic/inc/basic/mybasic.hxx
index 6b9189b..3d933b6 100644
--- a/basic/inc/basic/mybasic.hxx
+++ b/basic/inc/basic/mybasic.hxx
@@ -31,6 +31,7 @@
 
 #include <basic/sbstar.hxx>
 #include <vector>
+#include "basicdllapi.h"
 
 class BasicApp;
 class AppBasEd;
@@ -40,7 +41,7 @@ class ErrorEntry;
 #define	SBXCR_TEST		0x54534554	// TEST
 
 //-----------------------------------------------------------------------------
-class BasicError {
+class BASIC_DLLPUBLIC BasicError {
     AppBasEd* pWin;
     sal_uInt16  nLine, nCol1, nCol2;
     String aText;
@@ -50,7 +51,7 @@ public:
 };
 
 //-----------------------------------------------------------------------------
-class MyBasic : public StarBASIC
+class BASIC_DLLPUBLIC MyBasic : public StarBASIC
 {
     SbError nError;
     virtual sal_Bool ErrorHdl();
diff --git a/basic/inc/basic/process.hxx b/basic/inc/basic/process.hxx
index 7143493..085a429 100644
--- a/basic/inc/basic/process.hxx
+++ b/basic/inc/basic/process.hxx
@@ -31,13 +31,14 @@
 
 #include <tools/string.hxx>
 #include <osl/process.h>
+#include "basicdllapi.h"
 
 #include <map>
 
 typedef std::map< String, String > Environment;
 typedef Environment::value_type EnvironmentVariable;
 
-class Process
+class BASIC_DLLPUBLIC Process
 {
     // Internal members and methods
     sal_uInt32                  m_nArgumentCount;
@@ -46,8 +47,8 @@ class Process
     rtl_uString               **m_pEnvList;
     rtl::OUString               m_aProcessName;
     oslProcess                  m_pProcess;
-    sal_Bool ImplIsRunning();
-    long ImplGetExitCode();
+    BASIC_DLLPRIVATE sal_Bool ImplIsRunning();
+    BASIC_DLLPRIVATE long ImplGetExitCode();
     sal_Bool bWasGPF;
     sal_Bool bHasBeenStarted;
 
diff --git a/basic/inc/basic/sbdef.hxx b/basic/inc/basic/sbdef.hxx
index 9ff9ca1..f27c096 100644
--- a/basic/inc/basic/sbdef.hxx
+++ b/basic/inc/basic/sbdef.hxx
@@ -32,6 +32,7 @@
 #include <basic/sbxdef.hxx>
 #include <svl/svarray.hxx>
 #include <rtl/ustring.hxx>
+#include "basicdllapi.h"
 
 using rtl::OUString;
 
@@ -66,24 +67,65 @@ struct SbTextPortion
     SbTextType eType;        // Type of the portion
 };
 
-SV_DECL_VARARR(SbTextPortions, SbTextPortion,16,16)
+typedef sal_Bool (*FnForEach_SbTextPortions)( const SbTextPortion &, void* );
+class BASIC_DLLPUBLIC SbTextPortions
+{
+protected:
+    SbTextPortion *pData;
+    sal_uInt16 nFree;
+    sal_uInt16 nA;
+
+    void _resize(size_t n);
+
+public:
+    SbTextPortions( sal_uInt16= 16, sal_uInt8= 16 );
+    ~SbTextPortions() { rtl_freeMemory( pData ); }
+
+    _SVVARARR_DEF_GET_OP_INLINE(SbTextPortions, SbTextPortion )
+    SbTextPortion & GetObject(sal_uInt16 nP) const { return (*this)[nP]; }
+
+    void Insert( const SbTextPortion & aE, sal_uInt16 nP );
+    void Insert( const SbTextPortion *pE, sal_uInt16 nL, sal_uInt16 nP );
+    void Remove( sal_uInt16 nP, sal_uInt16 nL = 1 );
+    void Replace( const SbTextPortion & aE, sal_uInt16 nP );
+    void Replace( const SbTextPortion *pE, sal_uInt16 nL, sal_uInt16 nP );
+    sal_uInt16 Count() const { return nA; }
+    const SbTextPortion* GetData() const { return (const SbTextPortion*)pData; }
+
+    void ForEach( CONCAT( FnForEach_, SbTextPortions ) fnForEach, void* pArgs = 0 )
+    {
+        _ForEach( 0, nA, fnForEach, pArgs );
+    }
+    void ForEach( sal_uInt16 nS, sal_uInt16 nE,
+                    CONCAT( FnForEach_, SbTextPortions ) fnForEach, void* pArgs = 0 )
+    {
+        _ForEach( nS, nE, fnForEach, pArgs );
+    }
+
+    void _ForEach( sal_uInt16 nStt, sal_uInt16 nE,
+            CONCAT( FnForEach_, SbTextPortions ) fnCall, void* pArgs = 0 );
+private:
+    BASIC_DLLPRIVATE SbTextPortions( const SbTextPortions& );
+    BASIC_DLLPRIVATE SbTextPortions& operator=( const SbTextPortions& );
+};
+
 #else
 class SbTextPortions;
 #endif
 
 // Returns type name for Basic type, array flag is ignored
 // implementation: basic/source/runtime/methods.cxx
-String getBasicTypeName( SbxDataType eType );
+BASIC_DLLPUBLIC String getBasicTypeName( SbxDataType eType );
 
 // Returns type name for Basic objects, especially
 // important for SbUnoObj instances
 // implementation: basic/source/classes/sbunoobj.cxx
 class SbxObject;
-::rtl::OUString getBasicObjectTypeName( SbxObject* pObj );
+BASIC_DLLPUBLIC ::rtl::OUString getBasicObjectTypeName( SbxObject* pObj );
 
 // Allows Basic IDE to set watch mode to suppress errors
 // implementation: basic/source/runtime/runtime.cxx
-void setBasicWatchMode( bool bOn );
+BASIC_DLLPUBLIC void setBasicWatchMode( bool bOn );
 
 // Debug Flags:
 #define SbDEBUG_BREAK       0x0001          // Break-Callback
diff --git a/basic/inc/basic/sbmeth.hxx b/basic/inc/basic/sbmeth.hxx
index bb890ac..2a18c5d 100644
--- a/basic/inc/basic/sbmeth.hxx
+++ b/basic/inc/basic/sbmeth.hxx
@@ -32,11 +32,12 @@
 #include <tools/errcode.hxx>
 #include <basic/sbxmeth.hxx>
 #include <basic/sbdef.hxx>
+#include "basicdllapi.h"
 
 class SbModule;
 class SbMethodImpl;
 
-class SbMethod : public SbxMethod
+class BASIC_DLLPUBLIC SbMethod : public SbxMethod
 {
     friend class SbiRuntime;
     friend class SbiFactory;
@@ -54,8 +55,8 @@ class SbMethod : public SbxMethod
     sal_uInt32	  nStart;
     sal_Bool	  bInvalid;
     SbxArrayRef refStatics;
-    SbMethod( const String&, SbxDataType, SbModule* );
-    SbMethod( const SbMethod& );
+    BASIC_DLLPRIVATE SbMethod( const String&, SbxDataType, SbModule* );
+    BASIC_DLLPRIVATE SbMethod( const SbMethod& );
     virtual sal_Bool LoadData( SvStream&, sal_uInt16 );
     virtual sal_Bool StoreData( SvStream& ) const;
     virtual ~SbMethod();
@@ -83,7 +84,7 @@ public:
 SV_DECL_IMPL_REF(SbMethod)
 #endif
 
-class SbIfaceMapperMethod : public SbMethod
+class BASIC_DLLPUBLIC SbIfaceMapperMethod : public SbMethod
 {
     friend class SbiRuntime;
 
diff --git a/basic/inc/basic/sbmod.hxx b/basic/inc/basic/sbmod.hxx
index 05a1930..2d9b33d 100644
--- a/basic/inc/basic/sbmod.hxx
+++ b/basic/inc/basic/sbmod.hxx
@@ -37,6 +37,7 @@
 #include <vector>
 
 #include <deque>
+#include "basicdllapi.h"
 
 class SbMethod;
 class SbProperty;
@@ -52,7 +53,7 @@ struct ClassModuleRunInitItem;
 struct SbClassData;
 class SbModuleImpl;
 
-class SbModule : public SbxObject
+class BASIC_DLLPUBLIC SbModule : public SbxObject
 {
     friend class	TestToolObj;	// allows module initialisation at runtime
     friend class	SbiCodeGen;
@@ -63,10 +64,10 @@ class SbModule : public SbxObject
 
     SbModuleImpl*	mpSbModuleImpl;		// Impl data
     std::vector< String > mModuleVariableNames;
-    SbModule();
-    SbModule(const SbModule&);
+    BASIC_DLLPRIVATE SbModule();
+    BASIC_DLLPRIVATE SbModule(const SbModule&);
 
-    void 			implClearIfVarDependsOnDeletedBasic( SbxVariable* pVar, StarBASIC* pDeletedBasic );
+    BASIC_DLLPRIVATE void implClearIfVarDependsOnDeletedBasic( SbxVariable* pVar, StarBASIC* pDeletedBasic );
 
 protected:
     com::sun::star::uno::Reference< com::sun::star::script::XInvocation > mxWrapper;
@@ -164,7 +165,7 @@ SV_DECL_IMPL_REF(SbModule)
 class SbClassModuleImpl;
 
 // Object class for instances of class modules
-class SbClassModuleObject : public SbModule
+class BASIC_DLLPUBLIC SbClassModuleObject : public SbModule
 {
     SbClassModuleImpl* mpSbClassModuleImpl;
 
diff --git a/basic/inc/basic/sbobjmod.hxx b/basic/inc/basic/sbobjmod.hxx
index af60219..ba4f623 100644
--- a/basic/inc/basic/sbobjmod.hxx
+++ b/basic/inc/basic/sbobjmod.hxx
@@ -38,15 +38,16 @@
 #include <com/sun/star/lang/XEventListener.hpp>
 #include <com/sun/star/awt/XDialog.hpp>
 #include <com/sun/star/frame/XModel.hpp>
+#include "basicdllapi.h"
 
 namespace css = ::com::sun::star;
 
 // Basic-Module for excel object.
 
-class SbObjModule : public SbModule
+class BASIC_DLLPUBLIC SbObjModule : public SbModule
 {
-    SbObjModule( const SbObjModule& );
-    SbObjModule();
+    BASIC_DLLPRIVATE SbObjModule( const SbObjModule& );
+    BASIC_DLLPRIVATE SbObjModule();
 
 protected:
     virtual ~SbObjModule();
@@ -66,7 +67,7 @@ public:
 
 class FormObjEventListenerImpl;
 
-class SbUserFormModule : public SbObjModule
+class BASIC_DLLPUBLIC SbUserFormModule : public SbObjModule
 {
     com::sun::star::script::ModuleInfo m_mInfo;
     ::rtl::Reference< FormObjEventListenerImpl > m_DialogListener;
@@ -74,8 +75,8 @@ class SbUserFormModule : public SbObjModule
     css::uno::Reference<css::frame::XModel> m_xModel;
     String sFormName;
     bool mbInit;
-    SbUserFormModule( const SbUserFormModule& );
-    SbUserFormModule();
+    BASIC_DLLPRIVATE SbUserFormModule( const SbUserFormModule& );
+    BASIC_DLLPRIVATE SbUserFormModule();
 
 //protected:
     virtual void InitObject();
@@ -104,7 +105,7 @@ public:
     class SbUserFormModuleInstance* CreateInstance();
 };
 
-class SbUserFormModuleInstance : public SbUserFormModule
+class BASIC_DLLPUBLIC SbUserFormModuleInstance : public SbUserFormModule
 {
     SbUserFormModule* m_pParentModule;
 
diff --git a/basic/inc/basic/sbprop.hxx b/basic/inc/basic/sbprop.hxx
index db000f4..3f682a4 100644
--- a/basic/inc/basic/sbprop.hxx
+++ b/basic/inc/basic/sbprop.hxx
@@ -31,17 +31,18 @@
 
 #include <basic/sbxprop.hxx>
 #include <basic/sbdef.hxx>
+#include "basicdllapi.h"
 
 class SbModule;
 
-class SbProperty : public SbxProperty
+class BASIC_DLLPUBLIC SbProperty : public SbxProperty
 {
     friend class SbiFactory;
     friend class SbModule;
     friend class SbProcedureProperty;
     SbModule* pMod;
     sal_Bool	 bInvalid;
-    SbProperty( const String&, SbxDataType, SbModule* );
+    BASIC_DLLPRIVATE SbProperty( const String&, SbxDataType, SbModule* );
     virtual ~SbProperty();
 public:
     SBX_DECL_PERSIST_NODATA(SBXCR_SBX,SBXID_BASICPROP,1);
@@ -54,7 +55,7 @@ public:
 SV_DECL_IMPL_REF(SbProperty)
 #endif
 
-class SbProcedureProperty : public SbxProperty
+class BASIC_DLLPUBLIC SbProcedureProperty : public SbxProperty
 {
     bool mbSet;		// Flag for set command
 
diff --git a/basic/inc/basic/sbstar.hxx b/basic/inc/basic/sbstar.hxx
index 24ecad6..03ad7f5 100644
--- a/basic/inc/basic/sbstar.hxx
+++ b/basic/inc/basic/sbstar.hxx
@@ -38,6 +38,7 @@
 #include <basic/sberrors.hxx>
 #include <com/sun/star/script/ModuleInfo.hpp>
 #include <com/sun/star/frame/XModel.hpp>
+#include "basicdllapi.h"
 
 class SbModule;                     // completed module
 class SbiInstance;                  // runtime instance
@@ -51,7 +52,7 @@ class DocBasicItem;
 
 class StarBASICImpl;
 
-class StarBASIC : public SbxObject
+class BASIC_DLLPUBLIC StarBASIC : public SbxObject
 {
     friend class SbiScanner;
     friend class SbiExpression; // Access to RTL
@@ -77,17 +78,17 @@ class StarBASIC : public SbxObject
     sal_Bool			bQuit;
 
     SbxObjectRef pVBAGlobals; 
-    SbxObject* getVBAGlobals( );
+    BASIC_DLLPRIVATE SbxObject* getVBAGlobals( );
 
-    void implClearDependingVarsOnDelete( StarBASIC* pDeletedBasic );
+    BASIC_DLLPRIVATE void implClearDependingVarsOnDelete( StarBASIC* pDeletedBasic );
 
 protected:
     sal_Bool 			CError( SbError, const String&, xub_StrLen, xub_StrLen, xub_StrLen );
 private:
-    sal_Bool 			RTError( SbError, xub_StrLen, xub_StrLen, xub_StrLen );
-    sal_Bool 			RTError( SbError, const String& rMsg, xub_StrLen, xub_StrLen, xub_StrLen );
-    sal_uInt16 			BreakPoint( xub_StrLen nLine, xub_StrLen nCol1, xub_StrLen nCol2 );
-    sal_uInt16 			StepPoint( xub_StrLen nLine, xub_StrLen nCol1, xub_StrLen nCol2 );
+    BASIC_DLLPRIVATE sal_Bool 			RTError( SbError, xub_StrLen, xub_StrLen, xub_StrLen );
+    BASIC_DLLPRIVATE sal_Bool 			RTError( SbError, const String& rMsg, xub_StrLen, xub_StrLen, xub_StrLen );
+    BASIC_DLLPRIVATE sal_uInt16 			BreakPoint( xub_StrLen nLine, xub_StrLen nCol1, xub_StrLen nCol2 );
+    BASIC_DLLPRIVATE sal_uInt16 			StepPoint( xub_StrLen nLine, xub_StrLen nCol1, xub_StrLen nCol2 );
     virtual sal_Bool LoadData( SvStream&, sal_uInt16 );
     virtual sal_Bool StoreData( SvStream& ) const;
 
diff --git a/basic/inc/basic/sbstdobj.hxx b/basic/inc/basic/sbstdobj.hxx
index ddff393..a256dfe 100644
--- a/basic/inc/basic/sbstdobj.hxx
+++ b/basic/inc/basic/sbstdobj.hxx
@@ -32,13 +32,15 @@
 #include <basic/sbxobj.hxx>
 #include <vcl/graph.hxx>
 #include <basic/sbxfac.hxx>
+#include "basicdllapi.h"
+
 class StarBASIC;
 class SbStdFactory;
 
 //--------------------
 // class SbStdFactory
 //--------------------
-class SbStdFactory : public SbxFactory
+class BASIC_DLLPUBLIC SbStdFactory : public SbxFactory
 {
 public:
     SbStdFactory();
@@ -49,7 +51,7 @@ public:
 //--------------------
 // class SbStdPicture
 //--------------------
-class SbStdPicture : public SbxObject
+class BASIC_DLLPUBLIC SbStdPicture : public SbxObject
 {
 protected:
     Graphic		aGraphic;
@@ -75,7 +77,7 @@ public:
 //-----------------
 // class SbStdFont
 //-----------------
-class SbStdFont : public SbxObject
+class BASIC_DLLPUBLIC SbStdFont : public SbxObject
 {
 protected:
     sal_Bool	bBold;
@@ -119,7 +121,7 @@ public:
 //----------------------
 // class SbStdClipboard
 //----------------------
-class SbStdClipboard : public SbxObject
+class BASIC_DLLPUBLIC SbStdClipboard : public SbxObject
 {
 protected:
 
diff --git a/basic/inc/basic/sbuno.hxx b/basic/inc/basic/sbuno.hxx
index 8e782b3..57c5bfa 100644
--- a/basic/inc/basic/sbuno.hxx
+++ b/basic/inc/basic/sbuno.hxx
@@ -30,20 +30,21 @@
 #define _SB_SBUNO_HXX
 
 #include <basic/sbxobj.hxx>
+#include "basicdllapi.h"
 
 namespace com { namespace sun { namespace star { namespace uno { class Any; }}}}
 
 // Returns a SbxObject that wrapps an Uno Interface
 // Implementation in basic/source/classes/sbunoobj.cxx
-SbxObjectRef GetSbUnoObject( const ::rtl::OUString& aName, const com::sun::star::uno::Any& aUnoObj_ );
+BASIC_DLLPUBLIC SbxObjectRef GetSbUnoObject( const ::rtl::OUString& aName, const com::sun::star::uno::Any& aUnoObj_ );
 
 // Force creation of all properties for debugging
-void createAllObjectProperties( SbxObject* pObj );
-void SetSbUnoObjectDfltPropName( SbxObject* pObj );
+BASIC_DLLPUBLIC void createAllObjectProperties( SbxObject* pObj );
+BASIC_DLLPUBLIC void SetSbUnoObjectDfltPropName( SbxObject* pObj );
 
-::com::sun::star::uno::Any sbxToUnoValue( SbxVariable* pVar );
+BASIC_DLLPUBLIC ::com::sun::star::uno::Any sbxToUnoValue( SbxVariable* pVar );
 
-void unoToSbxValue( SbxVariable* pVar, const ::com::sun::star::uno::Any& aValue );
+BASIC_DLLPUBLIC void unoToSbxValue( SbxVariable* pVar, const ::com::sun::star::uno::Any& aValue );
 
 #endif
 
diff --git a/basic/inc/basic/sbx.hxx b/basic/inc/basic/sbx.hxx
index 570debb..c706e3a 100644
--- a/basic/inc/basic/sbx.hxx
+++ b/basic/inc/basic/sbx.hxx
@@ -39,6 +39,7 @@
 #include <basic/sbxobj.hxx>
 #include <basic/sbxprop.hxx>
 #include <basic/sbxmeth.hxx>
+#include "basicdllapi.h"
 
 class String;
 class UniString;
@@ -80,7 +81,7 @@ SV_DECL_PTRARR_DEL(SbxParams,SbxParamInfo*,4,4)
 #ifndef __SBX_SBXINFO
 #define __SBX_SBXINFO
 
-class SbxInfo : public SvRefBase
+class BASIC_DLLPUBLIC SbxInfo : public SvRefBase
 {
     friend class SbxVariable;
     friend class SbMethod;
@@ -115,7 +116,7 @@ public:
 #ifndef __SBX_SBXHINT_HXX
 #define __SBX_SBXHINT_HXX
 
-class SbxHint : public SfxSimpleHint
+class BASIC_DLLPUBLIC SbxHint : public SfxSimpleHint
 {
     SbxVariable* pVar;
 public:
@@ -130,7 +131,7 @@ public:
 #define __SBX_SBXALIAS_HXX
 
 // SbxAlias is an alias for a var or object
-class SbxAlias : public SbxVariable, public SfxListener
+class BASIC_DLLPUBLIC SbxAlias : public SbxVariable, public SfxListener
 {
     SbxVariableRef xAlias;
     virtual ~SbxAlias();
@@ -157,13 +158,13 @@ class SbxVariableRef;
 
 class SbxArrayImpl;
 
-class SbxArray : public SbxBase
+class BASIC_DLLPUBLIC SbxArray : public SbxBase
 {
 // #100883 Method to set method directly to parameter array
     friend class SbMethod;
     friend class SbClassModuleObject;
     friend SbxObject* cloneTypeObjectImpl( const SbxObject& rTypeObj );
-    void PutDirect( SbxVariable* pVar, sal_uInt32 nIdx );
+    BASIC_DLLPRIVATE void PutDirect( SbxVariable* pVar, sal_uInt32 nIdx );
 
     SbxArrayImpl* mpSbxArrayImpl; // Impl data
     SbxVarRefs*   pData;          // The variables
@@ -215,13 +216,13 @@ struct SbxDim;
 
 class SbxDimArrayImpl;
 
-class SbxDimArray : public SbxArray
+class BASIC_DLLPUBLIC SbxDimArray : public SbxArray
 {
     SbxDimArrayImpl* mpSbxDimArrayImpl;   // Impl data
 
     SbxDim* pFirst, *pLast;               // Links to Dimension table
     short   nDim;                         // Number of dimensions
-    void   AddDimImpl32( sal_Int32, sal_Int32, sal_Bool bAllowSize0 );
+    BASIC_DLLPRIVATE void AddDimImpl32( sal_Int32, sal_Int32, sal_Bool bAllowSize0 );
     bool mbHasFixedSize;
 protected:
     sal_uInt16  Offset( const short* );
@@ -271,9 +272,9 @@ public:
 #ifndef __SBX_SBXCOLLECTION_HXX
 #define __SBX_SBXCOLLECTION_HXX
 
-class SbxCollection : public SbxObject
+class BASIC_DLLPUBLIC SbxCollection : public SbxObject
 {
-    void Initialize();
+    BASIC_DLLPRIVATE void Initialize();
 protected:
     virtual ~SbxCollection();
     virtual sal_Bool LoadData( SvStream&, sal_uInt16 );
@@ -300,7 +301,7 @@ public:
 #ifndef __SBX_SBXSTDCOLLECTION_HXX
 #define __SBX_SBXSTDCOLLECTION_HXX
 
-class SbxStdCollection : public SbxCollection
+class BASIC_DLLPUBLIC SbxStdCollection : public SbxCollection
 {
 protected:
     String aElemClass;
diff --git a/basic/inc/basic/sbxbase.hxx b/basic/inc/basic/sbxbase.hxx
index abf2f77..8c07a67 100644
--- a/basic/inc/basic/sbxbase.hxx
+++ b/basic/inc/basic/sbxbase.hxx
@@ -32,6 +32,7 @@
 #include <i18npool/lang.h>
 #include "svl/svarray.hxx"
 #include <basic/sbxdef.hxx>
+#include "basicdllapi.h"
 
 class SbxFactory;
 class SbxVariable;
@@ -53,7 +54,7 @@ struct SbxAppData
     ~SbxAppData();
 };
 
-SbxAppData* GetSbxData_Impl();
+BASIC_DLLPUBLIC SbxAppData* GetSbxData_Impl();
 
 #endif
 
diff --git a/basic/inc/basic/sbxcore.hxx b/basic/inc/basic/sbxcore.hxx
index 7290480..3aec642 100644
--- a/basic/inc/basic/sbxcore.hxx
+++ b/basic/inc/basic/sbxcore.hxx
@@ -34,6 +34,7 @@
 #include <tools/debug.hxx>
 
 #include <basic/sbxdef.hxx>
+#include "basicdllapi.h"
 
 class SvStream;
 class String;
@@ -79,7 +80,7 @@ DBG_NAMEEX(SbxBase)
 
 class SbxBaseImpl;
 
-class SbxBase : virtual public SvRefBase
+class BASIC_DLLPUBLIC SbxBase : virtual public SvRefBase
 {
     SbxBaseImpl* mpSbxBaseImpl;	// Impl data
 
diff --git a/basic/inc/basic/sbxfac.hxx b/basic/inc/basic/sbxfac.hxx
index c7deb75..114ad0f 100644
--- a/basic/inc/basic/sbxfac.hxx
+++ b/basic/inc/basic/sbxfac.hxx
@@ -30,13 +30,14 @@
 #define __SBX_SBX_FACTORY_HXX
 
 #include <basic/sbxdef.hxx>
+#include "basicdllapi.h"
 
 class SbxBase;
 class SbxObject;
 class String;
 class UniString;
 
-class SbxFactory
+class BASIC_DLLPUBLIC SbxFactory
 {
     sal_Bool bHandleLast;	// sal_True: Factory is asked at last because of its expensiveness
 public:
diff --git a/basic/inc/basic/sbxform.hxx b/basic/inc/basic/sbxform.hxx
index d607842..9ee55c4 100644
--- a/basic/inc/basic/sbxform.hxx
+++ b/basic/inc/basic/sbxform.hxx
@@ -85,8 +85,9 @@
 #define _with_sprintf	// use a)
 
 #include <tools/string.hxx>
+#include "basicdllapi.h"
 
-class SbxBasicFormater {
+class BASIC_DLLPUBLIC SbxBasicFormater {
   public:
     // Constructor takes signs for decimal point, thousand separation sign
     // and necessary resource strings.
@@ -115,33 +116,33 @@ class SbxBasicFormater {
     static  sal_Bool isBasicFormat( String sFormatStrg );
 
   private:
-    inline void	ShiftString( String& sStrg, sal_uInt16 nStartPos );
-    inline void	StrAppendChar( String& sStrg, sal_Unicode ch );
-    void	AppendDigit( String& sStrg, short nDigit );
-    void	LeftShiftDecimalPoint( String& sStrg );
-    void	StrRoundDigit( String& sStrg, short nPos, sal_Bool& bOverflow );
-    void	StrRoundDigit( String& sStrg, short nPos );
-    void	ParseBack( String& sStrg, const String& sFormatStrg,
+    BASIC_DLLPRIVATE inline void	ShiftString( String& sStrg, sal_uInt16 nStartPos );
+    BASIC_DLLPRIVATE inline void	StrAppendChar( String& sStrg, sal_Unicode ch );
+    BASIC_DLLPRIVATE void	AppendDigit( String& sStrg, short nDigit );
+    BASIC_DLLPRIVATE void	LeftShiftDecimalPoint( String& sStrg );
+    BASIC_DLLPRIVATE void	StrRoundDigit( String& sStrg, short nPos, sal_Bool& bOverflow );
+    BASIC_DLLPRIVATE void	StrRoundDigit( String& sStrg, short nPos );
+    BASIC_DLLPRIVATE void	ParseBack( String& sStrg, const String& sFormatStrg,
                 short nFormatPos );
 #ifdef _with_sprintf
     // Methods for string conversion with sprintf():
-    void	InitScan( double _dNum );
-    void	InitExp( double _dNewExp );
-    short	GetDigitAtPosScan( short nPos, sal_Bool& bFoundFirstDigit );
-    short	GetDigitAtPosExpScan( double dNewExponent, short nPos,
+    BASIC_DLLPRIVATE void	InitScan( double _dNum );
+    BASIC_DLLPRIVATE void	InitExp( double _dNewExp );
+    BASIC_DLLPRIVATE short	GetDigitAtPosScan( short nPos, sal_Bool& bFoundFirstDigit );
+    BASIC_DLLPRIVATE short	GetDigitAtPosExpScan( double dNewExponent, short nPos,
                 sal_Bool& bFoundFirstDigit );
-    short	GetDigitAtPosExpScan( short nPos, sal_Bool& bFoundFirstDigit );
+    BASIC_DLLPRIVATE short	GetDigitAtPosExpScan( short nPos, sal_Bool& bFoundFirstDigit );
 #else
     // Methods for direct 'calculation' with log10() and pow():
-    short	GetDigitAtPos( double dNumber, short nPos, double& dNextNumber,
+    BASIC_DLLPRIVATE short	GetDigitAtPos( double dNumber, short nPos, double& dNextNumber,
                 sal_Bool& bFoundFirstDigit );
-    short	RoundDigit( double dNumber );
+    BASIC_DLLPRIVATE short	RoundDigit( double dNumber );
 #endif
-    String	GetPosFormatString( const String& sFormatStrg, sal_Bool & bFound );
-    String	GetNegFormatString( const String& sFormatStrg, sal_Bool & bFound );
-    String	Get0FormatString( const String& sFormatStrg, sal_Bool & bFound );
-    String	GetNullFormatString( const String& sFormatStrg, sal_Bool & bFound );
-    short	AnalyseFormatString( const String& sFormatStrg,
+    BASIC_DLLPRIVATE String	GetPosFormatString( const String& sFormatStrg, sal_Bool & bFound );
+    BASIC_DLLPRIVATE String	GetNegFormatString( const String& sFormatStrg, sal_Bool & bFound );
+    BASIC_DLLPRIVATE String	Get0FormatString( const String& sFormatStrg, sal_Bool & bFound );
+    BASIC_DLLPRIVATE String	GetNullFormatString( const String& sFormatStrg, sal_Bool & bFound );
+    BASIC_DLLPRIVATE short	AnalyseFormatString( const String& sFormatStrg,
                 short& nNoOfDigitsLeft, short& nNoOfDigitsRight,
                 short& nNoOfOptionalDigitsLeft,
                 short& nNoOfExponentDigits,
@@ -149,7 +150,7 @@ class SbxBasicFormater {
                 sal_Bool& bPercent, sal_Bool& bCurrency, sal_Bool& bScientific,
                 sal_Bool& bGenerateThousandSeparator,
                 short& nMultipleThousandSeparators );
-    void	ScanFormatString( double dNumber, const String& sFormatStrg,
+    BASIC_DLLPRIVATE void	ScanFormatString( double dNumber, const String& sFormatStrg,
                 String& sReturnStrg, sal_Bool bCreateSign );
 
     //*** Data ***
diff --git a/basic/inc/basic/sbxmeth.hxx b/basic/inc/basic/sbxmeth.hxx
index e054e15..78fa690 100644
--- a/basic/inc/basic/sbxmeth.hxx
+++ b/basic/inc/basic/sbxmeth.hxx
@@ -30,10 +30,11 @@
 #define __SBX_SBXMETHOD_HXX
 
 #include <basic/sbxvar.hxx>
+#include "basicdllapi.h"
 
 class SbxMethodImpl;
 
-class SbxMethod : public SbxVariable
+class BASIC_DLLPUBLIC SbxMethod : public SbxVariable
 {
     SbxMethodImpl* mpSbxMethodImpl;	// Impl data
 
diff --git a/basic/inc/basic/sbxmstrm.hxx b/basic/inc/basic/sbxmstrm.hxx
index c5a6bd5..2fb699d 100644
--- a/basic/inc/basic/sbxmstrm.hxx
+++ b/basic/inc/basic/sbxmstrm.hxx
@@ -32,10 +32,11 @@
 #include <tools/stream.hxx>
 #include <basic/sbxdef.hxx>
 #include <basic/sbxcore.hxx>
+#include "basicdllapi.h"
 
 SV_DECL_REF(SbxMemoryStream)
 
-class SbxMemoryStream : public SbxBase, public SvMemoryStream
+class BASIC_DLLPUBLIC SbxMemoryStream : public SbxBase, public SvMemoryStream
 {
   public:
     SbxMemoryStream(sal_uIntPtr nInitSize_=512, sal_uIntPtr nResize_=64) :
diff --git a/basic/inc/basic/sbxobj.hxx b/basic/inc/basic/sbxobj.hxx
index a361b07..b3396a7 100644
--- a/basic/inc/basic/sbxobj.hxx
+++ b/basic/inc/basic/sbxobj.hxx
@@ -31,6 +31,7 @@
 
 #include <svl/lstner.hxx>
 #include <basic/sbxvar.hxx>
+#include "basicdllapi.h"
 
 
 class SbxProperty;
@@ -38,13 +39,13 @@ class SvDispatch;
 
 class SbxObjectImpl;
 
-class SbxObject : public SbxVariable, public SfxListener
+class BASIC_DLLPUBLIC SbxObject : public SbxVariable, public SfxListener
 {
     SbxObjectImpl* mpSbxObjectImpl;	// Impl data
 
-    SbxArray* FindVar( SbxVariable*, sal_uInt16& );
+    BASIC_DLLPRIVATE SbxArray* FindVar( SbxVariable*, sal_uInt16& );
     // AB 23.3.1997, special method for VCPtrRemove (see below)
-    SbxArray* VCPtrFindVar( SbxVariable*, sal_uInt16& );
+    BASIC_DLLPRIVATE SbxArray* VCPtrFindVar( SbxVariable*, sal_uInt16& );
 protected:
     SbxArrayRef  pMethods;                  // Methods
     SbxArrayRef  pProps;                    // Properties
diff --git a/basic/inc/basic/sbxprop.hxx b/basic/inc/basic/sbxprop.hxx
index 33bbdd4..aa70b27 100644
--- a/basic/inc/basic/sbxprop.hxx
+++ b/basic/inc/basic/sbxprop.hxx
@@ -30,10 +30,11 @@
 #define __SBX_SBXPROPERTY_HXX
 
 #include <basic/sbxvar.hxx>
+#include "basicdllapi.h"
 
 class SbxPropertyImpl;
 
-class SbxProperty : public SbxVariable
+class BASIC_DLLPUBLIC SbxProperty : public SbxVariable
 {
     SbxPropertyImpl* mpSbxPropertyImpl;	// Impl data
 
diff --git a/basic/inc/basic/sbxvar.hxx b/basic/inc/basic/sbxvar.hxx
index 26da3e0..632be37 100644
--- a/basic/inc/basic/sbxvar.hxx
+++ b/basic/inc/basic/sbxvar.hxx
@@ -33,6 +33,7 @@
 #include <tools/string.hxx>
 #include <com/sun/star/bridge/oleautomation/Decimal.hpp>
 #include <basic/sbxcore.hxx>
+#include "basicdllapi.h"
 
 #ifndef __SBX_SBXVALUES_HXX
 #define __SBX_SBXVALUES_HXX
@@ -107,13 +108,13 @@ struct SbxValues;
 
 class SbxValueImpl;
 
-class SbxValue : public SbxBase
+class BASIC_DLLPUBLIC SbxValue : public SbxBase
 {
     SbxValueImpl* mpSbxValueImplImpl;	// Impl data
 
     // #55226 Transport additional infos
-    SbxValue* TheRealValue( sal_Bool bObjInObjError ) const;
-    SbxValue* TheRealValue() const;
+    BASIC_DLLPRIVATE SbxValue* TheRealValue( sal_Bool bObjInObjError ) const;
+    BASIC_DLLPRIVATE SbxValue* TheRealValue() const;
 protected:
     SbxValues aData; // Data
     ::rtl::OUString aPic;  // Picture-String
@@ -320,7 +321,7 @@ class SfxBroadcaster;
 class SbxVariableImpl;
 class StarBASIC;
 
-class SbxVariable : public SbxValue
+class BASIC_DLLPUBLIC SbxVariable : public SbxValue
 {
     friend class SbMethod;
 
@@ -330,7 +331,7 @@ class SbxVariable : public SbxValue
     SbxArrayRef      mpPar;             // Parameter-Array, if set
     sal_uInt16           nHash;             // Hash-ID for search
 
-    SbxVariableImpl* getImpl( void );
+    BASIC_DLLPRIVATE SbxVariableImpl* getImpl( void );
 
 protected:
     SbxInfoRef  pInfo;              // Probably called information
diff --git a/basic/inc/basic/testtool.hxx b/basic/inc/basic/testtool.hxx
index 2f29b93..223207e 100644
--- a/basic/inc/basic/testtool.hxx
+++ b/basic/inc/basic/testtool.hxx
@@ -30,6 +30,7 @@
 
 #include <svl/smplhint.hxx>
 #include <tools/string.hxx>
+#include "basicdllapi.h"
 
 #define TESTTOOL_DEFAULT_PORT 12479
 #define UNO_DEFAULT_PORT 12480
@@ -41,7 +42,7 @@
 
 // Due to a tab in TT_SIGNATURE_FOR_UNICODE_TEXTFILES which is changed to blanks by some editors
 // this routine became necessary
-sal_Bool IsTTSignatureForUnicodeTextfile( String aLine );
+BASIC_DLLPUBLIC sal_Bool IsTTSignatureForUnicodeTextfile( String aLine );
 
 #define ADD_ERROR_QUIET(nNr, aStr)										\
 {																		\
@@ -129,7 +130,7 @@ public:
 #define TT_EXECUTION_SHOW_ACTION	0x03
 #define TT_EXECUTION_HIDE_ACTION	0x04
 
-class TTExecutionStatusHint : public SfxSimpleHint
+class BASIC_DLLPUBLIC TTExecutionStatusHint : public SfxSimpleHint
 {
 private:
     sal_uInt16 mnType;
diff --git a/basic/inc/basic/ttstrhlp.hxx b/basic/inc/basic/ttstrhlp.hxx
index ee70a61..4569a2f 100644
--- a/basic/inc/basic/ttstrhlp.hxx
+++ b/basic/inc/basic/ttstrhlp.hxx
@@ -29,6 +29,7 @@
 #define _BASIC_TTSTRHLP_HXX
 
 #include <tools/string.hxx>
+#include "basicdllapi.h"
 
 #define CByteString( constAsciiStr ) ByteString( RTL_CONSTASCII_STRINGPARAM ( constAsciiStr ) )
 #define CUniString( constAsciiStr ) UniString( RTL_CONSTASCII_USTRINGPARAM ( constAsciiStr ) )
@@ -58,10 +59,10 @@
 #define ResString(nNumber) MakeStringNumber(ResKenn,nNumber)
 #define ArgString(nNumber, aText) MakeStringParam(ArgKenn(nNumber),aText)
 
-UniString GEN_RES_STR0( sal_uIntPtr nResId );
-UniString GEN_RES_STR1( sal_uIntPtr nResId, const String &Text1 );
-UniString GEN_RES_STR2( sal_uIntPtr nResId, const String &Text1, const String &Text2 );
-UniString GEN_RES_STR3( sal_uIntPtr nResId, const String &Text1, const String &Text2, const String &Text3 );
+BASIC_DLLPUBLIC UniString GEN_RES_STR0( sal_uIntPtr nResId );
+BASIC_DLLPUBLIC UniString GEN_RES_STR1( sal_uIntPtr nResId, const String &Text1 );
+BASIC_DLLPUBLIC UniString GEN_RES_STR2( sal_uIntPtr nResId, const String &Text1, const String &Text2 );
+BASIC_DLLPUBLIC UniString GEN_RES_STR3( sal_uIntPtr nResId, const String &Text1, const String &Text2, const String &Text3 );
 
 #define GEN_RES_STR1c( nResId, Text1 ) GEN_RES_STR1( nResId, CUniString(Text1) )
 #define GEN_RES_STR2c2( nResId, Text1, Text2 ) GEN_RES_STR2( nResId, Text1, CUniString(Text2) )
diff --git a/basic/inc/basic/vbahelper.hxx b/basic/inc/basic/vbahelper.hxx
index deb8012..7034551 100644
--- a/basic/inc/basic/vbahelper.hxx
+++ b/basic/inc/basic/vbahelper.hxx
@@ -31,6 +31,7 @@
 #include <com/sun/star/container/XEnumeration.hpp>
 #include <com/sun/star/frame/XModel.hpp>
 #include <rtl/ustring.hxx>
+#include "basicdllapi.h"
 
 namespace basic {
 namespace vba {
@@ -51,7 +52,7 @@ namespace vba {
     @param rxModel
         A document model determining the type of the documents.
  */
-::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > createDocumentsEnumeration(
+BASIC_DLLPUBLIC ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > createDocumentsEnumeration(
     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel );
 
 // ============================================================================
@@ -70,7 +71,7 @@ namespace vba {
     @param bLockControllers
         Passing true will lock all controllers, passing false will unlock them.
  */
-void lockControllersOfAllDocuments(
+BASIC_DLLPUBLIC void lockControllersOfAllDocuments(
     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel,
     sal_Bool bLockControllers );
 
@@ -91,7 +92,7 @@ void lockControllersOfAllDocuments(
         Passing true will enable all container windows of all controllers,
         passing false will disable them.
  */
-void enableContainerWindowsOfAllDocuments(
+BASIC_DLLPUBLIC void enableContainerWindowsOfAllDocuments(
     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel,
     sal_Bool bEnableWindows );
 
@@ -107,7 +108,7 @@ void enableContainerWindowsOfAllDocuments(
     @param rPath
         The new working directory.
  */
-void registerCurrentDirectory(
+BASIC_DLLPUBLIC void registerCurrentDirectory(
     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel,
     const ::rtl::OUString& rPath );
 
@@ -124,7 +125,7 @@ void registerCurrentDirectory(
         The working directory of the specified application, or an empty string
         on error (e.g. if the passed document reference is empty).
  */
-::rtl::OUString getCurrentDirectory(
+BASIC_DLLPUBLIC ::rtl::OUString getCurrentDirectory(
     const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& rxModel );
 
 // ============================================================================
diff --git a/basic/inc/makefile.mk b/basic/inc/makefile.mk
deleted file mode 100755
index 1b56b67..0000000
--- a/basic/inc/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..
-
-PRJNAME=basic
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-
-.INCLUDE :  target.mk
-
-.IF "$(ENABLE_PCH)"!=""
-ALLTAR : \
-    $(SLO)$/precompiled.pch \
-    $(SLO)$/precompiled_ex.pch
-    
-.ENDIF			# "$(ENABLE_PCH)"!=""
-
diff --git a/basic/prj/build.lst b/basic/prj/build.lst
index d097760..81f7ef5 100644
--- a/basic/prj/build.lst
+++ b/basic/prj/build.lst
@@ -1,13 +1,3 @@
 sb	basic	:    TRANSLATIONS:translations offapi oovbaapi svtools xmlscript framework salhelper LIBXSLT:libxslt NULL
 sb	basic									usr1	-	all	sb_mkout NULL
-sb	basic\inc								nmake	-	all	sb_inc NULL
-sb	basic\source\app						nmake	-	all	sb_app sb_class sb_inc NULL
-sb	basic\source\basmgr						nmake	-	all	sb_mgr sb_inc NULL
-sb	basic\source\classes					nmake	-	all	sb_class sb_inc NULL
-sb	basic\source\comp						nmake	-	all	sb_comp sb_inc NULL
-sb	basic\source\runtime					nmake	-	all	sb_rt sb_inc sb_class NULL
-sb	basic\source\sample						nmake	-	all	sb_samp sb_inc NULL
-sb	basic\source\sbx						nmake	-	all	sb_sbx sb_inc NULL
-sb	basic\source\uno                        nmake	-	all	sb_uno sb_inc NULL
-sb	basic\util								nmake	-	all	sb_util sb_app sb_class sb_comp sb_mgr sb_rt sb_samp sb_sbx sb_uno NULL
-
+sb	basic\prj								nmake	-	all	sb_prj NULL
diff --git a/basic/prj/d.lst b/basic/prj/d.lst
index 8aa0b83..e69de29 100644
--- a/basic/prj/d.lst
+++ b/basic/prj/d.lst
@@ -1,29 +0,0 @@
-mkdir: %COMMON_DEST%\bin\hid
-mkdir: %COMMON_DEST%\res
-
-..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin\hid\*.hid
-..\%__SRC%\lib\basic.lib %_DEST%\lib\basic.lib
-..\%__SRC%\lib\lib*.so %_DEST%\lib
-..\%__SRC%\lib\*.dylib %_DEST%\lib\*.dylib
-..\%__SRC%\lib\*.a %_DEST%\lib\*.a
-..\%__SRC%\slb\sb.lib %_DEST%\lib\xsb.lib
-..\%__SRC%\srs\classes.srs %_DEST%\res\basic.srs
-..\%COMMON_OUTDIR%\srs\classes_srs.hid %COMMON_DEST%\res\basic_srs.hid
-..\%__SRC%\bin\sb?????.dll %_DEST%\bin\sb?????.dll
-..\%__SRC%\bin\sb?????.sym %_DEST%\bin\sb?????.sym
-..\%__SRC%\misc\sb?????.map %_DEST%\bin\sb?????.map
-..\%__SRC%\bin\stt*.res %_DEST%\bin\stt*.res
-..\%__SRC%\bin\sb*.res %_DEST%\bin\sb*.res
-..\%__SRC%\lib\app.lib %_DEST%\lib\app.lib
-..\%__SRC%\lib\libapp.a %_DEST%\lib\libapp.a
-..\%__SRC%\lib\sample.lib %_DEST%\lib\sample.lib
-..\%__SRC%\lib\libsample.a %_DEST%\lib\libsample.a
-
-mkdir: %_DEST%\inc\basic
-..\inc\basic\*.hxx %_DEST%\inc\basic\*.hxx
-..\inc\basic\*.hrc %_DEST%\inc\basic\*.hrc
-..\inc\basic\*.h %_DEST%\inc\basic\*.h
-
-..\inc\modsizeexceeded.hxx %_DEST%\inc\basic\modsizeexceeded.hxx
-..\%__SRC%\misc\sb.component %_DEST%\xml\sb.component
-
diff --git a/basic/prj/makefile.mk b/basic/prj/makefile.mk
new file mode 100644
index 0000000..d30ff8a
--- /dev/null
+++ b/basic/prj/makefile.mk
@@ -0,0 +1,40 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org.  If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..
+TARGET=prj
+
+.INCLUDE : settings.mk
+
+.IF "$(VERBOSE)"!=""
+VERBOSEFLAG :=
+.ELSE
+VERBOSEFLAG := -s
+.ENDIF
+
+all:
+	cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET) && $(GNUMAKE) $(VERBOSEFLAG) -r deliverlog
diff --git a/basic/source/app/dialogs.cxx b/basic/source/app/dialogs.cxx
index 4747ed0..17171ba 100644
--- a/basic/source/app/dialogs.cxx
+++ b/basic/source/app/dialogs.cxx
@@ -63,7 +63,6 @@
 #include "app.hxx"
 #include "basrid.hxx"
 
-#include "_version.h"
 
 AboutDialog::AboutDialog( Window* pParent, const ResId& id )
 : ModalDialog( pParent, id )
diff --git a/basic/source/app/makefile.mk b/basic/source/app/makefile.mk
deleted file mode 100755
index e62b11c..0000000
--- a/basic/source/app/makefile.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=app
-
-LIBTARGET = NO
-
-# --- Settings ------------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# --- Common ------------------------------------------------------------
-
-EXCEPTIONSFILES = \
-        $(OBJ)$/app.obj          \
-        $(OBJ)$/appbased.obj     \
-        $(OBJ)$/appedit.obj      \
-        $(OBJ)$/apperror.obj     \
-        $(OBJ)$/appwin.obj       \
-        $(OBJ)$/basicrt.obj	 \
-        $(OBJ)$/brkpnts.obj      \
-        $(OBJ)$/dialogs.obj      \
-        $(OBJ)$/msgedit.obj      \
-        $(OBJ)$/mybasic.obj	 \
-        $(OBJ)$/printer.obj      \
-        $(OBJ)$/process.obj      \
-        $(OBJ)$/status.obj       \
-        $(OBJ)$/textedit.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES = \
-    basic.src				\
-    ttmsg.src				\
-    basmsg.src				\
-    svtmsg.src				\
-    testtool.src
-
-LIB1TARGET=$(LB)$/app.lib
-LIB1ARCHIV=$(LB)$/libapp.a
-LIB1OBJFILES = \
-        $(EXCEPTIONSFILES)       \
-        $(OBJ)$/processw.obj     \
-        $(OBJ)$/sbintern.obj
-
-# --- Targets ------------------------------------------------------------
-
-.INCLUDE :  target.mk
-
-$(OBJ)$/dialogs.obj : $(INCCOM)$/_version.h
-
diff --git a/basic/source/app/testbasi.cxx b/basic/source/app/testbasi.cxx
deleted file mode 100644
index e11efa1..0000000
--- a/basic/source/app/testbasi.cxx
+++ /dev/null
@@ -1,34 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_basic.hxx"
-#define testtool
-#include "mybasic.cxx"
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basic/source/app/ttbasic.cxx b/basic/source/app/ttbasic.cxx
deleted file mode 100644
index cbe6e37..0000000
--- a/basic/source/app/ttbasic.cxx
+++ /dev/null
@@ -1,39 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- * 
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org.  If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_basic.hxx"
-#include <basic/mybasic.hxx>
-#include "ttbasic.hxx"
-
-MyBasic* TTBasic::CreateMyBasic()
-{
-    return new MyBasic;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/basic/source/basmgr/makefile.mk b/basic/source/basmgr/makefile.mk
deleted file mode 100755
index 615a8e8..0000000
--- a/basic/source/basmgr/makefile.mk
+++ /dev/null
@@ -1,47 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=basicmgr
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-
-# --- Allgemein -----------------------------------------------------------
-
-SLOFILES= \
-        $(SLO)$/basmgr.obj \
-        $(SLO)$/basicmanagerrepository.obj\
-        $(SLO)$/vbahelper.obj
-
-# --- Targets -------------------------------------------------------------
-
-.INCLUDE :  target.mk
diff --git a/basic/source/classes/makefile.mk b/basic/source/classes/makefile.mk
deleted file mode 100755
index e00ed46..0000000
--- a/basic/source/classes/makefile.mk
+++ /dev/null
@@ -1,76 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=classes
-LIBTARGET=NO
-
-# --- Settings -----------------------------------------------------------
-
-ENABLE_EXCEPTIONS=TRUE
-
-.INCLUDE :  settings.mk
-
-ALLTAR .SEQUENTIAL : \
-        $(MISC)$/$(TARGET).don \
-        $(MISC)$/$(TARGET).slo
-
-$(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
-        +$(CPPUMAKER) -O$(OUT)$/inc -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
-        echo $@
-
-$(MISC)$/$(TARGET).slo : $(SLOTARGET)
-        echo $@
-
-# --- Allgemein -----------------------------------------------------------
-
-SLOFILES=	\
-    $(SLO)$/sb.obj       \
-    $(SLO)$/sbxmod.obj	\
-    $(SLO)$/image.obj	\
-    $(SLO)$/sbintern.obj	\
-    $(SLO)$/sbunoobj.obj	\
-    $(SLO)$/propacc.obj	\
-    $(SLO)$/disas.obj \
-    $(SLO)$/errobject.obj \
-    $(SLO)$/eventatt.obj
-
-OBJFILES=	\
-    $(OBJ)$/sbintern.obj
-
-SRS1NAME=$(TARGET)
-SRC1FILES=	sb.src
-
-LIB1TARGET= $(SLB)$/$(TARGET).lib
-LIB1OBJFILES = $(SLOFILES)
-
-# --- Targets -------------------------------------------------------------
-
-.INCLUDE :  target.mk
-
diff --git a/basic/source/comp/makefile.mk b/basic/source/comp/makefile.mk
deleted file mode 100755
index 146c832..0000000
--- a/basic/source/comp/makefile.mk
+++ /dev/null
@@ -1,57 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=comp
-
-# --- Settings ------------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-SLOFILES= \
-    $(EXCEPTIONSFILES)		\
-    $(SLO)$/buffer.obj		\
-    $(SLO)$/exprgen.obj		\
-    $(SLO)$/exprnode.obj	\
-    $(SLO)$/io.obj		\
-    $(SLO)$/loops.obj		\
-    $(SLO)$/symtbl.obj		\
-    $(SLO)$/token.obj
-
-EXCEPTIONSFILES= \
-    $(SLO)$/codegen.obj     \
-    $(SLO)$/dim.obj         \
-    $(SLO)$/exprtree.obj    \
-    $(SLO)$/parser.obj      \
-    $(SLO)$/scanner.obj     \
-    $(SLO)$/sbcomp.obj
-
-# --- Targets --------------------------------------------------------------
-
-.INCLUDE :  target.mk
diff --git a/basic/source/inc/sbintern.hxx b/basic/source/inc/sbintern.hxx
index c35d688..9fe2778 100644
--- a/basic/source/inc/sbintern.hxx
+++ b/basic/source/inc/sbintern.hxx
@@ -29,6 +29,7 @@
 #ifndef _SB_INTERN_HXX
 #define _SB_INTERN_HXX
 
+#include <basic/basicdllapi.h>
 #include <basic/sbxfac.hxx>
 #include <unotools/transliterationwrapper.hxx>
 #include "sb.hxx"
@@ -69,7 +70,7 @@ struct SbClassData
 
 // #115824: Factory class to create class objects (type command)
 // Implementation: sb.cxx
-class SbClassFactory : public SbxFactory
+class BASIC_DLLPUBLIC SbClassFactory : public SbxFactory
 {
     SbxObjectRef	xClassModules;
 
@@ -87,7 +88,7 @@ public:
 };
 
 // Stack fuer die im Fehlerfall abgebaute SbiRuntime Kette
-class SbErrorStackEntry
+class BASIC_DLLPUBLIC SbErrorStackEntry
 {
 public:
     SbErrorStackEntry(SbMethodRef aM, xub_StrLen nL, xub_StrLen nC1, xub_StrLen nC2)
@@ -97,8 +98,57 @@ public:
     xub_StrLen nCol1, nCol2;
 };
 
-SV_DECL_PTRARR_DEL(SbErrorStack, SbErrorStackEntry*, 1, 1)
-
+typedef sal_Bool (*FnForEach_SbErrorStack)( const SbErrorStackEntry* &, void* );
+class BASIC_DLLPUBLIC SbErrorStack: public SvPtrarr
+{
+public:
+    SbErrorStack( sal_uInt16 nIni=1, sal_uInt8 nG=1 )
+        : SvPtrarr(nIni,nG) {}
+    ~SbErrorStack() { DeleteAndDestroy( 0, Count() ); }
+    void Insert( const SbErrorStack *pI, sal_uInt16 nP,
+            sal_uInt16 nS = 0, sal_uInt16 nE = USHRT_MAX ) {
+        SvPtrarr::Insert((const SvPtrarr*)pI, nP, nS, nE);
+    }
+    void Insert( const SbErrorStackEntry* & aE, sal_uInt16 nP ) {
+        SvPtrarr::Insert((const VoidPtr &)aE, nP );
+    }
+    void Insert( const SbErrorStackEntry* *pE, sal_uInt16 nL, sal_uInt16 nP ) {
+        SvPtrarr::Insert( (const VoidPtr *)pE, nL, nP );
+    }
+    void Replace( const SbErrorStackEntry* & aE, sal_uInt16 nP ) {
+        SvPtrarr::Replace( (const VoidPtr &)aE, nP );
+    }
+    void Replace( const SbErrorStackEntry* *pE, sal_uInt16 nL, sal_uInt16 nP ) {
+        SvPtrarr::Replace( (const VoidPtr*)pE, nL, nP );
+    }
+    void Remove( sal_uInt16 nP, sal_uInt16 nL = 1) {
+        SvPtrarr::Remove(nP,nL);
+    }
+    const SbErrorStackEntry** GetData() const {
+        return (const SbErrorStackEntry**)SvPtrarr::GetData();
+    }
+    void ForEach( CONCAT( FnForEach_, SbErrorStack ) fnForEach, void* pArgs = 0 )
+    {
+        _ForEach( 0, nA, (FnForEach_SvPtrarr)fnForEach, pArgs );
+    }
+    void ForEach( sal_uInt16 nS, sal_uInt16 nE,
+                    CONCAT( FnForEach_, SbErrorStack ) fnForEach, void* pArgs = 0 )
+    {
+        _ForEach( nS, nE, (FnForEach_SvPtrarr)fnForEach, pArgs );
+    }
+    SbErrorStackEntry* operator[]( sal_uInt16 nP )const  {
+        return (SbErrorStackEntry*)SvPtrarr::operator[](nP); }
+    SbErrorStackEntry* GetObject( sal_uInt16 nP )const  {
+        return (SbErrorStackEntry*)SvPtrarr::GetObject(nP); }
+
+    sal_uInt16 GetPos( const SbErrorStackEntry* & aE ) const {
+        return SvPtrarr::GetPos((const VoidPtr &)aE);
+    }
+    void DeleteAndDestroy( sal_uInt16 nP, sal_uInt16 nL=1 );
+private:
+    BASIC_DLLPRIVATE SbErrorStack( const SbErrorStack& );
+    BASIC_DLLPRIVATE SbErrorStack& operator=( const SbErrorStack& );
+};
 
 
 struct SbiGlobals
@@ -135,7 +185,7 @@ struct SbiGlobals
 
 // Utility-Makros und -Routinen
 
-SbiGlobals* GetSbData();
+BASIC_DLLPUBLIC SbiGlobals* GetSbData();
 
 #define	pINST		GetSbData()->pInst
 #define pMOD		GetSbData()->pMod
diff --git a/basic/source/runtime/makefile.mk b/basic/source/runtime/makefile.mk
deleted file mode 100755
index 8006642..0000000
--- a/basic/source/runtime/makefile.mk
+++ /dev/null
@@ -1,84 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=runtime
-
-ENABLE_EXCEPTIONS = TRUE
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-
-# --- Allgemein -----------------------------------------------------------
-
-SLOFILES=	\
-    $(SLO)$/basrdll.obj	\
-    $(SLO)$/comenumwrapper.obj	\
-    $(SLO)$/inputbox.obj\
-    $(SLO)$/runtime.obj	\
-    $(SLO)$/step0.obj	\
-    $(SLO)$/step1.obj	\
-    $(SLO)$/step2.obj	\
-    $(SLO)$/iosys.obj	\
-    $(SLO)$/stdobj.obj	\
-    $(SLO)$/stdobj1.obj	\
-    $(SLO)$/methods.obj	\
-    $(SLO)$/methods1.obj\
-    $(SLO)$/props.obj	\
-    $(SLO)$/ddectrl.obj \
-    $(SLO)$/sbdiagnose.obj
-
-.IF "$(GUI)$(CPU)" == "WNTI"
-SLOFILES+= \
-    $(SLO)$/dllmgr-x86.obj
-.ELIF "$(GUI)$(CPU)" == "WNTX"
-SLOFILES+= \
-    $(SLO)$/dllmgr-x64.obj
-.ELSE
-SLOFILES+= \
-    $(SLO)$/dllmgr-none.obj
-.ENDIF
-.IF "$(GUI)$(COM)$(CPU)" == "WNTMSCI"
-SLOFILES+= \
-    $(SLO)$/wnt-x86.obj
-.ELIF "$(GUI)$(COM)$(CPU)" == "WNTGCCI"
-SLOFILES+= \
-    $(SLO)$/wnt-mingw.obj
-.ENDIF
-
-# --- Targets -------------------------------------------------------------
-
-.INCLUDE :  target.mk
-
-$(SLO)$/%.obj: %.s
-#kendy: Cut'n'paste from bridges/source/cpp_uno/mingw_intel/makefile.mk
-    $(CC) -c -o $(SLO)$/$(@:b).obj $<
-    touch $@
diff --git a/basic/source/sample/makefile.mk b/basic/source/sample/makefile.mk
deleted file mode 100755
index 5261f13..0000000
--- a/basic/source/sample/makefile.mk
+++ /dev/null
@@ -1,61 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=sample
-
-# --- Settings ------------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# --- Allgemein ------------------------------------------------------------
-
-CXXFILES = \
-    object.cxx 		\
-    collelem.cxx
-
-EXCEPTIONSFILES= \
-    $(OBJ)$/object.obj 	\
-    $(OBJ)$/collelem.obj
-
-OBJFILES = \
-    $(OBJ)$/object.obj 	\
-    $(OBJ)$/collelem.obj
-
-
-LIBTARGET = NO
-
-LIB1TARGET=$(LB)$/sample.lib
-LIB1ARCHIV=$(LB)$/libsample.a
-
-LIB1OBJFILES = $(OBJFILES)
-
-# --- Targets ------------------------------------------------------------
-
-.INCLUDE :  target.mk
diff --git a/basic/source/sbx/makefile.mk b/basic/source/sbx/makefile.mk
deleted file mode 100755
index 332c6a0..0000000
--- a/basic/source/sbx/makefile.mk
+++ /dev/null
@@ -1,77 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=sbx
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-
-# --- Allgemein -----------------------------------------------------------
-
-SRS1NAME=$(TARGET)
-SRC1FILES=	format.src
-
-SLOFILES=	\
-    $(EXCEPTIONSFILES)	\
-    $(SLO)$/sbxbase.obj		\
-    $(SLO)$/sbxbool.obj		\
-    $(SLO)$/sbxbyte.obj		\
-    $(SLO)$/sbxchar.obj		\
-    $(SLO)$/sbxcoll.obj		\
-    $(SLO)$/sbxdec.obj		\
-    $(SLO)$/sbxform.obj		\
-    $(SLO)$/sbxint.obj 		\
-    $(SLO)$/sbxlng.obj 		\
-    $(SLO)$/sbxmstrm.obj	\
-    $(SLO)$/sbxobj.obj		\
-    $(SLO)$/sbxres.obj  	\
-    $(SLO)$/sbxsng.obj 		\
-    $(SLO)$/sbxuint.obj		\
-    $(SLO)$/sbxulng.obj		\
-    $(SLO)$/sbxvar.obj
-
-
-EXCEPTIONSFILES=	\
-    $(SLO)$/sbxarray.obj	\
-    $(SLO)$/sbxcurr.obj 	\
-    $(SLO)$/sbxdate.obj		\
-    $(SLO)$/sbxdbl.obj 		\
-    $(SLO)$/sbxexec.obj		\
-    $(SLO)$/sbxscan.obj 	\
-    $(SLO)$/sbxstr.obj 		\
-    $(SLO)$/sbxvalue.obj	\
-
-# --- Targets -------------------------------------------------------------
-
-.INCLUDE :  target.mk
-
-
diff --git a/basic/source/uno/makefile.mk b/basic/source/uno/makefile.mk
deleted file mode 100755
index 52e7f70..0000000
--- a/basic/source/uno/makefile.mk
+++ /dev/null
@@ -1,49 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=uno
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings ------------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-SLOFILES= \
-    $(SLO)$/namecont.obj \
-    $(SLO)$/scriptcont.obj \
-    $(SLO)$/dlgcont.obj \
-    $(SLO)$/sbmodule.obj \
-    $(SLO)$/sbservices.obj \
-    $(SLO)$/modsizeexceeded.obj
-
-# --- Targets --------------------------------------------------------------
-
-.INCLUDE :  target.mk
diff --git a/basic/util/makefile.mk b/basic/util/makefile.mk
deleted file mode 100755
index ad3bd67..0000000
--- a/basic/util/makefile.mk
+++ /dev/null
@@ -1,153 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-# 
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org.  If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..
-
-PRJNAME=basic
-TARGET=sb
-#basic.hid generieren
-GEN_HID=TRUE
-
-# --- Settings ---------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# --- Allgemein ---------------------------------------------------
-
-LIB1TARGET=$(SLB)$/sb.lib
-LIB1FILES=		\
-    $(SLB)$/basicmgr.lib \
-    $(SLB)$/classes.lib \
-    $(SLB)$/comp.lib \
-    $(SLB)$/uno.lib \
-    $(SLB)$/runtime.lib \
-    $(SLB)$/sbx.lib
-
-SHL1TARGET= sb$(DLLPOSTFIX)
-.IF "$(COM)" == "MSC"
-SHL1IMPLIB= basic
-.ELSE
-SHL1IMPLIB= sb$(DLLPOSTFIX)
-.ENDIF
-
-SHL1STDLIBS= \
-            $(CPPULIB) \
-            $(CPPUHELPERLIB) \
-            $(TOOLSLIB) \
-            $(SVTOOLLIB) \
-            $(SVLLIB)	\
-            $(VCLLIB) \
-            $(SALLIB) \
-            $(SALHELPERLIB) \
-            $(COMPHELPERLIB) \
-            $(UNOTOOLSLIB) \
-            $(SOTLIB) \
-            $(XMLSCRIPTLIB)
-
-# Uncomment the following line if DBG_TRACE_PROFILING is active in source/inc/sbtrace.hxx
-# SHL1STDLIBS+=$(CANVASTOOLSLIB)
-
-.IF "$(GUI)"=="WNT"
-SHL1STDLIBS+=	\
-    $(UWINAPILIB)	\
-    $(OLEAUT32LIB)
-.ENDIF # WNT
-
-.IF "$(GUI)" != "UNX"
-.IF "$(COM)" != "GCC"
-SHL1OBJS=	\
-    $(SLO)$/sb.obj
-.ENDIF
-.ENDIF
-
-SHL1DEF=	$(MISC)$/$(SHL1TARGET).def
-SHL1LIBS=	$(SLB)$/sb.lib
-
-DEF1NAME	=$(SHL1TARGET)
-DEF1DEPN	=	\
-    $(MISC)$/$(SHL1TARGET).flt
-
-DEFLIB1NAME	=sb
-DEF1DES		=StarBasic
-
-
-RES1TARGET=$(PRJNAME)
-SRS1FILES= \
-        $(SRS)$/classes.srs \
-        $(SRS)$/sbx.srs
-
-# --- TESTTOOL IDE ------------------------------------------------------
-# The resources are linked here
-
-RESLIB1NAME=stt
-RESLIB1IMAGES=$(PRJ)$/res
-RESLIB1SRSFILES= \
-        $(SRS)$/app.srs
-        
-RESLIB2NAME=sb
-RESLIB2IMAGES=$(PRJ)$/res
-RESLIB2SRSFILES= \
-        $(SRS)$/classes.srs \
-        $(SRS)$/sbx.srs
-########## remove sbx.srx (and this line) when issue i53795 is fixed
-
-# --- Targets -----------------------------------------------------------
-
-.INCLUDE :  target.mk
- 
-#-------------------------------------------------------------------------
-#								Windows NT
-#-------------------------------------------------------------------------
-#
-#					default targets aus target.mk
-#
-
-# --- Basic-Filter-Datei ---
-
-$(MISC)$/$(SHL1TARGET).flt: makefile.mk
-    @echo ------------------------------
-    @echo Making: $@
-    @echo WEP > $@
-    @echo LIBMAIN >> $@
-    @echo LibMain >> $@
-    @echo Sbi >> $@
-    @echo SvRTL >> $@
-    @echo SbRtl_ >> $@
-    @echo exception >> $@
-    @echo bad_alloc >> $@
-    @echo __CT >> $@
-
-$(SRS)$/basic.srs:
-    $(TYPE) $(SRS)$/classes.srs + $(SRS)$/runtime.srs + $(SRS)$/sbx.srs > $@
-
-ALLTAR : $(MISC)/sb.component
-
-$(MISC)/sb.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
-        sb.component
-    $(XSLTPROC) --nonet --stringparam uri \
-        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
-        $(SOLARENV)/bin/createcomponent.xslt sb.component


More information about the Libreoffice-commits mailing list