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