[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 3 commits - basic/AllLangResTarget_sb.mk basic/inc basic/Library_sb.mk basic/Makefile basic/Module_basic.mk basic/Package_inc.mk basic/prj basic/source basic/StaticLibrary_sample.mk basic/util Module_ooo.mk postprocess/packcomponents Repository.mk solenv/gbuild

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Oct 5 20:09:07 UTC 2018


 Module_ooo.mk                              |    2 
 Repository.mk                              |    1 
 basic/AllLangResTarget_sb.mk               |   44 +---
 basic/Library_sb.mk                        |  163 ++++++++++++++++
 basic/Makefile                             |   27 --
 basic/Module_basic.mk                      |   27 --
 basic/Package_inc.mk                       |   60 ++++++
 basic/StaticLibrary_sample.mk              |   45 ++++
 basic/inc/basic/basicdllapi.h              |   37 +++
 basic/inc/basic/basicmanagerrepository.hxx |    6 
 basic/inc/basic/basicrt.hxx                |    7 
 basic/inc/basic/basmgr.hxx                 |   11 -
 basic/inc/basic/basrdll.hxx                |    3 
 basic/inc/basic/modsizeexceeded.hxx        |    3 
 basic/inc/basic/mybasic.hxx                |    5 
 basic/inc/basic/process.hxx                |    3 
 basic/inc/basic/sbdef.hxx                  |    7 
 basic/inc/basic/sbmeth.hxx                 |    5 
 basic/inc/basic/sbmod.hxx                  |    5 
 basic/inc/basic/sbobjmod.hxx               |    3 
 basic/inc/basic/sbprop.hxx                 |    5 
 basic/inc/basic/sbstar.hxx                 |    3 
 basic/inc/basic/sbstdobj.hxx               |    9 
 basic/inc/basic/sbuno.hxx                  |    9 
 basic/inc/basic/sbx.hxx                    |   15 -
 basic/inc/basic/sbxbase.hxx                |    5 
 basic/inc/basic/sbxcore.hxx                |    5 
 basic/inc/basic/sbxfac.hxx                 |    3 
 basic/inc/basic/sbxform.hxx                |    3 
 basic/inc/basic/sbxmeth.hxx                |    3 
 basic/inc/basic/sbxmstrm.hxx               |    3 
 basic/inc/basic/sbxobj.hxx                 |    3 
 basic/inc/basic/sbxprop.hxx                |    3 
 basic/inc/basic/sbxvar.hxx                 |   11 -
 basic/inc/basic/vbahelper.hxx              |   11 -
 basic/inc/pch/precompiled_sample.cxx       |   25 ++
 basic/inc/pch/precompiled_sample.hxx       |  284 +++++++++++++++++++++++++++++
 basic/prj/build.lst                        |   12 -
 basic/prj/d.lst                            |   28 --
 basic/prj/makefile.mk                      |   41 ++--
 basic/source/classes/makefile.mk           |   72 -------
 basic/source/comp/makefile.mk              |   57 -----
 basic/source/runtime/makefile.mk           |   69 -------
 basic/source/sample/collelem.cxx           |    2 
 basic/source/sample/object.cxx             |    2 
 basic/source/sbx/makefile.mk               |   73 -------
 basic/util/makefile.mk                     |  143 --------------
 postprocess/packcomponents/makefile.mk     |    2 
 solenv/gbuild/Library.mk                   |    2 
 solenv/gbuild/LinkTarget.mk                |    2 
 solenv/gbuild/platform/freebsd.mk          |    1 
 solenv/gbuild/platform/linux.mk            |    1 
 solenv/gbuild/platform/macosx.mk           |    1 
 solenv/gbuild/platform/os2.mk              |    4 
 solenv/gbuild/platform/solaris.mk          |    1 
 solenv/gbuild/platform/windows.mk          |   22 +-
 solenv/gbuild/platform/winmingw.mk         |    4 
 57 files changed, 790 insertions(+), 613 deletions(-)

New commits:
commit 87ea7a4e2ac78429acda13c11c0f3d91be40f4ef
Author:     Damjan Jovanovic <damjan at apache.org>
AuthorDate: Fri Oct 5 19:10:19 2018 +0000
Commit:     Damjan Jovanovic <damjan at apache.org>
CommitDate: Fri Oct 5 19:10:19 2018 +0000

    Update Module_ooo.mk with the recently ported modules.
    
    Patch by: me

diff --git a/Module_ooo.mk b/Module_ooo.mk
index d2b40d35658e..30b108ecc727 100644
--- a/Module_ooo.mk
+++ b/Module_ooo.mk
@@ -33,6 +33,7 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
     basctl \
     basebmp \
     basegfx \
+    basic \
     binaryurp \
     canvas \
     codemaker \
@@ -54,6 +55,7 @@ $(eval $(call gb_Module_add_moduledirs,ooo,\
     framework \
     i18nutil \
     idl \
+    idlc \
     io \
     javaunohelper \
     jurt \
commit 76f5b94c87196281ad9251a60c53b76b61d1018e
Author:     Damjan Jovanovic <damjan at apache.org>
AuthorDate: Fri Oct 5 18:57:27 2018 +0000
Commit:     Damjan Jovanovic <damjan at apache.org>
CommitDate: Fri Oct 5 18:57:27 2018 +0000

    Port main/basic to gbuild.
    
    Patch by: me

diff --git a/Repository.mk b/Repository.mk
index ef063de99f6d..974256b30798 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -280,6 +280,7 @@ $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
     cosv \
     ooopathutils \
     salcpprt \
+    sample \
     sldshw_s \
     vclmain \
     udm \
diff --git a/basic/source/sample/makefile.mk b/basic/AllLangResTarget_sb.mk
similarity index 63%
rename from basic/source/sample/makefile.mk
rename to basic/AllLangResTarget_sb.mk
index 0fe5314a6d71..630b7c7e7614 100644
--- a/basic/source/sample/makefile.mk
+++ b/basic/AllLangResTarget_sb.mk
@@ -21,34 +21,26 @@
 
 
 
-PRJ=..$/..
+$(eval $(call gb_AllLangResTarget_AllLangResTarget,sb))
 
-PRJNAME=basic
-TARGET=sample
+$(eval $(call gb_AllLangResTarget_set_reslocation,sb,basic))
 
-# --- Settings ------------------------------------------------------------
+$(eval $(call gb_AllLangResTarget_add_srs,sb,\
+	sb/res \
+))
 
-.INCLUDE :  settings.mk
+$(eval $(call gb_SrsTarget_SrsTarget,sb/res))
 
-# --- Allgemein ------------------------------------------------------------
+$(eval $(call gb_SrsTarget_set_include,sb/res,\
+	$$(INCLUDE) \
+	-I$(OUTDIR)/inc \
+	-I$(WORKDIR)/inc/basic \
+	-I$(SRCDIR)/basic/inc \
+	-I$(SRCDIR)/basic/inc/basic \
+	-I$(SRCDIR)/basic/source/inc \
+))
 
-CXXFILES = \
-    object.cxx 		\
-    collelem.cxx
-
-
-OBJFILES = \
-    $(OBJ)$/object.obj 	\
-    $(OBJ)$/collelem.obj
-
-
-LIBTARGET = NO
-
-LIB1TARGET=$(LB)$/sample.lib
-LIB1ARCHIV=$(LB)$/libsample.a
-
-LIB1OBJFILES = $(OBJFILES)
-
-# --- Targets ------------------------------------------------------------
-
-.INCLUDE :  target.mk
+$(eval $(call gb_SrsTarget_add_files,sb/res,\
+	basic/source/classes/sb.src \
+	basic/source/sbx/format.src \
+))
diff --git a/basic/Library_sb.mk b/basic/Library_sb.mk
new file mode 100644
index 000000000000..5193f56017f2
--- /dev/null
+++ b/basic/Library_sb.mk
@@ -0,0 +1,163 @@
+###############################################################
+#  
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#  
+#    http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+#  
+###############################################################
+
+
+
+$(eval $(call gb_Library_Library,sb))
+
+$(eval $(call gb_Library_add_package_headers,sb,basic_inc))
+
+$(eval $(call gb_Library_add_precompiled_headers,sb,$(SRCDIR)/basic/inc/pch/precompiled_basic))
+
+$(eval $(call gb_Library_set_componentfile,sb,basic/util/sb))
+
+$(eval $(call gb_Library_add_api,sb,\
+	offapi \
+	oovbaapi \
+	udkapi \
+))
+
+$(eval $(call gb_Library_add_defs,sb,\
+        -DBASIC_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_set_include,sb,\
+	-I$(SRCDIR)/basic/inc \
+	-I$(SRCDIR)/basic/inc/pch \
+	-I$(SRCDIR)/basic/source/inc \
+	$$(INCLUDE) \
+))
+
+$(eval $(call gb_Library_add_linked_libs,sb,\
+        comphelper \
+        cppu \
+        cppuhelper \
+        sal \
+        salhelper \
+        sot \
+        svl \
+        svt \
+        tl \
+        vcl \
+        vos3 \
+        stl \
+        utl \
+        xcr \
+        $(gb_STDLIBS) \
+))
+
+ifeq ($(GUI),WNT)
+$(eval $(call gb_Library_add_linked_libs,sb,\
+	oleaut32 \
+	uwinapi \
+))
+endif
+
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/basmgr/basmgr \
+	basic/source/basmgr/basicmanagerrepository \
+	basic/source/basmgr/vbahelper \
+	basic/source/classes/sb \
+	basic/source/classes/sbxmod \
+	basic/source/classes/image \
+	basic/source/classes/sbintern \
+	basic/source/classes/sbunoobj \
+	basic/source/classes/propacc \
+	basic/source/classes/disas \
+	basic/source/classes/errobject \
+	basic/source/classes/eventatt \
+	basic/source/comp/codegen \
+	basic/source/comp/dim \
+	basic/source/comp/exprtree \
+	basic/source/comp/parser \
+	basic/source/comp/sbcomp \
+	basic/source/runtime/basrdll \
+	basic/source/runtime/comenumwrapper \
+	basic/source/runtime/inputbox \
+	basic/source/runtime/runtime \
+	basic/source/runtime/step0 \
+	basic/source/runtime/step1 \
+	basic/source/runtime/step2 \
+	basic/source/runtime/iosys \
+	basic/source/runtime/stdobj \
+	basic/source/runtime/stdobj1 \
+	basic/source/runtime/methods \
+	basic/source/runtime/methods1 \
+	basic/source/runtime/props \
+	basic/source/runtime/ddectrl \
+	basic/source/runtime/dllmgr \
+	basic/source/runtime/sbdiagnose \
+	basic/source/sbx/sbxarray \
+	basic/source/uno/namecont \
+	basic/source/uno/scriptcont \
+	basic/source/uno/dlgcont \
+	basic/source/uno/sbmodule \
+	basic/source/uno/sbservices \
+	basic/source/uno/modsizeexceeded \
+))
+
+$(eval $(call gb_Library_add_exception_objects,sb,\
+	basic/source/comp/buffer \
+	basic/source/comp/exprgen \
+	basic/source/comp/exprnode \
+	basic/source/comp/io \
+	basic/source/comp/loops \
+	basic/source/comp/scanner \
+	basic/source/comp/symtbl \
+	basic/source/comp/token \
+	basic/source/sbx/sbxbase \
+	basic/source/sbx/sbxres \
+	basic/source/sbx/sbxvalue \
+	basic/source/sbx/sbxvals \
+	basic/source/sbx/sbxvar \
+	basic/source/sbx/sbxobj \
+	basic/source/sbx/sbxcoll \
+	basic/source/sbx/sbxexec \
+	basic/source/sbx/sbxint \
+	basic/source/sbx/sbxlng \
+	basic/source/sbx/sbxsng \
+	basic/source/sbx/sbxmstrm \
+	basic/source/sbx/sbxdbl \
+	basic/source/sbx/sbxcurr \
+	basic/source/sbx/sbxdate \
+	basic/source/sbx/sbxstr \
+	basic/source/sbx/sbxbool \
+	basic/source/sbx/sbxchar \
+	basic/source/sbx/sbxbyte \
+	basic/source/sbx/sbxuint \
+	basic/source/sbx/sbxulng \
+	basic/source/sbx/sbxform \
+	basic/source/sbx/sbxscan \
+	basic/source/sbx/sbxdec \
+))
+
+
+ifeq ($(GUI)$(COM)$(CPU),WNTMSCI)
+$(eval $(call gb_Library_add_asmobjects,sb,\
+	basic/source/runtime/wnt \
+))
+else ifeq ($(GUI)$(COM)$(CPU),WNTGCCI)
+$(eval $(call gb_Library_add_asmobjects,sb,\
+	basic/source/runtime/wnt-mingw \
+))
+endif
+
+# vim: set noet sw=4 ts=4:
diff --git a/basic/source/basmgr/makefile.mk b/basic/Makefile
similarity index 67%
rename from basic/source/basmgr/makefile.mk
rename to basic/Makefile
index c6de4e3a2f75..c1d144cbd4c9 100644
--- a/basic/source/basmgr/makefile.mk
+++ b/basic/Makefile
@@ -19,25 +19,14 @@
 #  
 #**************************************************************
 
+ifeq ($(strip $(SOLARENV)),)
+$(error No environment set!)
+endif
 
-PRJ=..$/..
+gb_PARTIALBUILD := T
+GBUILDDIR := $(SOLARENV)/gbuild
+include $(GBUILDDIR)/gbuild.mk
 
-PRJNAME=basic
-TARGET=basicmgr
-ENABLE_EXCEPTIONS=TRUE
+$(eval $(call gb_Module_make_global_targets,$(shell ls $(dir $(realpath $(firstword $(MAKEFILE_LIST))))/Module*.mk)))
 
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-
-# --- Allgemein -----------------------------------------------------------
-
-SLOFILES= \
-        $(SLO)$/basmgr.obj \
-        $(SLO)$/basicmanagerrepository.obj\
-        $(SLO)$/vbahelper.obj
-
-# --- Targets -------------------------------------------------------------
-
-.INCLUDE :  target.mk
+# vim: set noet sw=4 ts=4:
diff --git a/basic/source/uno/makefile.mk b/basic/Module_basic.mk
similarity index 68%
rename from basic/source/uno/makefile.mk
rename to basic/Module_basic.mk
index da73c6e0efd3..26cce3f6265e 100644
--- a/basic/source/uno/makefile.mk
+++ b/basic/Module_basic.mk
@@ -21,25 +21,14 @@
 
 
 
-PRJ=..$/..
+$(eval $(call gb_Module_Module,basic))
 
-PRJNAME=basic
-TARGET=uno
+$(eval $(call gb_Module_add_targets,basic,\
+	AllLangResTarget_sb \
+	Library_sb \
+	Package_inc \
+	StaticLibrary_sample \
+))
 
-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
+# vim: set noet sw=4 ts=4:
diff --git a/basic/Package_inc.mk b/basic/Package_inc.mk
new file mode 100644
index 000000000000..3ba72a874ebf
--- /dev/null
+++ b/basic/Package_inc.mk
@@ -0,0 +1,60 @@
+#**************************************************************
+#  
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#  
+#    http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the 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/sbx.hxx,basic/sbx.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/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))
diff --git a/basic/StaticLibrary_sample.mk b/basic/StaticLibrary_sample.mk
new file mode 100644
index 000000000000..a0d651b41680
--- /dev/null
+++ b/basic/StaticLibrary_sample.mk
@@ -0,0 +1,45 @@
+###############################################################
+#  
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#  
+#    http://www.apache.org/licenses/LICENSE-2.0
+#  
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+#  
+###############################################################
+
+
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,sample))
+
+$(eval $(call gb_StaticLibrary_add_precompiled_header,sample,$(SRCDIR)/basic/inc/pch/precompiled_sample))
+
+$(eval $(call gb_StaticLibrary_add_api,sample,\
+	offapi \
+	udkapi \
+))
+
+$(eval $(call gb_StaticLibrary_set_include,sample,\
+	-I$(SRCDIR)/basic/inc \
+	-I$(SRCDIR)/basic/inc/pch \
+	-I$(SRCDIR)/basic/source/inc \
+	$$(INCLUDE) \
+))
+
+$(eval $(call gb_StaticLibrary_add_noexception_objects,sample,\
+	basic/source/sample/collelem \
+	basic/source/sample/object \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/basic/inc/basic/basicdllapi.h b/basic/inc/basic/basicdllapi.h
new file mode 100644
index 000000000000..722120a96419
--- /dev/null
+++ b/basic/inc/basic/basicdllapi.h
@@ -0,0 +1,37 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+
+
+#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 */
+
diff --git a/basic/inc/basic/basicmanagerrepository.hxx b/basic/inc/basic/basicmanagerrepository.hxx
index c3200228ee38..aba9560399ca 100644
--- a/basic/inc/basic/basicmanagerrepository.hxx
+++ b/basic/inc/basic/basicmanagerrepository.hxx
@@ -24,6 +24,8 @@
 #ifndef BASICMANAGERREPOSITORY_HXX
 #define BASICMANAGERREPOSITORY_HXX
 
+#include "basic/basicdllapi.h"
+
 /** === begin UNO includes === **/
 #include <com/sun/star/frame/XModel.hpp>
 #include <com/sun/star/embed/XStorage.hpp>
@@ -42,7 +44,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
@@ -64,7 +66,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 dc00be0cb74e..9f9c004b4f6a 100644
--- a/basic/inc/basic/basicrt.hxx
+++ b/basic/inc/basic/basicrt.hxx
@@ -25,11 +25,12 @@
 
 #include <tools/string.hxx>
 #include <basic/sbxdef.hxx>
+#include "basic/basicdllapi.h"
 
 class SbiRuntime;
 class SbErrorStackEntry;
 
-class BasicRuntime
+class BASIC_DLLPUBLIC BasicRuntime
 {
     SbiRuntime* pRun;
 public:
@@ -45,7 +46,7 @@ public:
     BasicRuntime GetNextRuntime();
 };
 
-class BasicErrorStackEntry
+class BASIC_DLLPUBLIC BasicErrorStackEntry
 {
     SbErrorStackEntry *pEntry;
 public:
@@ -58,7 +59,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 64678ca8c6a6..ed6ed2c5f280 100644
--- a/basic/inc/basic/basmgr.hxx
+++ b/basic/inc/basic/basmgr.hxx
@@ -26,13 +26,14 @@
 
 #include <tools/string.hxx>
 #include <svl/brdcst.hxx>
+#include "basic/basicdllapi.h"
 #include <basic/sbstar.hxx>
 #include <com/sun/star/script/XStorageBasedLibraryContainer.hpp>
 #include <com/sun/star/script/XStarBasicAccess.hpp>
 
 
 // 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 );
 
 
@@ -61,7 +62,7 @@ class SotStorage;
 
 #define BASERR_REASON_STDLIB            0x0100
 
-class BasicError
+class BASIC_DLLPUBLIC BasicError
 {
 private:
     sal_uIntPtr nErrorId;
@@ -92,7 +93,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;
@@ -129,7 +130,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;
@@ -259,6 +260,6 @@ private:
                                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 85d32c9ba24d..0ef0a7ce47f6 100644
--- a/basic/inc/basic/basrdll.hxx
+++ b/basic/inc/basic/basrdll.hxx
@@ -27,8 +27,9 @@
 class ResMgr;
 
 #include <vcl/accel.hxx>
+#include "basic/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 6f63f90665ce..eaf365f2c49e 100644
--- a/basic/inc/basic/modsizeexceeded.hxx
+++ b/basic/inc/basic/modsizeexceeded.hxx
@@ -26,8 +26,9 @@
 
 #include <com/sun/star/task/XInteractionHandler.hpp>
 #include <cppuhelper/implbase1.hxx>
+#include "basic/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 90467dc06198..4f1a2cd63a57 100644
--- a/basic/inc/basic/mybasic.hxx
+++ b/basic/inc/basic/mybasic.hxx
@@ -25,12 +25,13 @@
 #define _MYBASIC_HXX
 
 #include <basic/sbstar.hxx>
+#include "basic/basicdllapi.h"
 
 class BasicApp;
 class AppBasEd;
 class ErrorEntry;
 
-class BasicError {
+class BASIC_DLLPUBLIC BasicError {
     AppBasEd* pWin;
     sal_uInt16  nLine, nCol1, nCol2;
     String aText;
@@ -44,7 +45,7 @@ DECLARE_LIST( ErrorList, BasicError* )
 #define SBXID_MYBASIC   0x594D      // MyBasic: MY
 #define SBXCR_TEST      0x54534554  // TEST
 
-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 fe373907aba8..290d9127ac35 100644
--- a/basic/inc/basic/process.hxx
+++ b/basic/inc/basic/process.hxx
@@ -26,13 +26,14 @@
 
 #include <tools/string.hxx>
 #include <vos/process.hxx>
+#include "basic/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
     vos::OArgumentList *pArgumentList;
diff --git a/basic/inc/basic/sbdef.hxx b/basic/inc/basic/sbdef.hxx
index 80e5fbba934c..556bc1cd8619 100644
--- a/basic/inc/basic/sbdef.hxx
+++ b/basic/inc/basic/sbdef.hxx
@@ -25,6 +25,7 @@
 #define _SB_SBDEF_HXX
 
 #include <basic/sbxdef.hxx>
+#include "basic/basicdllapi.h"
 #include <svl/svarray.hxx>
 
 #define _BASIC_TEXTPORTIONS
@@ -65,17 +66,17 @@ class SbTextPortions;
 
 // 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;
-String getBasicObjectTypeName( SbxObject* pObj );
+BASIC_DLLPUBLIC String 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 ebe1d07eaf06..31ec6a7a0e61 100644
--- a/basic/inc/basic/sbmeth.hxx
+++ b/basic/inc/basic/sbmeth.hxx
@@ -25,13 +25,14 @@
 #define _SB_SBMETH_HXX
 
 #include <tools/errcode.hxx>
+#include "basic/basicdllapi.h"
 #include <basic/sbxmeth.hxx>
 #include <basic/sbdef.hxx>
 
 class SbModule;
 class SbMethodImpl;
 
-class SbMethod : public SbxMethod
+class BASIC_DLLPUBLIC SbMethod : public SbxMethod
 {
     friend class SbiRuntime;
     friend class SbiFactory;
@@ -77,7 +78,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 3632dc9d5d76..5b3f9fa62494 100644
--- a/basic/inc/basic/sbmod.hxx
+++ b/basic/inc/basic/sbmod.hxx
@@ -25,6 +25,7 @@
 #define _SB_SBMOD_HXX
 
 #include <com/sun/star/script/XInvocation.hpp>
+#include "basic/basicdllapi.h"
 #include <basic/sbdef.hxx>
 #include <basic/sbxobj.hxx>
 #include <basic/sbxdef.hxx>
@@ -47,7 +48,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;
@@ -156,7 +157,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 1c5f2bc6a352..23bc77fea225 100644
--- a/basic/inc/basic/sbobjmod.hxx
+++ b/basic/inc/basic/sbobjmod.hxx
@@ -24,6 +24,7 @@
 #define _SB_OBJMOD_HXX
 
 #include <rtl/ref.hxx>
+#include "basic/basicdllapi.h"
 #include <basic/sbmod.hxx>
 #include <basic/sbstar.hxx>
 #include <com/sun/star/script/ModuleInfo.hpp>
@@ -35,7 +36,7 @@ namespace css = ::com::sun::star;
 
 // Basic-Module for excel object.
 
-class SbObjModule : public SbModule
+class BASIC_DLLPUBLIC SbObjModule : public SbModule
 {
     SbObjModule( const SbObjModule& );
     SbObjModule();
diff --git a/basic/inc/basic/sbprop.hxx b/basic/inc/basic/sbprop.hxx
index d41013ccc750..5d694a90e35c 100644
--- a/basic/inc/basic/sbprop.hxx
+++ b/basic/inc/basic/sbprop.hxx
@@ -26,10 +26,11 @@
 
 #include <basic/sbxprop.hxx>
 #include <basic/sbdef.hxx>
+#include "basic/basicdllapi.h"
 
 class SbModule;
 
-class SbProperty : public SbxProperty
+class BASIC_DLLPUBLIC SbProperty : public SbxProperty
 {
     friend class SbiFactory;
     friend class SbModule;
@@ -49,7 +50,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 0de7831d5120..1d267338fa63 100644
--- a/basic/inc/basic/sbstar.hxx
+++ b/basic/inc/basic/sbstar.hxx
@@ -24,6 +24,7 @@
 #ifndef _SB_SBSTAR_HXX
 #define _SB_SBSTAR_HXX
 
+#include "basic/basicdllapi.h"
 #include <basic/sbx.hxx>
 #include <basic/sbxobj.hxx>
 #ifndef _RTL_USTRING_HXX
@@ -48,7 +49,7 @@ class DocBasicItem;
 
 class StarBASICImpl;
 
-class StarBASIC : public SbxObject
+class BASIC_DLLPUBLIC StarBASIC : public SbxObject
 {
     friend class SbiScanner;
     friend class SbiExpression; // Access to RTL
diff --git a/basic/inc/basic/sbstdobj.hxx b/basic/inc/basic/sbstdobj.hxx
index c04ade916a3e..1e0644908606 100644
--- a/basic/inc/basic/sbstdobj.hxx
+++ b/basic/inc/basic/sbstdobj.hxx
@@ -29,13 +29,14 @@
 #include <vcl/graph.hxx>
 #endif
 #include <basic/sbxfac.hxx>
+#include "basic/basicdllapi.h"
 class StarBASIC;
 class SbStdFactory;
 
 //--------------------
 // class SbStdFactory
 //--------------------
-class SbStdFactory : public SbxFactory
+class BASIC_DLLPUBLIC SbStdFactory : public SbxFactory
 {
 public:
     SbStdFactory();
@@ -46,7 +47,7 @@ public:
 //--------------------
 // class SbStdPicture
 //--------------------
-class SbStdPicture : public SbxObject
+class BASIC_DLLPUBLIC SbStdPicture : public SbxObject
 {
 protected:
     Graphic     aGraphic;
@@ -72,7 +73,7 @@ public:
 //-----------------
 // class SbStdFont
 //-----------------
-class SbStdFont : public SbxObject
+class BASIC_DLLPUBLIC SbStdFont : public SbxObject
 {
 protected:
     sal_Bool    bBold;
@@ -116,7 +117,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 0e4c4dbbbc2e..14a67699dcaa 100644
--- a/basic/inc/basic/sbuno.hxx
+++ b/basic/inc/basic/sbuno.hxx
@@ -24,20 +24,21 @@
 #ifndef _SB_SBUNO_HXX
 #define _SB_SBUNO_HXX
 
+#include "basic/basicdllapi.h"
 #include <basic/sbxobj.hxx>
 
 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 String& aName, const com::sun::star::uno::Any& aUnoObj_ );
+BASIC_DLLPUBLIC SbxObjectRef GetSbUnoObject( const String& aName, const com::sun::star::uno::Any& aUnoObj_ );
 
 // Force creation of all properties for debugging
-void createAllObjectProperties( SbxObject* pObj );
+BASIC_DLLPUBLIC void createAllObjectProperties( 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 7f4bae5f4d36..d7dd8f0c9f4f 100644
--- a/basic/inc/basic/sbx.hxx
+++ b/basic/inc/basic/sbx.hxx
@@ -30,6 +30,7 @@
 #include "svl/lstner.hxx"
 #include <basic/sbxdef.hxx>
 #include <basic/sbxform.hxx>
+#include "basic/basicdllapi.h"
 
 #ifndef __SBX_SBXOBJECT_HXX
 #include <basic/sbxobj.hxx>
@@ -86,7 +87,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;
@@ -121,7 +122,7 @@ public:
 #ifndef __SBX_SBXHINT_HXX
 #define __SBX_SBXHINT_HXX
 
-class SbxHint : public SfxSimpleHint
+class BASIC_DLLPUBLIC SbxHint : public SfxSimpleHint
 {
     SbxVariable* pVar;
 public:
@@ -136,7 +137,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();
@@ -163,7 +164,7 @@ 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;
@@ -221,7 +222,7 @@ struct SbxDim;
 
 class SbxDimArrayImpl;
 
-class SbxDimArray : public SbxArray
+class BASIC_DLLPUBLIC SbxDimArray : public SbxArray
 {
     SbxDimArrayImpl* mpSbxDimArrayImpl;   // Impl data
 
@@ -277,7 +278,7 @@ public:
 #ifndef __SBX_SBXCOLLECTION_HXX
 #define __SBX_SBXCOLLECTION_HXX
 
-class SbxCollection : public SbxObject
+class BASIC_DLLPUBLIC SbxCollection : public SbxObject
 {
     void Initialize();
 protected:
@@ -306,7 +307,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 9ad7a5576193..af2a23c36ad1 100644
--- a/basic/inc/basic/sbxbase.hxx
+++ b/basic/inc/basic/sbxbase.hxx
@@ -28,6 +28,7 @@
 #include "tools/list.hxx"
 #include "svl/svarray.hxx"
 #include <basic/sbxdef.hxx>
+#include "basic/basicdllapi.h"
 
 class SbxFactory;
 class SbxVariable;
@@ -37,7 +38,7 @@ SV_DECL_PTRARR_DEL(SbxFacs,SbxFactory*,5,5)
 DECLARE_LIST(SbxVarList_Impl, SbxVariable*)
 
 // AppData-Struktur for SBX:
-struct SbxAppData
+struct BASIC_DLLPUBLIC SbxAppData
 {
     SbxError            eSbxError;  // Error code
     SbxFacs             aFacs;      // Factories
@@ -51,6 +52,6 @@ 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 47ed192ee8d3..5940985093cd 100644
--- a/basic/inc/basic/sbxcore.hxx
+++ b/basic/inc/basic/sbxcore.hxx
@@ -28,6 +28,7 @@
 #include <tools/ref.hxx>
 #include <tools/debug.hxx>
 
+#include "basic/basicdllapi.h"
 #include <basic/sbxdef.hxx>
 
 class SvStream;
@@ -70,11 +71,11 @@ class SbxBase;
 class SbxFactory;
 class SbxObject;
 
-DBG_NAMEEX(SbxBase)
+DBG_NAMEEX_VISIBILITY(SbxBase, BASIC_DLLPUBLIC)
 
 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 224e6153cd5c..0f61cd0e94ed 100644
--- a/basic/inc/basic/sbxfac.hxx
+++ b/basic/inc/basic/sbxfac.hxx
@@ -24,6 +24,7 @@
 #ifndef __SBX_SBX_FACTORY_HXX
 #define __SBX_SBX_FACTORY_HXX
 
+#include "basic/basicdllapi.h"
 #include <basic/sbxdef.hxx>
 
 class SbxBase;
@@ -31,7 +32,7 @@ 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 d57d5471a049..1eca3a15724c 100644
--- a/basic/inc/basic/sbxform.hxx
+++ b/basic/inc/basic/sbxform.hxx
@@ -79,9 +79,10 @@
 */
 #define _with_sprintf   // use a)
 
+#include "basic/basicdllapi.h"
 #include <tools/string.hxx>
 
-class SbxBasicFormater {
+class BASIC_DLLPUBLIC SbxBasicFormater {
   public:
     // Constructor takes signs for decimal point, thousand separation sign
     // and necessary resource strings.
diff --git a/basic/inc/basic/sbxmeth.hxx b/basic/inc/basic/sbxmeth.hxx
index 7fa7eed6d097..817d10062b02 100644
--- a/basic/inc/basic/sbxmeth.hxx
+++ b/basic/inc/basic/sbxmeth.hxx
@@ -25,10 +25,11 @@
 #define __SBX_SBXMETHOD_HXX
 
 #include <basic/sbxvar.hxx>
+#include "basic/basicdllapi.h"
 
 class SbxMethodImpl;
 
-class SbxMethod : public SbxVariable
+class BASIC_DLLPUBLIC SbxMethod : public SbxVariable
 {
     SbxMethodImpl* mpSbxMethodImpl; // Impl data
     bool           mbIsRuntimeFunction;
diff --git a/basic/inc/basic/sbxmstrm.hxx b/basic/inc/basic/sbxmstrm.hxx
index 663411a53f31..270f243ed136 100644
--- a/basic/inc/basic/sbxmstrm.hxx
+++ b/basic/inc/basic/sbxmstrm.hxx
@@ -27,10 +27,11 @@
 #include <tools/stream.hxx>
 #include <basic/sbxdef.hxx>
 #include <basic/sbxcore.hxx>
+#include "basic/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 f78d453dcf59..214b4f6bc6ab 100644
--- a/basic/inc/basic/sbxobj.hxx
+++ b/basic/inc/basic/sbxobj.hxx
@@ -25,6 +25,7 @@
 #define _SBX_SBXOBJECT_HXX
 
 #include <svl/lstner.hxx>
+#include "basic/basicdllapi.h"
 #include <basic/sbxvar.hxx>
 
 ///////////////////////////////////////////////////////////////////////////
@@ -34,7 +35,7 @@ class SvDispatch;
 
 class SbxObjectImpl;
 
-class SbxObject : public SbxVariable, public SfxListener
+class BASIC_DLLPUBLIC SbxObject : public SbxVariable, public SfxListener
 {
     SbxObjectImpl* mpSbxObjectImpl; // Impl data
 
diff --git a/basic/inc/basic/sbxprop.hxx b/basic/inc/basic/sbxprop.hxx
index 660ddfca5dbd..0fb268c95427 100644
--- a/basic/inc/basic/sbxprop.hxx
+++ b/basic/inc/basic/sbxprop.hxx
@@ -24,11 +24,12 @@
 #ifndef __SBX_SBXPROPERTY_HXX
 #define __SBX_SBXPROPERTY_HXX
 
+#include "basic/basicdllapi.h"
 #include <basic/sbxvar.hxx>
 
 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 4103b0ad2a4d..4519ce7be75f 100644
--- a/basic/inc/basic/sbxvar.hxx
+++ b/basic/inc/basic/sbxvar.hxx
@@ -28,11 +28,12 @@
 #include <tools/string.hxx>
 #include <com/sun/star/bridge/oleautomation/Decimal.hpp>
 #include <basic/sbxcore.hxx>
+#include "basic/basicdllapi.h"
 
 #ifndef __SBX_64
 #define __SBX_64
 
-struct SbxINT64
+struct BASIC_DLLPUBLIC SbxINT64
 {
     sal_Int32 nHigh; sal_uInt32 nLow;
 
@@ -111,7 +112,7 @@ struct SbxINT64
                                     / CURRENCY_FACTOR; }
 };
 
-struct SbxUINT64
+struct BASIC_DLLPUBLIC SbxUINT64
 {
     sal_uInt32 nHigh; sal_uInt32 nLow;
     void Set(double n)
@@ -157,7 +158,7 @@ struct SbxUINT64
 class BigInt;
 class SbxDecimal;
 
-struct SbxValues
+struct BASIC_DLLPUBLIC SbxValues
 {
     union {
         sal_Unicode     nChar;
@@ -224,7 +225,7 @@ struct SbxValues;
 
 class SbxValueImpl;
 
-class SbxValue : public SbxBase
+class BASIC_DLLPUBLIC SbxValue : public SbxBase
 {
     SbxValueImpl* mpSbxValueImplImpl;   // Impl data
 
@@ -437,7 +438,7 @@ class SfxBroadcaster;
 class SbxVariableImpl;
 class StarBASIC;
 
-class SbxVariable : public SbxValue
+class BASIC_DLLPUBLIC SbxVariable : public SbxValue
 {
     friend class SbMethod;
 
diff --git a/basic/inc/basic/vbahelper.hxx b/basic/inc/basic/vbahelper.hxx
index 4f3018c33d21..7121318882e1 100644
--- a/basic/inc/basic/vbahelper.hxx
+++ b/basic/inc/basic/vbahelper.hxx
@@ -27,6 +27,7 @@
 #include <com/sun/star/container/XEnumeration.hpp>
 #include <com/sun/star/frame/XModel.hpp>
 #include <rtl/ustring.hxx>
+#include "basic/basicdllapi.h"
 
 namespace basic {
 namespace vba {
@@ -47,7 +48,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 );
 
 // ============================================================================
@@ -66,7 +67,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 );
 
@@ -87,7 +88,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 );
 
@@ -103,7 +104,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 );
 
@@ -120,7 +121,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/pch/precompiled_sample.cxx b/basic/inc/pch/precompiled_sample.cxx
new file mode 100644
index 000000000000..02f4696833f2
--- /dev/null
+++ b/basic/inc/pch/precompiled_sample.cxx
@@ -0,0 +1,25 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+
+
+#include "precompiled_sample.hxx"
+
diff --git a/basic/inc/pch/precompiled_sample.hxx b/basic/inc/pch/precompiled_sample.hxx
new file mode 100644
index 000000000000..4549056ffcf2
--- /dev/null
+++ b/basic/inc/pch/precompiled_sample.hxx
@@ -0,0 +1,284 @@
+/**************************************************************
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ *************************************************************/
+
+
+
+// MARKER(update_precomp.py): Generated on 2006-09-01 17:49:31.374198
+
+#ifdef PRECOMPILED_HEADERS
+
+//---MARKER---
+
+#include "com/sun/star/awt/XControl.hpp"
+#include "com/sun/star/awt/XControlContainer.hpp"
+#include "com/sun/star/awt/XControlModel.hpp"
+#include "com/sun/star/awt/XDialog.hpp"
+#include "com/sun/star/awt/XWindow.hpp"
+#include "com/sun/star/beans/MethodConcept.hpp"
+#include "com/sun/star/beans/PropertyAttribute.hpp"
+#include "com/sun/star/beans/PropertyConcept.hpp"
+#include "com/sun/star/beans/PropertyValue.hpp"
+#include "com/sun/star/beans/XExactName.hpp"
+#include "com/sun/star/beans/XIntrospection.hpp"
+#include "com/sun/star/beans/XIntrospectionAccess.hpp"
+#include "com/sun/star/beans/XMaterialHolder.hpp"
+#include "com/sun/star/beans/XPropertyAccess.hpp"
+#include "com/sun/star/beans/XPropertyContainer.hpp"
+#include "com/sun/star/beans/XPropertySet.hpp"
+#include "com/sun/star/beans/XPropertySetInfo.hpp"
+#include "com/sun/star/bridge/XBridge.hpp"
+#include "com/sun/star/bridge/XBridgeFactory.hpp"
+#include "com/sun/star/bridge/oleautomation/Currency.hpp"
+#include "com/sun/star/bridge/oleautomation/Date.hpp"
+#include "com/sun/star/bridge/oleautomation/Decimal.hpp"
+#include "com/sun/star/bridge/oleautomation/NamedArgument.hpp"
+#include "com/sun/star/container/XContainer.hpp"
+#include "com/sun/star/container/XEnumeration.hpp"
+#include "com/sun/star/container/XEnumerationAccess.hpp"
+#include "com/sun/star/container/XHierarchicalNameAccess.hpp"
+#include "com/sun/star/container/XIndexAccess.hpp"
+#include "com/sun/star/container/XNameAccess.hpp"
+#include "com/sun/star/container/XNameContainer.hpp"
+#include "com/sun/star/document/XDocumentInfoSupplier.hpp"
+#include "com/sun/star/document/XStorageBasedDocument.hpp"
+#include "com/sun/star/embed/ElementModes.hpp"
+#include "com/sun/star/embed/XEncryptionProtectedSource.hpp"
+#include "com/sun/star/embed/XStorage.hpp"
+#include "com/sun/star/embed/XTransactedObject.hpp"
+#include "com/sun/star/frame/XModel.hpp"
+#include "com/sun/star/i18n/XCalendar.hpp"
+#include "com/sun/star/io/XActiveDataSource.hpp"
+#include "com/sun/star/io/XInputStream.hpp"
+#include "com/sun/star/io/XOutputStream.hpp"
+#include "com/sun/star/io/XSeekable.hpp"
+#include "com/sun/star/io/XStream.hpp"
+#include "com/sun/star/io/XTextOutputStream.hpp"
+#include "com/sun/star/lang/Locale.hpp"
+#include "com/sun/star/lang/XComponent.hpp"
+#include "com/sun/star/lang/XInitialization.hpp"
+#include "com/sun/star/lang/XMultiServiceFactory.hpp"
+#include "com/sun/star/lang/XServiceInfo.hpp"
+#include "com/sun/star/lang/XSingleServiceFactory.hpp"
+#include "com/sun/star/lang/XTypeProvider.hpp"
+#include "com/sun/star/reflection/XIdlArray.hpp"
+#include "com/sun/star/reflection/XIdlClass.hpp"
+#include "com/sun/star/reflection/XIdlClassProvider.hpp"
+#include "com/sun/star/reflection/XIdlReflection.hpp"
+#include "com/sun/star/reflection/XTypeDescription.hpp"
+#include "com/sun/star/registry/XImplementationRegistration.hpp"
+#include "com/sun/star/script/ArrayWrapper.hpp"
+#include "com/sun/star/script/BasicErrorException.hpp"
+#include "com/sun/star/script/ScriptEventDescriptor.hpp"
+#include "com/sun/star/script/XAllListener.hpp"
+#include "com/sun/star/script/XDefaultMethod.hpp"
+#include "com/sun/star/script/XDefaultProperty.hpp"
+#include "com/sun/star/script/XEventAttacher.hpp"
+#include "com/sun/star/script/XInvocation.hpp"
+#include "com/sun/star/script/XInvocationAdapterFactory.hpp"
+#include "com/sun/star/script/XLibraryContainer.hpp"
+#include "com/sun/star/script/XLibraryContainer2.hpp"
+#include "com/sun/star/script/XLibraryContainerExport.hpp"
+#include "com/sun/star/script/XLibraryContainerPassword.hpp"
+#include "com/sun/star/script/XScriptEventsAttacher.hpp"
+#include "com/sun/star/script/XScriptEventsSupplier.hpp"
+#include "com/sun/star/script/XStarBasicAccess.hpp"
+#include "com/sun/star/script/XStarBasicDialogInfo.hpp"
+#include "com/sun/star/script/XStarBasicLibraryInfo.hpp"
+#include "com/sun/star/script/XStarBasicModuleInfo.hpp"
+#include "com/sun/star/script/XTypeConverter.hpp"
+#include "com/sun/star/script/provider/XScriptProvider.hpp"
+#include "com/sun/star/script/provider/XScriptProviderFactory.hpp"
+#include "com/sun/star/script/provider/XScriptProviderSupplier.hpp"
+#include "com/sun/star/task/ErrorCodeIOException.hpp"
+#include "com/sun/star/ucb/XContentProvider.hpp"
+#include "com/sun/star/ucb/XContentProviderManager.hpp"
+#include "com/sun/star/ucb/XSimpleFileAccess.hpp"
+#include "com/sun/star/ucb/XSimpleFileAccess3.hpp"
+#include "com/sun/star/uno/Any.hxx"
+#include "com/sun/star/uno/DeploymentException.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "com/sun/star/util/DateTime.hpp"
+#include "com/sun/star/util/XMacroExpander.hpp"
+#include "com/sun/star/util/XStringSubstitution.hpp"
+#include "com/sun/star/xml/sax/InputSource.hpp"
+#include "com/sun/star/xml/sax/XDocumentHandler.hpp"
+#include "com/sun/star/xml/sax/XExtendedDocumentHandler.hpp"
+#include "com/sun/star/xml/sax/XParser.hpp"
+
+#include "comphelper/anytostring.hxx"
+#include "comphelper/componentmodule.hxx"
+#include "comphelper/processfactory.hxx"
+#include "comphelper/regpathhelper.hxx"
+#include "comphelper/stl_types.hxx"
+#include "comphelper/storagehelper.hxx"
+
+#include "cppuhelper/basemutex.hxx"
+#include "cppuhelper/component.hxx"
+#include "cppuhelper/exc_hlp.hxx"
+#include "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase1.hxx"
+#include "cppuhelper/implbase2.hxx"
+#include "cppuhelper/implbase5.hxx"
+#include "cppuhelper/interfacecontainer.hxx"
+#include "cppuhelper/servicefactory.hxx"
+#include "cppuhelper/typeprovider.hxx"
+
+#include "i18npool/lang.h"
+
+#include "osl/file.hxx"
+#include "osl/module.h"
+#include "osl/mutex.hxx"
+#include "osl/process.h"
+#include "osl/security.h"
+#include "osl/time.h"
+
+#include "rtl/byteseq.hxx"
+#include "rtl/digest.h"
+#include "rtl/instance.hxx"
+#include "rtl/math.hxx"
+#include "rtl/strbuf.hxx"
+#include "rtl/textenc.h"
+#include "rtl/ustrbuf.hxx"
+#include "rtl/ustring.hxx"
+
+#include "sal/alloca.h"
+#include "sal/types.h"
+
+#include "sot/storage.hxx"
+#include "sot/storinfo.hxx"
+
+#include "svl/brdcst.hxx"
+#include "svtools/ctrlbox.hxx"
+#include "svtools/ctrltool.hxx"
+#include "svtools/ehdl.hxx"
+#include "svtools/filedlg.hxx"
+#include "svl/hint.hxx"
+#include "svl/lstner.hxx"
+#include "unotools/pathoptions.hxx"
+#include "svtools/sfxecode.hxx"
+#include "svl/smplhint.hxx"
+#include "svl/solar.hrc"
+#include "svtools/stringtransfer.hxx"
+#include "svl/svarray.hxx"
+#include "svl/svdde.hxx"
+#include "svtools/svmedit.hxx"
+#include "svl/svstdarr.hxx"
+#include "svtools/svtdata.hxx"
+#include "svtools/svtools.hrc"
+#include "svtools/svtreebx.hxx"
+#include "unotools/syslocale.hxx"
+#include "svtools/taskbar.hxx"
+#include "svtools/textdata.hxx"
+#include "svtools/texteng.hxx"
+#include "svtools/textview.hxx"
+#include "svtools/transfer.hxx"
+#include "svtools/txtattr.hxx"
+#include "svl/undo.hxx"
+#include "svl/zforlist.hxx"
+#include "svl/zformat.hxx"
+
+
+#include "tools/color.hxx"
+#include "tools/config.hxx"
+#include "tools/date.hxx"
+#include "tools/debug.hxx"
+#include "tools/diagnose_ex.h"
+#include "tools/errcode.hxx"
+#include "tools/errinf.hxx"
+#include "tools/fsys.hxx"
+#include "tools/gen.hxx"
+#include "tools/link.hxx"
+#include "tools/list.hxx"
+#include "tools/rc.hxx"
+#include "tools/rcid.h"
+#include "tools/ref.hxx"
+#include "tools/resid.hxx"
+#include "tools/rtti.hxx"
+#include "tools/shl.hxx"
+#include "tools/solar.h"
+#include "tools/stream.hxx"
+#include "tools/string.hxx"
+#include "tools/table.hxx"
+#include "tools/tenccvt.hxx"
+#include "tools/time.hxx"
+#include "tools/urlobj.hxx"
+#include "tools/wldcrd.hxx"
+
+#include "ucbhelper/configurationkeys.hxx"
+#include "ucbhelper/content.hxx"
+#include "ucbhelper/contentbroker.hxx"
+
+#include "unotools/charclass.hxx"
+#include "unotools/eventlisteneradapter.hxx"
+#include "unotools/localedatawrapper.hxx"
+#include "unotools/streamwrap.hxx"
+#include "unotools/transliterationwrapper.hxx"
+#include "unotools/ucbstreamhelper.hxx"
+
+
+#include "vcl/accel.hxx"
+#include "vcl/button.hxx"
+#include "vcl/decoview.hxx"
+#include "vcl/dialog.hxx"
+#include "vcl/dockwin.hxx"
+#include "vcl/edit.hxx"
+#include "vcl/field.hxx"
+#include "vcl/fixed.hxx"
+#include "vcl/floatwin.hxx"
+#include "vcl/font.hxx"
+#include "vcl/gradient.hxx"
+#include "vcl/graph.hxx"
+#include "vcl/help.hxx"
+#include "vcl/image.hxx"
+#include "vcl/jobset.hxx"
+#include "vcl/lstbox.hxx"
+#include "vcl/mapmod.hxx"
+#include "vcl/menu.hxx"
+#include "vcl/metric.hxx"
+#include "vcl/msgbox.hxx"
+#include "vcl/print.hxx"
+#include "vcl/scrbar.hxx"
+#include "vcl/settings.hxx"
+#include "vcl/sound.hxx"
+#include "vcl/splitwin.hxx"
+#include "vcl/status.hxx"
+#include "vcl/svapp.hxx"
+#include "vcl/tabctrl.hxx"
+#include "vcl/tabdlg.hxx"
+#include "vcl/tabpage.hxx"
+#include "vcl/timer.hxx"
+#include "vcl/toolbox.hxx"
+#include "vcl/window.hxx"
+#include "tools/wintypes.hxx"
+#include "vcl/wrkwin.hxx"
+
+#include "vos/diagnose.hxx"
+#include "vos/macros.hxx"
+#include "vos/mutex.hxx"
+#include "vos/process.hxx"
+
+#include "xmlscript/xmldlg_imexp.hxx"
+#include "xmlscript/xmllib_imexp.hxx"
+#include "xmlscript/xmlmod_imexp.hxx"
+//---MARKER---
+
+#endif
diff --git a/basic/prj/build.lst b/basic/prj/build.lst
index cd8946899df9..8e8385809c16 100644
--- a/basic/prj/build.lst
+++ b/basic/prj/build.lst
@@ -1,12 +1,2 @@
 sb	basic	:    L10N:l10n 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\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_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 798c0dae4d64..e69de29bb2d1 100644
--- a/basic/prj/d.lst
+++ b/basic/prj/d.lst
@@ -1,28 +0,0 @@
-mkdir: %COMMON_DEST%\bin%_EXT%\hid
-mkdir: %COMMON_DEST%\res%_EXT%
-
-..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid
-..\%__SRC%\lib\basic.lib %_DEST%\lib%_EXT%\basic.lib
-..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
-..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
-..\%__SRC%\slb\sb.lib %_DEST%\lib%_EXT%\xsb.lib
-..\%__SRC%\slb\sb.lib %_DEST%\lib%_EXT%\sb.lib
-..\%__SRC%\srs\classes.srs %_DEST%\res%_EXT%\basic.srs
-..\%COMMON_OUTDIR%\srs\classes_srs.hid %COMMON_DEST%\res%_EXT%\basic_srs.hid
-..\%__SRC%\bin\sb?????.dll %_DEST%\bin%_EXT%\sb?????.dll
-..\%__SRC%\bin\sb?????.sym %_DEST%\bin%_EXT%\sb?????.sym
-..\%__SRC%\misc\sb?????.map %_DEST%\bin%_EXT%\sb?????.map
-..\%__SRC%\bin\sb*.res %_DEST%\bin%_EXT%\sb*.res
-..\%__SRC%\lib\sample.lib %_DEST%\lib%_EXT%\sample.lib
-..\%__SRC%\lib\libsample.a %_DEST%\lib%_EXT%\libsample.a
-..\%__SRC%\lib\sb.lib %_DEST%\lib%_EXT%\sb.lib
-
-mkdir: %_DEST%\inc%_EXT%\basic
-..\inc\basic\*.hxx %_DEST%\inc%_EXT%\basic\*.hxx
-..\inc\basic\*.hrc %_DEST%\inc%_EXT%\basic\*.hrc
-..\inc\basic\*.h %_DEST%\inc%_EXT%\basic\*.h
-
-..\inc\modsizeexceeded.hxx %_DEST%\inc%_EXT%\basic\modsizeexceeded.hxx
-..\%__SRC%\misc\sb.component %_DEST%\xml%_EXT%\sb.component
-
diff --git a/basic/inc/makefile.mk b/basic/prj/makefile.mk
similarity index 69%
rename from basic/inc/makefile.mk
rename to basic/prj/makefile.mk
index fe3f5c59e358..c62c6a657d16 100644
--- a/basic/inc/makefile.mk
+++ b/basic/prj/makefile.mk
@@ -20,24 +20,25 @@
 #**************************************************************
 
 
-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)"!=""
 
+PRJ=..
+TARGET=prj
+
+.INCLUDE : settings.mk
+
+.IF "$(VERBOSE)"!=""
+VERBOSEFLAG :=
+.ELSE
+VERBOSEFLAG := -s
+.ENDIF
+
+.IF "$(DEBUG)"!=""
+DEBUG_ARGUMENT=DEBUG=$(DEBUG)
+.ELIF "$(debug)"!=""
+DEBUG_ARGUMENT=debug=$(debug)
+.ELSE
+DEBUG_ARGUMENT=
+.ENDIF
+
+all:
+    cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET) $(DEBUG_ARGUMENT) && $(GNUMAKE) $(VERBOSEFLAG) -r deliverlog
diff --git a/basic/source/classes/makefile.mk b/basic/source/classes/makefile.mk
deleted file mode 100644
index a702dc3892a2..000000000000
--- a/basic/source/classes/makefile.mk
+++ /dev/null
@@ -1,72 +0,0 @@
-#**************************************************************
-#  
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#    http://www.apache.org/licenses/LICENSE-2.0
-#  
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the 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 100644
index d526e477ebbd..000000000000
--- a/basic/source/comp/makefile.mk
+++ /dev/null
@@ -1,57 +0,0 @@
-#**************************************************************
-#  
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#    http://www.apache.org/licenses/LICENSE-2.0
-#  
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-#  
-#**************************************************************
-
-
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=comp
-
-# --- Settings ------------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-SLOFILES= \
-    $(SLO)$/buffer.obj      \
-    $(SLO)$/codegen.obj		\
-    $(SLO)$/dim.obj			\
-    $(SLO)$/exprgen.obj		\
-    $(SLO)$/exprnode.obj	\
-    $(SLO)$/exprtree.obj	\
-    $(SLO)$/io.obj			\
-    $(SLO)$/loops.obj		\
-    $(SLO)$/parser.obj		\
-    $(SLO)$/sbcomp.obj		\
-    $(SLO)$/scanner.obj		\
-    $(SLO)$/symtbl.obj		\
-    $(SLO)$/token.obj
-
-EXCEPTIONSFILES= \
-    $(SLO)$/codegen.obj     \
-    $(SLO)$/dim.obj         \
-    $(SLO)$/exprtree.obj    \
-    $(SLO)$/parser.obj      \
-    $(SLO)$/sbcomp.obj
-
-# --- Targets --------------------------------------------------------------
-
-.INCLUDE :  target.mk
diff --git a/basic/source/runtime/makefile.mk b/basic/source/runtime/makefile.mk
deleted file mode 100644
index 49983315c658..000000000000
--- a/basic/source/runtime/makefile.mk
+++ /dev/null
@@ -1,69 +0,0 @@
-#**************************************************************
-#  
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#    http://www.apache.org/licenses/LICENSE-2.0
-#  
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the 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)$/dllmgr.obj \
-    $(SLO)$/sbdiagnose.obj
-
-.IF "$(GUI)$(COM)$(CPU)" == "WNTMSCI"
-SLOFILES+=	$(SLO)$/wnt.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/collelem.cxx b/basic/source/sample/collelem.cxx
index ebc0a190c21c..03810ea587df 100644
--- a/basic/source/sample/collelem.cxx
+++ b/basic/source/sample/collelem.cxx
@@ -22,7 +22,7 @@
 
 
 // MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_basic.hxx"
+#include "precompiled_sample.hxx"
 #include <tools/errcode.hxx>
 #include <vcl/msgbox.hxx>
 #include <basic/sbx.hxx>
diff --git a/basic/source/sample/object.cxx b/basic/source/sample/object.cxx
index 2688150f3a9a..1227a82f209a 100644
--- a/basic/source/sample/object.cxx
+++ b/basic/source/sample/object.cxx
@@ -22,7 +22,7 @@
 
 
 // MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_basic.hxx"
+#include "precompiled_sample.hxx"
 #include <tools/errcode.hxx>
 #include <basic/sbxobj.hxx>
 #include <basic/sbx.hxx>
diff --git a/basic/source/sbx/makefile.mk b/basic/source/sbx/makefile.mk
deleted file mode 100644
index 773dd9a5c66c..000000000000
--- a/basic/source/sbx/makefile.mk
+++ /dev/null
@@ -1,73 +0,0 @@
-#**************************************************************
-#  
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#    http://www.apache.org/licenses/LICENSE-2.0
-#  
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-#  
-#**************************************************************
-
-
-
-PRJ=..$/..
-
-PRJNAME=basic
-TARGET=sbx
-
-# --- Settings -----------------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-
-# --- Allgemein -----------------------------------------------------------
-
-SRS1NAME=$(TARGET)
-SRC1FILES=	format.src
-
-SLOFILES=	\
-    $(SLO)$/sbxbase.obj	\
-    $(SLO)$/sbxres.obj  	\
-    $(SLO)$/sbxvalue.obj	\
-    $(SLO)$/sbxvals.obj	\
-    $(SLO)$/sbxvar.obj  	\
-    $(SLO)$/sbxarray.obj	\
-    $(SLO)$/sbxobj.obj	\
-    $(SLO)$/sbxcoll.obj	\
-    $(SLO)$/sbxexec.obj	\
-    $(SLO)$/sbxint.obj 	\
-    $(SLO)$/sbxlng.obj 	\
-    $(SLO)$/sbxsng.obj 	\
-    $(SLO)$/sbxmstrm.obj	\
-    $(SLO)$/sbxdbl.obj 	\
-    $(SLO)$/sbxcurr.obj 	\
-    $(SLO)$/sbxdate.obj	\
-    $(SLO)$/sbxstr.obj 	\
-    $(SLO)$/sbxbool.obj	\
-    $(SLO)$/sbxchar.obj	\
-    $(SLO)$/sbxbyte.obj	\
-    $(SLO)$/sbxuint.obj	\
-    $(SLO)$/sbxulng.obj	\
-    $(SLO)$/sbxform.obj	\
-    $(SLO)$/sbxscan.obj 	\
-    $(SLO)$/sbxdec.obj
-
-
-EXCEPTIONSFILES=$(SLO)$/sbxarray.obj
-
-# --- Targets -------------------------------------------------------------
-
-.INCLUDE :  target.mk
-
-
diff --git a/basic/util/makefile.mk b/basic/util/makefile.mk
deleted file mode 100644
index d2c86b02541e..000000000000
--- a/basic/util/makefile.mk
+++ /dev/null
@@ -1,143 +0,0 @@
-#**************************************************************
-#  
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#    http://www.apache.org/licenses/LICENSE-2.0
-#  
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the 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)
-SHL1IMPLIB= basic
-
-SHL1STDLIBS= \
-            $(CPPULIB) \
-            $(CPPUHELPERLIB) \
-            $(TOOLSLIB) \
-            $(SVTOOLLIB) \
-            $(SVLLIB)	\
-            $(VCLLIB) \
-            $(VOSLIB) \
-            $(SALLIB) \
-            $(SALHELPERLIB) \
-            $(COMPHELPERLIB) \
-            $(UNOTOOLSLIB) \
-            $(SOTLIB) \
-            $(VOSLIB) \
-            $(XMLSCRIPTLIB)
-
-# Uncomment the following line if DBG_TRACE_PROFILING is active in source/inc/sbtrace.hxx
-# SHL1STDLIBS+=$(CANVASTOOLSLIB)
-
-.IF "$(SOLAR_JAVA)" != "TRUE"
-SHL1STDLIBS+=$(SJLIB)
-.ENDIF
-
-.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
-
-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
diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk
index d99bd879a07a..747adcf2257b 100644
--- a/postprocess/packcomponents/makefile.mk
+++ b/postprocess/packcomponents/makefile.mk
@@ -57,6 +57,7 @@ my_components = \
     component/animations/source/animcore/animcore \
     component/avmedia/util/avmedia \
     component/basctl/util/basctl \
+    component/basic/util/sb \
     component/binaryurp/source/binaryurp \
     component/canvas/source/factory/canvasfactory \
     component/canvas/source/simplecanvas/simplecanvas \
@@ -177,7 +178,6 @@ my_components = \
     pythonloader \
     pythonscript \
     res \
-    sb \
     scn \
     scriptframe \
     sdbc2 \
commit 1566d851a65081ec6f972274a63f087568e7ba65
Author:     Damjan Jovanovic <damjan at apache.org>
AuthorDate: Fri Oct 5 18:50:40 2018 +0000
Commit:     Damjan Jovanovic <damjan at apache.org>
CommitDate: Fri Oct 5 18:50:40 2018 +0000

    Complete enough of the assembly language building for now,
    
    to successfully build main/basic on Windows.
    
    Patch by: me

diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk
index 3e04d9038135..25fa945bd82e 100644
--- a/solenv/gbuild/Library.mk
+++ b/solenv/gbuild/Library.mk
@@ -107,6 +107,8 @@ $(or \
 endef
 
 $(eval $(foreach method,\
+	add_asmobject \
+	add_asmobjects \
 	add_cobject \
 	add_cobjects \
 	add_cxxobject \
diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk
index 3ae29abb2367..f209ed13b0c8 100644
--- a/solenv/gbuild/LinkTarget.mk
+++ b/solenv/gbuild/LinkTarget.mk
@@ -70,7 +70,7 @@ gb_AsmObject_get_source = $(1)/$(2)$(gb_AsmObject_EXT)
 
 define gb_AsmObject__rules
 $$(call gb_AsmObject_get_target,%) : $$(call gb_AsmObject_get_source,$(1),%)
-	$$(call gb_AsmObject__command,$$@,$$*,$$<))
+	$$(call gb_AsmObject__command,$$@,$$*,$$<)
 
 endef
 
diff --git a/solenv/gbuild/platform/freebsd.mk b/solenv/gbuild/platform/freebsd.mk
index 7e1c2844b57b..31c041274c58 100644
--- a/solenv/gbuild/platform/freebsd.mk
+++ b/solenv/gbuild/platform/freebsd.mk
@@ -290,6 +290,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(if $(call gb_Library_is_udk_versioned,$(1)),-Wl$(COMMA)-h$(notdir $(1)).$(gb_UDK_MAJOR)) \
 		$(subst \d,$$,$(RPATH)) \
 		$(T_LDFLAGS) \
+		$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
 		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk
index 93c2e1462946..86710beab6df 100644
--- a/solenv/gbuild/platform/linux.mk
+++ b/solenv/gbuild/platform/linux.mk
@@ -266,6 +266,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(if $(call gb_Library_is_udk_versioned,$(1)),-Wl$(COMMA)-h$(notdir $(1)).$(gb_UDK_MAJOR)) \
 		$(subst \d,$$,$(RPATH)) \
 		$(T_LDFLAGS) \
+		$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
 		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk
index 63343545c539..e7ea6d6c383f 100644
--- a/solenv/gbuild/platform/macosx.mk
+++ b/solenv/gbuild/platform/macosx.mk
@@ -307,6 +307,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(subst \d,$$,$(RPATH)) \
 		$(T_LDFLAGS) $(gb_macos_LDFLAGS) \
 		$(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \
+		$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
 		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/os2.mk b/solenv/gbuild/platform/os2.mk
index 59d64b9e2502..0c783b898eb4 100644
--- a/solenv/gbuild/platform/os2.mk
+++ b/solenv/gbuild/platform/os2.mk
@@ -331,9 +331,11 @@ $(call gb_Helper_abbreviate_dirs_native,\
 	$(if $(DLLTARGET), echo LIBRARY	$(DLLBASE) INITINSTANCE TERMINSTANCE > $(DLLDEF) &&) \
 	$(if $(DLLTARGET), echo DATA MULTIPLE >> $(DLLDEF) &&) \
 	RESPONSEFILE=$(call var2filecr,$(shell $(gb_MKTEMP)),1, \
-	    $(call gb_Helper_convert_native,$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+	    $(call gb_Helper_convert_native,\
+		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
+		$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
 		$(PCHOBJS))) && \
 	$(if $(DLLTARGET), echo EXPORTS >> $(DLLDEF) &&) \
 	$(if $(DLLTARGET), emxexp @$${RESPONSEFILE} | fix_exp_file | sort | uniq | fix_def_ord >> $(DLLDEF) &&) \
diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk
index 8fb33ca8572b..60d6cf6f573a 100644
--- a/solenv/gbuild/platform/solaris.mk
+++ b/solenv/gbuild/platform/solaris.mk
@@ -232,6 +232,7 @@ $(call gb_Helper_abbreviate_dirs,\
 		$(if $(call gb_Library_is_udk_versioned,$(1)),-Wl$(COMMA)-h$(notdir $(1)).$(gb_UDK_MAJOR)) \
 		$(subst \d,$$,$(RPATH)) \
 		$(T_LDFLAGS) \
+		$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
 		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk
index 6cac100e57ed..ca9e6b8ee1cb 100644
--- a/solenv/gbuild/platform/windows.mk
+++ b/solenv/gbuild/platform/windows.mk
@@ -28,6 +28,7 @@ COM := MSC
 gb_TMPDIR:=$(if $(TMPDIR),$(shell cygpath -m $(TMPDIR)),$(shell cygpath -m /tmp))
 gb_MKTEMP := mktemp --tmpdir=$(gb_TMPDIR) gbuild.XXXXXX
 
+gb_AS := ml
 gb_CC := cl
 gb_CXX := cl
 gb_LINK := link
@@ -36,6 +37,9 @@ gb_CLASSPATHSEP := ;
 gb_RC := rc
 
 # use CC/CXX if they are nondefaults
+ifneq ($(origin AS),default)
+gb_AS := $(AS)
+endif
 ifneq ($(origin CC),default)
 gb_CC := $(CC)
 gb_GCCP := $(CC)
@@ -272,15 +276,13 @@ $(call gb_Output_announce,$(2),$(true),ASM,3)
 $(call gb_Helper_abbreviate_dirs_native,\
 	mkdir -p $(dir $(1)) && \
 	unset INCLUDE && \
-	$(gb_CC) \
+	$(gb_AS) \
 		$(DEFS) \
-		$(T_CFLAGS) \
-		-FD$(PDBFILE) \
-		$(CFLAGS) \
-		-I$(dir $(3)) \
-		$(INCLUDE) \
-		-c $(3) \
-		-Fo$(1))
+		-safeseh \
+		-Cp \
+		-coff \
+		-Fo$(1) \
+		-c $(3))
 endef
 
 # CObject class
@@ -449,7 +451,9 @@ $(call gb_Helper_abbreviate_dirs_native,\
 	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),100, \
-	    $(call gb_Helper_convert_native,$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+	    $(call gb_Helper_convert_native,\
+		$(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
+		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
 		$(PCHOBJS) $(NATIVERES))) && \
diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk
index 9b9f3ce1f8c2..c366b9c5e952 100644
--- a/solenv/gbuild/platform/winmingw.mk
+++ b/solenv/gbuild/platform/winmingw.mk
@@ -424,7 +424,9 @@ $(call gb_Helper_abbreviate_dirs_native,\
 	mkdir -p $(dir $(1)) && \
 	rm -f $(1) && \
 	RESPONSEFILE=`$(gb_MKTEMP)` && \
-	echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
+	echo "\
+		$(foreach object,$(ASMXXOBJECTS),$(call gb_AsmObject_get_target,$(object))) \
+		$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
 		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
 		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
 		$(NATIVERES) " > $${RESPONSEFILE} && \


More information about the Libreoffice-commits mailing list