1*5e139d9fSJim Jagielski#************************************************************** 2*5e139d9fSJim Jagielski# 3*5e139d9fSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*5e139d9fSJim Jagielski# or more contributor license agreements. See the NOTICE file 5*5e139d9fSJim Jagielski# distributed with this work for additional information 6*5e139d9fSJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*5e139d9fSJim Jagielski# to you under the Apache License, Version 2.0 (the 8*5e139d9fSJim Jagielski# "License"); you may not use this file except in compliance 9*5e139d9fSJim Jagielski# with the License. You may obtain a copy of the License at 10*5e139d9fSJim Jagielski# 11*5e139d9fSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*5e139d9fSJim Jagielski# 13*5e139d9fSJim Jagielski# Unless required by applicable law or agreed to in writing, 14*5e139d9fSJim Jagielski# software distributed under the License is distributed on an 15*5e139d9fSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*5e139d9fSJim Jagielski# KIND, either express or implied. See the License for the 17*5e139d9fSJim Jagielski# specific language governing permissions and limitations 18*5e139d9fSJim Jagielski# under the License. 19*5e139d9fSJim Jagielski# 20*5e139d9fSJim Jagielski#************************************************************** 21*5e139d9fSJim Jagielski 22*5e139d9fSJim Jagielski 23*5e139d9fSJim Jagielski 24*5e139d9fSJim JagielskiPRJ=..$/..$/.. 25*5e139d9fSJim Jagielski 26*5e139d9fSJim JagielskiPRJNAME=bridges 27*5e139d9fSJim JagielskiTARGET=$(COMNAME)_uno 28*5e139d9fSJim JagielskiLIBTARGET=no 29*5e139d9fSJim JagielskiENABLE_EXCEPTIONS=TRUE 30*5e139d9fSJim Jagielski 31*5e139d9fSJim Jagielski# --- Settings ----------------------------------------------------- 32*5e139d9fSJim Jagielski 33*5e139d9fSJim Jagielski.INCLUDE : settings.mk 34*5e139d9fSJim Jagielski 35*5e139d9fSJim Jagielski# --- Files -------------------------------------------------------- 36*5e139d9fSJim Jagielski 37*5e139d9fSJim Jagielski# Apple Silicon (arm64 / AAPCS64) C++-UNO bridge. CPU=R, CPUNAME=AARCH64. 38*5e139d9fSJim Jagielski# Note: the "s5abi" in this directory's name is the macOS-wide COMNAME (see 39*5e139d9fSJim Jagielski# solenv/gbuild/platform/macosx.mk); the actual arm64 calling convention is 40*5e139d9fSJim Jagielski# AAPCS64, so "s5abi" here is a historical label, not a literal ABI claim. 41*5e139d9fSJim Jagielski.IF "$(OS)$(CPU)" == "MACOSXR" 42*5e139d9fSJim Jagielski 43*5e139d9fSJim Jagielski.IF "$(cppu_no_leak)" == "" 44*5e139d9fSJim JagielskiCFLAGS += -DLEAK_STATIC_DATA 45*5e139d9fSJim Jagielski.ENDIF 46*5e139d9fSJim Jagielski 47*5e139d9fSJim Jagielski# In case someone enabled the non-standard -fomit-frame-pointer which does not 48*5e139d9fSJim Jagielski# work with the .cxx sources in this directory: 49*5e139d9fSJim JagielskiCFLAGSCXX += -fno-omit-frame-pointer -fnon-call-exceptions 50*5e139d9fSJim Jagielski 51*5e139d9fSJim JagielskiSLOFILES= \ 52*5e139d9fSJim Jagielski $(SLO)$/abi.obj \ 53*5e139d9fSJim Jagielski $(SLO)$/except.obj \ 54*5e139d9fSJim Jagielski $(SLO)$/cpp2uno.obj \ 55*5e139d9fSJim Jagielski $(SLO)$/uno2cpp.obj \ 56*5e139d9fSJim Jagielski $(SLO)$/call.obj 57*5e139d9fSJim Jagielski 58*5e139d9fSJim JagielskiSHL1TARGET= $(TARGET) 59*5e139d9fSJim Jagielski 60*5e139d9fSJim JagielskiSHL1DEF=$(MISC)$/$(SHL1TARGET).def 61*5e139d9fSJim JagielskiSHL1IMPLIB=i$(TARGET) 62*5e139d9fSJim JagielskiSHL1VERSIONMAP=..$/..$/bridge_exports.map 63*5e139d9fSJim JagielskiSHL1RPATH=URELIB 64*5e139d9fSJim Jagielski 65*5e139d9fSJim JagielskiSHL1OBJS = $(SLOFILES) 66*5e139d9fSJim JagielskiSHL1LIBS = $(SLB)$/cpp_uno_shared.lib 67*5e139d9fSJim Jagielski 68*5e139d9fSJim JagielskiSHL1STDLIBS= \ 69*5e139d9fSJim Jagielski $(CPPULIB) \ 70*5e139d9fSJim Jagielski $(SALLIB) 71*5e139d9fSJim Jagielski 72*5e139d9fSJim Jagielski.ENDIF 73*5e139d9fSJim Jagielski 74*5e139d9fSJim Jagielski# --- Targets ------------------------------------------------------ 75*5e139d9fSJim Jagielski 76*5e139d9fSJim Jagielski.INCLUDE : target.mk 77*5e139d9fSJim Jagielski 78*5e139d9fSJim Jagielski# Assemble the AArch64 call trampoline (call.s) into call.obj, mirroring the 79*5e139d9fSJim Jagielski# pattern rule used by the gcc3_linux_arm bridge for its armhelper.S. 80*5e139d9fSJim Jagielski$(SLO)$/%.obj: %.s 81*5e139d9fSJim Jagielski $(CXX) -c -o $(SLO)$/$(@:b).o $< -fPIC ; touch $@ 82