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