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 JagielskiGUI := WNT 25*b1cdbd2cSJim JagielskiCOM := GCC 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski# set tmpdir to some mixed case path, suitable for native tools 28*b1cdbd2cSJim Jagielskigb_TMPDIR:=$(if $(TMPDIR),$(shell cygpath -m $(TMPDIR)),$(shell cygpath -m /tmp)) 29*b1cdbd2cSJim Jagielskigb_MKTEMP := mktemp --tmpdir=$(gb_TMPDIR) gbuild.XXXXXX 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielskigb_CC := $(CC) 32*b1cdbd2cSJim Jagielskigb_CXX := $(CXX) 33*b1cdbd2cSJim Jagielskigb_LINK := $(shell $(CC) -print-prog-name=ld) 34*b1cdbd2cSJim Jagielskigb_AR := $(shell $(CC) -print-prog-name=ar) 35*b1cdbd2cSJim Jagielskigb_AWK := awk 36*b1cdbd2cSJim Jagielskigb_RC := rc 37*b1cdbd2cSJim Jagielskiifeq ($(USE_MINGW),cygwin) 38*b1cdbd2cSJim Jagielskigb_MINGWLIBDIR := $(COMPATH)/lib/mingw 39*b1cdbd2cSJim Jagielskielse 40*b1cdbd2cSJim Jagielskiifeq ($(USE_MINGW),cygwin-w64-mingw32) 41*b1cdbd2cSJim Jagielskigb_MINGWLIBDIR := $(COMPATH)/usr/i686-w64-mingw32/sys-root/mingw/lib 42*b1cdbd2cSJim Jagielskielse 43*b1cdbd2cSJim Jagielskigb_MINGWLIBDIR := $(COMPATH)/lib 44*b1cdbd2cSJim Jagielskiendif 45*b1cdbd2cSJim Jagielskiendif 46*b1cdbd2cSJim Jagielskiifeq ($(MINGW_SHARED_GXXLIB),YES) 47*b1cdbd2cSJim Jagielskigb_MINGW_LIBSTDCPP := $(subst -l,,$(MINGW_SHARED_LIBSTDCPP)) 48*b1cdbd2cSJim Jagielskielse 49*b1cdbd2cSJim Jagielskigb_MINGW_LIBSTDCPP := \ 50*b1cdbd2cSJim Jagielski stdc++ \ 51*b1cdbd2cSJim Jagielski moldname 52*b1cdbd2cSJim Jagielskiendif 53*b1cdbd2cSJim Jagielskiifeq ($(MINGW_SHARED_GCCLIB),YES) 54*b1cdbd2cSJim Jagielskigb_MINGW_LIBGCC := \ 55*b1cdbd2cSJim Jagielski gcc_s \ 56*b1cdbd2cSJim Jagielski gcc 57*b1cdbd2cSJim Jagielskielse 58*b1cdbd2cSJim Jagielskiifeq ($(MINGW_GCCLIB_EH),YES) 59*b1cdbd2cSJim Jagielskigb_MINGW_LIBGCC := \ 60*b1cdbd2cSJim Jagielski gcc \ 61*b1cdbd2cSJim Jagielski gcc_eh 62*b1cdbd2cSJim Jagielskielse 63*b1cdbd2cSJim Jagielskigb_MINGW_LIBGCC := gcc 64*b1cdbd2cSJim Jagielskiendif 65*b1cdbd2cSJim Jagielskiendif 66*b1cdbd2cSJim Jagielski 67*b1cdbd2cSJim Jagielskigb_OSDEFS := \ 68*b1cdbd2cSJim Jagielski -DWINVER=0x0500 \ 69*b1cdbd2cSJim Jagielski -D_WIN32_IE=0x0500 \ 70*b1cdbd2cSJim Jagielski -D_WIN32_WINNT=0x0600 \ 71*b1cdbd2cSJim Jagielski -DNT351 \ 72*b1cdbd2cSJim Jagielski -DWIN32 \ 73*b1cdbd2cSJim Jagielski -DWNT \ 74*b1cdbd2cSJim Jagielski 75*b1cdbd2cSJim Jagielskiifeq ($(GXX_INCLUDE_PATH),) 76*b1cdbd2cSJim JagielskiGXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion) 77*b1cdbd2cSJim Jagielskiendif 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielskigb_COMPILERDEFS := \ 80*b1cdbd2cSJim Jagielski -DGCC \ 81*b1cdbd2cSJim Jagielski -D$(CVER) \ 82*b1cdbd2cSJim Jagielski -DCVER=$(CVER) \ 83*b1cdbd2cSJim Jagielski -DGLIBC=2 \ 84*b1cdbd2cSJim Jagielski -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ 85*b1cdbd2cSJim Jagielski -DCPPU_ENV=gcc3 \ 86*b1cdbd2cSJim Jagielski -D_MT \ 87*b1cdbd2cSJim Jagielski -D_NATIVE_WCHAR_T_DEFINED \ 88*b1cdbd2cSJim Jagielski -D_MSC_EXTENSIONS \ 89*b1cdbd2cSJim Jagielski -D_FORCENAMELESSUNION \ 90*b1cdbd2cSJim Jagielski 91*b1cdbd2cSJim Jagielskiifeq ($(USE_MINGW),cygwin-w64-mingw32) 92*b1cdbd2cSJim Jagielskigb_COMPILERDEFS +=-D_declspec=__declspec 93*b1cdbd2cSJim Jagielskiendif 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielskigb_CPUDEFS := \ 96*b1cdbd2cSJim Jagielski -DINTEL \ 97*b1cdbd2cSJim Jagielski -D_M_IX86 \ 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielskigb_RCDEFS := \ 100*b1cdbd2cSJim Jagielski -DWIN32 \ 101*b1cdbd2cSJim Jagielski -D__GNUC__ \ 102*b1cdbd2cSJim Jagielski 103*b1cdbd2cSJim Jagielskigb_RCFLAGS := \ 104*b1cdbd2cSJim Jagielski -V 105*b1cdbd2cSJim Jagielski 106*b1cdbd2cSJim Jagielskigb_CFLAGS := \ 107*b1cdbd2cSJim Jagielski -Wall \ 108*b1cdbd2cSJim Jagielski -Wendif-labels \ 109*b1cdbd2cSJim Jagielski -Wextra \ 110*b1cdbd2cSJim Jagielski -fmessage-length=0 \ 111*b1cdbd2cSJim Jagielski -fno-strict-aliasing \ 112*b1cdbd2cSJim Jagielski -pipe \ 113*b1cdbd2cSJim Jagielski -nostdinc \ 114*b1cdbd2cSJim Jagielski 115*b1cdbd2cSJim Jagielskigb_CXXFLAGS := \ 116*b1cdbd2cSJim Jagielski -Wall \ 117*b1cdbd2cSJim Jagielski -Wendif-labels \ 118*b1cdbd2cSJim Jagielski -Wextra \ 119*b1cdbd2cSJim Jagielski -Wno-ctor-dtor-privacy \ 120*b1cdbd2cSJim Jagielski -Wno-non-virtual-dtor \ 121*b1cdbd2cSJim Jagielski -Wreturn-type \ 122*b1cdbd2cSJim Jagielski -Wshadow \ 123*b1cdbd2cSJim Jagielski -Wuninitialized \ 124*b1cdbd2cSJim Jagielski -fmessage-length=0 \ 125*b1cdbd2cSJim Jagielski -fno-strict-aliasing \ 126*b1cdbd2cSJim Jagielski -fno-use-cxa-atexit \ 127*b1cdbd2cSJim Jagielski -pipe \ 128*b1cdbd2cSJim Jagielski -nostdinc \ 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielskiifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) 131*b1cdbd2cSJim Jagielskigb_CFLAGS_WERROR := -Werror 132*b1cdbd2cSJim Jagielskigb_CXXFLAGS_WERROR := -Werror 133*b1cdbd2cSJim Jagielskiendif 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielskiifneq ($(SYSBASE),) 136*b1cdbd2cSJim Jagielskigb_CXXFLAGS += --sysroot=$(SYSBASE) 137*b1cdbd2cSJim Jagielskigb_CFLAGS += --sysroot=$(SYSBASE) 138*b1cdbd2cSJim Jagielskiendif 139*b1cdbd2cSJim Jagielskigb_LinkTarget_EXCEPTIONFLAGS := \ 140*b1cdbd2cSJim Jagielski -DEXCEPTIONS_ON \ 141*b1cdbd2cSJim Jagielski -fexceptions \ 142*b1cdbd2cSJim Jagielski -fno-enforce-eh-specs \ 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielskigb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS) 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielskigb_LinkTarget_NOEXCEPTIONFLAGS := \ 148*b1cdbd2cSJim Jagielski -DEXCEPTIONS_OFF \ 149*b1cdbd2cSJim Jagielski -fno-exceptions \ 150*b1cdbd2cSJim Jagielski 151*b1cdbd2cSJim Jagielskigb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS) 152*b1cdbd2cSJim Jagielski 153*b1cdbd2cSJim Jagielskigb_LinkTarget_LDFLAGS := \ 154*b1cdbd2cSJim Jagielski --export-all-symbols \ 155*b1cdbd2cSJim Jagielski --kill-at \ 156*b1cdbd2cSJim Jagielski --subsystem console \ 157*b1cdbd2cSJim Jagielski --exclude-libs ALL \ 158*b1cdbd2cSJim Jagielski --enable-stdcall-fixup \ 159*b1cdbd2cSJim Jagielski --enable-runtime-pseudo-reloc-v2 \ 160*b1cdbd2cSJim Jagielski -L$(gb_Library_DLLDIR) \ 161*b1cdbd2cSJim Jagielski $(patsubst %,-L%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ 162*b1cdbd2cSJim Jagielski 163*b1cdbd2cSJim Jagielskiifeq ($(MINGW_GCCLIB_EH),YES) 164*b1cdbd2cSJim Jagielskigb_LinkTarget_LDFLAGS += -shared-libgcc 165*b1cdbd2cSJim Jagielskiendif 166*b1cdbd2cSJim Jagielski 167*b1cdbd2cSJim Jagielskiifeq ($(gb_DEBUGLEVEL),2) 168*b1cdbd2cSJim Jagielskigb_COMPILEROPTFLAGS := -O0 169*b1cdbd2cSJim Jagielskielse 170*b1cdbd2cSJim Jagielskigb_COMPILEROPTFLAGS := -Os 171*b1cdbd2cSJim Jagielskiendif 172*b1cdbd2cSJim Jagielski 173*b1cdbd2cSJim Jagielskigb_COMPILERNOOPTFLAGS := -O0 174*b1cdbd2cSJim Jagielski 175*b1cdbd2cSJim Jagielskigb_STDLIBS := \ 176*b1cdbd2cSJim Jagielski mingwthrd \ 177*b1cdbd2cSJim Jagielski $(gb_MINGW_LIBSTDCPP) \ 178*b1cdbd2cSJim Jagielski mingw32 \ 179*b1cdbd2cSJim Jagielski $(gb_MINGW_LIBGCC) \ 180*b1cdbd2cSJim Jagielski uwinapi \ 181*b1cdbd2cSJim Jagielski moldname \ 182*b1cdbd2cSJim Jagielski mingwex \ 183*b1cdbd2cSJim Jagielski kernel32 \ 184*b1cdbd2cSJim Jagielski msvcrt \ 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski 187*b1cdbd2cSJim Jagielski# Helper class 188*b1cdbd2cSJim Jagielski 189*b1cdbd2cSJim Jagielskigb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') 190*b1cdbd2cSJim Jagielskigb_Helper_WORKDIR_NATIVE := $(shell cygpath -m $(WORKDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') 191*b1cdbd2cSJim Jagielskigb_Helper_OUTDIR_NATIVE := $(shell cygpath -m $(OUTDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') 192*b1cdbd2cSJim Jagielskigb_Helper_REPODIR_NATIVE := $(shell cygpath -m $(REPODIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') 193*b1cdbd2cSJim Jagielski 194*b1cdbd2cSJim Jagielskidefine gb_Helper_abbreviate_dirs_native 195*b1cdbd2cSJim JagielskiR=$(gb_Helper_REPODIR_NATIVE) && $(subst $(REPODIR)/,$$R/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,O=$(gb_Helper_OUTDIR_NATIVE) && W=$(gb_Helper_WORKDIR_NATIVE) && S=$(gb_Helper_SRCDIR_NATIVE))) && \ 196*b1cdbd2cSJim Jagielski$(subst $(REPODIR)/,$$R/,$(subst $(SRCDIR)/,$$S/,$(subst $(OUTDIR)/,$$O/,$(subst $(WORKDIR)/,$$W/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,$(subst $(gb_Helper_OUTDIR_NATIVE)/,$$O/,$(subst $(gb_Helper_WORKDIR_NATIVE)/,$$W/,$(1))))))))) 197*b1cdbd2cSJim Jagielskiendef 198*b1cdbd2cSJim Jagielski 199*b1cdbd2cSJim Jagielski# convert parametters filesystem root to native notation 200*b1cdbd2cSJim Jagielski# does some real work only on windows, make sure not to 201*b1cdbd2cSJim Jagielski# break the dummy implementations on unx* 202*b1cdbd2cSJim Jagielskidefine gb_Helper_convert_native 203*b1cdbd2cSJim Jagielski$(patsubst -I$(OUTDIR)%,-I$(gb_Helper_OUTDIR_NATIVE)%, \ 204*b1cdbd2cSJim Jagielski$(patsubst $(OUTDIR)%,$(gb_Helper_OUTDIR_NATIVE)%, \ 205*b1cdbd2cSJim Jagielski$(patsubst $(WORKDIR)%,$(gb_Helper_WORKDIR_NATIVE)%, \ 206*b1cdbd2cSJim Jagielski$(patsubst $(SRCDIR)%,$(gb_Helper_SRCDIR_NATIVE)%, \ 207*b1cdbd2cSJim Jagielski$(1))))) 208*b1cdbd2cSJim Jagielskiendef 209*b1cdbd2cSJim Jagielski 210*b1cdbd2cSJim Jagielski# CObject class 211*b1cdbd2cSJim Jagielski 212*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true)) 213*b1cdbd2cSJim Jagielskidefine gb_CObject__command_deponcompile 214*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 215*b1cdbd2cSJim Jagielski $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ 216*b1cdbd2cSJim Jagielski $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ 217*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 218*b1cdbd2cSJim Jagielski $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ 219*b1cdbd2cSJim Jagielski $(3) \ 220*b1cdbd2cSJim Jagielski -f - \ 221*b1cdbd2cSJim Jagielski | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ 222*b1cdbd2cSJim Jagielski -v OBJECTFILE=$(1) \ 223*b1cdbd2cSJim Jagielski -v OUTDIR=$(OUTDIR)/ \ 224*b1cdbd2cSJim Jagielski -v WORKDIR=$(WORKDIR)/ \ 225*b1cdbd2cSJim Jagielski -v SRCDIR=$(SRCDIR)/ \ 226*b1cdbd2cSJim Jagielski -v REPODIR=$(REPODIR)/ \ 227*b1cdbd2cSJim Jagielski > $(call gb_CObject_get_dep_target,$(2))) 228*b1cdbd2cSJim Jagielskiendef 229*b1cdbd2cSJim Jagielskielse 230*b1cdbd2cSJim JagielskiCObject__command_deponcompile = 231*b1cdbd2cSJim Jagielskiendif 232*b1cdbd2cSJim Jagielski 233*b1cdbd2cSJim Jagielskidefine gb_CObject__command 234*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),C ,3) 235*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 236*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) && \ 237*b1cdbd2cSJim Jagielski $(gb_CC) \ 238*b1cdbd2cSJim Jagielski $(DEFS) $(CFLAGS) \ 239*b1cdbd2cSJim Jagielski -c $(3) \ 240*b1cdbd2cSJim Jagielski -o $(1) \ 241*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 242*b1cdbd2cSJim Jagielski $(INCLUDE)) 243*b1cdbd2cSJim Jagielski$(call gb_CObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CFLAGS),$(INCLUDE)) 244*b1cdbd2cSJim Jagielskiendef 245*b1cdbd2cSJim Jagielski 246*b1cdbd2cSJim Jagielski 247*b1cdbd2cSJim Jagielski 248*b1cdbd2cSJim Jagielski# CxxObject class 249*b1cdbd2cSJim Jagielski 250*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true)) 251*b1cdbd2cSJim Jagielskidefine gb_CxxObject__command_deponcompile 252*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 253*b1cdbd2cSJim Jagielski $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ 254*b1cdbd2cSJim Jagielski $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ 255*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 256*b1cdbd2cSJim Jagielski $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ 257*b1cdbd2cSJim Jagielski $(3) \ 258*b1cdbd2cSJim Jagielski -f - \ 259*b1cdbd2cSJim Jagielski | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ 260*b1cdbd2cSJim Jagielski -v OBJECTFILE=$(1) \ 261*b1cdbd2cSJim Jagielski -v OUTDIR=$(OUTDIR)/ \ 262*b1cdbd2cSJim Jagielski -v WORKDIR=$(WORKDIR)/ \ 263*b1cdbd2cSJim Jagielski -v SRCDIR=$(SRCDIR)/ \ 264*b1cdbd2cSJim Jagielski -v REPODIR=$(REPODIR)/ \ 265*b1cdbd2cSJim Jagielski > $(call gb_CxxObject_get_dep_target,$(2))) 266*b1cdbd2cSJim Jagielskiendef 267*b1cdbd2cSJim Jagielskielse 268*b1cdbd2cSJim Jagielskigb_CxxObject__command_deponcompile = 269*b1cdbd2cSJim Jagielskiendif 270*b1cdbd2cSJim Jagielski 271*b1cdbd2cSJim Jagielskidefine gb_CxxObject__command 272*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),CXX,3) 273*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 274*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) && \ 275*b1cdbd2cSJim Jagielski $(gb_CXX) \ 276*b1cdbd2cSJim Jagielski $(DEFS) $(CXXFLAGS) \ 277*b1cdbd2cSJim Jagielski -c $(3) \ 278*b1cdbd2cSJim Jagielski -o $(1) \ 279*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 280*b1cdbd2cSJim Jagielski $(INCLUDE_STL) $(INCLUDE)) 281*b1cdbd2cSJim Jagielski$(call gb_CxxObject__command_deponcompile,$(1),$(2),$(3),$(DEFS),$(CXXFLAGS),$(INCLUDE_STL) $(INCLUDE)) 282*b1cdbd2cSJim Jagielskiendef 283*b1cdbd2cSJim Jagielski 284*b1cdbd2cSJim Jagielski 285*b1cdbd2cSJim Jagielski# PrecompiledHeader class 286*b1cdbd2cSJim Jagielski 287*b1cdbd2cSJim Jagielskigb_PrecompiledHeader_EXT := .gch 288*b1cdbd2cSJim Jagielski 289*b1cdbd2cSJim Jagielskigb_PrecompiledHeader_get_enableflags = -I$(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR) \ 290*b1cdbd2cSJim Jagielski -DPRECOMPILED_HEADERS \ 291*b1cdbd2cSJim Jagielski -Winvalid-pch \ 292*b1cdbd2cSJim Jagielski 293*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true)) 294*b1cdbd2cSJim Jagielskidefine gb_PrecompiledHeader__command_deponcompile 295*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 296*b1cdbd2cSJim Jagielski $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ 297*b1cdbd2cSJim Jagielski $(4) $(5) \ 298*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 299*b1cdbd2cSJim Jagielski $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ 300*b1cdbd2cSJim Jagielski $(3) \ 301*b1cdbd2cSJim Jagielski -f - \ 302*b1cdbd2cSJim Jagielski | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ 303*b1cdbd2cSJim Jagielski -v OBJECTFILE=$(1) \ 304*b1cdbd2cSJim Jagielski -v OUTDIR=$(OUTDIR)/ \ 305*b1cdbd2cSJim Jagielski -v WORKDIR=$(WORKDIR)/ \ 306*b1cdbd2cSJim Jagielski -v SRCDIR=$(SRCDIR)/ \ 307*b1cdbd2cSJim Jagielski -v REPODIR=$(REPODIR)/ \ 308*b1cdbd2cSJim Jagielski > $(call gb_PrecompiledHeader_get_dep_target,$(2))) 309*b1cdbd2cSJim Jagielskiendef 310*b1cdbd2cSJim Jagielskielse 311*b1cdbd2cSJim Jagielskigb_PrecompiledHeader__command_deponcompile = 312*b1cdbd2cSJim Jagielskiendif 313*b1cdbd2cSJim Jagielski 314*b1cdbd2cSJim Jagielskidefine gb_PrecompiledHeader__command 315*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),PCH,1) 316*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 317*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \ 318*b1cdbd2cSJim Jagielski $(gb_CXX) \ 319*b1cdbd2cSJim Jagielski -x c++-header \ 320*b1cdbd2cSJim Jagielski $(4) $(5) \ 321*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 322*b1cdbd2cSJim Jagielski $(6) \ 323*b1cdbd2cSJim Jagielski -c $(3) \ 324*b1cdbd2cSJim Jagielski -o$(1)) 325*b1cdbd2cSJim Jagielski$(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) 326*b1cdbd2cSJim Jagielski 327*b1cdbd2cSJim Jagielskiendef 328*b1cdbd2cSJim Jagielski 329*b1cdbd2cSJim Jagielski# NoexPrecompiledHeader class 330*b1cdbd2cSJim Jagielski 331*b1cdbd2cSJim Jagielskigb_NoexPrecompiledHeader_EXT := .gch 332*b1cdbd2cSJim Jagielski 333*b1cdbd2cSJim Jagielskigb_NoexPrecompiledHeader_get_enableflags = -I$(WORKDIR)/NoexPrecompiledHeader/$(gb_NoexPrecompiledHeader_DEBUGDIR) \ 334*b1cdbd2cSJim Jagielski -Winvalid-pch \ 335*b1cdbd2cSJim Jagielski 336*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true)) 337*b1cdbd2cSJim Jagielskidefine gb_NoexPrecompiledHeader__command_deponcompile 338*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 339*b1cdbd2cSJim Jagielski $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ 340*b1cdbd2cSJim Jagielski $(4) $(5) \ 341*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 342*b1cdbd2cSJim Jagielski $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ 343*b1cdbd2cSJim Jagielski $(3) \ 344*b1cdbd2cSJim Jagielski -f - \ 345*b1cdbd2cSJim Jagielski | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ 346*b1cdbd2cSJim Jagielski -v OBJECTFILE=$(1) \ 347*b1cdbd2cSJim Jagielski -v OUTDIR=$(OUTDIR)/ \ 348*b1cdbd2cSJim Jagielski -v WORKDIR=$(WORKDIR)/ \ 349*b1cdbd2cSJim Jagielski -v SRCDIR=$(SRCDIR)/ \ 350*b1cdbd2cSJim Jagielski -v REPODIR=$(REPODIR)/ \ 351*b1cdbd2cSJim Jagielski > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) 352*b1cdbd2cSJim Jagielskiendef 353*b1cdbd2cSJim Jagielskielse 354*b1cdbd2cSJim Jagielskigb_NoexPrecompiledHeader__command_deponcompile = 355*b1cdbd2cSJim Jagielskiendif 356*b1cdbd2cSJim Jagielski 357*b1cdbd2cSJim Jagielskidefine gb_NoexPrecompiledHeader__command 358*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),PCH,1) 359*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 360*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \ 361*b1cdbd2cSJim Jagielski $(gb_CXX) \ 362*b1cdbd2cSJim Jagielski -x c++-header \ 363*b1cdbd2cSJim Jagielski $(4) $(5) \ 364*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 365*b1cdbd2cSJim Jagielski $(6) \ 366*b1cdbd2cSJim Jagielski -c $(3) \ 367*b1cdbd2cSJim Jagielski -o$(1)) 368*b1cdbd2cSJim Jagielski$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) 369*b1cdbd2cSJim Jagielski 370*b1cdbd2cSJim Jagielskiendef 371*b1cdbd2cSJim Jagielski 372*b1cdbd2cSJim Jagielski 373*b1cdbd2cSJim Jagielski# LinkTarget class 374*b1cdbd2cSJim Jagielski 375*b1cdbd2cSJim Jagielskigb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) 376*b1cdbd2cSJim Jagielskigb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) 377*b1cdbd2cSJim Jagielski 378*b1cdbd2cSJim Jagielskiifeq ($(gb_DEBUGLEVEL),2) 379*b1cdbd2cSJim Jagielskigb_LinkTarget_CXXFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline 380*b1cdbd2cSJim Jagielskigb_LinkTarget_CFLAGS += -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline 381*b1cdbd2cSJim Jagielski 382*b1cdbd2cSJim Jagielskiendif 383*b1cdbd2cSJim Jagielski 384*b1cdbd2cSJim Jagielskigb_LinkTarget_INCLUDE :=\ 385*b1cdbd2cSJim Jagielski $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \ 386*b1cdbd2cSJim Jagielski $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \ 387*b1cdbd2cSJim Jagielski 388*b1cdbd2cSJim Jagielskigb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) 389*b1cdbd2cSJim Jagielski 390*b1cdbd2cSJim Jagielskidefine gb_LinkTarget__command_dynamiclinkexecutable 391*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),LNK,4) 392*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 393*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) && \ 394*b1cdbd2cSJim Jagielski RESPONSEFILE=`$(gb_MKTEMP)` && \ 395*b1cdbd2cSJim Jagielski echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ 396*b1cdbd2cSJim Jagielski $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ 397*b1cdbd2cSJim Jagielski $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ 398*b1cdbd2cSJim Jagielski $(NATIVERES) " > $${RESPONSEFILE} && \ 399*b1cdbd2cSJim Jagielski $(gb_LINK) \ 400*b1cdbd2cSJim Jagielski $(gb_Executable_TARGETTYPEFLAGS) \ 401*b1cdbd2cSJim Jagielski $(LDFLAGS) \ 402*b1cdbd2cSJim Jagielski $(gb_MINGWLIBDIR)/crt2.o \ 403*b1cdbd2cSJim Jagielski $(MINGW_CLIB_DIR)/crtbegin.o \ 404*b1cdbd2cSJim Jagielski @$${RESPONSEFILE} \ 405*b1cdbd2cSJim Jagielski --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \ 406*b1cdbd2cSJim Jagielski --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \ 407*b1cdbd2cSJim Jagielski --start-group $(patsubst %,-l%,$(EXTERNAL_LIBS)) --end-group \ 408*b1cdbd2cSJim Jagielski $(MINGW_CLIB_DIR)/crtend.o \ 409*b1cdbd2cSJim Jagielski -Map $(basename $(1)).map \ 410*b1cdbd2cSJim Jagielski -o $(1)) 411*b1cdbd2cSJim Jagielskiendef 412*b1cdbd2cSJim Jagielski 413*b1cdbd2cSJim Jagielskidefine gb_LinkTarget__command_dynamiclinklibrary 414*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 415*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) && \ 416*b1cdbd2cSJim Jagielski rm -f $(1) && \ 417*b1cdbd2cSJim Jagielski RESPONSEFILE=`$(gb_MKTEMP)` && \ 418*b1cdbd2cSJim Jagielski echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ 419*b1cdbd2cSJim Jagielski $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ 420*b1cdbd2cSJim Jagielski $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ 421*b1cdbd2cSJim Jagielski $(NATIVERES) " > $${RESPONSEFILE} && \ 422*b1cdbd2cSJim Jagielski $(gb_LINK) \ 423*b1cdbd2cSJim Jagielski $(gb_Library_TARGETTYPEFLAGS) \ 424*b1cdbd2cSJim Jagielski $(LDFLAGS) \ 425*b1cdbd2cSJim Jagielski --enable-auto-image-base \ 426*b1cdbd2cSJim Jagielski -e _DllMainCRTStartup@12 \ 427*b1cdbd2cSJim Jagielski $(gb_MINGWLIBDIR)/dllcrt2.o \ 428*b1cdbd2cSJim Jagielski $(MINGW_CLIB_DIR)/crtbegin.o \ 429*b1cdbd2cSJim Jagielski @$${RESPONSEFILE} \ 430*b1cdbd2cSJim Jagielski --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \ 431*b1cdbd2cSJim Jagielski --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \ 432*b1cdbd2cSJim Jagielski $(MINGW_CLIB_DIR)/crtend.o \ 433*b1cdbd2cSJim Jagielski -Map $(basename $(DLLTARGET)).map \ 434*b1cdbd2cSJim Jagielski -o $(DLLTARGET) && touch $(1)) 435*b1cdbd2cSJim Jagielskiendef 436*b1cdbd2cSJim Jagielski 437*b1cdbd2cSJim Jagielskidefine gb_LinkTarget__command_staticlinklibrary 438*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 439*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) && \ 440*b1cdbd2cSJim Jagielski RESPONSEFILE=`$(gb_MKTEMP)` && \ 441*b1cdbd2cSJim Jagielski echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ 442*b1cdbd2cSJim Jagielski $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ 443*b1cdbd2cSJim Jagielski $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \ 444*b1cdbd2cSJim Jagielski $(gb_AR) -rsu\ 445*b1cdbd2cSJim Jagielski $(1) \ 446*b1cdbd2cSJim Jagielski @$${RESPONSEFILE}) 447*b1cdbd2cSJim Jagielskiendef 448*b1cdbd2cSJim Jagielski 449*b1cdbd2cSJim Jagielskidefine gb_LinkTarget__command 450*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),LNK,4) 451*b1cdbd2cSJim Jagielski$(if $(filter Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclinkexecutable,$(1),$(2))) 452*b1cdbd2cSJim Jagielski$(if $(filter Library CppunitTest,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclinklibrary,$(1),$(2))) 453*b1cdbd2cSJim Jagielski$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlinklibrary,$(1))) 454*b1cdbd2cSJim Jagielskiendef 455*b1cdbd2cSJim Jagielski 456*b1cdbd2cSJim Jagielski 457*b1cdbd2cSJim Jagielski# Library class 458*b1cdbd2cSJim Jagielski 459*b1cdbd2cSJim Jagielskigb_Library_DEFS := -D_DLL 460*b1cdbd2cSJim Jagielskigb_Library_TARGETTYPEFLAGS := -shared 461*b1cdbd2cSJim Jagielskigb_Library_get_rpath := 462*b1cdbd2cSJim Jagielski 463*b1cdbd2cSJim Jagielskigb_Library_SYSPRE := i 464*b1cdbd2cSJim Jagielskigb_Library_PLAINEXT := .lib 465*b1cdbd2cSJim Jagielski 466*b1cdbd2cSJim Jagielskigb_Library_PLAINLIBS_NONE += \ 467*b1cdbd2cSJim Jagielski mingwthrd \ 468*b1cdbd2cSJim Jagielski mingw32 \ 469*b1cdbd2cSJim Jagielski mingwex \ 470*b1cdbd2cSJim Jagielski $(gb_MINGW_LIBSTDCPP) \ 471*b1cdbd2cSJim Jagielski $(gb_MINGW_LIBGCC) \ 472*b1cdbd2cSJim Jagielski advapi32 \ 473*b1cdbd2cSJim Jagielski gdi32 \ 474*b1cdbd2cSJim Jagielski gdiplus \ 475*b1cdbd2cSJim Jagielski gnu_getopt \ 476*b1cdbd2cSJim Jagielski imm32\ 477*b1cdbd2cSJim Jagielski kernel32 \ 478*b1cdbd2cSJim Jagielski msimg32 \ 479*b1cdbd2cSJim Jagielski msvcrt \ 480*b1cdbd2cSJim Jagielski mpr \ 481*b1cdbd2cSJim Jagielski moldname \ 482*b1cdbd2cSJim Jagielski ole32 \ 483*b1cdbd2cSJim Jagielski oleaut32 \ 484*b1cdbd2cSJim Jagielski shell32 \ 485*b1cdbd2cSJim Jagielski user32 \ 486*b1cdbd2cSJim Jagielski uuid \ 487*b1cdbd2cSJim Jagielski uwinapi \ 488*b1cdbd2cSJim Jagielski winspool \ 489*b1cdbd2cSJim Jagielski z \ 490*b1cdbd2cSJim Jagielski cppunit 491*b1cdbd2cSJim Jagielski 492*b1cdbd2cSJim Jagielskigb_Library_LAYER := \ 493*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ 494*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \ 495*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \ 496*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ 497*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ 498*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \ 499*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_STLLIBS),$(lib):OOO) \ 500*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \ 501*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ 502*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \ 503*b1cdbd2cSJim Jagielski 504*b1cdbd2cSJim Jagielskigb_Library_FILENAMES :=\ 505*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ 506*b1cdbd2cSJim Jagielski 507*b1cdbd2cSJim Jagielskigb_Library_DLLEXT := .dll 508*b1cdbd2cSJim Jagielskigb_Library_MAJORVER := 3 509*b1cdbd2cSJim Jagielskigb_Library_RTEXT := gcc3$(gb_Library_DLLEXT) 510*b1cdbd2cSJim Jagielskiifeq ($(gb_PRODUCT),$(true)) 511*b1cdbd2cSJim Jagielskigb_Library_STLEXT := port_gcc$(gb_Library_DLLEXT) 512*b1cdbd2cSJim Jagielskielse 513*b1cdbd2cSJim Jagielskigb_Library_STLEXT := port_gcc_stldebug$(gb_Library_DLLEXT) 514*b1cdbd2cSJim Jagielskiendif 515*b1cdbd2cSJim Jagielskigb_Library_OOOEXT := $(gb_Library_DLLEXT) 516*b1cdbd2cSJim Jagielskigb_Library_UNOEXT := .uno$(gb_Library_DLLEXT) 517*b1cdbd2cSJim Jagielskigb_Library_UNOVEREXT := $(gb_Library_MAJORVER)$(gb_Library_DLLEXT) 518*b1cdbd2cSJim Jagielskigb_Library_RTVEREXT := $(gb_Library_MAJORVER)$(gb_Library_RTEXT) 519*b1cdbd2cSJim Jagielski 520*b1cdbd2cSJim Jagielskigb_Library_DLLFILENAMES := \ 521*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ 522*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ 523*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ 524*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \ 525*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \ 526*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \ 527*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ 528*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ 529*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \ 530*b1cdbd2cSJim Jagielski 531*b1cdbd2cSJim Jagielskigb_Library_IARCSYSPRE := lib 532*b1cdbd2cSJim Jagielskigb_Library_IARCEXT := .a 533*b1cdbd2cSJim Jagielski 534*b1cdbd2cSJim Jagielskigb_Library_ILIBEXT := .lib 535*b1cdbd2cSJim Jagielski 536*b1cdbd2cSJim Jagielskidefine gb_Library_Library_platform 537*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_set_dlltarget,$(2),$(3)) 538*b1cdbd2cSJim Jagielski 539*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_set_auxtargets,$(2),\ 540*b1cdbd2cSJim Jagielski $(patsubst %.dll,%.map,$(3)) \ 541*b1cdbd2cSJim Jagielski) 542*b1cdbd2cSJim Jagielski 543*b1cdbd2cSJim Jagielski$(call gb_Library_get_target,$(1)) \ 544*b1cdbd2cSJim Jagielski$(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(OUTDIR)/bin/$(notdir $(3)) 545*b1cdbd2cSJim Jagielski 546*b1cdbd2cSJim Jagielski$(call gb_Deliver_add_deliverable,$(OUTDIR)/bin/$(notdir $(3)),$(3)) 547*b1cdbd2cSJim Jagielski 548*b1cdbd2cSJim Jagielskiendef 549*b1cdbd2cSJim Jagielski 550*b1cdbd2cSJim Jagielskidefine gb_Library_add_default_nativeres 551*b1cdbd2cSJim Jagielski$(call gb_WinResTarget_WinResTarget_init,$(1)/$(2)) 552*b1cdbd2cSJim Jagielski$(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo) 553*b1cdbd2cSJim Jagielski$(call gb_WinResTarget_set_defs,$(1)/$(2),\ 554*b1cdbd2cSJim Jagielski $$(DEFS) \ 555*b1cdbd2cSJim Jagielski -DADDITIONAL_VERINFO1= \ 556*b1cdbd2cSJim Jagielski -DADDITIONAL_VERINFO2= \ 557*b1cdbd2cSJim Jagielski -DADDITIONAL_VERINFO3= \ 558*b1cdbd2cSJim Jagielski) 559*b1cdbd2cSJim Jagielski$(call gb_Library_add_nativeres,$(1),$(2)) 560*b1cdbd2cSJim Jagielski$(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2)) 561*b1cdbd2cSJim Jagielski 562*b1cdbd2cSJim Jagielskiendef 563*b1cdbd2cSJim Jagielski 564*b1cdbd2cSJim Jagielskidefine gb_Library_add_nativeres 565*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : $(call gb_WinResTarget_get_target,$(1)/$(2)) 566*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_get_target,$(call gb_Library__get_linktargetname,$(1))) : NATIVERES += $(call gb_WinResTarget_get_target,$(1)/$(2)) 567*b1cdbd2cSJim Jagielski 568*b1cdbd2cSJim Jagielskiendef 569*b1cdbd2cSJim Jagielski 570*b1cdbd2cSJim Jagielskidefine gb_Library_get_dllname 571*b1cdbd2cSJim Jagielski$(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_DLLFILENAMES))) 572*b1cdbd2cSJim Jagielskiendef 573*b1cdbd2cSJim Jagielski 574*b1cdbd2cSJim Jagielski 575*b1cdbd2cSJim Jagielski# StaticLibrary class 576*b1cdbd2cSJim Jagielski 577*b1cdbd2cSJim Jagielskigb_StaticLibrary_DEFS := 578*b1cdbd2cSJim Jagielskigb_StaticLibrary_SYSPRE := lib 579*b1cdbd2cSJim Jagielskigb_StaticLibrary_PLAINEXT := .a 580*b1cdbd2cSJim Jagielskigb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) 581*b1cdbd2cSJim Jagielski 582*b1cdbd2cSJim Jagielskigb_StaticLibrary_FILENAMES := \ 583*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ 584*b1cdbd2cSJim Jagielski $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ 585*b1cdbd2cSJim Jagielski 586*b1cdbd2cSJim Jagielskigb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES)) 587*b1cdbd2cSJim Jagielski 588*b1cdbd2cSJim Jagielskigb_StaticLibrary_StaticLibrary_platform = 589*b1cdbd2cSJim Jagielski 590*b1cdbd2cSJim Jagielski# Executable class 591*b1cdbd2cSJim Jagielski 592*b1cdbd2cSJim Jagielskigb_Executable_EXT := .exe 593*b1cdbd2cSJim Jagielskigb_Executable_TARGETTYPEFLAGS := 594*b1cdbd2cSJim Jagielskigb_Executable_get_rpath := 595*b1cdbd2cSJim Jagielskigb_Executable_Executable_platform = 596*b1cdbd2cSJim Jagielski 597*b1cdbd2cSJim Jagielski 598*b1cdbd2cSJim Jagielski# CppunitTest class 599*b1cdbd2cSJim Jagielski 600*b1cdbd2cSJim Jagielskigb_CppunitTest_CPPTESTPRECOMMAND := 601*b1cdbd2cSJim Jagielskigb_CppunitTest_SYSPRE := itest_ 602*b1cdbd2cSJim Jagielskigb_CppunitTest_EXT := .lib 603*b1cdbd2cSJim Jagielskigb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT) 604*b1cdbd2cSJim Jagielskigb_CppunitTest_get_libfilename = test_$(1).dll 605*b1cdbd2cSJim Jagielski 606*b1cdbd2cSJim Jagielskidefine gb_CppunitTest_CppunitTest_platform 607*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_set_dlltarget,$(2),$(3)) 608*b1cdbd2cSJim Jagielski 609*b1cdbd2cSJim Jagielski$(call gb_LinkTarget_set_auxtargets,$(2),\ 610*b1cdbd2cSJim Jagielski $(patsubst %.dll,%.map,$(3)) \ 611*b1cdbd2cSJim Jagielski) 612*b1cdbd2cSJim Jagielski 613*b1cdbd2cSJim Jagielskiendef 614*b1cdbd2cSJim Jagielski 615*b1cdbd2cSJim Jagielski# SdiTarget class 616*b1cdbd2cSJim Jagielski 617*b1cdbd2cSJim Jagielskigb_SdiTarget_SVIDLPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" 618*b1cdbd2cSJim Jagielski 619*b1cdbd2cSJim Jagielski# SrsPartMergeTarget 620*b1cdbd2cSJim Jagielski 621*b1cdbd2cSJim Jagielskigb_SrsPartMergeTarget_TRANSEXPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" 622*b1cdbd2cSJim Jagielski 623*b1cdbd2cSJim Jagielski# SrsPartTarget class 624*b1cdbd2cSJim Jagielski 625*b1cdbd2cSJim Jagielskigb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc.exe 626*b1cdbd2cSJim Jagielskigb_SrsPartTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) 627*b1cdbd2cSJim Jagielski 628*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true)) 629*b1cdbd2cSJim Jagielskidefine gb_SrsPartTarget__command_dep 630*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 631*b1cdbd2cSJim Jagielski $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ 632*b1cdbd2cSJim Jagielski $(INCLUDE) \ 633*b1cdbd2cSJim Jagielski $(DEFS) \ 634*b1cdbd2cSJim Jagielski $(2) \ 635*b1cdbd2cSJim Jagielski -f - \ 636*b1cdbd2cSJim Jagielski | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ 637*b1cdbd2cSJim Jagielski -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ 638*b1cdbd2cSJim Jagielski -v OUTDIR=$(OUTDIR)/ \ 639*b1cdbd2cSJim Jagielski -v WORKDIR=$(WORKDIR)/ \ 640*b1cdbd2cSJim Jagielski -v SRCDIR=$(SRCDIR)/ \ 641*b1cdbd2cSJim Jagielski -v REPODIR=$(REPODIR)/ \ 642*b1cdbd2cSJim Jagielski > $(call gb_SrsPartTarget_get_dep_target,$(1))) 643*b1cdbd2cSJim Jagielskiendef 644*b1cdbd2cSJim Jagielskielse 645*b1cdbd2cSJim Jagielskigb_SrsPartTarget__command_dep = 646*b1cdbd2cSJim Jagielskiendif 647*b1cdbd2cSJim Jagielski 648*b1cdbd2cSJim Jagielski# WinResTarget class 649*b1cdbd2cSJim Jagielski 650*b1cdbd2cSJim Jagielskigb_WinResTarget_POSTFIX :=_res.o 651*b1cdbd2cSJim Jagielski 652*b1cdbd2cSJim Jagielskidefine gb_WinResTarget__command 653*b1cdbd2cSJim Jagielski$(call gb_Output_announce,$(2),$(true),RES,3) 654*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 655*b1cdbd2cSJim Jagielski mkdir -p $(dir $(1)) && \ 656*b1cdbd2cSJim Jagielski $(gb_RC) \ 657*b1cdbd2cSJim Jagielski $(DEFS) $(FLAGS) \ 658*b1cdbd2cSJim Jagielski -I$(dir $(3)) \ 659*b1cdbd2cSJim Jagielski $(INCLUDE) \ 660*b1cdbd2cSJim Jagielski -Fo$(patsubst %_res.o,%.res,$(1)) \ 661*b1cdbd2cSJim Jagielski $(RCFILE) ) 662*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 663*b1cdbd2cSJim Jagielski windres $(patsubst %_res.o,%.res,$(1)) $(1)) 664*b1cdbd2cSJim Jagielski rm $(patsubst %_res.o,%.res,$(1)) 665*b1cdbd2cSJim Jagielskiendef 666*b1cdbd2cSJim Jagielski 667*b1cdbd2cSJim Jagielski$(eval $(call gb_Helper_make_dep_targets,\ 668*b1cdbd2cSJim Jagielski WinResTarget \ 669*b1cdbd2cSJim Jagielski)) 670*b1cdbd2cSJim Jagielski 671*b1cdbd2cSJim Jagielskiifeq ($(gb_FULLDEPS),$(true)) 672*b1cdbd2cSJim Jagielskidefine gb_WinResTarget__command_dep 673*b1cdbd2cSJim Jagielski$(call gb_Helper_abbreviate_dirs_native,\ 674*b1cdbd2cSJim Jagielski $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ 675*b1cdbd2cSJim Jagielski $(INCLUDE) \ 676*b1cdbd2cSJim Jagielski $(DEFS) \ 677*b1cdbd2cSJim Jagielski $(2) \ 678*b1cdbd2cSJim Jagielski -f - \ 679*b1cdbd2cSJim Jagielski | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ 680*b1cdbd2cSJim Jagielski -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \ 681*b1cdbd2cSJim Jagielski -v OUTDIR=$(OUTDIR)/ \ 682*b1cdbd2cSJim Jagielski -v WORKDIR=$(WORKDIR)/ \ 683*b1cdbd2cSJim Jagielski -v SRCDIR=$(SRCDIR)/ \ 684*b1cdbd2cSJim Jagielski -v REPODIR=$(REPODIR)/ \ 685*b1cdbd2cSJim Jagielski > $(call gb_WinResTarget_get_dep_target,$(1))) 686*b1cdbd2cSJim Jagielskiendef 687*b1cdbd2cSJim Jagielskielse 688*b1cdbd2cSJim Jagielskigb_WinResTarget__command_dep = 689*b1cdbd2cSJim Jagielskiendif 690*b1cdbd2cSJim Jagielski 691*b1cdbd2cSJim Jagielski# ComponentTarget 692*b1cdbd2cSJim Jagielski 693*b1cdbd2cSJim Jagielskigb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" 694*b1cdbd2cSJim Jagielskigb_Library_COMPONENTPREFIXES := \ 695*b1cdbd2cSJim Jagielski OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ 696*b1cdbd2cSJim Jagielski URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ 697*b1cdbd2cSJim Jagielski 698*b1cdbd2cSJim Jagielski# vim: set noet sw=4 ts=4: 699