mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
6d819fae53
Make treat copy-kernel.o as intermediate and delete it when it's no longer needed. This can fail when the same submake was triggered multiple times for different devices. arm-openwrt-linux-muslgnueabi-as -k -o copy-kernel.o copy-kernel.S export MAKEFLAGS= ;make -w -C copy-kernel CROSS_COMPILE=arm-openwrt-linux-muslgnueabi- arm-openwrt-linux-muslgnueabi-objcopy -O binary -S copy-kernel.o copy-kernel.bin make[5]: Entering directory '/builder/shared-workdir/build/target/linux/gemini/image/copy-kernel' arm-openwrt-linux-muslgnueabi-objcopy -O binary -S copy-kernel.o copy-kernel.bin rm copy-kernel.o make[5]: Leaving directory '/builder/shared-workdir/build/target/linux/gemini/image/copy-kernel' # "App" partition is the rootfs arm-openwrt-linux-muslgnueabi-objcopy: 'copy-kernel.o': No such file Makefile:27: recipe for target 'copy-kernel.bin' failed make[5]: Leaving directory '/builder/shared-workdir/build/target/linux/gemini/image/copy-kernel' make[5]: *** [copy-kernel.bin] Error 1 Makefile:244: recipe for target '/builder/shared-workdir/build/build_dir/target-arm_fa526_musl_eabi/linux-gemini/tmp/openwrt-gemini-storlink_sl93512r-ext4-factory.bin' failed make[4]: *** [/builder/shared-workdir/build/build_dir/target-arm_fa526_musl_eabi/linux-gemini/tmp/openwrt-gemini-storlink_sl93512r-ext4-factory.bin] Error 2 With this change, output files are directed to $(KDIR) Signed-off-by: Yousong Zhou <yszhou4tech@gmail.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
39 lines
839 B
Makefile
39 lines
839 B
Makefile
#
|
|
# Makefile for Gemin kernel copy stub
|
|
#
|
|
# Copyright (C) 2019 Linus Walleij <linus.walleij@linaro.org>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License version 2 as published
|
|
# by the Free Software Foundation.
|
|
#
|
|
|
|
AS := $(CROSS_COMPILE)as
|
|
OBJCOPY := $(CROSS_COMPILE)objcopy
|
|
|
|
BIN_FLAGS := -O binary -S
|
|
|
|
SRC_DIR := $(CURDIR)/
|
|
OUT_DIR := $(if $(O),$(if $(patsubst %/,,$(O)),$(O)/,$(O)),$(SRC_DIR))
|
|
|
|
all: $(OUT_DIR)copy-kernel.bin
|
|
|
|
# Don't build dependencies, this may die if $(CC) isn't gcc
|
|
dep:
|
|
|
|
install:
|
|
|
|
$(OUT_DIR):
|
|
mkdir -p $(OUT_DIR)
|
|
|
|
$(OUT_DIR)%.o : $(SRC_DIR)%.S | $(OUT_DIR)
|
|
$(AS) $(ASFLAGS) -k -o $@ $<
|
|
|
|
$(OUT_DIR)%.bin: $(OUT_DIR)%.o
|
|
$(OBJCOPY) $(BIN_FLAGS) $< $@
|
|
|
|
mrproper: clean
|
|
|
|
clean:
|
|
rm -f $(OUT_DIR)copy-kernel.bin $(OUT_DIR)copy-kernel.o
|