Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag

COMPONENT_TARGETS  = $(HARDWARE_BLUE_PILL)

include ../../../build-system/constants.mk

# ======= __END_OF_REQUIRES__ =======

sources  = src

SRC_DIR  = $(TARGET_BUILD_DIR)/src
src_done = $(TARGET_BUILD_DIR)/.source_done

run_gdb_script = $(TARGET_BUILD_DIR)/_run-gdb.sh

led_target     = $(TARGET_BUILD_DIR)/led.bin

info_target = $(TARGET_BUILD_DIR)/.info-done

USE_TARGET_DEST_DIR_SYSROOT = no

ifeq ($(HARDWARE),$(HARDWARE_BLUE_PILL))
OPTIMIZATION_FLAGS  = -O0
ARCH_FLAGS := -mthumb -mcpu=cortex-m3
endif

BUILD_TARGETS = $(led_target) $(info_target)


include ../../../build-system/core.mk


ifeq ($(HARDWARE),$(HARDWARE_BLUE_PILL))
CFLAGS  += -Wall -fno-common -ffunction-sections -fdata-sections
LDFLAGS += -Wall $(ARCH_FLAGS) -Wl,--gc-sections -nostdlib -nostartfiles
endif

$(src_done): $(sources)
	@cp -a $^ $(TARGET_BUILD_DIR)/
	@touch $@

$(led_target): $(src_done)
	@( cd $(SRC_DIR)/ ; $(BUILD_ENVIRONMENT) $(MAKE) )
	@cp -a $(SRC_DIR)/main.bin $@
	# ======= Also copy main.elf for debuging: =======
	@cp -a $(SRC_DIR)/main.elf $(TARGET_BUILD_DIR)/led.elf
	# ======= Fill the Run GDB script: =======
	@echo '#!/bin/sh'                                       >  $(run_gdb_script)
	@echo ''                                                >> $(run_gdb_script)
	@echo 'TOOLCHAIN_PATH=$(TOOLCHAIN_PATH)'                >> $(run_gdb_script)
	@echo 'TARGET=$(TARGET)'                                >> $(run_gdb_script)
	@echo 'CROSS_PREFIX=$${TOOLCHAIN_PATH}/bin/$${TARGET}-' >> $(run_gdb_script)
	@echo ''                                                >> $(run_gdb_script)
	@echo '$${CROSS_PREFIX}gdb'                             >> $(run_gdb_script)
	@chmod a+x $(run_gdb_script)
	@touch $@

$(info_target): $(led_target)
	@echo "==================================="
	@echo "======= Build Info:         ======="
	@echo "==================================="
	@echo "======= CC = '$(CC)'"
	@echo "======= CFLAGS = '$(CFLAGS)'"
	@echo "======= LDFLAGS = '$(LDFLAGS)'"
	@echo "======= ARCH_FLAGS = '$(ARCH_FLAGS)'"
	@echo ""
	@echo "#"
	@echo "# Please find images: `basename $(led_target)` in the $(TARGET_BUILD_DIR)/ directory."
	@echo "#"
	@echo ""
	@touch $@