Files
Gen4_R-Car_Trace32/2_Trunk/demo/api/capi/dll/makefile.macosx
2025-10-14 09:52:32 +09:00

98 lines
2.8 KiB
Plaintext

# TRACE32 Remote API
# Copyright (c) 1998-2020 Lauterbach GmbH
# All rights reserved
#
# Mac OS Makefile
#
# Builds TRACE32 API shared library. Requires Xtools to be installed.
SRCS := hremote.c hlinknet.c t32nettcp.c tcpsimple2.c
OBJS := $(SRCS:%.c=%.o)
SRCFILES := $(SRCS:%=../src/%)
TARGETLIB := t32api.dylib
DEPS := ../src/t32.h
UNAME-M := $(shell uname -m)
CCREDIR := -o$(SPACE)
DEFINES := -DT32HOST_UNIX
RM := rm
XCODE_APP := # /Applications/Xcode-beta.app
XCODE_XCRUN := $(if $(XCODE_APP),DEVELOPER_DIR=$(XCODE_APP)) xcrun
XCODE_CC := $(strip $(shell $(XCODE_XCRUN) -f clang))
XCODE_STRIP := $(strip $(shell $(XCODE_XCRUN) -f strip))
XCODE_SDK := $(strip $(shell $(XCODE_XCRUN) --sdk macosx --show-sdk-path))
CC := $(XCODE_CC)
LD := $(XCODE_CC)
CFLAGS := -c -fPIC -isysroot $(XCODE_SDK) $(DEFINES) $(SRCFILES)
LDFLAGS := -dynamiclib -isysroot $(XCODE_SDK) -current_version 1.0.0 -compatibility_version 1.0 $(OBJS)
TFLAGS_ARM := -target arm64-apple-macos -mmacosx-version-min=11.1
TFLAGS_X64 := -target x86_64-apple-macos -mmacosx-version-min=10.13
CFLAGS_ARM := $(TFLAGS_ARM) $(CFLAGS)
CFLAGS_X64 := $(TFLAGS_X64) $(CFLAGS)
LDFLAGS_ARM := $(TFLAGS_ARM) $(LDFLAGS)
LDFLAGS_X64 := $(TFLAGS_X64) $(LDFLAGS)
TARGETLIB_ARM := $(TARGETLIB).arm64
TARGETLIB_X64 := $(TARGETLIB).x64
CLEANOBJS := $(RM) -rf $(OBJS)
ifndef XTARGET_CPU
XTARGET_CPU := universalbinary
endif
ifeq ($(XTARGET_CPU),x64)
CC1 := $(CC) $(CFLAGS_X64)
LD1 := $(CC) $(LDFLAGS_X64) $(CCREDIR)$(TARGETLIB)
endif
ifeq ($(XTARGET_CPU),arm64)
CC1 := $(CC) $(CFLAGS_ARM)
LD1 := $(CC) $(LDFLAGS_ARM) $(CCREDIR)$(TARGETLIB)
endif
ifeq ($(XTARGET_CPU),universalbinary)
CC1 := $(CC) $(CFLAGS_X64)
LD1 := $(CC) $(LDFLAGS_X64) $(CCREDIR)$(TARGETLIB_X64)
CC2 := $(CC) $(CFLAGS_ARM)
LD2 := $(CC) $(LDFLAGS_ARM) $(CCREDIR)$(TARGETLIB_ARM)
CLEANOBJS2 := $(CLEANOBJS)
POSTLINKCMD := lipo -create -output $(TARGETLIB) $(TARGETLIB_ARM) $(TARGETLIB_X64)
endif
.PHONY: help
help:
@echo
@echo "make [OPTIONS] help .......... Show this help"
@echo "make [OPTIONS] all ............ Build the shared library (64bits only)"
@echo "make [OPTIONS] clean .......... Delete library, objects and dependencies"
@echo
@echo "OPTIONS:"
@echo "XTARGET_CPU=arm64 ............. Build for Apple silicon"
@echo "XTARGET_CPU=x64 ............... Build for Intel silicon"
@echo "XTARGET_CPU=universalbinary ... Build for Apple+Intel silicon"
@echo
@echo "Without XTARGET_CPU universalbinary will be used."
@echo
.PHONY: all
all: $(TARGETLIB)
.PHONY: cleanobjs
cleanobjs:
$(CLEANOBJS)
$(TARGETLIB): cleanobjs
$(CC1)
$(LD1)
$(CLEANOBJS2)
$(CC2)
$(LD2)
$(POSTLINKCMD)
.PHONY: clean extraclean
clean extraclean:
-$(RM) -rf $(TARGETLIB) $(TARGETLIB_ARM) $(TARGETLIB_X64) $(OBJS)