Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


Hi,

please review my gerrit patch request: https://gerrit.libreoffice.org/#/c/105/ The normal patch is attached (just in case you are more comfortable with it).

What has changed?

1.
The scanners are compiled as C++ code now:
cfglex.l
srclex.l
xrmlex.l
That why yyerror and yywarnings have changed their signature.

2.
flex options -w -l -8 are dropped.

3.
The generated scanners are not wrapped any more, so diagnostic pragma hacks are used on gcc to pass WaE configure option.
I tested it only on ubuntu (gcc version 4.6.1) though.

4.
HelpLinker & HelpIndexer are linked against dynamic librariy helplinker.
Well, I messed around with this one, so may be we have to clean up here.
For that i extracted HelpLinker_main.cxx and included new header HelpLinker.hxx in Package_inc. I hope, i defined the programms on the right place in Repository.mk, to get the desirable rpath:
$(eval $(call gb_Helper_register_executables,OOO, \
    HelpLinker \
    HelpIndexer \
[...]

5.
-.IF "$(OS)" == "MACOSX" && "$(CPU)" == "P" && "$(COM)" == "GCC"
-# There appears to be a GCC 4.0.1 optimization error causing _file:good() to -# report true right before the call to writeOut at HelpLinker.cxx:1.12 l. 954
-# but out.good() to report false right at the start of writeOut at
-# HelpLinker.cxx:1.12 l. 537:
-NOOPTFILES=\
-        $(OBJ)$/HelpLinker.obj \
-        $(SLO)$/HelpLinker.obj
-.ENDIF

this was dropped.
Do we still need it? If uncertain, please activate it.

What has (unfortunately) not changed:
we still follow this ugly mixed case: HelperLinker and HelperIndexer
I don't know why.

Status pages is updated (status review):
https://wiki.documentfoundation.org/Development/Build_System/Module_status

Regards
David

PS
@Bjorn, thank you very much for helping with initial gerrit setup!

From e7b90da6bc3f50be1dd261b8aa69d740ae13dd44 Mon Sep 17 00:00:00 2001
From: David Ostrovsky <David.Ostrovsky@gmx.de>
Date: Wed, 2 May 2012 20:16:10 +0200
Subject: [PATCH] gbuild conversion l10ntools module

Change-Id: Iea9a77f19856dd870eb72fa57249f959cdd7000c
---
 Makefile                                    |    2 +-
 Repository.mk                               |   10 ++
 idlc/source/scanner.l                       |    1 +
 l10ntools/Executable_cfgex.mk               |   51 ++++++++++
 l10ntools/Executable_gsicheck.mk            |   44 ++++++++
 l10ntools/Executable_helpex.mk              |   51 ++++++++++
 l10ntools/Executable_helpindexer.mk         |   52 ++++++++++
 l10ntools/Executable_helplinker.mk          |   52 ++++++++++
 l10ntools/Executable_localize.mk            |   43 ++++++++
 l10ntools/Executable_transex3.mk            |   51 ++++++++++
 l10ntools/Executable_ulfex.mk               |   48 +++++++++
 l10ntools/Executable_xrmex.mk               |   51 ++++++++++
 l10ntools/Jar_FCFGMerge.mk                  |   48 +++++++++
 l10ntools/Library_helplinker.mk             |   62 ++++++++++++
 l10ntools/Makefile                          |    7 ++
 l10ntools/Module_l10ntools.mk               |   47 +++++++++
 l10ntools/Package_inc.mk                    |   40 ++++++++
 l10ntools/Package_scripts.mk                |   38 +++++++
 l10ntools/StaticLibrary_l10ntools_helper.mk |   43 ++++++++
 l10ntools/StaticLibrary_transex.mk          |   42 ++++++++
 l10ntools/inc/l10ntools/HelpLinker.hxx      |  135 +++++++++++++++++++++++++
 l10ntools/inc/makefile.mk                   |   40 --------
 l10ntools/prj/build.lst                     |    8 +-
 l10ntools/prj/d.lst                         |   59 -----------
 l10ntools/source/cfglex.l                   |   21 ++--
 l10ntools/source/cfgmerge.cxx               |    2 +-
 l10ntools/source/export.cxx                 |    4 +-
 l10ntools/source/filter/merge/makefile.mk   |   79 ---------------
 l10ntools/source/filter/utils/makefile.mk   |   53 ----------
 l10ntools/source/help/HelpLinker.cxx        |   84 +----------------
 l10ntools/source/help/HelpLinker_main.cxx   |   73 ++++++++++++++
 l10ntools/source/help/helplinker.pmk        |   31 ------
 l10ntools/source/help/makefile.mk           |  116 ----------------------
 l10ntools/source/makefile.mk                |  141 ---------------------------
 l10ntools/source/srclex.l                   |   26 +++---
 l10ntools/source/xrmlex.l                   |   36 +++----
 l10ntools/source/xrmmerge.cxx               |    4 +-
 37 files changed, 1039 insertions(+), 656 deletions(-)
 create mode 100644 l10ntools/Executable_cfgex.mk
 create mode 100644 l10ntools/Executable_gsicheck.mk
 create mode 100644 l10ntools/Executable_helpex.mk
 create mode 100644 l10ntools/Executable_helpindexer.mk
 create mode 100644 l10ntools/Executable_helplinker.mk
 create mode 100644 l10ntools/Executable_localize.mk
 create mode 100644 l10ntools/Executable_transex3.mk
 create mode 100644 l10ntools/Executable_ulfex.mk
 create mode 100644 l10ntools/Executable_xrmex.mk
 create mode 100644 l10ntools/Jar_FCFGMerge.mk
 create mode 100644 l10ntools/Library_helplinker.mk
 create mode 100644 l10ntools/Makefile
 create mode 100644 l10ntools/Module_l10ntools.mk
 create mode 100644 l10ntools/Package_inc.mk
 create mode 100644 l10ntools/Package_scripts.mk
 create mode 100644 l10ntools/StaticLibrary_l10ntools_helper.mk
 create mode 100644 l10ntools/StaticLibrary_transex.mk
 create mode 100644 l10ntools/inc/l10ntools/HelpLinker.hxx
 delete mode 100644 l10ntools/inc/makefile.mk
 delete mode 100644 l10ntools/prj/dmake
 delete mode 100644 l10ntools/source/filter/merge/makefile.mk
 delete mode 100644 l10ntools/source/filter/utils/makefile.mk
 create mode 100644 l10ntools/source/help/HelpLinker_main.cxx
 delete mode 100644 l10ntools/source/help/helplinker.pmk
 delete mode 100644 l10ntools/source/help/makefile.mk
 delete mode 100644 l10ntools/source/makefile.mk

diff --git a/Makefile b/Makefile
index 3220d9f..547c8bd 100644
--- a/Makefile
+++ b/Makefile
@@ -73,6 +73,7 @@ javaunohelper\
 jurt\
 jvmaccess\
 jvmfwk\
+l10ntools\
 lingucomponent\
 linguistic\
 lotuswordpro\
@@ -181,7 +182,6 @@ icu\
 instsetoo_native\
 jfreereport\
 jpeg\
-l10ntools\
 languagetool\
 libcdr\
 libcmis\
diff --git a/Repository.mk b/Repository.mk
index fa75986..bd54358 100644
--- a/Repository.mk
+++ b/Repository.mk
@@ -30,12 +30,16 @@ $(eval $(call gb_Helper_register_executables,NONE, \
     bestreversemap \
     bmp \
     bmpsum \
+    cfgex \
     cppunit/cppunittester \
     g2g \
     gencoll_rule \
     genconv_dict \
     gendict \
     genindex_data \
+    gsicheck \
+    helpex \
+    localize \
     mkunroll \
     osl_process_child \
     pdf2xml \
@@ -49,8 +53,11 @@ $(eval $(call gb_Helper_register_executables,NONE, \
     sp2bv \
     svg2odf \
     svidl \
+    transex3 \
     typesconfig \
+    ulfex \
     xml2cmp \
+    xrmex \
     xpdfimport \
 ))
 
@@ -70,6 +77,8 @@ $(eval $(call gb_Helper_register_executables,SDK, \
 endif
 
 $(eval $(call gb_Helper_register_executables,OOO, \
+    HelpLinker \
+    HelpIndexer \
     spadmin.bin \
        $(if $(filter $(GUIBASE)$(ENABLE_KDE),unxTRUE), \
                kdefilepicker \
@@ -575,6 +584,7 @@ $(eval $(call gb_Helper_register_static_libraries,PLAINLIBS, \
     ooopathutils \
     sample \
     salcpprt \
+    transex \
     ulingu \
     vclmain \
     writerperfect \
diff --git a/idlc/source/scanner.l b/idlc/source/scanner.l
index 8d95322..8675f26 100644
--- a/idlc/source/scanner.l
+++ b/idlc/source/scanner.l
@@ -258,6 +258,7 @@ static void parseLineAndFile(sal_Char* pBuf)
 // Suppress any warnings from generated code:
 #if defined __GNUC__
 #pragma GCC diagnostic ignored "-Wunused-function"
+#pragma GCC diagnostic ignored "-Wunused-label"
 #elif defined __SUNPRO_CC
 #pragma disable_warn
 #elif defined _MSC_VER
diff --git a/l10ntools/Executable_cfgex.mk b/l10ntools/Executable_cfgex.mk
new file mode 100644
index 0000000..405780e
--- /dev/null
+++ b/l10ntools/Executable_cfgex.mk
@@ -0,0 +1,51 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,cfgex))
+
+$(eval $(call gb_Executable_set_include,cfgex,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,cfgex,\
+    sal \
+))
+
+$(eval $(call gb_Executable_add_scanners,cfgex,\
+    l10ntools/source/cfglex \
+))
+
+$(eval $(call gb_Executable_use_static_libraries,cfgex,\
+    transex \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,cfgex,\
+    l10ntools/source/cfgmerge \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_gsicheck.mk b/l10ntools/Executable_gsicheck.mk
new file mode 100644
index 0000000..0213b91
--- /dev/null
+++ b/l10ntools/Executable_gsicheck.mk
@@ -0,0 +1,44 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,gsicheck))
+
+$(eval $(call gb_Executable_set_include,gsicheck,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,gsicheck,\
+    sal \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,gsicheck,\
+    l10ntools/source/gsicheck \
+    l10ntools/source/tagtest \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_helpex.mk b/l10ntools/Executable_helpex.mk
new file mode 100644
index 0000000..1137240
--- /dev/null
+++ b/l10ntools/Executable_helpex.mk
@@ -0,0 +1,51 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,helpex))
+
+$(eval $(call gb_Executable_set_include,helpex,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,helpex,\
+    sal \
+))
+
+$(eval $(call gb_Executable_use_external,helpex,expat_utf8))
+
+$(eval $(call gb_Executable_use_static_libraries,helpex,\
+    transex \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,helpex,\
+    l10ntools/source/helpex \
+    l10ntools/source/xmlparse \
+    l10ntools/source/helpmerge \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_helpindexer.mk b/l10ntools/Executable_helpindexer.mk
new file mode 100644
index 0000000..35eb16c
--- /dev/null
+++ b/l10ntools/Executable_helpindexer.mk
@@ -0,0 +1,52 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,HelpIndexer))
+
+$(eval $(call gb_Executable_set_include,HelpIndexer,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,HelpIndexer,\
+    sal \
+    helplinker \
+))
+
+$(eval $(call gb_Executable_use_externals,HelpIndexer,\
+    expat_utf8 \
+    libxslt \
+    libxml2 \
+    berkeleydb \
+    clucene \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,HelpIndexer,\
+    l10ntools/source/help/HelpIndexer_main \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_helplinker.mk b/l10ntools/Executable_helplinker.mk
new file mode 100644
index 0000000..b1661e0
--- /dev/null
+++ b/l10ntools/Executable_helplinker.mk
@@ -0,0 +1,52 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,HelpLinker))
+
+$(eval $(call gb_Executable_set_include,HelpLinker,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,HelpLinker,\
+    sal \
+    helplinker \
+))
+
+$(eval $(call gb_Executable_use_externals,HelpLinker,\
+    expat_utf8 \
+    libxslt \
+    libxml2 \
+    berkeleydb \
+    clucene \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,HelpLinker,\
+    l10ntools/source/help/HelpLinker_main \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_localize.mk b/l10ntools/Executable_localize.mk
new file mode 100644
index 0000000..089fd06
--- /dev/null
+++ b/l10ntools/Executable_localize.mk
@@ -0,0 +1,43 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,localize))
+
+$(eval $(call gb_Executable_set_include,localize,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,localize,\
+    sal \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,localize,\
+    l10ntools/source/localize \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_transex3.mk b/l10ntools/Executable_transex3.mk
new file mode 100644
index 0000000..8a3685c
--- /dev/null
+++ b/l10ntools/Executable_transex3.mk
@@ -0,0 +1,51 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,transex3))
+
+$(eval $(call gb_Executable_set_include,transex3,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,transex3,\
+    sal \
+))
+
+$(eval $(call gb_Executable_add_scanners,transex3,\
+    l10ntools/source/srclex \
+))
+
+$(eval $(call gb_Executable_use_static_libraries,transex3,\
+    transex \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,transex3,\
+    l10ntools/source/export \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_ulfex.mk b/l10ntools/Executable_ulfex.mk
new file mode 100644
index 0000000..df938e3
--- /dev/null
+++ b/l10ntools/Executable_ulfex.mk
@@ -0,0 +1,48 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,ulfex))
+
+$(eval $(call gb_Executable_set_include,ulfex,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,ulfex,\
+    sal \
+))
+
+$(eval $(call gb_Executable_use_static_libraries,ulfex,\
+    transex \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,ulfex,\
+    l10ntools/source/lngmerge \
+    l10ntools/source/lngex \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Executable_xrmex.mk b/l10ntools/Executable_xrmex.mk
new file mode 100644
index 0000000..f5ec4b9
--- /dev/null
+++ b/l10ntools/Executable_xrmex.mk
@@ -0,0 +1,51 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Executable_Executable,xrmex))
+
+$(eval $(call gb_Executable_set_include,xrmex,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Executable_use_libraries,xrmex,\
+    sal \
+))
+
+$(eval $(call gb_Executable_add_scanners,xrmex,\
+    l10ntools/source/xrmlex \
+))
+
+$(eval $(call gb_Executable_use_static_libraries,xrmex,\
+    transex \
+))
+
+$(eval $(call gb_Executable_add_cxxobjects,xrmex,\
+    l10ntools/source/xrmmerge \
+))
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Jar_FCFGMerge.mk b/l10ntools/Jar_FCFGMerge.mk
new file mode 100644
index 0000000..7719f5f
--- /dev/null
+++ b/l10ntools/Jar_FCFGMerge.mk
@@ -0,0 +1,48 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Jar_Jar,FCFGMerge))
+
+$(eval $(call gb_Jar_set_packageroot,FCFGMerge,com))
+
+$(eval $(call gb_Jar_set_manifest,FCFGMerge,$(SRCDIR)/l10ntools/source/filter/merge/Manifest.mf))
+
+$(eval $(call gb_Jar_add_sourcefiles,FCFGMerge,\
+       l10ntools/source/filter/merge/FCFGMerge \
+       l10ntools/source/filter/merge/Merger \
+       l10ntools/source/filter/utils/AnalyzeStartupLog \
+       l10ntools/source/filter/utils/Cache \
+       l10ntools/source/filter/utils/ConfigHelper \
+       l10ntools/source/filter/utils/FileHelper \
+       l10ntools/source/filter/utils/Logger \
+       l10ntools/source/filter/utils/MalformedCommandLineException \
+       l10ntools/source/filter/utils/XMLHelper \
+))
+
+$(eval $(call gb_Jar_add_packagefile,FCFGMerge,\
+       com/sun/star/filter/config/tools/merge/FCFGMerge.cfg,\
+       $(SRCDIR)/l10ntools/source/filter/merge/FCFGMerge.cfg \
+))
diff --git a/l10ntools/Library_helplinker.mk b/l10ntools/Library_helplinker.mk
new file mode 100644
index 0000000..4421ca9
--- /dev/null
+++ b/l10ntools/Library_helplinker.mk
@@ -0,0 +1,62 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Library_Library,helplinker))
+
+$(eval $(call gb_Library_use_package,helplinker,l10ntools_inc))
+
+$(eval $(call gb_Library_set_include,helplinker,\
+    -I$(SRCDIR)/l10ntools/inc \
+    -I$(SRCDIR)/l10ntools/source \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_Library_add_defs,helplinker,\
+       -DL10N_DLLIMPLEMENTATION \
+       -DHELPLINKER_DLLIMPLEMENTATION \
+))
+
+$(eval $(call gb_Library_use_libraries,helplinker,\
+       sal \
+))
+
+$(eval $(call gb_Library_use_externals,helplinker,\
+    expat_utf8 \
+    libxslt \
+    libxml2 \
+    berkeleydb \
+    clucene \
+))
+
+$(eval $(call gb_Library_add_exception_objects,helplinker,\
+    l10ntools/source/help/HelpLinker \
+    l10ntools/source/help/HelpCompiler \
+    l10ntools/source/help/LuceneHelper \
+    l10ntools/source/help/HelpIndexer \
+    l10ntools/source/help/HelpSearch \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/l10ntools/Makefile b/l10ntools/Makefile
new file mode 100644
index 0000000..ccb1c85
--- /dev/null
+++ b/l10ntools/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/l10ntools/Module_l10ntools.mk b/l10ntools/Module_l10ntools.mk
new file mode 100644
index 0000000..b3dcbae
--- /dev/null
+++ b/l10ntools/Module_l10ntools.mk
@@ -0,0 +1,47 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Module_Module,l10ntools))
+
+$(eval $(call gb_Module_add_targets,l10ntools,\
+    StaticLibrary_transex \
+    Executable_transex3 \
+    Executable_helpex \
+    Executable_ulfex \
+    Executable_gsicheck \
+    Executable_cfgex \
+    Executable_xrmex \
+    Executable_localize \
+    Executable_helpindexer \
+    Executable_helplinker \
+    Jar_FCFGMerge \
+    Package_scripts \
+    Library_helplinker \
+    Package_inc \
+))
+
+
+# vim:set shiftwidth=4 softtabstop=4 expandtab:
diff --git a/l10ntools/Package_inc.mk b/l10ntools/Package_inc.mk
new file mode 100644
index 0000000..9cf3f2b
--- /dev/null
+++ b/l10ntools/Package_inc.mk
@@ -0,0 +1,40 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Package_Package,l10ntools_inc,$(SRCDIR)/l10ntools))
+
+$(eval $(call gb_Package_add_file,l10ntools_inc,inc/l10ntools/export.hxx,inc/export.hxx))
+$(eval $(call gb_Package_add_file,l10ntools_inc,inc/l10ntools/dllapi.h,inc/l10ntools/dllapi.h))
+$(eval $(call 
gb_Package_add_file,l10ntools_inc,inc/l10ntools/directory.hxx,inc/l10ntools/directory.hxx))
+$(eval $(call gb_Package_add_file,l10ntools_inc,inc/l10ntools/file.hxx,inc/l10ntools/file.hxx))
+$(eval $(call 
gb_Package_add_file,l10ntools_inc,inc/l10ntools/HelpIndexer.hxx,inc/l10ntools/HelpIndexer.hxx))
+$(eval $(call 
gb_Package_add_file,l10ntools_inc,inc/l10ntools/HelpIndexer.hxx,inc/l10ntools/HelpLinker.hxx))
+$(eval $(call 
gb_Package_add_file,l10ntools_inc,inc/l10ntools/HelpSearch.hxx,inc/l10ntools/HelpSearch.hxx))
+$(eval $(call 
gb_Package_add_file,l10ntools_inc,inc/l10ntools/generatedtypeset.hxx,source/filter/merge/FCFGMerge.cfg))
+$(eval $(call 
gb_Package_add_file,l10ntools_inc,inc/l10ntools/compilehelp.hxx,source/help/compilehelp.hxx))
+
+
+# vim: set noet sw=4 ts=4:
diff --git a/l10ntools/Package_scripts.mk b/l10ntools/Package_scripts.mk
new file mode 100644
index 0000000..1ce9327
--- /dev/null
+++ b/l10ntools/Package_scripts.mk
@@ -0,0 +1,38 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_Package_Package,l10ntools_scripts,$(SRCDIR)/l10ntools/scripts))
+
+$(eval $(call gb_Package_add_file,l10ntools_scripts,bin/localize,localize))
+$(eval $(call gb_Package_add_file,l10ntools_scripts,bin/fast_merge.pl,fast_merge.pl))
+$(eval $(call gb_Package_add_file,l10ntools_scripts,bin/keyidGen.pl,keyidGen.pl))
+$(eval $(call gb_Package_add_file,l10ntools_scripts,bin/addkeyid2pot.pl,addkeyid2pot.pl))
+$(eval $(call gb_Package_add_file,l10ntools_scripts,bin/po2lo,po2lo))
+$(eval $(call gb_Package_add_file,l10ntools_scripts,bin/propex,propex))
+$(eval $(call gb_Package_add_file,l10ntools_scripts,bin/propmerge,propmerge))
+
+
+# vim: set noet sw=4 ts=4:
diff --git a/l10ntools/StaticLibrary_l10ntools_helper.mk 
b/l10ntools/StaticLibrary_l10ntools_helper.mk
new file mode 100644
index 0000000..ebc4269
--- /dev/null
+++ b/l10ntools/StaticLibrary_l10ntools_helper.mk
@@ -0,0 +1,43 @@
+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,l10ntools_helper))
+
+$(eval $(call gb_StaticLibrary_set_include,l10ntools_helper,\
+    -I$(SRCDIR)/l10ntools/inc \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_StaticLibrary_add_exception_objects,l10ntools_helper,\
+    l10ntools/source/help/HelpLinker \
+    l10ntools/source/help/HelpCompiler \
+    l10ntools/source/help/LuceneHelper \
+    l10ntools/source/help/HelpIndexer \
+    l10ntools/source/help/HelpSearch \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/l10ntools/StaticLibrary_transex.mk b/l10ntools/StaticLibrary_transex.mk
new file mode 100644
index 0000000..e8c84b7
--- /dev/null
+++ b/l10ntools/StaticLibrary_transex.mk
@@ -0,0 +1,42 @@
+# -*- Mode: makefile; tab-width: 4; indent-tabs-mode: t -*-
+#
+# Version: MPL 1.1 / GPLv3+ / LGPLv3+
+#
+# The contents of this file are subject to the Mozilla Public License Version
+# 1.1 (the "License"); you may not use this file except in compliance with
+# the License or as specified alternatively below. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS" basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+#
+# Major Contributor(s):
+# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+#
+# All Rights Reserved.
+#
+# For minor contributions see the git repository.
+#
+# Alternatively, the contents of this file may be used under the terms of
+# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+# instead of those above.
+
+$(eval $(call gb_StaticLibrary_StaticLibrary,transex))
+
+$(eval $(call gb_StaticLibrary_set_include,transex,\
+    -I$(SRCDIR)/l10ntools/inc \
+    $$(INCLUDE) \
+))
+
+$(eval $(call gb_StaticLibrary_add_exception_objects,transex,\
+    l10ntools/source/export2 \
+    l10ntools/source/merge \
+    l10ntools/source/file \
+    l10ntools/source/directory \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/l10ntools/inc/l10ntools/HelpLinker.hxx b/l10ntools/inc/l10ntools/HelpLinker.hxx
new file mode 100644
index 0000000..4571e26
--- /dev/null
+++ b/l10ntools/inc/l10ntools/HelpLinker.hxx
@@ -0,0 +1,135 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * Copyright (C) 2012 Gert van Valkenhoef <g.h.m.van.valkenhoef@rug.nl>
+ *  (initial developer)
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#ifndef HELPLINKER_HXX
+#define HELPLINKER_HXX
+
+#include <l10ntools/dllapi.h>
+
+#include <rtl/ustring.hxx>
+#include <set>
+
+#include <string.h>
+#include <limits.h>
+
+#include <libxslt/xslt.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/functions.h>
+#include <libxslt/extensions.h>
+
+#include <sal/main.h>
+#include <sal/types.h>
+#include <osl/time.h>
+#include <rtl/bootstrap.hxx>
+
+
+// I assume that TCHAR is defined as wchar_t throughout
+
+namespace lucene
+{
+namespace document
+{
+class Document;
+}
+namespace util
+{
+class Reader;
+}
+}
+
+#define DBHELP_ONLY
+
+class L10N_DLLPUBLIC IndexerPreProcessor
+{
+private:
+    std::string       m_aModuleName;
+    fs::path          m_fsIndexBaseDir;
+    fs::path          m_fsCaptionFilesDirName;
+    fs::path          m_fsContentFilesDirName;
+
+    xsltStylesheetPtr m_xsltStylesheetPtrCaption;
+    xsltStylesheetPtr m_xsltStylesheetPtrContent;
+
+public:
+    IndexerPreProcessor( const std::string& aModuleName, const fs::path& fsIndexBaseDir,
+         const fs::path& idxCaptionStylesheet, const fs::path& idxContentStylesheet );
+    ~IndexerPreProcessor();
+
+    void processDocument( xmlDocPtr doc, const std::string& EncodedDocPath );
+};
+
+class L10N_DLLPUBLIC HelpLinker
+{
+public:
+    void main(std::vector<std::string> &args,
+              std::string* pExtensionPath = NULL,
+              std::string* pDestination = NULL,
+              const rtl::OUString* pOfficeHelpPath = NULL )
+
+            throw( HelpProcessingException );
+
+    HelpLinker()
+        : init(true)
+        , m_pIndexerPreProcessor(NULL)
+    {}
+    ~HelpLinker()
+        { delete m_pIndexerPreProcessor; }
+
+private:
+    int locCount, totCount;
+    Stringtable additionalFiles;
+    HashSet helpFiles;
+    fs::path sourceRoot;
+    fs::path embeddStylesheet;
+    fs::path idxCaptionStylesheet;
+    fs::path idxContentStylesheet;
+    fs::path zipdir;
+    fs::path outputFile;
+    std::string extsource;
+    std::string extdestination;
+    std::string module;
+    std::string lang;
+    std::string extensionPath;
+    std::string extensionDestination;
+    bool bExtensionMode;
+    fs::path indexDirName;
+    fs::path indexDirParentName;
+    bool init;
+    IndexerPreProcessor* m_pIndexerPreProcessor;
+    void initIndexerPreProcessor();
+    void link() throw( HelpProcessingException );
+    void addBookmark( DB* dbBase, FILE* pFile_DBHelp, std::string thishid,
+        const std::string& fileB, const std::string& anchorB,
+        const std::string& jarfileB, const std::string& titleB );
+};
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/l10ntools/inc/makefile.mk b/l10ntools/inc/makefile.mk
deleted file mode 100644
index 8d628b1..0000000
--- a/l10ntools/inc/makefile.mk
+++ /dev/null
@@ -1,40 +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=l10ntools
-TARGET=inc
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE :  settings.mk
-
-# --- Files --------------------------------------------------------
-# --- Targets -------------------------------------------------------
-
-.INCLUDE :  target.mk
-
diff --git a/l10ntools/prj/build.lst b/l10ntools/prj/build.lst
index 372fcfe..c1e4796 100644
--- a/l10ntools/prj/build.lst
+++ b/l10ntools/prj/build.lst
@@ -1,7 +1,3 @@
 tr l10ntools : BERKELEYDB:berkeleydb EXPAT:expat LIBXSLT:libxslt CLUCENE:clucene sal NULL
-tr     l10ntools                                               usr1    -       all     tr_mkout 
NULL
-tr     l10ntools\inc                                   nmake   -       all     tr_inc NULL
-tr     l10ntools\source                                        nmake   -       all     tr_src 
tr_inc NULL
-tr  l10ntools\source\help    nmake   -   all tr_bla_help  NULL
-tr  l10ntools\source\filter\utils    nmake   -   all tr_bla_utils NULL
-tr  l10ntools\source\filter\merge    nmake   -   all tr_bla_merge tr_bla_utils NULL
+tr     l10ntools                                       usr1    -       all     tr_mkout NULL
+tr     l10ntools\prj                                   nmake   -       all     tr_prj NULL
diff --git a/l10ntools/prj/d.lst b/l10ntools/prj/d.lst
index e9329dc..e69de29 100644
--- a/l10ntools/prj/d.lst
+++ b/l10ntools/prj/d.lst
@@ -1,59 +0,0 @@
-mkdir: %_DEST%\inc\l10ntools
-mkdir: %_DEST%\bin
-mkdir: %_DEST%\bin\help
-mkdir: %_DEST%\bin\help\com
-mkdir: %_DEST%\bin\help\com\sun
-mkdir: %_DEST%\bin\help\com\sun\star
-mkdir: %_DEST%\bin\help\com\sun\star\help
-
-..\%__SRC%\bin\cfgex.exe %_DEST%\bin\cfgex.exe
-..\%__SRC%\bin\cfgex %_DEST%\bin\cfgex
-..\%__SRC%\bin\transex3.exe %_DEST%\bin\transex3.exe
-..\%__SRC%\bin\transex3 %_DEST%\bin\transex3
-..\%__SRC%\bin\lngex.exe %_DEST%\bin\lngex.exe
-..\%__SRC%\bin\lngex %_DEST%\bin\lngex
-..\%__SRC%\bin\localize.exe %_DEST%\bin\localize.exe
-..\%__SRC%\bin\localize %_DEST%\bin\localize
-..\%__SRC%\bin\xrmex.exe %_DEST%\bin\xrmex.exe
-..\%__SRC%\bin\xrmex %_DEST%\bin\xrmex
-..\%__SRC%\bin\gsicheck.exe %_DEST%\bin\gsicheck.exe
-..\%__SRC%\bin\gsicheck %_DEST%\bin\gsicheck
-..\%__SRC%\bin\helpex.exe %_DEST%\bin\helpex.exe
-..\%__SRC%\bin\helpex %_DEST%\bin\helpex
-..\%__SRC%\bin\ulfex.exe %_DEST%\bin\ulfex.exe
-..\%__SRC%\bin\ulfex %_DEST%\bin\ulfex
-..\%__SRC%\bin\txtconv.exe %_DEST%\bin\txtconv.exe
-..\%__SRC%\bin\txtconv %_DEST%\bin\txtconv
-..\%__SRC%\bin\ulfconv %_DEST%\bin\ulfconv
-..\%__SRC%\class\FCFGMerge.jar %_DEST%\bin\FCFGMerge.jar
-..\%__SRC%\bin\HelpCompiler %_DEST%\bin\HelpCompiler
-..\%__SRC%\bin\HelpCompiler.exe %_DEST%\bin\HelpCompiler.exe
-..\%__SRC%\bin\HelpLinker %_DEST%\bin\HelpLinker
-..\%__SRC%\bin\HelpLinker.exe %_DEST%\bin\HelpLinker.exe
-..\%__SRC%\bin\HelpLinker* %_DEST%\bin
-..\%__SRC%\bin\HelpIndexer %_DEST%\bin\HelpIndexer
-..\%__SRC%\bin\HelpIndexer.exe %_DEST%\bin\HelpIndexer.exe
-..\%__SRC%\bin\HelpIndexer* %_DEST%\bin
-
-..\scripts\localize %_DEST%\bin\localize
-..\scripts\fast_merge.pl %_DEST%\bin\fast_merge.pl
-..\scripts\keyidGen.pl %_DEST%\bin\keyidGen.pl
-..\scripts\addkeyid2pot.pl %_DEST%\bin\addkeyid2pot.pl
-..\scripts\po2lo %_DEST%\bin\po2lo
-..\scripts\propex %_DEST%\bin\propex
-..\scripts\propex.bat %_DEST%\bin\propex.bat
-..\scripts\propmerge %_DEST%\bin\propmerge
-..\inc\export.hxx %_DEST%\inc\l10ntools\export.hxx
-..\inc\l10ntools\dllapi.h %_DEST%\inc\l10ntools\dllapi.h
-..\inc\l10ntools\directory.hxx %_DEST%\inc\l10ntools\directory.hxx
-..\inc\l10ntools\file.hxx %_DEST%\inc\l10ntools\file.hxx
-..\inc\l10ntools\HelpIndexer.hxx %_DEST%\inc\l10ntools\HelpIndexer.hxx
-..\inc\l10ntools\HelpSearch.hxx %_DEST%\inc\l10ntools\HelpSearch.hxx
-..\source\filter\merge\FCFGMerge.cfg  %_DEST%\inc\l10ntools\FCFGMerge.cfg
-
-..\%__SRC%\lib\transex.lib %_DEST%\lib\transex.lib
-..\%__SRC%\lib\libtransex.a %_DEST%\lib\libtransex.a
-
-..\source\help\compilehelp.hxx %_DEST%\inc\l10ntools\compilehelp.hxx
-..\%__SRC%\lib\* %_DEST%\lib\*
-..\%__SRC%\class\com\sun\star\help\* %_DEST%\bin\help\com\sun\star\help\*
diff --git a/l10ntools/prj/dmake b/l10ntools/prj/dmake
deleted file mode 100644
index e69de29..0000000
diff --git a/l10ntools/source/cfglex.l b/l10ntools/source/cfglex.l
index a8a01ad..7ef12b7 100644
--- a/l10ntools/source/cfglex.l
+++ b/l10ntools/source/cfglex.l
@@ -3,7 +3,7 @@
  * lexer for parsing cfg source files
  *
  */
-
+#define YY_NEVER_INTERACTIVE 1
 
 /* enlarge token buffer to tokenize whole strings */
 #undef YYLMAX
@@ -25,7 +25,9 @@
 #include "sal/main.h"
 
 #if defined __GNUC__
-#pragma GCC system_header
+#pragma GCC diagnostic ignored "-Wunused-function"
+#pragma GCC diagnostic ignored "-Wunused-label"
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
 #elif defined __SINPRO_CC
 #pragma disable_warn
 #elif defined _MSC_VER
@@ -35,9 +37,9 @@
 int yycolumn = 1;
 #define YY_USER_ACTION yycolumn += yyleng;
 
-/* external functions (C++ code, declared as extren "C" */
-extern void workOnTokenSet( int, char* );
-extern FILE * init(int, char **);
+/* external functions (C++ code, declared as extern "C" */
+extern "C" void workOnTokenSet( int, char* );
+extern "C" FILE * init(int, char **);
 
 int bText=0;
 %}
@@ -76,7 +78,7 @@ int bText=0;
 
 
 \<\!\-\-       {
-       char c1 = 0, c2 = 0, c3 = input();
+       char c1 = 0, c2 = 0, c3 = yyinput();
        char pChar[2];
        pChar[1] = 0x00;
        pChar[0] = c3;
@@ -91,7 +93,8 @@ int bText=0;
                        break;
                c1 = c2;
                c2 = c3;
-               c3 = input();
+               c3 = yyinput();
+
                pChar[0] = c3;
                workOnTokenSet( COMMEND, pChar );
        }
@@ -138,11 +141,7 @@ void YYWarning( const char *s )
 }
 
 /*****************************************************************************/
-#ifdef GCC
-void yyerror ( const char *s, ... )
-#else
 void yyerror ( const char *s )
-#endif
 /*****************************************************************************/
 {
        /* write error to stderr */
diff --git a/l10ntools/source/cfgmerge.cxx b/l10ntools/source/cfgmerge.cxx
index b8f6c19..faaa6d5 100644
--- a/l10ntools/source/cfgmerge.cxx
+++ b/l10ntools/source/cfgmerge.cxx
@@ -41,7 +41,7 @@
 #include "cfgmerge.hxx"
 #include "tokens.h"
 
-extern "C" { int yyerror(char const *); }
+void yyerror(char const *);
 
 namespace {
 
diff --git a/l10ntools/source/export.cxx b/l10ntools/source/export.cxx
index ed63e4c..3980836 100644
--- a/l10ntools/source/export.cxx
+++ b/l10ntools/source/export.cxx
@@ -41,8 +41,8 @@
 #include <iostream>
 #include <rtl/strbuf.hxx>
 
-extern "C" { int yyerror( const char * ); }
-extern "C" { int YYWarning( const char * ); }
+void yyerror( const char * );
+void YYWarning( const char * );
 
 namespace {
 
diff --git a/l10ntools/source/filter/merge/makefile.mk b/l10ntools/source/filter/merge/makefile.mk
deleted file mode 100644
index 8ef73de..0000000
--- a/l10ntools/source/filter/merge/makefile.mk
+++ /dev/null
@@ -1,79 +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     = ..$/..$/..
-TARGET  = FCFGMerge
-PRJNAME = l10ntools
-PACKAGE = com$/sun$/star$/filter$/config$/tools$/merge
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE: settings.mk
-
-#----- compile .java files -----------------------------------------
-
-OWNCOPY         =   \
-                    $(MISC)$/$(TARGET)_copied.done
-
-CFGFILES        =   \
-                    FCFGMerge.cfg
-
-JAVACLASSFILES  =   \
-                    $(CLASSDIR)$/$(PACKAGE)$/Merger.class     \
-                    $(CLASSDIR)$/$(PACKAGE)$/FCFGMerge.class
-
-CUSTOMMANIFESTFILE     =   \
-                    Manifest.mf
-
-MAXLINELENGTH   =   100000
-
-#----- make a jar from compiled files ------------------------------
-
-JARCLASSDIRS    =   \
-                    com$/sun$/star$/filter$/config$/tools$/utils    \
-                    com$/sun$/star$/filter$/config$/tools$/merge
-
-JARTARGET       =   $(TARGET).jar
-
-JARCOMPRESS     =   TRUE
-
-# --- targets -----------------------------------------------------
-
-.INCLUDE :  target.mk
-
-.IF "$(SOLAR_JAVA)" != ""
-ALLTAR : $(OWNCOPY)
-
-.IF "$(JARTARGETN)" != ""
-$(JARTARGETN) : $(OWNCOPY)
-.ENDIF
-
-$(OWNCOPY) : $(CFGFILES)
-    -$(MKDIRHIER) $(CLASSDIR)$/$(PACKAGE)
-    $(COPY) $? $(CLASSDIR)$/$(PACKAGE) && $(TOUCH) $@
-
-.ENDIF # "$(SOLAR_JAVA)" != ""
diff --git a/l10ntools/source/filter/utils/makefile.mk b/l10ntools/source/filter/utils/makefile.mk
deleted file mode 100644
index 43a28d5..0000000
--- a/l10ntools/source/filter/utils/makefile.mk
+++ /dev/null
@@ -1,53 +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 = ..$/..$/..
-TARGET  = FCFGUtils
-PRJNAME = l10ntools
-PACKAGE = com$/sun$/star$/filter$/config$/tools$/utils
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE: settings.mk
-
-#----- compile .java files -----------------------------------------
-
-
-JAVACLASSFILES  =   \
-                    $(CLASSDIR)$/$(PACKAGE)$/AnalyzeStartupLog.class              \
-                    $(CLASSDIR)$/$(PACKAGE)$/ConfigHelper.class                   \
-                    $(CLASSDIR)$/$(PACKAGE)$/Logger.class                         \
-                    $(CLASSDIR)$/$(PACKAGE)$/FileHelper.class                     \
-                    $(CLASSDIR)$/$(PACKAGE)$/MalformedCommandLineException.class  \
-                    $(CLASSDIR)$/$(PACKAGE)$/Cache.class                          \
-                    $(CLASSDIR)$/$(PACKAGE)$/XMLHelper.class
-
-MAXLINELENGTH   =   100000
-
-# --- targets -----------------------------------------------------
-
-.INCLUDE :  target.mk
diff --git a/l10ntools/source/help/HelpLinker.cxx b/l10ntools/source/help/HelpLinker.cxx
index 0103f43..1fa49f3 100644
--- a/l10ntools/source/help/HelpLinker.cxx
+++ b/l10ntools/source/help/HelpLinker.cxx
@@ -31,6 +31,7 @@
 #endif
 
 #include "HelpCompiler.hxx"
+#include "l10ntools/HelpLinker.hxx"
 
 #include <map>
 
@@ -52,25 +53,6 @@
 
 #define DBHELP_ONLY
 
-class IndexerPreProcessor
-{
-private:
-    std::string       m_aModuleName;
-    fs::path          m_fsIndexBaseDir;
-    fs::path          m_fsCaptionFilesDirName;
-    fs::path          m_fsContentFilesDirName;
-
-    xsltStylesheetPtr m_xsltStylesheetPtrCaption;
-    xsltStylesheetPtr m_xsltStylesheetPtrContent;
-
-public:
-    IndexerPreProcessor( const std::string& aModuleName, const fs::path& fsIndexBaseDir,
-         const fs::path& idxCaptionStylesheet, const fs::path& idxContentStylesheet );
-    ~IndexerPreProcessor();
-
-    void processDocument( xmlDocPtr doc, const std::string& EncodedDocPath );
-};
-
 IndexerPreProcessor::IndexerPreProcessor
     ( const std::string& aModuleName, const fs::path& fsIndexBaseDir,
       const fs::path& idxCaptionStylesheet, const fs::path& idxContentStylesheet )
@@ -97,7 +79,6 @@ IndexerPreProcessor::~IndexerPreProcessor()
         xsltFreeStylesheet( m_xsltStylesheetPtrContent );
 }
 
-
 std::string getEncodedPath( const std::string& Path )
 {
     rtl::OString aOStr_Path( Path.c_str() );
@@ -260,51 +241,6 @@ public:
     }
 };
 
-class HelpLinker
-{
-public:
-    void main(std::vector<std::string> &args,
-              std::string* pExtensionPath = NULL,
-              std::string* pDestination = NULL,
-              const rtl::OUString* pOfficeHelpPath = NULL )
-
-            throw( HelpProcessingException );
-
-    HelpLinker()
-        : init(true)
-        , m_pIndexerPreProcessor(NULL)
-    {}
-    ~HelpLinker()
-        { delete m_pIndexerPreProcessor; }
-
-private:
-    int locCount, totCount;
-    Stringtable additionalFiles;
-    HashSet helpFiles;
-    fs::path sourceRoot;
-    fs::path embeddStylesheet;
-    fs::path idxCaptionStylesheet;
-    fs::path idxContentStylesheet;
-    fs::path zipdir;
-    fs::path outputFile;
-    std::string extsource;
-    std::string extdestination;
-    std::string module;
-    std::string lang;
-    std::string extensionPath;
-    std::string extensionDestination;
-    bool bExtensionMode;
-    fs::path indexDirName;
-    fs::path indexDirParentName;
-    bool init;
-    IndexerPreProcessor* m_pIndexerPreProcessor;
-    void initIndexerPreProcessor();
-    void link() throw( HelpProcessingException );
-    void addBookmark( DB* dbBase, FILE* pFile_DBHelp, std::string thishid,
-        const std::string& fileB, const std::string& anchorB,
-        const std::string& jarfileB, const std::string& titleB );
-};
-
 namespace URLEncoder
 {
     static std::string encode(const std::string &rIn)
@@ -1024,24 +960,6 @@ void HelpLinker::main( std::vector<std::string> &args,
     link();
 }
 
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) {
-    std::vector<std::string> args;
-    for (int i = 1; i < argc; ++i)
-        args.push_back(std::string(argv[i]));
-    try
-    {
-        HelpLinker* pHelpLinker = new HelpLinker();
-        pHelpLinker->main( args );
-        delete pHelpLinker;
-    }
-    catch( const HelpProcessingException& e )
-    {
-        std::cerr << e.m_aErrorMsg;
-        exit(1);
-    }
-    return 0;
-}
-
 // Variable to set an exception in "C" StructuredXMLErrorFunction
 static const HelpProcessingException* GpXMLParsingException = NULL;
 
diff --git a/l10ntools/source/help/HelpLinker_main.cxx b/l10ntools/source/help/HelpLinker_main.cxx
new file mode 100644
index 0000000..54c807b
--- /dev/null
+++ b/l10ntools/source/help/HelpLinker_main.cxx
@@ -0,0 +1,73 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#ifdef AIX
+#    undef _THREAD_SAFE
+#endif
+
+#include "HelpCompiler.hxx"
+#include "l10ntools/HelpLinker.hxx"
+
+#include <map>
+
+#include <string.h>
+#include <limits.h>
+
+#include <libxslt/xslt.h>
+#include <libxslt/transform.h>
+#include <libxslt/xsltutils.h>
+#include <libxslt/functions.h>
+#include <libxslt/extensions.h>
+
+#include <sal/main.h>
+#include <sal/types.h>
+#include <osl/time.h>
+#include <rtl/bootstrap.hxx>
+
+#include <expat.h>
+
+#define DBHELP_ONLY
+
+SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv) {
+    std::vector<std::string> args;
+    for (int i = 1; i < argc; ++i)
+        args.push_back(std::string(argv[i]));
+    try
+    {
+        HelpLinker* pHelpLinker = new HelpLinker();
+        pHelpLinker->main( args );
+        delete pHelpLinker;
+    }
+    catch( const HelpProcessingException& e )
+    {
+        std::cerr << e.m_aErrorMsg;
+        exit(1);
+    }
+    return 0;
+}
+
diff --git a/l10ntools/source/help/helplinker.pmk b/l10ntools/source/help/helplinker.pmk
deleted file mode 100644
index 6e99d32..0000000
--- a/l10ntools/source/help/helplinker.pmk
+++ /dev/null
@@ -1,31 +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.
-#
-#*************************************************************************
-
-# define HELPLINKER_DLLIMPLEMENTATION (see @ inc/xmlhelp/helplinkerdllapi.h)
-CDEFS += -DHELPLINKER_DLLIMPLEMENTATION
-
-VISIBILITY_HIDDEN=TRUE
diff --git a/l10ntools/source/help/makefile.mk b/l10ntools/source/help/makefile.mk
deleted file mode 100644
index f3019f4..0000000
--- a/l10ntools/source/help/makefile.mk
+++ /dev/null
@@ -1,116 +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 = l10ntools
-TARGET  = HelpLinker
-LIBBASENAME = helplinker
-TARGETTYPE=CUI
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-.INCLUDE : helplinker.pmk
-
-CFLAGS+=-DL10N_DLLIMPLEMENTATION
- 
-.IF "$(SYSTEM_LIBXSLT)" == "YES"
-CFLAGS+= $(LIBXSLT_CFLAGS)
-.ELSE
-LIBXSLTINCDIR=external$/libxslt
-CFLAGS+= -I$(SOLARINCDIR)$/$(LIBXSLTINCDIR)
-.ENDIF
-
-CFLAGS+= $(SYSTEM_DB_CFLAGS)
-
-.IF "$(SYSTEM_EXPAT)" == "YES"
-CFLAGS+=-DSYSTEM_EXPAT
-.ENDIF
-
-.IF "$(SYSTEM_CLUCENE)" == "YES"
-CFLAGS+= $(CLUCENE_CFLAGS)
-.ENDIF
-
-OBJFILES=\
-        $(OBJ)$/HelpLinker.obj \
-        $(OBJ)$/HelpCompiler.obj \
-        $(OBJ)$/HelpIndexer.obj \
-        $(OBJ)$/HelpIndexer_main.obj \
-       $(OBJ)$/HelpSearch.obj \
-       $(OBJ)$/LuceneHelper.obj
-
-SLOFILES=\
-        $(SLO)$/HelpLinker.obj \
-        $(SLO)$/HelpCompiler.obj \
-       $(SLO)$/LuceneHelper.obj \
-        $(SLO)$/HelpIndexer.obj \
-       $(SLO)$/HelpSearch.obj
-
-.IF "$(OS)" == "MACOSX" && "$(CPU)" == "P" && "$(COM)" == "GCC"
-# There appears to be a GCC 4.0.1 optimization error causing _file:good() to
-# report true right before the call to writeOut at HelpLinker.cxx:1.12 l. 954
-# but out.good() to report false right at the start of writeOut at
-# HelpLinker.cxx:1.12 l. 537:
-NOOPTFILES=\
-        $(OBJ)$/HelpLinker.obj \
-        $(SLO)$/HelpLinker.obj
-.ENDIF
-
-APP1TARGET= $(TARGET)
-APP1OBJS=\
-      $(OBJ)$/HelpLinker.obj \
-      $(OBJ)$/HelpCompiler.obj
-APP1RPATH = NONE
-APP1STDLIBS+=$(SALLIB) $(BERKELEYLIB) $(XSLTLIB) $(EXPATASCII3RDLIB)
-
-APP2TARGET=HelpIndexer
-APP2OBJS=\
-      $(OBJ)$/LuceneHelper.obj \
-      $(OBJ)$/HelpIndexer.obj \
-      $(OBJ)$/HelpIndexer_main.obj
-APP2RPATH = NONE
-APP2STDLIBS+=$(SALLIB) $(CLUCENELIB)
-
-SHL1TARGET     =$(LIBBASENAME)$(DLLPOSTFIX)
-SHL1LIBS=      $(SLB)$/$(TARGET).lib
-.IF "$(COM)" == "MSC"
-SHL1IMPLIB     =i$(LIBBASENAME)
-.ELSE
-SHL1IMPLIB     =$(LIBBASENAME)$(DLLPOSTFIX)
-.ENDIF
-SHL1DEF                =$(MISC)$/$(SHL1TARGET).def
-SHL1STDLIBS =$(SALLIB) $(BERKELEYLIB) $(XSLTLIB) $(EXPATASCII3RDLIB) $(CLUCENELIB)
-SHL1USE_EXPORTS        =ordinal
-
-DEF1NAME       =$(SHL1TARGET) 
-DEFLIB1NAME    =$(TARGET)
-
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE :  target.mk
diff --git a/l10ntools/source/makefile.mk b/l10ntools/source/makefile.mk
deleted file mode 100644
index db60289..0000000
--- a/l10ntools/source/makefile.mk
+++ /dev/null
@@ -1,141 +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=..
-
-INCPRE=$(MISC)
-
-PRJNAME=l10ntools
-TARGET=transex
-TARGETTYPE=CUI
-LIBTARGET=no
-
-# --- Settings -----------------------------------------------------
-
-ENABLE_EXCEPTIONS=TRUE
-
-.INCLUDE :  settings.mk
-
-CDEFS+= -DYY_NEVER_INTERACTIVE=1
-
-.IF "$(SYSTEM_EXPAT)" == "YES"
-CFLAGS+=-DSYSTEM_EXPAT
-.ENDIF
-
-    
-# --- Files --------------------------------------------------------
-
-OBJFILES=                      \
-    $(OBJ)$/export.obj \
-    $(OBJ)$/export2.obj        \
-    $(OBJ)$/merge.obj   \
-    $(OBJ)$/xmlparse.obj    \
-    $(OBJ)$/helpmerge.obj   \
-    $(OBJ)$/helpex.obj      \
-    $(OBJ)$/file.obj        \
-    $(OBJ)$/directory.obj   
-
-
-LIB1TARGET= $(LB)$/$(TARGET).lib
-LIB1ARCHIV= $(LB)$/libtransex.a
-LIB1OBJFILES=        $(OBJ)$/export.obj      \
-        $(OBJ)$/export2.obj     \
-        $(OBJ)$/merge.obj   \
-        $(OBJ)$/file.obj \
-        $(OBJ)$/directory.obj
-
-APP1VERSIONMAP=exports.map
-
-# extractor and merger for *.src and *.hrc
-APP1TARGET=  transex3
-APP1OBJS=   $(OBJ)$/src_yy_wrapper.obj
-APP1RPATH=  NONE
-APP1STDLIBS+= \
-            $(SALLIB)
-
-APP1LIBS+=     $(LB)$/$(TARGET).lib
-APP1DEPN=   $(OBJ)$/src_yy_wrapper.obj $(LB)$/$(TARGET).lib
-
-APP2TARGET= helpex
-APP2OBJS= $(OBJ)$/helpmerge.obj  $(OBJ)$/xmlparse.obj $(OBJ)$/export2.obj $(OBJ)$/merge.obj 
$(OBJ)$/helpex.obj 
-APP2RPATH= NONE
-APP2STDLIBS+= \
-            $(EXPATASCII3RDLIB) \
-            $(SALLIB)
-
-# extractor and merger for *.lng and *.lng
-APP3TARGET= ulfex
-APP3OBJS=   $(OBJ)$/lngmerge.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj $(OBJ)$/lngex.obj
-APP3RPATH=  NONE
-APP3STDLIBS+= \
-            $(SALLIB)
-
-# tag checker for *.gsi
-APP5TARGET= gsicheck
-APP5OBJS=   $(OBJ)$/gsicheck.obj $(OBJ)$/tagtest.obj
-APP5RPATH=  NONE
-APP5STDLIBS+= \
-            $(SALLIB)
-
-# extractor and merger for *.cfg
-APP6TARGET= cfgex
-APP6OBJS=   $(OBJ)$/cfgmerge.obj $(OBJ)$/cfg_yy_wrapper.obj  $(OBJ)$/merge.obj $(OBJ)$/export2.obj
-APP6RPATH=  NONE
-APP6STDLIBS+= \
-            $(SALLIB)
-
-# extractor and merger for *.xrm
-APP7TARGET= xrmex
-APP7OBJS=   $(OBJ)$/xrmmerge.obj $(OBJ)$/xrm_yy_wrapper.obj $(OBJ)$/merge.obj $(OBJ)$/export2.obj
-APP7RPATH=  NONE
-APP7STDLIBS+= \
-            $(SALLIB)
-
-# localizer for l10n framework
-APP9TARGET= localize
-EXCEPTIONSFILES=                            \
-                    $(OBJ)$/localize.obj
-APP9OBJS=   $(OBJ)$/localize.obj
-APP9RPATH=  NONE
-APP9STDLIBS+= \
-            $(SALLIB)
-
-DEPOBJFILES=$(APP1OBJS) $(APP2OBJS) $(APP3OBJS) $(APP4OBJS) $(APP5OBJS) $(APP6OBJS) $(APP7OBJS) 
$(APP8OBJS) $(APP9OBJS)
-
-# --- Targets ------------------------------------------------------
-
-.INCLUDE :  target.mk
-
-$(MISC)$/%_yy.c : %lex.l
-    flex -l -w -8 -o$@ $<
-
-# Helper to suppress warnings in lex generated c code, see #i57362#
-
-$(OBJ)$/src_yy_wrapper.obj: $(MISC)$/src_yy.c
-$(OBJ)$/cfg_yy_wrapper.obj: $(MISC)$/cfg_yy.c
-$(OBJ)$/xrm_yy_wrapper.obj: $(MISC)$/xrm_yy.c
-
diff --git a/l10ntools/source/srclex.l b/l10ntools/source/srclex.l
index 814e236..2a77db3 100644
--- a/l10ntools/source/srclex.l
+++ b/l10ntools/source/srclex.l
@@ -4,7 +4,7 @@
  * lexer for parsing ressource source files (*.src)
  *
  */
-
+#define YY_NEVER_INTERACTIVE 1
 
 /* enlarge token buffer to tokenize whole strings */
 #undef YYLMAX
@@ -26,19 +26,21 @@
 #include "sal/main.h"
 
 #if defined __GNUC__
-#pragma GCC system_header
+#pragma GCC diagnostic ignored "-Wunused-function"
+#pragma GCC diagnostic ignored "-Wunused-label"
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
 #elif defined __SINPRO_CC
 #pragma disable_warn
 #elif defined _MSC_VER
 #pragma warning(push, 1)
 #endif
 
-/* external functions (C++ code, declared as extren "C" */
-extern int WorkOnTokenSet( int, char* );
-extern FILE * init(int, char **);
-extern int SetError();
-extern int GetError();
-extern void Close();
+/* external functions (C++ code, declared as extern "C" */
+extern "C" int WorkOnTokenSet( int, char* );
+extern "C" FILE * init(int, char **);
+extern "C" int SetError();
+extern "C" int GetError();
+extern "C" void Close();
 
 /* forwards */
 void YYWarning();
@@ -69,7 +71,7 @@ void YYWarning();
        WorkOnTokenSet( IGNOREDTOKENS, yytext );
 }
 "/*"   {
-       char c1 = 0, c2 = input();
+       char c1 = 0,c2 = yyinput();
        char pChar[2];
        pChar[1] = 0x00;
        pChar[0] = c2;
@@ -82,7 +84,7 @@ void YYWarning();
                if ( c1 == '*' && c2 == '/' )
                        break;
                c1 = c2;
-               c2 = input();
+               c2 = yyinput();
                pChar[0] = c2;
                WorkOnTokenSet( COMMEND, pChar );
        }
@@ -216,7 +218,7 @@ int yywrap(void)
 }
 
 /*****************************************************************************/
-void YYWarning( char *s )
+void YYWarning( const char *s )
 /*****************************************************************************/
 {
        /* write warning to stderr */
@@ -224,7 +226,7 @@ void YYWarning( char *s )
 }
 
 /*****************************************************************************/
-void yyerror( char *s )
+void yyerror( const char *s )
 /*****************************************************************************/
 {
        /* write error to stderr */
diff --git a/l10ntools/source/xrmlex.l b/l10ntools/source/xrmlex.l
index 5a2170f..971b4bf 100644
--- a/l10ntools/source/xrmlex.l
+++ b/l10ntools/source/xrmlex.l
@@ -3,7 +3,7 @@
  * lexer for parsing xml-property source files (*.xml)
  *
  */
-
+#define YY_NEVER_INTERACTIVE 1
 
 /* enlarge token buffer to tokenize whole strings */
 #undef YYLMAX
@@ -25,24 +25,26 @@
 #include "sal/main.h"
 
 #if defined __GNUC__
-#pragma GCC system_header
+#pragma GCC diagnostic ignored "-Wunused-function"
+#pragma GCC diagnostic ignored "-Wunused-label"
+#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
 #elif defined __SINPRO_CC
 #pragma disable_warn
 #elif defined _MSC_VER
 #pragma warning(push, 1)
 #endif
 
-/* external functions (C++ code, declared as extren "C" */
-extern int WorkOnTokenSet( int, char* );
-extern int Argument( char * );
-extern int InitXrmExport( char * , char * );
-extern int EndXrmExport();
-extern int GetError();
-extern int SetError();
-extern char *GetOutputFile( int argc, char* argv[]);
-extern FILE *GetXrmFile();
-extern int isQuiet();
-extern char* getFilename();
+/* external functions (C++ code, declared as extern "C" */
+extern "C" int WorkOnTokenSet( int, char* );
+extern "C" int Argument( char * );
+extern "C" int InitXrmExport( char * , char * );
+extern "C" int EndXrmExport();
+extern "C" int GetError();
+extern "C" int SetError();
+extern "C" char *GetOutputFile( int argc, char* argv[]);
+extern "C" FILE *GetXrmFile();
+extern "C" int isQuiet();
+extern "C" char* getFilename();
 
 /* forwards */
 void YYWarning();
@@ -131,7 +133,7 @@ int bText=0;
 
 
 "<!--" {
-       char c1 = 0, c2 = 0, c3 = input();
+       char c1 = 0, c2 = 0, c3 = yyinput();
        char pChar[2];
        pChar[1] = 0x00;
        pChar[0] = c3;
@@ -146,7 +148,7 @@ int bText=0;
                        break;
                c1 = c2;
                c2 = c3;
-               c3 = input();
+               c3 = yyinput();
                pChar[0] = c3;
                WorkOnTokenSet( COMMEND, pChar );                          
        }
@@ -179,11 +181,7 @@ void YYWarning( const char *s )
 }
 
 /*****************************************************************************/
-#ifdef GCC
-void yyerror ( const char *s, ... )
-#else
 void yyerror ( const char *s )
-#endif
 /*****************************************************************************/
 {
        /* write error to stderr */
diff --git a/l10ntools/source/xrmmerge.cxx b/l10ntools/source/xrmmerge.cxx
index 0f1e3e0..a26e866 100644
--- a/l10ntools/source/xrmmerge.cxx
+++ b/l10ntools/source/xrmmerge.cxx
@@ -42,8 +42,8 @@
 
 using namespace std;
 
-extern "C" { int yyerror( char * ); }
-extern "C" { int YYWarning( char * ); }
+void yyerror( const char * );
+void YYWarning( const char * );
 
 // defines to parse command line
 #define STATE_NON       0x0001
-- 
1.7.5.4


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.