xref: /trunk/main/bridges/source/cpp_uno/s5abi_macosx_aarch64/makefile.mk (revision 5e139d9fe42a654147771da4118aea6285c03168)
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