The current Makefile for the ulib examples is not very easy to modify. Split it into three parts: - config.mk containing the variables used by the build tools - a list of programs and the objects in each one - rules.mk with some rules to make it all work Use sys-objs to indicate objects which should be built with system headers. Use U-Boot headers by default. With this it is fairly simply to add a new program. Of course we could make use of U-Boot's kbuild implementation to tidy this up, but the purpose of the examples is to show how to do things outside the U-Boot build system. Co-developed-by: Claude <noreply@anthropic.com> Co-developed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
48 lines
1.5 KiB
Makefile
48 lines
1.5 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# Configuration and helpers for U-Boot library examples
|
|
#
|
|
# Copyright 2025 Canonical Ltd.
|
|
# Written by Simon Glass <simon.glass@canonical.com>
|
|
|
|
# For standalone builds, provide default values
|
|
EXAMPLE_DIR ?= .
|
|
OUTDIR ?= .
|
|
CC ?= gcc
|
|
SDL_CONFIG ?= sdl2-config
|
|
PLATFORM_LIBS ?= $(shell $(SDL_CONFIG) --libs)
|
|
LIB_STATIC_LDS ?= static.lds
|
|
# The main Makefile passes in Q=@ for quiet output
|
|
Q ?=
|
|
|
|
# Common compiler flags for programs using system headers
|
|
SYSTEM_CFLAGS := -I$(UBOOT_BUILD)/include \
|
|
-idirafter$(srctree)/include \
|
|
-include $(srctree)/include/linux/compiler_attributes.h
|
|
|
|
# Common compiler flags for programs using U-Boot headers (these match the
|
|
# U-Boot internal build)
|
|
UBOOT_CFLAGS := -nostdinc \
|
|
-isystem $(shell $(CC) -print-file-name=include) \
|
|
-I$(UBOOT_BUILD)/include \
|
|
-I$(srctree)/include \
|
|
-I$(srctree)/arch/sandbox/include \
|
|
-include $(UBOOT_BUILD)/include/config.h \
|
|
-include $(srctree)/include/linux/kconfig.h \
|
|
-I$(srctree)/dts/upstream/include \
|
|
"-DMBEDTLS_CONFIG_FILE=\"mbedtls_def_config.h\"" \
|
|
-I$(srctree)/lib/mbedtls \
|
|
-I$(srctree)/lib/mbedtls/port \
|
|
-I$(srctree)/lib/mbedtls/external/mbedtls \
|
|
-I$(srctree)/lib/mbedtls/external/mbedtls/include \
|
|
-Wno-builtin-declaration-mismatch \
|
|
-D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0
|
|
|
|
# Linking flags
|
|
SHARED_LDFLAGS := -L$(UBOOT_BUILD) -lu-boot -Wl,-rpath,$(UBOOT_BUILD)
|
|
|
|
STATIC_LDFLAGS := -Wl,-T,$(LIB_STATIC_LDS) \
|
|
-Wl,--whole-archive $(UBOOT_BUILD)/libu-boot.a \
|
|
-Wl,--no-whole-archive \
|
|
-lpthread -ldl $(PLATFORM_LIBS) -Wl,-z,noexecstack
|