xref: /aoo4110/main/solenv/gbuild/platform/os2.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 JagielskiGUI := OS2
23*b1cdbd2cSJim JagielskiCOM := GCC
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim Jagielski# set tmpdir to some mixed case path, suitable for native tools
26*b1cdbd2cSJim Jagielski#gb_TMPDIR:=$(if $(TMPDIR),$(shell cygpath -m $(TMPDIR)),$(shell cygpath -m /tmp))
27*b1cdbd2cSJim Jagielski#gb_MKTEMP := mktemp --tmpdir=$(gb_TMPDIR) gbuild.XXXXXX
28*b1cdbd2cSJim Jagielskigb_MKTEMP := mktemp -t gbuild.XXXXXX
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielskigb_CC := gcc
31*b1cdbd2cSJim Jagielskigb_CXX := g++
32*b1cdbd2cSJim Jagielskigb_GCCP := gcc
33*b1cdbd2cSJim Jagielskigb_LINK := gcc
34*b1cdbd2cSJim Jagielskigb_AR := emxomfar
35*b1cdbd2cSJim Jagielskigb_AWK := awk
36*b1cdbd2cSJim Jagielskigb_CLASSPATHSEP := ;
37*b1cdbd2cSJim Jagielskigb_RC := wrc
38*b1cdbd2cSJim Jagielski
39*b1cdbd2cSJim Jagielski# use CC/CXX if they are nondefaults
40*b1cdbd2cSJim Jagielskiifneq ($(origin CC),default)
41*b1cdbd2cSJim Jagielskigb_CC := $(CC)
42*b1cdbd2cSJim Jagielskigb_GCCP := $(CC)
43*b1cdbd2cSJim Jagielskiendif
44*b1cdbd2cSJim Jagielskiifneq ($(origin CXX),default)
45*b1cdbd2cSJim Jagielskigb_CXX := $(CXX)
46*b1cdbd2cSJim Jagielskiendif
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielski# until we get a solution to libc ticket#251, use dmik's -q option.
49*b1cdbd2cSJim JagielskiEMXOMFOPT = -q
50*b1cdbd2cSJim Jagielskiexport EMXOMFOPT
51*b1cdbd2cSJim Jagielski
52*b1cdbd2cSJim Jagielskigb_OSDEFS := \
53*b1cdbd2cSJim Jagielski	-D$(OS) \
54*b1cdbd2cSJim Jagielski	-D_PTHREADS \
55*b1cdbd2cSJim Jagielski	-DOS2 \
56*b1cdbd2cSJim Jagielski	$(PTHREAD_CFLAGS) \
57*b1cdbd2cSJim Jagielski
58*b1cdbd2cSJim Jagielskiifeq ($(GXX_INCLUDE_PATH),)
59*b1cdbd2cSJim JagielskiGXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion)
60*b1cdbd2cSJim Jagielskiendif
61*b1cdbd2cSJim Jagielski
62*b1cdbd2cSJim Jagielskigb_COMPILERDEFS := \
63*b1cdbd2cSJim Jagielski	-D$(COM) \
64*b1cdbd2cSJim Jagielski	-DHAVE_GCC_VISIBILITY_FEATURE \
65*b1cdbd2cSJim Jagielski	-DCPPU_ENV=gcc3 \
66*b1cdbd2cSJim Jagielski	-DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \
67*b1cdbd2cSJim Jagielski
68*b1cdbd2cSJim Jagielskigb_CPUDEFS := -DINTEL -D_X86_=1 -DX86
69*b1cdbd2cSJim Jagielski
70*b1cdbd2cSJim Jagielskigb_RCDEFS := \
71*b1cdbd2cSJim Jagielski	-DOS2 \
72*b1cdbd2cSJim Jagielski	-bt=os2 \
73*b1cdbd2cSJim Jagielski	-i$(PATH_EMXPGCC)\include \
74*b1cdbd2cSJim Jagielski
75*b1cdbd2cSJim Jagielskigb_RCFLAGS := \
76*b1cdbd2cSJim Jagielski     -V
77*b1cdbd2cSJim Jagielski
78*b1cdbd2cSJim Jagielskigb_CFLAGS := \
79*b1cdbd2cSJim Jagielski	-Zomf \
80*b1cdbd2cSJim Jagielski	-Wall \
81*b1cdbd2cSJim Jagielski	-Wendif-labels \
82*b1cdbd2cSJim Jagielski	-Wextra \
83*b1cdbd2cSJim Jagielski	-Wshadow \
84*b1cdbd2cSJim Jagielski	-fmessage-length=0 \
85*b1cdbd2cSJim Jagielski	-fno-common \
86*b1cdbd2cSJim Jagielski	-fno-strict-aliasing \
87*b1cdbd2cSJim Jagielski	-I$(JAVA_HOME)/include \
88*b1cdbd2cSJim Jagielski	-I$(JAVA_HOME)/include/os2
89*b1cdbd2cSJim Jagielski
90*b1cdbd2cSJim Jagielskigb_CXXFLAGS := \
91*b1cdbd2cSJim Jagielski	-Zomf \
92*b1cdbd2cSJim Jagielski	-Wall \
93*b1cdbd2cSJim Jagielski	-Wendif-labels \
94*b1cdbd2cSJim Jagielski	-Wextra \
95*b1cdbd2cSJim Jagielski	-Wno-ctor-dtor-privacy \
96*b1cdbd2cSJim Jagielski	-Wno-non-virtual-dtor \
97*b1cdbd2cSJim Jagielski	-Wshadow \
98*b1cdbd2cSJim Jagielski	-fmessage-length=0 \
99*b1cdbd2cSJim Jagielski	-fno-common \
100*b1cdbd2cSJim Jagielski	-fno-strict-aliasing \
101*b1cdbd2cSJim Jagielski	-fno-use-cxa-atexit \
102*b1cdbd2cSJim Jagielski	-I$(JAVA_HOME)/include \
103*b1cdbd2cSJim Jagielski	-I$(JAVA_HOME)/include/os2
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielskigb_STDLIBS = \
106*b1cdbd2cSJim Jagielski	z \
107*b1cdbd2cSJim Jagielski	stdc++
108*b1cdbd2cSJim Jagielski
109*b1cdbd2cSJim Jagielskiifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE)
110*b1cdbd2cSJim Jagielskigb_CFLAGS_WERROR := -Werror
111*b1cdbd2cSJim Jagielskigb_CXXFLAGS_WERROR := -Werror
112*b1cdbd2cSJim Jagielskiendif
113*b1cdbd2cSJim Jagielski
114*b1cdbd2cSJim Jagielskigb_LinkTarget_EXCEPTIONFLAGS := \
115*b1cdbd2cSJim Jagielski	-DEXCEPTIONS_ON \
116*b1cdbd2cSJim Jagielski	-fexceptions \
117*b1cdbd2cSJim Jagielski	-fno-enforce-eh-specs \
118*b1cdbd2cSJim Jagielski
119*b1cdbd2cSJim Jagielskigb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS)
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielskigb_LinkTarget_NOEXCEPTIONFLAGS := \
122*b1cdbd2cSJim Jagielski	-DEXCEPTIONS_OFF \
123*b1cdbd2cSJim Jagielski	-fno-exceptions \
124*b1cdbd2cSJim Jagielski
125*b1cdbd2cSJim Jagielskigb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS)
126*b1cdbd2cSJim Jagielski
127*b1cdbd2cSJim Jagielski
128*b1cdbd2cSJim Jagielskigb_LinkTarget_LDFLAGS := \
129*b1cdbd2cSJim Jagielski	-g -Zomf \
130*b1cdbd2cSJim Jagielski	-Zhigh-mem \
131*b1cdbd2cSJim Jagielski	-Zlinker "DISABLE 1121" \
132*b1cdbd2cSJim Jagielski	-Zmap \
133*b1cdbd2cSJim Jagielski	$(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \
134*b1cdbd2cSJim Jagielski	$(subst -L../lib , ,$(SOLARLIB)) \
135*b1cdbd2cSJim Jagielski
136*b1cdbd2cSJim Jagielskiifneq ($(ENABLE_CRASHDUMP),)
137*b1cdbd2cSJim Jagielskigb_LinkTarget_LDFLAGS += -DEBUG
138*b1cdbd2cSJim Jagielskigb_CFLAGS+=-Zi
139*b1cdbd2cSJim Jagielskigb_CXXFLAGS+=-Zi
140*b1cdbd2cSJim Jagielskiendif
141*b1cdbd2cSJim Jagielski
142*b1cdbd2cSJim Jagielskiifeq ($(gb_DEBUGLEVEL),2)
143*b1cdbd2cSJim Jagielskigb_COMPILEROPTFLAGS := -O0
144*b1cdbd2cSJim Jagielski#gb_LinkTarget_LDFLAGS += -DEBUG
145*b1cdbd2cSJim Jagielskielse
146*b1cdbd2cSJim Jagielskigb_COMPILEROPTFLAGS := -Os
147*b1cdbd2cSJim Jagielskiendif
148*b1cdbd2cSJim Jagielski
149*b1cdbd2cSJim Jagielskigb_COMPILERNOOPTFLAGS := -O0
150*b1cdbd2cSJim Jagielski
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski# Helper class
153*b1cdbd2cSJim Jagielski
154*b1cdbd2cSJim Jagielskigb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs)
155*b1cdbd2cSJim Jagielski
156*b1cdbd2cSJim Jagielski# convert parametters filesystem root to native notation
157*b1cdbd2cSJim Jagielski# does some real work only on windows, make sure not to
158*b1cdbd2cSJim Jagielski# break the dummy implementations on unx*
159*b1cdbd2cSJim Jagielskidefine gb_Helper_convert_native
160*b1cdbd2cSJim Jagielski$(1)
161*b1cdbd2cSJim Jagielskiendef
162*b1cdbd2cSJim Jagielski
163*b1cdbd2cSJim Jagielski
164*b1cdbd2cSJim Jagielski# CObject class
165*b1cdbd2cSJim Jagielski
166*b1cdbd2cSJim Jagielskidefine gb_CObject__command
167*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),C  ,3)
168*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs,\
169*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(1)) && \
170*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \
171*b1cdbd2cSJim Jagielski	$(gb_CC) \
172*b1cdbd2cSJim Jagielski		$(DEFS) $(CFLAGS) \
173*b1cdbd2cSJim Jagielski		-c $(3) \
174*b1cdbd2cSJim Jagielski		-o $(1) \
175*b1cdbd2cSJim Jagielski		-MMD -MT $(call gb_CObject_get_target,$(2)) \
176*b1cdbd2cSJim Jagielski		-MF $(call gb_CObject_get_dep_target,$(2)) \
177*b1cdbd2cSJim Jagielski		-I$(dir $(3)) \
178*b1cdbd2cSJim Jagielski		$(INCLUDE))
179*b1cdbd2cSJim Jagielskiendef
180*b1cdbd2cSJim Jagielski
181*b1cdbd2cSJim Jagielski
182*b1cdbd2cSJim Jagielski# CxxObject class
183*b1cdbd2cSJim Jagielski
184*b1cdbd2cSJim Jagielskidefine gb_CxxObject__command
185*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),CXX,3)
186*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs,\
187*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(1)) && \
188*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \
189*b1cdbd2cSJim Jagielski	$(gb_CXX) \
190*b1cdbd2cSJim Jagielski		$(DEFS) $(CXXFLAGS) \
191*b1cdbd2cSJim Jagielski		-c $(3) \
192*b1cdbd2cSJim Jagielski		-o $(1) \
193*b1cdbd2cSJim Jagielski		-MMD -MT $(call gb_CxxObject_get_target,$(2)) \
194*b1cdbd2cSJim Jagielski		-MF $(call gb_CxxObject_get_dep_target,$(2)) \
195*b1cdbd2cSJim Jagielski		-I$(dir $(3)) \
196*b1cdbd2cSJim Jagielski		$(INCLUDE_STL) $(INCLUDE))
197*b1cdbd2cSJim Jagielskiendef
198*b1cdbd2cSJim Jagielski
199*b1cdbd2cSJim Jagielski
200*b1cdbd2cSJim Jagielski# PrecompiledHeader class
201*b1cdbd2cSJim Jagielski
202*b1cdbd2cSJim Jagielskigb_PrecompiledHeader_get_enableflags = -Yu$(1).hxx \
203*b1cdbd2cSJim Jagielski									   -Fp$(call gb_PrecompiledHeader_get_target,$(1))
204*b1cdbd2cSJim Jagielski
205*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true))
206*b1cdbd2cSJim Jagielskidefine gb_PrecompiledHeader__command_deponcompile
207*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
208*b1cdbd2cSJim Jagielski	$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
209*b1cdbd2cSJim Jagielski		$(4) $(5) \
210*b1cdbd2cSJim Jagielski		-I$(dir $(3)) \
211*b1cdbd2cSJim Jagielski		$(filter-out -I$(COMPATH)% -I$(JAVA_HOME)%,$(6)) \
212*b1cdbd2cSJim Jagielski		$(3) \
213*b1cdbd2cSJim Jagielski		-f - \
214*b1cdbd2cSJim Jagielski	| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
215*b1cdbd2cSJim Jagielski		-v OBJECTFILE=$(1) \
216*b1cdbd2cSJim Jagielski		-v OUTDIR=$(OUTDIR)/ \
217*b1cdbd2cSJim Jagielski		-v WORKDIR=$(WORKDIR)/ \
218*b1cdbd2cSJim Jagielski		-v SRCDIR=$(SRCDIR)/ \
219*b1cdbd2cSJim Jagielski		-v REPODIR=$(REPODIR)/ \
220*b1cdbd2cSJim Jagielski	> $(call gb_PrecompiledHeader_get_dep_target,$(2)))
221*b1cdbd2cSJim Jagielskiendef
222*b1cdbd2cSJim Jagielskielse
223*b1cdbd2cSJim Jagielskigb_PrecompiledHeader__command_deponcompile =
224*b1cdbd2cSJim Jagielskiendif
225*b1cdbd2cSJim Jagielski
226*b1cdbd2cSJim Jagielski
227*b1cdbd2cSJim Jagielskidefine gb_PrecompiledHeader__command
228*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),PCH,1)
229*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
230*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \
231*b1cdbd2cSJim Jagielski	unset INCLUDE && \
232*b1cdbd2cSJim Jagielski	$(gb_CXX) \
233*b1cdbd2cSJim Jagielski		$(4) $(5) -Fd$(PDBFILE) \
234*b1cdbd2cSJim Jagielski		-I$(dir $(3)) \
235*b1cdbd2cSJim Jagielski		$(6) \
236*b1cdbd2cSJim Jagielski		-c $(3) \
237*b1cdbd2cSJim Jagielski		-Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
238*b1cdbd2cSJim Jagielski$(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
239*b1cdbd2cSJim Jagielskiendef
240*b1cdbd2cSJim Jagielski
241*b1cdbd2cSJim Jagielski# NoexPrecompiledHeader class
242*b1cdbd2cSJim Jagielski
243*b1cdbd2cSJim Jagielskigb_NoexPrecompiledHeader_get_enableflags = -Yu$(1).hxx \
244*b1cdbd2cSJim Jagielski										   -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1))
245*b1cdbd2cSJim Jagielski
246*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true))
247*b1cdbd2cSJim Jagielskidefine gb_NoexPrecompiledHeader__command_deponcompile
248*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
249*b1cdbd2cSJim Jagielski	$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
250*b1cdbd2cSJim Jagielski		$(4) $(5) \
251*b1cdbd2cSJim Jagielski		-I$(dir $(3)) \
252*b1cdbd2cSJim Jagielski		$(filter-out -I$(COMPATH)% -I$(JAVA_HOME)%,$(6)) \
253*b1cdbd2cSJim Jagielski		$(3) \
254*b1cdbd2cSJim Jagielski		-f - \
255*b1cdbd2cSJim Jagielski	| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
256*b1cdbd2cSJim Jagielski		-v OBJECTFILE=$(1) \
257*b1cdbd2cSJim Jagielski		-v OUTDIR=$(OUTDIR)/ \
258*b1cdbd2cSJim Jagielski		-v WORKDIR=$(WORKDIR)/ \
259*b1cdbd2cSJim Jagielski		-v SRCDIR=$(SRCDIR)/ \
260*b1cdbd2cSJim Jagielski		-v REPODIR=$(REPODIR)/ \
261*b1cdbd2cSJim Jagielski	> $(call gb_NoexPrecompiledHeader_get_dep_target,$(2)))
262*b1cdbd2cSJim Jagielskiendef
263*b1cdbd2cSJim Jagielskielse
264*b1cdbd2cSJim Jagielskigb_NoexPrecompiledHeader__command_deponcompile =
265*b1cdbd2cSJim Jagielskiendif
266*b1cdbd2cSJim Jagielski
267*b1cdbd2cSJim Jagielski
268*b1cdbd2cSJim Jagielskidefine gb_NoexPrecompiledHeader__command
269*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),PCH,1)
270*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
271*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \
272*b1cdbd2cSJim Jagielski	unset INCLUDE && \
273*b1cdbd2cSJim Jagielski	$(gb_CXX) \
274*b1cdbd2cSJim Jagielski		$(4) $(5) -Fd$(PDBFILE) \
275*b1cdbd2cSJim Jagielski		-I$(dir $(3)) \
276*b1cdbd2cSJim Jagielski		$(6) \
277*b1cdbd2cSJim Jagielski		-c $(3) \
278*b1cdbd2cSJim Jagielski		-Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj)
279*b1cdbd2cSJim Jagielski$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6))
280*b1cdbd2cSJim Jagielskiendef
281*b1cdbd2cSJim Jagielski
282*b1cdbd2cSJim Jagielski# LinkTarget class
283*b1cdbd2cSJim Jagielski
284*b1cdbd2cSJim Jagielskigb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS)
285*b1cdbd2cSJim Jagielskigb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR)
286*b1cdbd2cSJim Jagielski
287*b1cdbd2cSJim Jagielskiifeq ($(gb_DEBUGLEVEL),2)
288*b1cdbd2cSJim Jagielskigb_LinkTarget_CFLAGS += -g
289*b1cdbd2cSJim Jagielskigb_LinkTarget_CXXFLAGS += -g
290*b1cdbd2cSJim Jagielskigb_LinkTarget_OBJCXXFLAGS += -g
291*b1cdbd2cSJim Jagielskiendif
292*b1cdbd2cSJim Jagielski
293*b1cdbd2cSJim Jagielskigb_LinkTarget_INCLUDE :=\
294*b1cdbd2cSJim Jagielski	$(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \
295*b1cdbd2cSJim Jagielski	$(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \
296*b1cdbd2cSJim Jagielski
297*b1cdbd2cSJim Jagielskigb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC)))
298*b1cdbd2cSJim Jagielski
299*b1cdbd2cSJim Jagielskigb_LinkTarget_get_pdbfile = $(call gb_LinkTarget_get_target,)pdb/$(1).pdb
300*b1cdbd2cSJim Jagielski
301*b1cdbd2cSJim JagielskiDLLBASE = $(notdir $(DLLTARGET:.dll=))
302*b1cdbd2cSJim JagielskiDLLDEF = $(dir $(DLLTARGET))$(DLLBASE).def
303*b1cdbd2cSJim Jagielski
304*b1cdbd2cSJim Jagielskidefine gb_LinkTarget__command_dynamiclinkexecutable
305*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),LNK,4)
306*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
307*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(1)) && \
308*b1cdbd2cSJim Jagielski	rm -f $(1) && \
309*b1cdbd2cSJim Jagielski	$(if $(DLLTARGET), echo LIBRARY	$(DLLBASE) INITINSTANCE TERMINSTANCE > $(DLLDEF) &&) \
310*b1cdbd2cSJim Jagielski	$(if $(DLLTARGET), echo DATA MULTIPLE >> $(DLLDEF) &&) \
311*b1cdbd2cSJim Jagielski	RESPONSEFILE=$(call var2filecr,$(shell $(gb_MKTEMP)),1, \
312*b1cdbd2cSJim Jagielski	    $(call gb_Helper_convert_native,$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
313*b1cdbd2cSJim Jagielski		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
314*b1cdbd2cSJim Jagielski		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \
315*b1cdbd2cSJim Jagielski		$(PCHOBJS))) && \
316*b1cdbd2cSJim Jagielski	$(if $(DLLTARGET), echo EXPORTS >> $(DLLDEF) &&) \
317*b1cdbd2cSJim Jagielski	$(if $(DLLTARGET), emxexp @$${RESPONSEFILE} | fix_exp_file | sort | uniq | fix_def_ord >> $(DLLDEF) &&) \
318*b1cdbd2cSJim Jagielski	$(gb_LINK) \
319*b1cdbd2cSJim Jagielski		$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \
320*b1cdbd2cSJim Jagielski		$(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \
321*b1cdbd2cSJim Jagielski		$(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \
322*b1cdbd2cSJim Jagielski		$(LDFLAGS) \
323*b1cdbd2cSJim Jagielski		@$${RESPONSEFILE} \
324*b1cdbd2cSJim Jagielski		$(if $(DLLTARGET), $(DLLDEF)) \
325*b1cdbd2cSJim Jagielski		$(NATIVERES) \
326*b1cdbd2cSJim Jagielski		$(patsubst %.lib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \
327*b1cdbd2cSJim Jagielski		$(patsubst %,-l%,$(EXTERNAL_LIBS)) \
328*b1cdbd2cSJim Jagielski		$(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \
329*b1cdbd2cSJim Jagielski		$(if $(DLLTARGET),-o $(DLLTARGET), -o $(1) ); \
330*b1cdbd2cSJim Jagielski		RC=$$?; rm $${RESPONSEFILE} \
331*b1cdbd2cSJim Jagielski	$(if $(DLLTARGET),; emximp -p2048 -o $(1) $(DLLDEF) ) \
332*b1cdbd2cSJim Jagielski	$(if $(DLLTARGET),; if [ ! -f $(DLLTARGET) ]; then rm -f $(1) && false; fi) ; exit $$RC)
333*b1cdbd2cSJim Jagielskiendef
334*b1cdbd2cSJim Jagielski
335*b1cdbd2cSJim Jagielski
336*b1cdbd2cSJim Jagielskidefine gb_LinkTarget__command_staticlinklibrary
337*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
338*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(1)) && \
339*b1cdbd2cSJim Jagielski	RESPONSEFILE=`$(gb_MKTEMP)` && \
340*b1cdbd2cSJim Jagielski	echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \
341*b1cdbd2cSJim Jagielski		$(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
342*b1cdbd2cSJim Jagielski		$(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \
343*b1cdbd2cSJim Jagielski	$(gb_AR) cru\
344*b1cdbd2cSJim Jagielski		$(1) \
345*b1cdbd2cSJim Jagielski		@$${RESPONSEFILE})
346*b1cdbd2cSJim Jagielskiendef
347*b1cdbd2cSJim Jagielski
348*b1cdbd2cSJim Jagielskidefine gb_LinkTarget__command
349*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),LNK,4)
350*b1cdbd2cSJim Jagielski$(if $(filter Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclinkexecutable,$(1),$(2)))
351*b1cdbd2cSJim Jagielski$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclinkexecutable,$(1),$(2)))
352*b1cdbd2cSJim Jagielski$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlinklibrary,$(1)))
353*b1cdbd2cSJim Jagielskiendef
354*b1cdbd2cSJim Jagielski
355*b1cdbd2cSJim Jagielski
356*b1cdbd2cSJim Jagielski# Library class
357*b1cdbd2cSJim Jagielski
358*b1cdbd2cSJim Jagielskigb_Library_DEFS := -D_DLL
359*b1cdbd2cSJim Jagielskigb_Library_TARGETTYPEFLAGS := -Zdll
360*b1cdbd2cSJim Jagielskigb_Library_get_rpath :=
361*b1cdbd2cSJim Jagielski
362*b1cdbd2cSJim Jagielskigb_Library_SYSPRE :=
363*b1cdbd2cSJim Jagielskigb_Library_PLAINEXT := .lib
364*b1cdbd2cSJim Jagielski
365*b1cdbd2cSJim Jagielskigb_Library_PLAINLIBS_NONE += \
366*b1cdbd2cSJim Jagielski	stdc++ \
367*b1cdbd2cSJim Jagielski	ft2lib \
368*b1cdbd2cSJim Jagielski	dl \
369*b1cdbd2cSJim Jagielski	freetype \
370*b1cdbd2cSJim Jagielski	jpeg \
371*b1cdbd2cSJim Jagielski	m \
372*b1cdbd2cSJim Jagielski	z \
373*b1cdbd2cSJim Jagielski	pthread \
374*b1cdbd2cSJim Jagielski	cppunit
375*b1cdbd2cSJim Jagielski
376*b1cdbd2cSJim Jagielskigb_Library_LAYER := \
377*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \
378*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \
379*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \
380*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \
381*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \
382*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \
383*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_STLLIBS),$(lib):OOO) \
384*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \
385*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \
386*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \
387*b1cdbd2cSJim Jagielski
388*b1cdbd2cSJim Jagielskigb_Library_FILENAMES :=\
389*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT))
390*b1cdbd2cSJim Jagielski
391*b1cdbd2cSJim Jagielski
392*b1cdbd2cSJim Jagielskigb_Library_DLLEXT := .dll
393*b1cdbd2cSJim Jagielskigb_Library_MAJORVER :=
394*b1cdbd2cSJim Jagielskigb_Library_RTEXT := $(gb_Library_DLLEXT)
395*b1cdbd2cSJim Jagielskiifeq ($(gb_PRODUCT),$(true))
396*b1cdbd2cSJim Jagielskigb_Library_STLEXT := stdc++$(gb_Library_DLLEXT)
397*b1cdbd2cSJim Jagielskielse
398*b1cdbd2cSJim Jagielskigb_Library_STLEXT := stlp45_stldebug$(gb_Library_DLLEXT)
399*b1cdbd2cSJim Jagielskiendif
400*b1cdbd2cSJim Jagielskigb_Library_OOOEXT := $(gb_Library_DLLEXT)
401*b1cdbd2cSJim Jagielskigb_Library_UNOEXT := .uno$(gb_Library_DLLEXT)
402*b1cdbd2cSJim Jagielskigb_Library_UNOVEREXT := $(gb_Library_MAJORVER)$(gb_Library_DLLEXT)
403*b1cdbd2cSJim Jagielskigb_Library_RTVEREXT := $(gb_Library_MAJORVER)$(gb_Library_RTEXT)
404*b1cdbd2cSJim Jagielski
405*b1cdbd2cSJim Jagielskigb_Library_DLLFILENAMES :=\
406*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \
407*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \
408*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \
409*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \
410*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \
411*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \
412*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_STLLIBS),$(lib):$(lib)$(gb_Library_STLEXT)) \
413*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \
414*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \
415*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \
416*b1cdbd2cSJim Jagielski
417*b1cdbd2cSJim Jagielskidefine gb_Library_Library_platform
418*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_set_dlltarget,$(2),$(3))
419*b1cdbd2cSJim Jagielski
420*b1cdbd2cSJim Jagielski#$(call gb_LinkTarget_set_auxtargets,$(2),\
421*b1cdbd2cSJim Jagielski	$(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \
422*b1cdbd2cSJim Jagielski	$(3).manifest \
423*b1cdbd2cSJim Jagielski	$(call gb_LinkTarget_get_pdbfile,$(2)) \
424*b1cdbd2cSJim Jagielski	$(patsubst %.dll,%.pdb,$(3)) \
425*b1cdbd2cSJim Jagielski	$(patsubst %.dll,%.ilk,$(3)) \
426*b1cdbd2cSJim Jagielski)
427*b1cdbd2cSJim Jagielski
428*b1cdbd2cSJim Jagielski$(call gb_Library_get_target,$(1)) \
429*b1cdbd2cSJim Jagielski$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(OUTDIR)/bin/$(notdir $(3))
430*b1cdbd2cSJim Jagielski
431*b1cdbd2cSJim Jagielskiifneq ($(ENABLE_CRASHDUMP),)
432*b1cdbd2cSJim Jagielski$(call gb_Library_get_target,$(1)) \
433*b1cdbd2cSJim Jagielski$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS +=  \
434*b1cdbd2cSJim Jagielski		$(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.pdb,$(3))) \
435*b1cdbd2cSJim Jagielski		$(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.ilk,$(3))) \
436*b1cdbd2cSJim Jagielski
437*b1cdbd2cSJim Jagielski$(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.pdb,$(3))),$(patsubst %.dll,%.pdb,$(3)))
438*b1cdbd2cSJim Jagielski$(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.ilk,$(3))),$(patsubst %.dll,%.ilk,$(3)))
439*b1cdbd2cSJim Jagielskiendif
440*b1cdbd2cSJim Jagielski
441*b1cdbd2cSJim Jagielski$(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(3)),$(3))
442*b1cdbd2cSJim Jagielski
443*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_target,$(2)) \
444*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
445*b1cdbd2cSJim Jagielski
446*b1cdbd2cSJim Jagielskiendef
447*b1cdbd2cSJim Jagielski
448*b1cdbd2cSJim Jagielskidefine gb_Library_add_default_nativeres_DISABLED
449*b1cdbd2cSJim Jagielski$(call gb_WinResTarget_WinResTarget_init,$(1)/$(2))
450*b1cdbd2cSJim Jagielski$(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo)
451*b1cdbd2cSJim Jagielski$(call gb_WinResTarget_set_defs,$(1)/$(2),\
452*b1cdbd2cSJim Jagielski        $$(DEFS) \
453*b1cdbd2cSJim Jagielski		-DADDITIONAL_VERINFO1 \
454*b1cdbd2cSJim Jagielski		-DADDITIONAL_VERINFO2 \
455*b1cdbd2cSJim Jagielski		-DADDITIONAL_VERINFO3 \
456*b1cdbd2cSJim Jagielski)
457*b1cdbd2cSJim Jagielski$(call gb_Library_add_nativeres,$(1),$(2))
458*b1cdbd2cSJim Jagielski$(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2))
459*b1cdbd2cSJim Jagielski
460*b1cdbd2cSJim Jagielskiendef
461*b1cdbd2cSJim Jagielski
462*b1cdbd2cSJim Jagielskidefine gb_Library_add_nativeres
463*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : $(call gb_WinResTarget_get_target,$(1)/$(2))
464*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : NATIVERES += $(call gb_WinResTarget_get_target,$(1)/$(2))
465*b1cdbd2cSJim Jagielski
466*b1cdbd2cSJim Jagielskiendef
467*b1cdbd2cSJim Jagielski
468*b1cdbd2cSJim Jagielskidefine gb_Library_get_dllname
469*b1cdbd2cSJim Jagielski$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES)))
470*b1cdbd2cSJim Jagielskiendef
471*b1cdbd2cSJim Jagielski
472*b1cdbd2cSJim Jagielski
473*b1cdbd2cSJim Jagielski# StaticLibrary class
474*b1cdbd2cSJim Jagielski
475*b1cdbd2cSJim Jagielskigb_StaticLibrary_DEFS :=
476*b1cdbd2cSJim Jagielskigb_StaticLibrary_SYSPRE :=
477*b1cdbd2cSJim Jagielskigb_StaticLibrary_PLAINEXT := .lib
478*b1cdbd2cSJim Jagielskigb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT)
479*b1cdbd2cSJim Jagielski
480*b1cdbd2cSJim Jagielskigb_StaticLibrary_FILENAMES := \
481*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \
482*b1cdbd2cSJim Jagielski	$(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \
483*b1cdbd2cSJim Jagielski
484*b1cdbd2cSJim Jagielskigb_StaticLibrary_StaticLibrary_platform =
485*b1cdbd2cSJim Jagielski
486*b1cdbd2cSJim Jagielski
487*b1cdbd2cSJim Jagielski# Executable class
488*b1cdbd2cSJim Jagielski
489*b1cdbd2cSJim Jagielskigb_Executable_EXT := .exe
490*b1cdbd2cSJim Jagielskigb_Executable_TARGETTYPEFLAGS :=
491*b1cdbd2cSJim Jagielski#-RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG
492*b1cdbd2cSJim Jagielskigb_Executable_get_rpath :=
493*b1cdbd2cSJim Jagielski
494*b1cdbd2cSJim Jagielskidefine gb_Executable_Executable_platform
495*b1cdbd2cSJim Jagielski#$(call gb_LinkTarget_set_auxtargets,$(2),\
496*b1cdbd2cSJim Jagielski#	$(patsubst %.exe,%.pdb,$(call gb_LinkTarget_get_target,$(2))) \
497*b1cdbd2cSJim Jagielski#	$(call gb_LinkTarget_get_pdbfile,$(2)) \
498*b1cdbd2cSJim Jagielski#	$(call gb_LinkTarget_get_target,$(2)).manifest \
499*b1cdbd2cSJim Jagielski#)
500*b1cdbd2cSJim Jagielski
501*b1cdbd2cSJim Jagielski#$(call gb_Executable_get_target,$(1)) \
502*b1cdbd2cSJim Jagielski#$(call gb_Executable_get_clean_target,$(1)) : AUXTARGETS := $(call gb_Executable_get_target,$(1)).manifest
503*b1cdbd2cSJim Jagielski#$(call gb_Deliver_add_deliverable,$(call gb_Executable_get_target,$(1)).manifest,$(call gb_LinkTarget_get_target,$(2)).manifest)
504*b1cdbd2cSJim Jagielski
505*b1cdbd2cSJim Jagielski#$(call gb_LinkTarget_get_target,$(2)) \
506*b1cdbd2cSJim Jagielski#$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
507*b1cdbd2cSJim Jagielski
508*b1cdbd2cSJim Jagielskiendef
509*b1cdbd2cSJim Jagielski
510*b1cdbd2cSJim Jagielski# CppunitTest class
511*b1cdbd2cSJim Jagielski
512*b1cdbd2cSJim Jagielskigb_CppunitTest_CPPTESTPRECOMMAND :=
513*b1cdbd2cSJim Jagielskigb_CppunitTest_SYSPRE := itest_
514*b1cdbd2cSJim Jagielskigb_CppunitTest_EXT := .lib
515*b1cdbd2cSJim Jagielskigb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT)
516*b1cdbd2cSJim Jagielskigb_CppunitTest_get_libfilename = test_$(1).dll
517*b1cdbd2cSJim Jagielski
518*b1cdbd2cSJim Jagielskidefine gb_CppunitTest_CppunitTest_platform
519*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_set_dlltarget,$(2),$(3))
520*b1cdbd2cSJim Jagielski
521*b1cdbd2cSJim Jagielski#$(call gb_LinkTarget_set_auxtargets,$(2),\
522*b1cdbd2cSJim Jagielski	$(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \
523*b1cdbd2cSJim Jagielski	$(3).manifest \
524*b1cdbd2cSJim Jagielski	$(patsubst %.dll,%.pdb,$(3)) \
525*b1cdbd2cSJim Jagielski	$(call gb_LinkTarget_get_pdbfile,$(2)) \
526*b1cdbd2cSJim Jagielski	$(patsubst %.dll,%.ilk,$(3)) \
527*b1cdbd2cSJim Jagielski)
528*b1cdbd2cSJim Jagielski
529*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_target,$(2)) \
530*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2))
531*b1cdbd2cSJim Jagielski
532*b1cdbd2cSJim Jagielskiendef
533*b1cdbd2cSJim Jagielski
534*b1cdbd2cSJim Jagielski# JunitTest class
535*b1cdbd2cSJim Jagielski
536*b1cdbd2cSJim Jagielskigb_defaultlangiso := en-US
537*b1cdbd2cSJim Jagielskigb_smoketest_instset := $(SRCDIR)/instsetoo_native/$(INPATH)/OpenOffice/archive/install/$(gb_defaultlangiso)/OOo_*_install-arc_$(gb_defaultlangiso).zip
538*b1cdbd2cSJim Jagielski
539*b1cdbd2cSJim Jagielskiifeq ($(OOO_TEST_SOFFICE),)
540*b1cdbd2cSJim Jagielski
541*b1cdbd2cSJim Jagielski
542*b1cdbd2cSJim Jagielski# Work around Windows problems with long pathnames (see issue 50885) by
543*b1cdbd2cSJim Jagielski# installing into the temp directory instead of the module output tree (in which
544*b1cdbd2cSJim Jagielski# case $(target).instpath contains the path to the temp installation,
545*b1cdbd2cSJim Jagielski# which is removed after smoketest); can be removed once issue 50885 is fixed;
546*b1cdbd2cSJim Jagielski# on other platforms, a single installation to solver is created in
547*b1cdbd2cSJim Jagielski# smoketestoo_native.
548*b1cdbd2cSJim Jagielski
549*b1cdbd2cSJim Jagielski# for now, no dependency on $(shell ls $(gb_smoketest_instset))
550*b1cdbd2cSJim Jagielski# because that doesn't work before the instset is built
551*b1cdbd2cSJim Jagielski# and there is not much of a benefit anyway (gbuild not knowing about smoketest)
552*b1cdbd2cSJim Jagielskidefine gb_JunitTest_JunitTest_platform_longpathname_hack
553*b1cdbd2cSJim Jagielski$(call gb_JunitTest_get_target,$(1)) : $(call gb_JunitTest_get_target,$(1)).instpath
554*b1cdbd2cSJim Jagielski$(call gb_JunitTest_get_target,$(1)) : CLEAN_CMD = $(call gb_Helper_abbreviate_dirs,rm -rf `cat $$@.instpath` $$@.instpath)
555*b1cdbd2cSJim Jagielski
556*b1cdbd2cSJim Jagielski$(call gb_JunitTest_get_target,$(1)).instpath :
557*b1cdbd2cSJim Jagielski	INST_DIR=$$$$(cygpath -m `mktemp -d -t testinst.XXXXXX`) \
558*b1cdbd2cSJim Jagielski	&& unzip -d "$$$${INST_DIR}"  $$(gb_smoketest_instset) \
559*b1cdbd2cSJim Jagielski	&& mv "$$$${INST_DIR}"/OOo_*_install-arc_$$(gb_defaultlangiso) "$$$${INST_DIR}"/opt\
560*b1cdbd2cSJim Jagielski	&& mkdir -p $$(dir $$@) \
561*b1cdbd2cSJim Jagielski	&& echo "$$$${INST_DIR}" > $$@
562*b1cdbd2cSJim Jagielski
563*b1cdbd2cSJim Jagielskiendef
564*b1cdbd2cSJim Jagielskielse # OOO_TEST_SOFFICE
565*b1cdbd2cSJim Jagielskigb_JunitTest_JunitTest_platform_longpathname_hack =
566*b1cdbd2cSJim Jagielskiendif # OOO_TEST_SOFFICE
567*b1cdbd2cSJim Jagielski
568*b1cdbd2cSJim Jagielskidefine gb_JunitTest_JunitTest_platform
569*b1cdbd2cSJim Jagielski$(call gb_JunitTest_JunitTest_platform_longpathname_hack,$(1))
570*b1cdbd2cSJim Jagielski
571*b1cdbd2cSJim Jagielski$(call gb_JunitTest_get_target,$(1)) : DEFS := \
572*b1cdbd2cSJim Jagielski	-Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:`cat $(call gb_JunitTest_get_target,$(1)).instpath`/opt/OpenOffice.org 3/program/soffice.exe}" \
573*b1cdbd2cSJim Jagielski    -Dorg.openoffice.test.arg.env=PATH \
574*b1cdbd2cSJim Jagielski    -Dorg.openoffice.test.arg.user=file:///$(call gb_JunitTest_get_userdir,$(1)) \
575*b1cdbd2cSJim Jagielski
576*b1cdbd2cSJim Jagielskiendef
577*b1cdbd2cSJim Jagielski
578*b1cdbd2cSJim Jagielski
579*b1cdbd2cSJim Jagielski# SdiTarget class
580*b1cdbd2cSJim Jagielski
581*b1cdbd2cSJim Jagielskigb_SdiTarget_SVIDLPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
582*b1cdbd2cSJim Jagielski
583*b1cdbd2cSJim Jagielski# SrsPartMergeTarget
584*b1cdbd2cSJim Jagielski
585*b1cdbd2cSJim Jagielskigb_SrsPartMergeTarget_TRANSEXPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
586*b1cdbd2cSJim Jagielski
587*b1cdbd2cSJim Jagielski# SrsPartTarget class
588*b1cdbd2cSJim Jagielski
589*b1cdbd2cSJim Jagielskigb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc.exe
590*b1cdbd2cSJim Jagielskigb_SrsPartTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET)
591*b1cdbd2cSJim Jagielski
592*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true))
593*b1cdbd2cSJim Jagielskidefine gb_SrsPartTarget__command_dep
594*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
595*b1cdbd2cSJim Jagielski	$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
596*b1cdbd2cSJim Jagielski		$(INCLUDE) \
597*b1cdbd2cSJim Jagielski		$(DEFS) \
598*b1cdbd2cSJim Jagielski		$(2) \
599*b1cdbd2cSJim Jagielski		-f - \
600*b1cdbd2cSJim Jagielski	| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
601*b1cdbd2cSJim Jagielski		-v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \
602*b1cdbd2cSJim Jagielski		-v OUTDIR=$(OUTDIR)/ \
603*b1cdbd2cSJim Jagielski		-v WORKDIR=$(WORKDIR)/ \
604*b1cdbd2cSJim Jagielski		-v SRCDIR=$(SRCDIR)/ \
605*b1cdbd2cSJim Jagielski		-v REPODIR=$(REPODIR)/ \
606*b1cdbd2cSJim Jagielski	> $(call gb_SrsPartTarget_get_dep_target,$(1)))
607*b1cdbd2cSJim Jagielskiendef
608*b1cdbd2cSJim Jagielskielse
609*b1cdbd2cSJim Jagielskigb_SrsPartTarget__command_dep =
610*b1cdbd2cSJim Jagielskiendif
611*b1cdbd2cSJim Jagielski
612*b1cdbd2cSJim Jagielski# WinResTarget class
613*b1cdbd2cSJim Jagielski
614*b1cdbd2cSJim Jagielskigb_WinResTarget_POSTFIX :=.res
615*b1cdbd2cSJim Jagielski
616*b1cdbd2cSJim Jagielskidefine gb_WinResTarget__command
617*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),RES,3)
618*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
619*b1cdbd2cSJim Jagielski	mkdir -p $(dir $(1)) && \
620*b1cdbd2cSJim Jagielski	$(gb_RC) \
621*b1cdbd2cSJim Jagielski		$(DEFS) $(FLAGS) \
622*b1cdbd2cSJim Jagielski		-I$(dir $(3)) \
623*b1cdbd2cSJim Jagielski		$(INCLUDE) \
624*b1cdbd2cSJim Jagielski		-fo=$(1) \
625*b1cdbd2cSJim Jagielski        -r $(RCFILE) )
626*b1cdbd2cSJim Jagielskiendef
627*b1cdbd2cSJim Jagielski
628*b1cdbd2cSJim Jagielski$(eval $(call gb_Helper_make_dep_targets,\
629*b1cdbd2cSJim Jagielski	WinResTarget \
630*b1cdbd2cSJim Jagielski))
631*b1cdbd2cSJim Jagielski
632*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true))
633*b1cdbd2cSJim Jagielskidefine gb_WinResTarget__command_dep
634*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\
635*b1cdbd2cSJim Jagielski	$(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \
636*b1cdbd2cSJim Jagielski		$(INCLUDE) \
637*b1cdbd2cSJim Jagielski		$(DEFS) \
638*b1cdbd2cSJim Jagielski		$(2) \
639*b1cdbd2cSJim Jagielski		-f - \
640*b1cdbd2cSJim Jagielski	| $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \
641*b1cdbd2cSJim Jagielski		-v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \
642*b1cdbd2cSJim Jagielski		-v OUTDIR=$(OUTDIR)/ \
643*b1cdbd2cSJim Jagielski		-v WORKDIR=$(WORKDIR)/ \
644*b1cdbd2cSJim Jagielski		-v SRCDIR=$(SRCDIR)/ \
645*b1cdbd2cSJim Jagielski		-v REPODIR=$(REPODIR)/ \
646*b1cdbd2cSJim Jagielski	> $(call gb_WinResTarget_get_dep_target,$(1)))
647*b1cdbd2cSJim Jagielskiendef
648*b1cdbd2cSJim Jagielskielse
649*b1cdbd2cSJim Jagielskigb_WinResTarget__command_dep =
650*b1cdbd2cSJim Jagielskiendif
651*b1cdbd2cSJim Jagielski
652*b1cdbd2cSJim Jagielski# ComponentTarget
653*b1cdbd2cSJim Jagielski
654*b1cdbd2cSJim Jagielskigb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin"
655*b1cdbd2cSJim Jagielskigb_Library_COMPONENTPREFIXES := \
656*b1cdbd2cSJim Jagielski    OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \
657*b1cdbd2cSJim Jagielski    URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \
658*b1cdbd2cSJim Jagielski
659*b1cdbd2cSJim Jagielski# vim: set noet sw=4 ts=4:
660