#**************************************************************
#  
#  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 = postprocess
TARGET = packcomponents

.INCLUDE: settings.mk

#TODO (copied from scp2/source/ooo/makefile.mk):
.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" && "$(ENABLE_GTK)" != ""
PKGCONFIG_MODULES=gtk+-2.0
.INCLUDE: pkg_config.mk
GTK_TWO_FOUR=$(shell @+-$(PKG_CONFIG) --exists 'gtk+-2.0 >= 2.4.0' && echo YES)
.END

my_components = \
    bootstrap \
    introspection \
    invocadapt \
    invocation \
    javaloader \
    javavm \
    namingservice \
    proxyfac \
    reflection \
    stocservices \
    abp \
    basprov \
    bib \
    calc \
    chartcontroller \
    chartmodel \
    charttools \
    chartview \
    component/UnoControls/util/ctl \
    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 \
    component/canvas/source/vcl/vclcanvas \
    component/comphelper/util/comphelp \
    component/configmgr/source/configmgr \
    component/cui/util/cui \
    component/drawinglayer/drawinglayer \
	component/dbaccess/source/ext/adabas/adabasui \
	component/dbaccess/source/ext/macromigration/dbmm \
	component/dbaccess/source/filter/xml/dbaxml \
	component/dbaccess/util/dba \
	component/dbaccess/util/dbu \
	component/dbaccess/util/sdbt \
    component/dtrans/util/mcnttype \
    component/embeddedobj/util/embobj \
    component/eventattacher/source/evtatt \
    component/fileaccess/util/fileacc \
    component/formula/util/for \
    component/fpicker/source/generic/fpicker \
    component/fpicker/source/office/fps_office \
    component/framework/util/fwk \
    component/framework/util/fwl \
    component/framework/util/fwm \
    component/i18npool/util/i18npool \
    component/i18npool/source/search/i18nsearch \
    component/io/source/acceptor/acceptor \
    component/io/source/connector/connector \
    component/io/source/stm/streams \
    component/io/source/TextInputStream/textinstream \
    component/io/source/TextOutputStream/textoutstream \
    component/javaunohelper/util/juh \
    component/lingucomponent/source/languageguessing/guesslang \
    component/lingucomponent/source/thesaurus/libnth/lnth \
    component/linguistic/source/lng \
    component/oox/util/oox \
    component/package/source/xstor/xstor \
    component/package/util/package2 \
    component/pyuno/source/loader/pythonloader \
	component/reportdesign/util/rptxml \
	component/reportdesign/util/rpt \
	component/reportdesign/util/rptui \
    component/vbahelper/util/msforms \
    component/remotebridges/source/unourl_resolver/uuresolver \
    component/sax/source/expatwrap/expwrap \
    component/sax/source/fastparser/fastsax \
    component/sc/util/sc \
    component/sc/util/scd \
    component/sc/util/vbaobj \
    component/scaddins/source/analysis/analysis \
    component/scaddins/source/datefunc/date \
    component/sd/util/sd \
    component/sd/util/sdd \
    component/sfx2/util/sfx \
    component/slideshow/util/slideshow \
    component/sot/util/sot \
    component/svgio/svgio \
    component/starmath/util/sm \
    component/starmath/util/smd \
    component/svl/source/fsstor/fsstorage \
    component/svl/source/passwordcontainer/passwordcontainer \
    component/svl/util/svl \
    component/svtools/source/hatchwindow/hatchwindowfactory \
    component/svtools/util/svt \
    component/svx/util/svx \
    component/svx/util/svxcore \
    component/svx/util/textconversiondlgs \
    component/sw/util/msword \
    component/sw/util/sw \
    component/sw/util/swd \
    component/sw/util/vbaswobj \
    component/unotools/util/utl \
    component/uui/util/uui \
    component/toolkit/util/ootk \
    component/ucb/source/cacher/cached1 \
    component/ucb/source/core/ucb1 \
    component/ucb/source/sorter/srtrs1 \
    component/ucb/source/ucp/expand/ucpexpand1 \
    component/ucb/source/ucp/ext/ucpext \
    component/ucb/source/ucp/file/ucpfile1 \
    component/ucb/source/ucp/ftp/ucpftp1 \
    component/ucb/source/ucp/hierarchy/ucphier1 \
    component/ucb/source/ucp/package/ucppkg1 \
    component/ucb/source/ucp/tdoc/ucptdoc1 \
    component/ucb/source/ucp/webdav/ucpdav1 \
    component/unoxml/source/rdf/unordf \
    component/unoxml/source/service/unoxml \
    component/writerfilter/util/writerfilter \
    component/xmlhelp/source/treeview/tvhlp1 \
    component/xmlhelp/util/ucpchelp1 \
    component/xmloff/source/transform/xof \
    component/xmloff/util/xo \
    component/xmlscript/util/xcr \
    dbase \
    dbp \
    dbpool2 \
    dbtools \
    deployment \
    deploymentgui \
    dlgprov \
    filterconfig1 \
    flash \
    flat \
    frm \
    localebe1 \
    log \
	mailmerge \
    migrationoo2 \
    msfilter \
    mysql \
    odbc \
    offacc \
    oooimprovecore \
    pcr \
    pdffilter \
    placeware \
    preload \
    protocolhandler \
    pythonscript \
    res \
    scn \
    scriptframe \
    sdbc2 \
    spl \
    stringresource \
    svgfilter \
    syssh \
    t602filter \
    updatefeed \
    updchk \
    vbaevents \
    xmlfa \
    xmlfd \
    xmx \
    xsltdlg \
    PresentationMinimizer \
    PresenterScreen

.IF "$(OS)" == "MACOSX"
my_components += component/vcl/vcl.macosx
.ELSE
.IF "$(OS)" == "WNT" || "$(OS)" == "OS2"
my_components += component/vcl/vcl.windows
.ELSE
my_components += component/vcl/vcl.unx
.ENDIF
.ENDIF

.IF "$(ENABLE_ONLINE_UPDATE)"=="YES"
my_components += updchk.uno
.END

.IF "$(OS)" != "WNT" && "$(OS)" != "OS2"
my_components += mozbootstrap
.END

.IF "$(ENABLE_OOOIMPROVEMENT)" != ""
my_components += oooimprovement
.END

.IF "$(ENABLE_COINMP)"=="YES"
my_components += component/sccomp/source/solver/solver
.END

.IF "$(DISABLE_SAXON)" == ""
my_components += XSLTFilter.jar \
    xsltfilter
.END

.IF "$(ENABLE_HYPHEN)" == "YES"
my_components += component/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen
.END

.IF "$(ENABLE_HUNSPELL)" == "YES"
my_components += component/lingucomponent/source/spellcheck/spell/spell
.END

.IF "$(SYSTEM_LIBWPD)" == "YES"
my_components +=     wpft
.END

.IF "$(OS)" == "WNT"
my_components += component/embeddedobj/source/msole/emboleobj.windows
.ELSE
my_components += component/embeddedobj/source/msole/emboleobj
.END

.IF "$(ENABLE_CAIRO_CANVAS)" == "TRUE"
my_components += component/canvas/source/cairo/cairocanvas
.END

.IF "$(ENABLE_GCONF)" != ""
my_components += gconfbe1
.END

.IF "$(ENABLE_GIO)" != ""
my_components += component/ucb/source/ucp/gio/ucpgio
.END

.IF "$(ENABLE_GNOMEVFS)" != ""
my_components += component/ucb/source/ucp/gvfs/ucpgvfs
.END

.IF "$(ENABLE_KDE)" != ""
my_components += kdebe1
.END

.IF "$(ENABLE_KDE4)" != ""
my_components += kde4be1
.END

.IF "$(ENABLE_OPENGL)" == "TRUE"
my_components += component/slideshow/source/engine/OGLTrans/ogltrans
.END

.IF "$(SOLAR_JAVA)" == "TRUE"
my_components += \
    component/xmlhelp/java/LuceneHelpWrapper/LuceneHelpWrapper \
    ScriptFramework \
    ScriptProviderForJava \
    component/xmerge/java/XMergeBridge/XMergeBridge \
    XSLTValidate \
    component/wizards/com/sun/star/wizards/agenda/agenda \
    component/wizards/com/sun/star/wizards/fax/fax \
    component/wizards/com/sun/star/wizards/form/form \
    hsqldb \
    jdbc \
    postgresql \
    component/poi-filter/java/poi-filter/poi-filter \
    component/wizards/com/sun/star/wizards/letter/letter \
    component/wizards/com/sun/star/wizards/query/query \
    component/wizards/com/sun/star/wizards/report/report \
    component/wizards/com/sun/star/wizards/table/table \
    component/wizards/com/sun/star/wizards/web/web
.IF "$(ENABLE_BEANSHELL)" == "YES"
my_components += ScriptProviderForBeanShell
.END
.IF "$(ENABLE_JAVASCRIPT)" == "YES"
my_components += ScriptProviderForJavaScript
.END
.END

.IF "$(WITH_LDAP)" == "YES"
my_components += ldapbe2
.END

.IF "$(ENABLE_NSS_MODULE)" != "NO"
my_components += \
    xmlsecurity \
    xsec_fw \
    xsec_xmlsec
.END

.IF "$(OS)" == "MACOSX"
my_components += \
    component/avmedia/source/macavf/avmediaMacAVF \
    component/fpicker/source/aqua/fps_aqua \
    component/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell \
    macab1 \
    macbe1
.END

.IF "$(OS)" == "WNT"
my_components += \
    ado \
    component/accessibility/java/java_uno_accessbridge/java_uno_accessbridge \
    component/avmedia/source/win/avmediawin \
    component/dtrans/source/generic/dtrans \
    component/dtrans/util/dnd \
    component/dtrans/util/ftransl \
    component/dtrans/util/sysdtrans \
    component/fpicker/util/fop \
    component/fpicker/util/fps \
    sysmail \
    winaccessibility \
    wininetbe1
.END

.IF "$(OS)" == "OS2"
my_components += \
    component/dtrans/source/generic/dtrans \
    component/dtrans/util/dnd \
    component/dtrans/util/sysdtrans
.END

.IF "$(OS)" == "WNT" && "$(DISABLE_ATL)" == ""
my_components += \
    emser \
    oleautobridge
.END

.IF "$(OS)" == "WNT" && "$(ENABLE_DIRECTX)" != ""
my_components += \
    component/canvas/source/directx/directx9canvas \
    component/canvas/source/directx/gdipluscanvas
.END

.IF "$(OS)" == "WNT" && "$(ENABLE_DIRECTX)" != "" && "$(USE_DIRECTX5)" != ""
my_components += component/canvas/source/directx/directx5canvas
.END

.IF "$(OS)" == "LINUX" || "$(OS)" == "NETBSD" || \
    ("$(OS)" == "SOLARIS" && "$(CPU)" == "S") || "$(OS)" == "WNT"
my_components += adabas
.END

.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" && "$(OS)" != "OS2"
my_components += desktopbe1
.END

.IF "$(GTK_TWO_FOUR)" != ""
my_components += component/fpicker/source/unx/gnome/fps_gnome
.END

.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" && "$(ENABLE_KDE4)" != ""
my_components += component/fpicker/source/unx/kde4/fps_kde4
.END

.IF "$(OS)" != "WNT"
my_components += cmdmail
.END

.IF "$(OS)" != "WNT" && "$(ENABLE_EVOAB2)" != ""
my_components += evoab
.END

.IF "$(OS)" != "WNT" && "$(ENABLE_GSTREAMER)" != ""
my_components += component/avmedia/source/gstreamer/avmediagst
.END

.IF "$(OS)" != "WNT" && "$(SOLAR_JAVA)" == "TRUE"
my_components += component/avmedia/source/java/avmedia.jar
.END

my_ooo_components = mailmerge

.INCLUDE: target.mk

ALLTAR : $(MISC)/services.rdb $(MISC)/ooo-services.rdb

$(MISC)/services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
        $(MISC)/services.input $(my_components:^"$(SOLARXMLDIR)/":+".component")
    $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
        $(SOLARENV)/bin/packcomponents.xslt $(MISC)/services.input

$(MISC)/services.input : makefile.mk
    echo \
        '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
        > $@

$(MISC)/ooo-services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
        $(MISC)/ooo-services.input \
        $(my_ooo_components:^"$(SOLARXMLDIR)/":+".component")
    $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
        $(SOLARENV)/bin/packcomponents.xslt $(MISC)/ooo-services.input

$(MISC)/ooo-services.input : makefile.mk
    echo '<list>' \
        '$(my_ooo_components:^"<filename>":+".component</filename>")' \
        '</list>' > $@
