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