xref: /aoo4110/main/solenv/inc/unitools.mk (revision b1cdbd2c)
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 Jagielski
24*b1cdbd2cSJim Jagielski# Common tools - move this to the end / consolidate
25*b1cdbd2cSJim JagielskiTRANSEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/transex3
26*b1cdbd2cSJim JagielskiULFEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfex
27*b1cdbd2cSJim JagielskiXMLEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xmlex
28*b1cdbd2cSJim JagielskiXRMEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xrmex
29*b1cdbd2cSJim JagielskiCFGEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cfgex
30*b1cdbd2cSJim JagielskiAUTODOC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/autodoc
31*b1cdbd2cSJim JagielskiLOCALIZE_SL*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/localize_sl
32*b1cdbd2cSJim JagielskiGSICHECK*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/gsicheck
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski.IF "$(SYSTEM_LIBXSLT)"!="YES"
35*b1cdbd2cSJim JagielskiXSLTPROC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xsltproc
36*b1cdbd2cSJim Jagielski.ELSE			# "$(SYSTEM_LIBXSLT)"!="YES"
37*b1cdbd2cSJim JagielskiXSLTPROC*=$(AUGMENT_LIBRARY_PATH) xsltproc
38*b1cdbd2cSJim Jagielski.ENDIF			# "$(SYSTEM_LIBXSLT)"!="YES"
39*b1cdbd2cSJim Jagielski
40*b1cdbd2cSJim JagielskiULFCONV*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfconv
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim JagielskiMAKEDEPEND*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/makedepend
43*b1cdbd2cSJim Jagielski
44*b1cdbd2cSJim JagielskiSCP_CHECK_TOOL:=checkscp$E
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski# iz32110: Calling a cygwin application from a non-cygwin shell requires
47*b1cdbd2cSJim Jagielski# backslashes to be escaped by another backslash: EES .. extra escape slash
48*b1cdbd2cSJim JagielskiEES:=
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielski# iz29675: 4nt must not quote special characters, but tcsh has to.
51*b1cdbd2cSJim Jagielski# *NIX shells needs to use " quotes, but 4nt must not.
52*b1cdbd2cSJim Jagielski# EMQ .. extra meta quote (\\ at line end is \)
53*b1cdbd2cSJim Jagielski# USQ .. unix shell  quote
54*b1cdbd2cSJim JagielskiEMQ:=\\
55*b1cdbd2cSJim JagielskiUSQ:="
56*b1cdbd2cSJim Jagielski
57*b1cdbd2cSJim Jagielski.IF "$(GUI)" == "OS2"
58*b1cdbd2cSJim JagielskiNULLDEV:=NUL
59*b1cdbd2cSJim Jagielski.ELSE
60*b1cdbd2cSJim JagielskiNULLDEV:=/dev/null
61*b1cdbd2cSJim Jagielski.ENDIF
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielski
64*b1cdbd2cSJim Jagielski# iz29609 helpmacro to check if file exists
65*b1cdbd2cSJim JagielskiIFEXIST:=if [ -f
66*b1cdbd2cSJim JagielskiIFDIREXIST:=if [ -d
67*b1cdbd2cSJim JagielskiIFNOTEXIST:= if ! test -f
68*b1cdbd2cSJim JagielskiTHEN:= ] ; then
69*b1cdbd2cSJim JagielskiFI:= ; fi
70*b1cdbd2cSJim JagielskiPIPEERROR=2>&1 |
71*b1cdbd2cSJim Jagielski
72*b1cdbd2cSJim Jagielski# iz31658
73*b1cdbd2cSJim JagielskiCHECKZIPRESULT:=|| ret=$$?; if [[ "$$ret" != "12" && "$$ret" != "1" ]] ; then exit $$ret ; fi && echo "Nothing to update for zip"
74*b1cdbd2cSJim Jagielski
75*b1cdbd2cSJim Jagielski# Platform specific
76*b1cdbd2cSJim Jagielski.IF "$(GUI)"=="WNT"
77*b1cdbd2cSJim JagielskiAWK*=awk
78*b1cdbd2cSJim JagielskiSORT*=sort
79*b1cdbd2cSJim JagielskiSED*=sed
80*b1cdbd2cSJim JagielskiGNUPATCH*=patch
81*b1cdbd2cSJim Jagielski# change drive and directory
82*b1cdbd2cSJim JagielskiCDD=cd
83*b1cdbd2cSJim Jagielski# expect cygwin tools to exist
84*b1cdbd2cSJim JagielskiCOPY*=cp
85*b1cdbd2cSJim JagielskiCOPYRECURSE=-r
86*b1cdbd2cSJim JagielskiDEREFERENCE=-L
87*b1cdbd2cSJim JagielskiCOPYUPDATE=-u
88*b1cdbd2cSJim JagielskiECHON=echo -n
89*b1cdbd2cSJim JagielskiECHONL=echo
90*b1cdbd2cSJim JagielskiFIND*=find
91*b1cdbd2cSJim JagielskiFLIPCMD*=$(PERL) $(SOLARENV)/bin/slfl.pl
92*b1cdbd2cSJim JagielskiGNUCOPY*=cp
93*b1cdbd2cSJim JagielskiGNUMAKE*=make
94*b1cdbd2cSJim JagielskiGREP*=grep
95*b1cdbd2cSJim JagielskiLS*=ls
96*b1cdbd2cSJim JagielskiPERL*:=perl
97*b1cdbd2cSJim Jagielski.EXPORT : PERL
98*b1cdbd2cSJim JagielskiRENAME*=mv
99*b1cdbd2cSJim JagielskiTOUCH*=touch
100*b1cdbd2cSJim JagielskiTYPE*=cat
101*b1cdbd2cSJim JagielskiDUMPBIN*=dumpbin
102*b1cdbd2cSJim Jagielski
103*b1cdbd2cSJim Jagielski.ELIF "$(GUI)"=="UNX"	# "$(GUI)"=="WNT"
104*b1cdbd2cSJim JagielskiSED*=sed
105*b1cdbd2cSJim JagielskiSORT*=sort
106*b1cdbd2cSJim JagielskiPERL*=perl
107*b1cdbd2cSJim Jagielski.EXPORT : PERL
108*b1cdbd2cSJim JagielskiTYPE=cat
109*b1cdbd2cSJim JagielskiCDD=cd
110*b1cdbd2cSJim JagielskiCOPY=cp -f
111*b1cdbd2cSJim Jagielski.IF "$(OS)"=="MACOSX" || "$(OS)"=="FREEBSD"
112*b1cdbd2cSJim JagielskiCOPYRECURSE=-R
113*b1cdbd2cSJim Jagielski.ELSE # Not BSD based
114*b1cdbd2cSJim JagielskiCOPYRECURSE=-r
115*b1cdbd2cSJim Jagielski.ENDIF
116*b1cdbd2cSJim Jagielski.IF "$(OS)"=="SOLARIS"
117*b1cdbd2cSJim JagielskiAWK*=nawk
118*b1cdbd2cSJim JagielskiGNUCOPY*=gnucp
119*b1cdbd2cSJim JagielskiGNUPATCH*=gnupatch
120*b1cdbd2cSJim JagielskiGNUTAR*=/usr/sfw/bin/gtar
121*b1cdbd2cSJim JagielskiDEREFERENCE=
122*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="SOLARIS"
123*b1cdbd2cSJim JagielskiAWK*=awk
124*b1cdbd2cSJim Jagielski# this is not true, as BSD does not default to a GNU cp, but BSD cp
125*b1cdbd2cSJim Jagielski# so in dmake makefiles one should be restricted to use the subset
126*b1cdbd2cSJim Jagielski# of features that both BSD and GNU make support.
127*b1cdbd2cSJim Jagielski# as the GNU make build system requires GNUCOPY to really be a GNU copy
128*b1cdbd2cSJim Jagielski# we work around that for now by not setting GNUCOPY in sdev300.ini
129*b1cdbd2cSJim Jagielski# for fbsd for now, but for all other platforms it is set.
130*b1cdbd2cSJim JagielskiGNUCOPY*=cp
131*b1cdbd2cSJim JagielskiGNUPATCH*=patch
132*b1cdbd2cSJim JagielskiGPERF*=gperf
133*b1cdbd2cSJim JagielskiDEREFERENCE=-L
134*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="SOLARIS"
135*b1cdbd2cSJim Jagielski.IF "$(OS)"=="LINUX" || "$(OS)"=="MACOSX"
136*b1cdbd2cSJim JagielskiGNUMAKE*=make
137*b1cdbd2cSJim Jagielski.ELSE			# "$(OS)"=="LINUX" || "$(OS)"=="MACOSX"
138*b1cdbd2cSJim JagielskiGNUMAKE*=gmake
139*b1cdbd2cSJim Jagielski.ENDIF			# "$(OS)"=="LINUX" || "$(OS)"=="MACOSX"
140*b1cdbd2cSJim JagielskiTOUCH=touch
141*b1cdbd2cSJim JagielskiRENAME=mv
142*b1cdbd2cSJim JagielskiGREP=grep
143*b1cdbd2cSJim JagielskiFIND=find
144*b1cdbd2cSJim JagielskiLS=ls
145*b1cdbd2cSJim JagielskiECHON=echo -n
146*b1cdbd2cSJim JagielskiECHONL=echo
147*b1cdbd2cSJim Jagielski.ELIF "$(GUI)"=="OS2"
148*b1cdbd2cSJim JagielskiGPERF*=gperf
149*b1cdbd2cSJim JagielskiSED*=sed
150*b1cdbd2cSJim JagielskiSORT*=sort
151*b1cdbd2cSJim JagielskiPERL*=perl
152*b1cdbd2cSJim JagielskiTYPE=cat
153*b1cdbd2cSJim JagielskiCDD=@cd
154*b1cdbd2cSJim JagielskiCOPY=cp -f
155*b1cdbd2cSJim JagielskiCOPYRECURSE=-r
156*b1cdbd2cSJim JagielskiCOPYUPDATE=-u
157*b1cdbd2cSJim JagielskiDELAY=sleep
158*b1cdbd2cSJim JagielskiECHON*=echo -n
159*b1cdbd2cSJim JagielskiECHONL=echo
160*b1cdbd2cSJim JagielskiAWK*=awk
161*b1cdbd2cSJim JagielskiGNUCOPY*=cp
162*b1cdbd2cSJim JagielskiGNUPATCH*=gnupatch
163*b1cdbd2cSJim JagielskiGNUMAKE*=make
164*b1cdbd2cSJim JagielskiTOUCH=touch
165*b1cdbd2cSJim Jagielski#YD rename doesn't work across different drives!
166*b1cdbd2cSJim JagielskiRENAME=mv
167*b1cdbd2cSJim JagielskiGREP=grep
168*b1cdbd2cSJim JagielskiFIND=find
169*b1cdbd2cSJim JagielskiLS=ls
170*b1cdbd2cSJim JagielskiDUMPBIN=echo
171*b1cdbd2cSJim Jagielski
172*b1cdbd2cSJim Jagielski.ENDIF			# "$(GUI)"=="UNX"
173*b1cdbd2cSJim Jagielski
174*b1cdbd2cSJim Jagielski# (Global) Set if not set before
175*b1cdbd2cSJim JagielskiDELAY*=sleep
176*b1cdbd2cSJim JagielskiMKDIR*=mkdir$E
177*b1cdbd2cSJim JagielskiMKDIRHIER*=mkdir$E -p
178*b1cdbd2cSJim JagielskiRMDIR*=rmdir
179*b1cdbd2cSJim JagielskiXARGS*=xargs
180*b1cdbd2cSJim JagielskiGNUTAR*:=tar
181*b1cdbd2cSJim Jagielski
182*b1cdbd2cSJim JagielskiRM+=$(RMFLAGS)
183*b1cdbd2cSJim JagielskiADJUSTVISIBILITY*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/adjustvisibility
184*b1cdbd2cSJim JagielskiCONVERT*:=$(PERL) $(SOLARENV)/bin/leconvert.pl
185*b1cdbd2cSJim JagielskiEXECTEST := $(PERL) -w $(SOLARENV)/bin/exectest.pl
186*b1cdbd2cSJim JagielskiGCCINSTLIB:=$(PERL) -w $(SOLARENV)/bin/gccinstlib.pl
187*b1cdbd2cSJim Jagielski
188*b1cdbd2cSJim Jagielski# The dmake $(PWD) apparantly produces paths with symlinks resolved, while the
189*b1cdbd2cSJim Jagielski# bash pwd command by default produces paths with unresolved symlinks, so that
190*b1cdbd2cSJim Jagielski# computing PATH_IN_MODULE in settings.mk would fail without the -P flag to the
191*b1cdbd2cSJim Jagielski# bash pwd command:
192*b1cdbd2cSJim JagielskiPWDFLAGS = -P
193