xref: /trunk/main/forms/util/makefile.mk (revision 6ebe52f808faa3285ea18ab8e983eb89d5cfb82c)
1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21
22
23
24PRJ=..
25PRJNAME=forms
26TARGET=frm
27USE_DEFFILE=TRUE
28
29# --- Settings ----------------------------------
30
31.INCLUDE :  settings.mk
32.INCLUDE: $(PRJ)$/makefile.pmk
33
34# --- Library -----------------------------------
35# --- frm ---------------------------------------
36LIB1TARGET=$(SLB)$/forms.lib
37LIB1FILES=\
38        $(SLB)$/common.lib \
39        $(SLB)$/resource.lib \
40        $(SLB)$/component.lib \
41        $(SLB)$/helper.lib \
42        $(SLB)$/solarcomponent.lib  \
43        $(SLB)$/solarcontrol.lib \
44        $(SLB)$/richtext.lib \
45        $(SLB)$/runtime.lib \
46        $(SLB)$/xforms.lib \
47        $(SLB)$/xformssubmit.lib \
48        $(SLB)$/xformsxpath.lib
49
50SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
51
52.IF "$(OS)$(SYSTEM_LIBXML)"=="MACOSXYES"
53# The macOS shared-library link template (tg_shl.mk) always searches
54# $(SOLARLIB) -- which includes /usr/lib -- before any of this makefile's
55# own libs, and the SDK bundles its own older libxml2 under /usr/lib. A
56# plain "-lxml2" (as pulled in by LIBXML2LIB) resolves to that bundled
57# copy instead of the configured --with-system-libxml one, and it is
58# missing symbols (xmlXPathValuePush, xmlXPathValuePop) that xformsxpath
59# needs. Link the intended libxml2 by absolute path so the search order
60# can't shadow it.
61#
62# The path is built from $(LIBXML_PREFIX), not a live `xml2-config`
63# lookup -- see the matching comment in xmlsecurity/util/makefile.mk for
64# why: $(LIBXML_PREFIX) is resolved exactly once by `./configure`
65# (honoring the directory given to --with-system-libxml=DIR) and exported
66# via the generated *Env.Set.sh script, so it can't drift from what
67# configure actually resolved the way a fresh `xml2-config` shell-out at
68# dmake time could.
69#
70# Prefer the dylib when one is actually present at that prefix (it
71# records its own transitive links, e.g. to libz, so nothing extra needs
72# to be added); fall back to the static archive -- which carries no
73# dependency info, so zlib must be linked explicitly to satisfy libxml2's
74# HTTP/gzip symbols (deflate, inflate, gzopen, ...) -- when no dylib
75# exists there.
76.IF "$(shell test -f $(LIBXML_PREFIX)/lib/libxml2.dylib && echo yes)"=="yes"
77FORMS_LIBXML2LIB:=$(LIBXML_PREFIX)/lib/libxml2.dylib
78.ELSE
79FORMS_LIBXML2LIB:=$(LIBXML_PREFIX)/lib/libxml2.a $(ZLIB3RDLIB)
80.ENDIF
81.ELSE
82FORMS_LIBXML2LIB=$(LIBXML2LIB)
83.ENDIF
84
85SHL1STDLIBS= \
86        $(EDITENGLIB) \
87        $(SALLIB) \
88        $(CPPULIB) \
89        $(CPPUHELPERLIB) \
90        $(TOOLSLIB) \
91        $(I18NISOLANGLIB) \
92        $(VCLLIB) \
93        $(SVTOOLLIB) \
94        $(SVLLIB)   \
95        $(TKLIB) \
96        $(SFX2LIB) \
97        $(VOSLIB) \
98        $(UNOTOOLSLIB) \
99        $(COMPHELPERLIB) \
100        $(DBTOOLSLIB) \
101        $(TKLIB) \
102        $(SVXCORELIB) \
103        $(UCBHELPERLIB) \
104        $(FORMS_LIBXML2LIB) \
105        $(ICUUCLIB) \
106        $(ICUINLIB)
107
108SHL1LIBS=$(LIB1TARGET)
109SHL1DEPN=$(LIB1TARGET)  \
110        makefile.mk
111
112
113SHL1VERSIONMAP=$(SOLARENV)/src/component.map
114SHL1DEF=$(MISC)$/$(SHL1TARGET).def
115DEF1NAME=$(SHL1TARGET)
116
117# === .res file ==========================================================
118
119RES1FILELIST=\
120    $(SRS)$/resource.srs \
121
122RESLIB1NAME=$(TARGET)
123RESLIB1SRSFILES=$(RES1FILELIST)
124
125# --- Targets ----------------------------------
126
127.INCLUDE : target.mk
128
129# --- Filter-Datei ---
130
131$(MISC)$/$(SHL1TARGET).flt: makefile.mk
132    @echo ------------------------------
133    @echo __CT                  >$@
134    @echo createRegistryInfo    >>$@
135    @echo queryInterface        >>$@
136    @echo queryAggregation      >>$@
137    @echo NavigationToolBar     >>$@
138    @echo ONavigationBar        >>$@
139
140
141ALLTAR : $(MISC)/frm.component
142
143$(MISC)/frm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
144        frm.component
145    $(XSLTPROC) --nonet --stringparam uri \
146        '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
147        $(SOLARENV)/bin/createcomponent.xslt frm.component
148