# TRACE32 Remote API # Copyright (c) 1998-2020 Lauterbach GmbH # All rights reserved # # GNU Makefile CROSS_COMPILE ?= empty := space := $(empty) $(empty) GCC_MACHINE := $(shell $(CROSS_COMPILE)gcc -dumpmachine) GCC_ARCH := $(word 1,$(subst -,$(space),$(GCC_MACHINE))) ifeq ($(GCC_MACHINE),arm-linux-gnueabihf) GCC_ARCH := armhf endif GCC_OS := $(word 2,$(subst -,$(space),$(GCC_MACHINE))) OS_NAME ?= $(GCC_OS) ARCH_NAME ?= $(GCC_ARCH) CC := $(CROSS_COMPILE)gcc RM := rm MKDIR := mkdir CFLAGS := -pipe -c -MMD -MP -fPIC -Wall -Wextra -Wno-missing-field-initializers -O2 -g -DENABLE_NOTIFICATION -DT32HOST_UNIX LDFLAGS := -shared CFLAGS-arm := CFLAGS-armhf := CFLAGS-aarch64:= CFLAGS-x86 := -m32 CFLAGS-x86_64 := -m64 ifneq ($(findstring $(ARCH_NAME),arm armhf),) CFLAGS32 := $(CFLAGS-$(ARCH_NAME)) CFLAGS64 := TARGETS := rel32 ODIR32 := linux-$(ARCH_NAME) ODIR64 := else ifneq ($(findstring $(ARCH_NAME),aarch64),) CFLAGS32 := CFLAGS64 := $(CFLAGS-$(ARCH_NAME)) TARGETS := rel64 ODIR32 := ODIR64 := linux-$(ARCH_NAME) else CFLAGS32 := $(CFLAGS-x86) CFLAGS64 := $(CFLAGS-x86_64) TARGETS := rel32 rel64 ODIR32 := linux ODIR64 := linux64 endif SDIR := ../src TARGETLIB32 := t32api.so TARGETLIB64 := t32api64.so SRCS := hremote.c hlinknet.c t32nettcp.c tcpsimple2.c DEPS := $(SRCS:%.c=%.d) OBJS := $(SRCS:%.c=%.o) OBJS32 := $(addprefix $(ODIR32)/,$(OBJS)) OBJS64 := $(addprefix $(ODIR64)/,$(OBJS)) DEPS32 := $(addprefix $(ODIR32)/,$(DEPS)) DEPS64 := $(addprefix $(ODIR64)/,$(DEPS)) .PHONY: help help: @echo @echo make help ... show this help @echo make all .... same as make rel @echo make rel .... build t32api.so and t32api64.so ifneq ($(findstring rel32,$(TARGETS)),) @echo make rel32 .. build t32api.so endif ifneq ($(findstring rel64,$(TARGETS)),) @echo make rel64 .. build t32api64.so endif @echo make clean .. delete directories $(ODIR32) $(ODIR64) @echo .PHONY: all all: rel rel: $(TARGETS) rel32: $(ODIR32)/$(TARGETLIB32) rel64: $(ODIR64)/$(TARGETLIB64) $(ODIR64) $(ODIR32): $(MKDIR) $@ $(ODIR32)/$(TARGETLIB32): $(OBJS32) $(CC) $(LDFLAGS) $(CFLAGS32) -o $@ $^ $(ODIR64)/$(TARGETLIB64): $(OBJS64) $(CC) $(LDFLAGS) $(CFLAGS64) -o $@ $^ $(ODIR32)/%.o : $(SDIR)/%.c | $(ODIR32) $(CC) $(CFLAGS) $(CFLAGS32) -I$(SDIR) -o $@ $< $(ODIR64)/%.o : $(SDIR)/%.c | $(ODIR64) $(CC) $(CFLAGS) $(CFLAGS64) -I$(SDIR) -o $@ $< -include $(DEPS32) $(DEPS64) .PHONY: clean extraclean clean extraclean: -$(RM) -rf $(ODIR32) $(ODIR64)