• Jan Kiszka's avatar
    tools: Fix broken object compilation rules · c0f73edc
    Jan Kiszka authored
    
    As these rules depend on non-existing headers as well (likely copy &
    pasted from fiptool), they never matched, and the built-in rules were
    used. That led to random breakages when e.g. CPPFLAGS was suddenly
    evaluated and contained invalid options.
    
    For the stm32image, this reveals that we were relying on the built-in
    rules by passing -D_GNU_SOURCE via CPPFLAGS, rather than using CFLAGS as
    used in the local rule. Fix that as well.
    Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
    c0f73edc
Makefile 864 Bytes
#
# Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#

MAKE_HELPERS_DIRECTORY := ../../make_helpers/
include ${MAKE_HELPERS_DIRECTORY}build_macros.mk
include ${MAKE_HELPERS_DIRECTORY}build_env.mk

PROJECT := stm32image${BIN_EXT}
OBJECTS := stm32image.o
V := 0

CFLAGS := -Wall -Werror -pedantic -std=c99 -D_GNU_SOURCE
ifeq (${DEBUG},1)
  CFLAGS += -g -O0 -DDEBUG
else
  CFLAGS += -O2
endif

ifeq (${V},0)
  Q := @
else
  Q :=
endif

CC := gcc

.PHONY: all clean distclean

all: ${PROJECT}

${PROJECT}: ${OBJECTS} Makefile
	@echo "  LD      $@"
	${Q}${CC} ${OBJECTS} -o $@
	@${ECHO_BLANK_LINE}
	@echo "Built $@ successfully"
	@${ECHO_BLANK_LINE}

%.o: %.c Makefile
	@echo "  CC      $<"
	${Q}${CC} -c ${CFLAGS} $< -o $@

clean:
	$(call SHELL_DELETE_ALL, ${PROJECT} ${OBJECTS})

distclean: clean