1*b1cdbd2cSJim Jagielski#**************************************************************
2*b1cdbd2cSJim Jagielski#
3*b1cdbd2cSJim Jagielski#  Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski#  or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski#  distributed with this work for additional information
6*b1cdbd2cSJim Jagielski#  regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski#  to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski#  "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski#  with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski#
11*b1cdbd2cSJim Jagielski#    http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski#
13*b1cdbd2cSJim Jagielski#  Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski#  software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski#  KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski#  specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski#  under the License.
19*b1cdbd2cSJim Jagielski#
20*b1cdbd2cSJim Jagielski#**************************************************************
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim JagielskiPRJ=..$/..$/..$/..
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim JagielskiPRJNAME=xmlsecurity
26*b1cdbd2cSJim JagielskiTARGET=xmlsecurity-secfit-boot
27*b1cdbd2cSJim JagielskiTARGETTYPE=GUI
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim JagielskiGEN_HID=TRUE
30*b1cdbd2cSJim JagielskiAPP2NOSAL=TRUE
31*b1cdbd2cSJim Jagielski
32*b1cdbd2cSJim Jagielski# --- Settings -----------------------------------------------------------
33*b1cdbd2cSJim JagielskiUSE_JAVAVER=TRUE
34*b1cdbd2cSJim Jagielski
35*b1cdbd2cSJim Jagielski.INCLUDE :  settings.mk
36*b1cdbd2cSJim Jagielski
37*b1cdbd2cSJim JagielskiVERINFONAME=verinfo
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski.INCLUDE :  target.mk
40*b1cdbd2cSJim Jagielski.INCLUDE :	$(PRJ)$/util$/target.pmk
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski# -------------------------------------------------------------------------
43*b1cdbd2cSJim Jagielski# --- Targets -------------------------------------------------------------
44*b1cdbd2cSJim Jagielski
45*b1cdbd2cSJim JagielskiALLTAR : $(BIN)$/boot_services.rdb
46*b1cdbd2cSJim Jagielski
47*b1cdbd2cSJim JagielskiREGISTERLIBS= \
48*b1cdbd2cSJim Jagielski	i18npool.uno$(DLLPOST) \
49*b1cdbd2cSJim Jagielski	$(DLLPRE)tk$(DLLPOSTFIX)$(DLLPOST) \
50*b1cdbd2cSJim Jagielski	$(DLLPRE)mcnttype$(DLLPOST)
51*b1cdbd2cSJim Jagielski
52*b1cdbd2cSJim Jagielski#	$(DLLPRE)i18n$(DLLPOSTFIX)$(DLLPOST) \
53*b1cdbd2cSJim Jagielski#	$(DLLPRE)i18npool$(DLLPOSTFIX)$(DLLPOST) \
54*b1cdbd2cSJim Jagielski#	$(DLLPRE)tk$(DLLPOSTFIX)$(DLLPOST) \
55*b1cdbd2cSJim Jagielski#	$(DLLPRE)mcnttype$(DLLPOST)
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim Jagielski# Additional libraries
58*b1cdbd2cSJim JagielskiDLLPRE_NO=
59*b1cdbd2cSJim JagielskiREGISTERLIBS+= \
60*b1cdbd2cSJim Jagielski	$(DLLPRE_NO)dynamicloader.uno$(DLLPOST) \
61*b1cdbd2cSJim Jagielski	$(DLLPRE_NO)namingservice.uno$(DLLPOST) \
62*b1cdbd2cSJim Jagielski	$(DLLPRE_NO)bootstrap.uno$(DLLPOST) \
63*b1cdbd2cSJim Jagielski	$(DLLPRE)xsec_fw$(DLLPOST) \
64*b1cdbd2cSJim Jagielski	$(DLLPRE)xsec_xmlsec$(DLLPOST)
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "UNX"
67*b1cdbd2cSJim JagielskiMY_DLLDIR=$(SOLARLIBDIR)
68*b1cdbd2cSJim JagielskiREGISTERLIBS+= \
69*b1cdbd2cSJim Jagielski	$(DLLPRE)dtransX11$(DLLPOSTFIX)$(DLLPOST)
70*b1cdbd2cSJim Jagielski
71*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)" == "UNX"
72*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT"
73*b1cdbd2cSJim Jagielski
74*b1cdbd2cSJim JagielskiMY_DLLDIR=$(SOLARBINDIR)
75*b1cdbd2cSJim JagielskiREGISTERLIBS+= \
76*b1cdbd2cSJim Jagielski	$(DLLPRE)sysdtrans$(DLLPOST) \
77*b1cdbd2cSJim Jagielski	$(DLLPRE)ftransl$(DLLPOST) \
78*b1cdbd2cSJim Jagielski	$(DLLPRE)dnd$(DLLPOST)
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski.ELSE			# "$(GUI)"=="WNT"
81*b1cdbd2cSJim Jagielski
82*b1cdbd2cSJim Jagielski	@echo "**********************************************************"
83*b1cdbd2cSJim Jagielski	@echo "*** unknown platform: don't know which librarys to use ***"
84*b1cdbd2cSJim Jagielski	@echo "**********************************************************"
85*b1cdbd2cSJim Jagielski	force_dmake_to_error
86*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"=="WNT"
87*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)" == "UNX"
88*b1cdbd2cSJim Jagielski
89*b1cdbd2cSJim Jagielski.IF "$(SOLAR_JAVA)" != ""
90*b1cdbd2cSJim Jagielski.IF "$(JAVANUMVER)" >= "000100040000"
91*b1cdbd2cSJim Jagielski# native libraries, which are only necessary, when java shall run within setup
92*b1cdbd2cSJim JagielskiREGISTERLIBS_JAVA= \
93*b1cdbd2cSJim Jagielski	javavm.uno$(DLLPOST) \
94*b1cdbd2cSJim Jagielski	javaloader.uno$(DLLPOST)
95*b1cdbd2cSJim Jagielski
96*b1cdbd2cSJim Jagielski# add here java components, which shall run with setup
97*b1cdbd2cSJim JagielskiREGISTERJARS=\
98*b1cdbd2cSJim Jagielski	java_uno_accessbridge.jar
99*b1cdbd2cSJim Jagielski#	xsec_jxsec.jar
100*b1cdbd2cSJim Jagielski
101*b1cdbd2cSJim Jagielski# jar-files, which regcomp needs so that it can use java
102*b1cdbd2cSJim JagielskiREGCOMP_JARS=unoil.jar java_uno.jar ridl.jar jurt.jar juh.jar
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski# CLASSPATH, which regcomp needs to be run
105*b1cdbd2cSJim Jagielski# $(SOLARLIBDIR) needs to be included in case Java components are registered,
106*b1cdbd2cSJim Jagielski# because java_uno.jar needs to find the native java_uno shared library:
107*b1cdbd2cSJim JagielskiMY_CLASSPATH_TMP=$(foreach,i,$(REGCOMP_JARS) $(SOLARBINDIR)$/$i)$(PATH_SEPERATOR)$(SOLARLIBDIR)$(PATH_SEPERATOR)$(XCLASSPATH)
108*b1cdbd2cSJim JagielskiREGCOMP_CLASSPATH=$(strip $(subst,!,$(PATH_SEPERATOR) $(MY_CLASSPATH_TMP:s/ /!/)))
109*b1cdbd2cSJim Jagielski
110*b1cdbd2cSJim Jagielski.IF "$(GUI)"!="WNT"
111*b1cdbd2cSJim JagielskiDOLLAR_SIGN=\$$
112*b1cdbd2cSJim JagielskiMY_JAVA_COMPPATH=file://$(SOLARBINDIR)
113*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX"
114*b1cdbd2cSJim JagielskiREGCOMP_ENV=\
115*b1cdbd2cSJim Jagielski	setenv CLASSPATH $(REGCOMP_CLASSPATH) && \
116*b1cdbd2cSJim Jagielski	setenv DYLD_LIBRARY_PATH $(DYLD_LIBRARY_PATH):$(JDKLIB)
117*b1cdbd2cSJim Jagielski.ELSE
118*b1cdbd2cSJim JagielskiREGCOMP_ENV=\
119*b1cdbd2cSJim Jagielski	setenv CLASSPATH $(REGCOMP_CLASSPATH) && \
120*b1cdbd2cSJim Jagielski	setenv LD_LIBRARY_PATH $(LD_LIBRARY_PATH):$(JDKLIB)
121*b1cdbd2cSJim Jagielski.ENDIF
122*b1cdbd2cSJim Jagielski.ELSE # "$(GUI)" != "WNT"
123*b1cdbd2cSJim Jagielski.IF "$(USE_SHELL)" != "4nt"
124*b1cdbd2cSJim JagielskiDOLLAR_SIGN=\$$
125*b1cdbd2cSJim JagielskiREGCOMP_ENV=\
126*b1cdbd2cSJim Jagielski	setenv CLASSPATH "$(strip $(subst,\,/ $(shell @guw.pl echo $(REGCOMP_CLASSPATH))))" && \
127*b1cdbd2cSJim Jagielski	setenv PATH "$(PATH):$(JREPATH)"
128*b1cdbd2cSJim JagielskiMY_JAVA_COMPPATH=$(strip $(subst,\,/ file:///$(shell @guw.pl echo $(SOLARBINDIR))))
129*b1cdbd2cSJim Jagielski.ELSE # "$(USE_SHELL)" != "4nt"
130*b1cdbd2cSJim JagielskiDOLLAR_SIGN=$$
131*b1cdbd2cSJim JagielskiREGCOMP_ENV=\
132*b1cdbd2cSJim Jagielski	set CLASSPATH=$(REGCOMP_CLASSPATH) && \
133*b1cdbd2cSJim Jagielski	set PATH=$(PATH);$(JREPATH)
134*b1cdbd2cSJim JagielskiMY_JAVA_COMPPATH=$(strip $(subst,\,/ file:///$(SOLARBINDIR)))
135*b1cdbd2cSJim Jagielski.ENDIF  # "$(USE_SHELL)" != "4nt"
136*b1cdbd2cSJim Jagielski.ENDIF  # "$(GUI)"!="WNT"
137*b1cdbd2cSJim Jagielski.ENDIF  # "$(JAVANUMVER)" >= "000100040000"
138*b1cdbd2cSJim Jagielski.ENDIF  # "$(SOLAR_JAVA)" != ""
139*b1cdbd2cSJim Jagielski
140*b1cdbd2cSJim Jagielski$(BIN)$/boot_services.rdb: \
141*b1cdbd2cSJim Jagielski		makefile.mk \
142*b1cdbd2cSJim Jagielski		$(foreach,i,$(REGISTERLIBS) $(MY_DLLDIR)$/$(i)) \
143*b1cdbd2cSJim Jagielski		$(foreach,i,$(REGISTERLIBS_JAVA) $(MY_DLLDIR)$/$(i))
144*b1cdbd2cSJim Jagielski	-rm -f $@ $(BIN)$/regcomp.rdb $(BIN)$/boot_services.tmp
145*b1cdbd2cSJim Jagielski# register the native libraries
146*b1cdbd2cSJim Jagielski	$(REGCOMP) -register -r $(BIN)$/boot_services.tmp -c "$(strip $(REGISTERLIBS))"
147*b1cdbd2cSJim Jagielski.IF "$(SOLAR_JAVA)" != ""
148*b1cdbd2cSJim Jagielski.IF "$(OS)"!="MACOSX"
149*b1cdbd2cSJim Jagielski.IF "$(JAVANUMVER)" >= "000100040000"
150*b1cdbd2cSJim Jagielski	$(REGCOMP) -register -r $(BIN)$/boot_services.tmp -c "$(strip $(REGISTERLIBS_JAVA))"
151*b1cdbd2cSJim Jagielski# prepare a registry which regcomp can work on (types+java services)
152*b1cdbd2cSJim Jagielski	$(REGCOMP) -register -r $(BIN)$/regcomp.rdb -c "$(strip $(REGISTERLIBS_JAVA))"
153*b1cdbd2cSJim Jagielski	$(REGMERGE) $(BIN)$/regcomp.rdb / $(SOLARBINDIR)/udkapi.rdb
154*b1cdbd2cSJim Jagielski# now do the registration
155*b1cdbd2cSJim Jagielski	$(REGCOMP_ENV) && \
156*b1cdbd2cSJim Jagielski		$(REGCOMP) -br $(BIN)$/regcomp.rdb 			\
157*b1cdbd2cSJim Jagielski			-register					\
158*b1cdbd2cSJim Jagielski			-r $(BIN)$/boot_services.tmp 		\
159*b1cdbd2cSJim Jagielski			-l com.sun.star.loader.Java2			\
160*b1cdbd2cSJim Jagielski			-env:UNO_JAVA_COMPPATH=$(MY_JAVA_COMPPATH)	\
161*b1cdbd2cSJim Jagielski			$(foreach,i,$(REGISTERJARS) -c vnd.sun.star.expand:$(DOLLAR_SIGN)UNO_JAVA_COMPPATH/$(i))
162*b1cdbd2cSJim Jagielski#			$(foreach,i,$(REGISTERJARS) -c vnd.sun.star.expand:$(DOLLAR_SIGN)UNO_JAVA_COMPPATH/$(i)) -c $(MY_JAVA_COMPPATH)$/xsec_jxsec.jar
163*b1cdbd2cSJim Jagielski
164*b1cdbd2cSJim Jagielski.ENDIF # "$(JAVANUMVER)" >= "000100040000"
165*b1cdbd2cSJim Jagielski.ENDIF # "$(OS)" != "MACOSX"
166*b1cdbd2cSJim Jagielski.ENDIF #  "$(SOLAR_JAVA)" != ""
167*b1cdbd2cSJim Jagielski# to have a transaction, move it now to the final name
168*b1cdbd2cSJim Jagielski	$(REGMERGE) $(BIN)$/boot_services.tmp / $(SOLARBINDIR)/types.rdb
169*b1cdbd2cSJim Jagielski	mv $(BIN)$/boot_services.tmp $@
170*b1cdbd2cSJim Jagielski
171