xref: /trunk/main/solenv/inc/unitools.mk (revision 62840caa)
17871dc3eSAndrew Rist#**************************************************************
27871dc3eSAndrew Rist#
37871dc3eSAndrew Rist#  Licensed to the Apache Software Foundation (ASF) under one
47871dc3eSAndrew Rist#  or more contributor license agreements.  See the NOTICE file
57871dc3eSAndrew Rist#  distributed with this work for additional information
67871dc3eSAndrew Rist#  regarding copyright ownership.  The ASF licenses this file
77871dc3eSAndrew Rist#  to you under the Apache License, Version 2.0 (the
87871dc3eSAndrew Rist#  "License"); you may not use this file except in compliance
97871dc3eSAndrew Rist#  with the License.  You may obtain a copy of the License at
107871dc3eSAndrew Rist#
117871dc3eSAndrew Rist#    http://www.apache.org/licenses/LICENSE-2.0
127871dc3eSAndrew Rist#
137871dc3eSAndrew Rist#  Unless required by applicable law or agreed to in writing,
147871dc3eSAndrew Rist#  software distributed under the License is distributed on an
157871dc3eSAndrew Rist#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
167871dc3eSAndrew Rist#  KIND, either express or implied.  See the License for the
177871dc3eSAndrew Rist#  specific language governing permissions and limitations
187871dc3eSAndrew Rist#  under the License.
197871dc3eSAndrew Rist#
207871dc3eSAndrew Rist#**************************************************************
217871dc3eSAndrew Rist
227871dc3eSAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir# Common tools - move this to the end / consolidate
25cdf0e10cSrcweirTRANSEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/transex3
26cdf0e10cSrcweirULFEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfex
27cdf0e10cSrcweirXMLEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xmlex
28cdf0e10cSrcweirXRMEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xrmex
29cdf0e10cSrcweirCFGEX*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cfgex
30cdf0e10cSrcweirAUTODOC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/autodoc
31cdf0e10cSrcweirLOCALIZE_SL*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/localize_sl
32cdf0e10cSrcweirGSICHECK*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/gsicheck
33cdf0e10cSrcweir
34cdf0e10cSrcweir.IF "$(SYSTEM_LIBXSLT)"!="YES"
35cdf0e10cSrcweirXSLTPROC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/xsltproc
36cdf0e10cSrcweir.ELSE			# "$(SYSTEM_LIBXSLT)"!="YES"
37cdf0e10cSrcweirXSLTPROC*=$(AUGMENT_LIBRARY_PATH) xsltproc
38cdf0e10cSrcweir.ENDIF			# "$(SYSTEM_LIBXSLT)"!="YES"
39cdf0e10cSrcweir
40cdf0e10cSrcweirULFCONV*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/ulfconv
41cdf0e10cSrcweir
42cdf0e10cSrcweirMAKEDEPEND*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/makedepend
43cdf0e10cSrcweir
44cdf0e10cSrcweirSCP_CHECK_TOOL:=checkscp$E
45cdf0e10cSrcweir
46cdf0e10cSrcweir# iz32110: Calling a cygwin application from a non-cygwin shell requires
47cdf0e10cSrcweir# backslashes to be escaped by another backslash: EES .. extra escape slash
48cdf0e10cSrcweirEES:=
49cdf0e10cSrcweir
50cdf0e10cSrcweir# iz29675: 4nt must not quote special characters, but tcsh has to.
51cdf0e10cSrcweir# *NIX shells needs to use " quotes, but 4nt must not.
52cdf0e10cSrcweir# EMQ .. extra meta quote (\\ at line end is \)
53cdf0e10cSrcweir# USQ .. unix shell  quote
54cdf0e10cSrcweirEMQ:=\\
55cdf0e10cSrcweirUSQ:="
56cdf0e10cSrcweir
57cdf0e10cSrcweirNULLDEV:=/dev/null
58cdf0e10cSrcweir
59cdf0e10cSrcweir
60cdf0e10cSrcweir# iz29609 helpmacro to check if file exists
61cdf0e10cSrcweirIFEXIST:=if [ -f
62cdf0e10cSrcweirIFNOTEXIST:= if ! test -f
63cdf0e10cSrcweirTHEN:= ] ; then
64cdf0e10cSrcweirFI:= ; fi
65cdf0e10cSrcweirPIPEERROR=2>&1 |
66cdf0e10cSrcweir
67cdf0e10cSrcweir# iz31658
68cdf0e10cSrcweirCHECKZIPRESULT:=|| ret=$$?; if [[ "$$ret" != "12" && "$$ret" != "1" ]] ; then exit $$ret ; fi && echo "Nothing to update for zip"
69cdf0e10cSrcweir
70cdf0e10cSrcweir# Platform specific
71cdf0e10cSrcweir.IF "$(GUI)"=="WNT"
72cdf0e10cSrcweirAWK*=awk
73cdf0e10cSrcweirSORT*=sort
74cdf0e10cSrcweirSED*=sed
75cdf0e10cSrcweirGNUPATCH*=patch
76cdf0e10cSrcweir# change drive and directory
77cdf0e10cSrcweirCDD=cd
78cdf0e10cSrcweir# expect cygwin tools to exist
79cdf0e10cSrcweirCOPY*=cp
80cdf0e10cSrcweirCOPYRECURSE=-r
81cdf0e10cSrcweirDEREFERENCE=-L
82cdf0e10cSrcweirCOPYUPDATE=-u
83cdf0e10cSrcweirECHON=echo -n
84cdf0e10cSrcweirECHONL=echo
85cdf0e10cSrcweirFIND*=find
86cdf0e10cSrcweirFLIPCMD*=$(PERL) $(SOLARENV)/bin/slfl.pl
87cdf0e10cSrcweirGNUCOPY*=cp
88cdf0e10cSrcweirGNUMAKE*=make
89cdf0e10cSrcweirGREP*=grep
90cdf0e10cSrcweirLS*=ls
91cdf0e10cSrcweirPERL*:=perl
92cdf0e10cSrcweir.EXPORT : PERL
93cdf0e10cSrcweirRENAME*=mv
94cdf0e10cSrcweirTOUCH*=touch
95cdf0e10cSrcweirTYPE*=cat
96cdf0e10cSrcweirDUMPBIN*=dumpbin
97cdf0e10cSrcweir
98cdf0e10cSrcweir.ELIF "$(GUI)"=="UNX"	# "$(GUI)"=="WNT"
99cdf0e10cSrcweirSED*=sed
100cdf0e10cSrcweirSORT*=sort
101cdf0e10cSrcweirPERL*=perl
102cdf0e10cSrcweir.EXPORT : PERL
103cdf0e10cSrcweirTYPE=cat
104cdf0e10cSrcweirCDD=cd
105cdf0e10cSrcweirCOPY=cp -f
106*62840caaSPedro Giffuni.IF "$(OS)"=="MACOSX" || "$(OS)"=="FREEBSD"
107cdf0e10cSrcweirCOPYRECURSE=-R
108*62840caaSPedro Giffuni.ELSE # Not BSD based
109cdf0e10cSrcweirCOPYRECURSE=-r
110cdf0e10cSrcweir.ENDIF
111cdf0e10cSrcweir.IF "$(OS)"=="SOLARIS"
112cdf0e10cSrcweirAWK*=nawk
113cdf0e10cSrcweirGNUCOPY*=gnucp
114cdf0e10cSrcweirGNUPATCH*=gnupatch
115cdf0e10cSrcweirGNUTAR*=/usr/sfw/bin/gtar
116cdf0e10cSrcweirDEREFERENCE=
117cdf0e10cSrcweir.ELSE			# "$(OS)"=="SOLARIS"
118cdf0e10cSrcweirAWK*=awk
119cdf0e10cSrcweir# this is not true, as BSD does not default to a GNU cp, but BSD cp
120cdf0e10cSrcweir# so in dmake makefiles one should be restricted to use the subset
121cdf0e10cSrcweir# of features that both BSD and GNU make support.
122cdf0e10cSrcweir# as the GNU make build system requires GNUCOPY to really be a GNU copy
123cdf0e10cSrcweir# we work around that for now by not setting GNUCOPY in sdev300.ini
124cdf0e10cSrcweir# for fbsd for now, but for all other platforms it is set.
125cdf0e10cSrcweirGNUCOPY*=cp
126cdf0e10cSrcweirGNUPATCH*=patch
12723ba173dSPedro GiffuniGPERF*=gperf
128cdf0e10cSrcweirDEREFERENCE=-L
129cdf0e10cSrcweir.ENDIF			# "$(OS)"=="SOLARIS"
130cdf0e10cSrcweir.IF "$(OS)"=="LINUX" || "$(OS)"=="MACOSX"
131cdf0e10cSrcweirGNUMAKE*=make
132cdf0e10cSrcweir.ELSE			# "$(OS)"=="LINUX" || "$(OS)"=="MACOSX"
133cdf0e10cSrcweirGNUMAKE*=gmake
134cdf0e10cSrcweir.ENDIF			# "$(OS)"=="LINUX" || "$(OS)"=="MACOSX"
135cdf0e10cSrcweirTOUCH=touch
136cdf0e10cSrcweirRENAME=mv
137cdf0e10cSrcweirGREP=grep
138cdf0e10cSrcweirFIND=find
139cdf0e10cSrcweirLS=ls
140cdf0e10cSrcweirECHON=echo -n
141cdf0e10cSrcweirECHONL=echo
142cdf0e10cSrcweir.ELIF "$(GUI)"=="OS2"
143cdf0e10cSrcweirSED*=sed
144cdf0e10cSrcweirSORT*=sort
145cdf0e10cSrcweirPERL*=perl
146cdf0e10cSrcweirTYPE=cat
147cdf0e10cSrcweirCDD=@cd
148cdf0e10cSrcweirCOPY*=$(SHELL) /c copy /b
149cdf0e10cSrcweirCOPYRECURSE=/s
150cdf0e10cSrcweirCOPYUPDATE=/u
151cdf0e10cSrcweirDELAY=sleep
152cdf0e10cSrcweirECHON*=echos
153cdf0e10cSrcweirECHONL=+echo.
154cdf0e10cSrcweirAWK*=awk
155cdf0e10cSrcweirGNUCOPY*=cp
156cdf0e10cSrcweirGNUPATCH*=gnupatch
157cdf0e10cSrcweirGNUMAKE*=make
158cdf0e10cSrcweirTOUCH=touch /c
159cdf0e10cSrcweir#YD rename doesn't work across different drives!
160cdf0e10cSrcweirRENAME=mv
161cdf0e10cSrcweirMKDIR=+md
162cdf0e10cSrcweirMKDIRHIER=+md /s
163cdf0e10cSrcweirGREP=grep
164cdf0e10cSrcweirFIND=find
165cdf0e10cSrcweirLS=ls
166cdf0e10cSrcweirDUMPBIN=echo
167cdf0e10cSrcweir4nt_force_shell:=+
168cdf0e10cSrcweir
169cdf0e10cSrcweir.ENDIF			# "$(GUI)"=="UNX"
170cdf0e10cSrcweir
171cdf0e10cSrcweir# (Global) Set if not set before
172cdf0e10cSrcweirDELAY*=sleep
173cdf0e10cSrcweirMKDIR*=mkdir$E
174cdf0e10cSrcweirMKDIRHIER*=mkdir$E -p
175cdf0e10cSrcweirRMDIR*=rmdir
176cdf0e10cSrcweirXARGS*=xargs
177cdf0e10cSrcweirGNUTAR*:=tar
178cdf0e10cSrcweir
179cdf0e10cSrcweirRM+=$(RMFLAGS)
180cdf0e10cSrcweirADJUSTVISIBILITY*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/adjustvisibility
181cdf0e10cSrcweirCONVERT*:=$(PERL) $(SOLARENV)/bin/leconvert.pl
182cdf0e10cSrcweirEXECTEST := $(PERL) -w $(SOLARENV)/bin/exectest.pl
183cdf0e10cSrcweirGCCINSTLIB:=$(PERL) -w $(SOLARENV)/bin/gccinstlib.pl
184cdf0e10cSrcweir
185cdf0e10cSrcweir# The dmake $(PWD) apparantly produces paths with symlinks resolved, while the
186cdf0e10cSrcweir# bash pwd command by default produces paths with unresolved symlinks, so that
187cdf0e10cSrcweir# computing PATH_IN_MODULE in settings.mk would fail without the -P flag to the
188cdf0e10cSrcweir# bash pwd command:
189cdf0e10cSrcweirPWDFLAGS = -P
190