98 lines
2.8 KiB
Plaintext
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)
|