Commit bb5a762c authored by Evan Lloyd's avatar Evan Lloyd
Browse files

Build:Replace soft links with file copy.

Some build environments do not support symbolic links. This patch
removes the symlinks previously used to build fip_create and instead
copies the relevant header files.
The original motivation for using symlinks was to avoid Trusted Firmware
library headers conflicting with headers in the compiler standard
include path. Copying the header files instead has the same effect.

Like other build artefacts, the copied files are listed in .gitignore.

The distclean targets have also been updated to remove the copies.

Change-Id: Ie8b67bcb133f7f1d660ae93b857950aa15e42b1e
parent e7f54dbd
...@@ -14,3 +14,7 @@ tools/fip_create/fip_create ...@@ -14,3 +14,7 @@ tools/fip_create/fip_create
tools/cert_create/src/*.o tools/cert_create/src/*.o
tools/cert_create/src/**/*.o tools/cert_create/src/**/*.o
tools/cert_create/cert_create tools/cert_create/cert_create
# Ignore header files copied.
tools/fip_create/firmware_image_package.h
tools/fip_create/uuid.h
...@@ -34,6 +34,7 @@ include ${MAKE_HELPERS_DIRECTORY}build_env.mk ...@@ -34,6 +34,7 @@ include ${MAKE_HELPERS_DIRECTORY}build_env.mk
PROJECT = fip_create PROJECT = fip_create
OBJECTS = fip_create.o OBJECTS = fip_create.o
COPIED_H_FILES := uuid.h firmware_image_package.h
CFLAGS = -Wall -Werror -pedantic -std=c99 CFLAGS = -Wall -Werror -pedantic -std=c99
ifeq (${DEBUG},1) ifeq (${DEBUG},1)
...@@ -42,13 +43,12 @@ else ...@@ -42,13 +43,12 @@ else
CFLAGS += -O2 CFLAGS += -O2
endif endif
# Make soft links and include from local directory otherwise wrong headers # Only include from local directory (see comment below).
# could get pulled in from firmware tree.
INCLUDE_PATHS = -I. INCLUDE_PATHS = -I.
CC := gcc CC := gcc
.PHONY: all clean .PHONY: all clean distclean
all: ${PROJECT} all: ${PROJECT}
...@@ -59,10 +59,25 @@ ${PROJECT}: ${OBJECTS} Makefile ...@@ -59,10 +59,25 @@ ${PROJECT}: ${OBJECTS} Makefile
@echo "Built $@ successfully" @echo "Built $@ successfully"
@${ECHO_BLANK_LINE} @${ECHO_BLANK_LINE}
%.o: %.c %.h Makefile %.o: %.c %.h ${COPIED_H_FILES} Makefile
@echo " CC $<" @echo " CC $<"
${Q}${CC} -c ${CFLAGS} ${INCLUDE_PATHS} $< -o $@ ${Q}${CC} -c ${CFLAGS} ${INCLUDE_PATHS} $< -o $@
#
# Copy required library headers to a local directory so they can be included
# by this project without adding the library directories to the system include
# path. This avoids conflicts with definitions in the compiler standard
# include path.
#
uuid.h : ../../include/stdlib/sys/uuid.h
$(call SHELL_COPY,$<,$@)
firmware_image_package.h : ../../include/common/firmware_image_package.h
$(call SHELL_COPY,$<,$@)
clean: clean:
$(call SHELL_DELETE_ALL, ${PROJECT} ${OBJECTS}) $(call SHELL_DELETE_ALL, ${PROJECT} ${OBJECTS})
distclean: clean
$(call SHELL_DELETE_ALL, ${COPIED_H_FILES})
../../include/common/firmware_image_package.h
\ No newline at end of file
../../include/stdlib/sys/uuid.h
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment