Files
proxmark3/armlib/Makefile
T

97 lines
3.8 KiB
Makefile

#-----------------------------------------------------------------------------
# Copyright (C) Proxmark3 contributors. See AUTHORS.md for details.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# See LICENSE.txt for the text of the license.
#-----------------------------------------------------------------------------
ifeq ($(PLATFORM),PM5)
# Flags + Inc
include ../armlib/Exports.mk
# Toolchain + dirs
include ../common_arm/Makefile.common
# Allow standalone invocation when parent make doesn't export toolchain vars.
CROSS ?= arm-none-eabi-
CROSS_CC ?= $(CROSS)gcc
CROSS_CFLAGS ?=
CROSS_AR ?= $(CROSS)ar
OBJDIR ?= obj
ARMLIBSRC = \
../armlib/at32_sys/cmsis/cm4/device_support/system_at32f435_437.c \
../armlib/at32_sys/drivers/src/at32f435_437_crm.c \
../armlib/at32_sys/drivers/src/at32f435_437_misc.c \
../armlib/at32_sys/drivers/src/at32f435_437_gpio.c \
../armlib/at32_sys/drivers/src/at32f435_437_usb.c \
../armlib/at32_sys/drivers/src/at32f435_437_qspi.c \
../armlib/at32_sys/drivers/src/at32f435_437_tmr.c \
../armlib/at32_sys/drivers/src/at32f435_437_ertc.c \
../armlib/at32_sys/drivers/src/at32f435_437_pwc.c \
../armlib/at32_sys/drivers/src/at32f435_437_spi.c \
../armlib/at32_sys/drivers/src/at32f435_437_i2c.c \
../armlib/at32_sys/drivers/src/at32f435_437_dma.c \
../armlib/at32_sys/drivers/src/at32f435_437_adc.c \
../armlib/at32_sys/drivers/src/at32f435_437_usart.c \
../armlib/at32_sys/drivers/src/at32f435_437_exint.c \
../armlib/at32_sys/drivers/src/at32f435_437_scfg.c \
../armlib/at32_sys/drivers/src/at32f435_437_flash.c \
../armlib/at32_sys/drivers/src/at32f435_437_crc.c \
../armlib/at32_sys/drivers/src/at32f435_437_wdt.c \
../armlib/at32_sys/drivers/src/at32f435_437_wwdt.c \
../armlib/at32_sys/drivers/src/at32f435_437_can.c \
../armlib/at32_sys/drivers/src/at32f435_437_dac.c \
../armlib/at32_sys/drivers/src/at32f435_437_debug.c \
../armlib/at32_sys/drivers/src/at32f435_437_dvp.c \
../armlib/at32_sys/drivers/src/at32f435_437_edma.c \
../armlib/at32_sys/drivers/src/at32f435_437_sdio.c \
../armlib/at32_sys/drivers/src/at32f435_437_acc.c \
../armlib/at32_usb/usb_drivers/src/usb_core.c \
../armlib/at32_usb/usb_drivers/src/usbd_core.c \
../armlib/at32_usb/usb_drivers/src/usbd_int.c \
../armlib/at32_usb/usb_drivers/src/usbd_sdr.c \
../armlib/at32_usb/usbd_class/cdc/cdc_class.c \
../armlib/at32_i2c/at32f435_437_i2c_app.c
ARMLIB = $(OBJDIR)/$(ARMLIB_EXPORT_LIBNAME)
ARMLIB_OBJ_FROM_SRC = $(OBJDIR)/armlib_$(subst /,_,$(patsubst ../armlib/%.c,%,$(1))).o
ARMLIB_OBJ = $(foreach src,$(ARMLIBSRC),$(call ARMLIB_OBJ_FROM_SRC,$(src)))
ARMLIB_DEP = $(ARMLIB_OBJ:.o=.d)
.DEFAULT_GOAL := $(ARMLIB)
# TODO Artery's library has many warnings, which we can only ignore for now, unfortunately.
ARMLIB_PRIVATE_CFLAGS = -mcpu=cortex-m4 -Wno-missing-prototypes -Wno-missing-declarations
ARMLIB_CFLAGS = $(ARMLIB_EXPORT_CFLAGS) $(ARMLIB_PRIVATE_CFLAGS)
define ARMLIB_COMPILE_RULE
$(2): $(1) $(INCLUDES) | $(OBJDIR)
$$(info [-] CC $$(notdir $(1)))
$$(Q)$$(CROSS_CC) $$(CROSS_CFLAGS) $$(ARMLIB_CFLAGS) -MMD -MP -MF $(2:.o=.d) -mthumb -c -o $(2) $(1)
endef
define ARMLIB_REGISTER_RULES
$(foreach src,$(ARMLIBSRC),$(eval $(call ARMLIB_COMPILE_RULE,$(src),$(call ARMLIB_OBJ_FROM_SRC,$(src)))))
endef
$(OBJDIR):
$(Q)mkdir -p $@
$(ARMLIB): $(ARMLIB_OBJ) | $(OBJDIR)
$(info [-] AR $@)
$(Q)$(CROSS_AR) rcs $@ $^
$(call ARMLIB_REGISTER_RULES)
-include $(ARMLIB_DEP)
endif