sdk-hwV1.3/lichee/xr806/appos/Makefile

209 lines
4.8 KiB
Makefile
Executable File

# Makefile for buildroot2
#
# Copyright (C) 1999-2005 by Erik Andersen <andersen@codepoet.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
#--------------------------------------------------------------
# Just run 'make menuconfig', configure stuff, then run 'make'.
# You shouldn't need to mess with anything beyond this point...
#--------------------------------------------------------------
Kconfig := ./Kconfig
MCONF := ./tools/config/mconf
CONF := ./tools/config/conf
KCONFIG_CONFIG := .config
export KCONFIG_CONFIG
KCONFIG_AUTOHEADER := include/generated/autoconf.h
export KCONFIG_AUTOHEADER
-include $(KCONFIG_CONFIG)
PRJ ?= ""
ifneq ($(PRJ), "")
_PROJECT := project/$(PRJ)
else
_PROJECT := project/$(CONFIG_PROJECT)
endif
PHONY :=
__all: all
PHONY += help
help:
@echo "Welcome to Xradio build system. Some useful make targets:"
@echo ""
@echo "make menuconfig - Configure project"
@echo ""
@echo "make lib - Build all libraries"
@echo "make build - Build image"
@echo "make build_clean - Build clean"
@echo "make objdump - Generate objdump for debug"
dot-target = $(dir $@).$(notdir $@)
PHONY += FORCE
FORCE:
gcc_tools_unzip: FORCE
ifeq ($(shell uname -o), Cygwin)
@if ! [ -d ~/tools/gcc-arm-none-eabi-8-2019-q3-update ]; then \
mkdir -p ~/tools; \
unzip ./../tools/toolchain/gcc-arm-none-eabi/gcc-arm-none-eabi-8-2019-q3-update.zip -d ~/tools; \
fi
else
@if ! [ -d ~/tools/gcc-arm-none-eabi-8-2019-q3-update ]; then \
mkdir -p ~/tools; \
tar -jxvf ./../tools/toolchain/gcc-arm-none-eabi/gcc-arm-none-eabi-8-2019-q3-update-linux.tar.bz2 -C ~/tools; \
fi
endif
dot_config: $(CONF) FORCE
@set -e; \
trap "rm -f ..config.tmp" EXIT; \
mv .config ..config.tmp; \
if [ -f .defconfig.tmp ]; then \
mv .defconfig.tmp .config; \
else \
cp ..config.tmp .config; \
fi; \
$(CONF) --olddefconfig $(Kconfig); \
if ! cmp -s .config ..config.tmp; then \
echo ' UPD .config'; \
rm -f ..config.tmp; \
else \
echo ' NUPD .config'; \
mv ..config.tmp .config; \
fi
include/generated/autoconf.h: $(CONF) dot_config FORCE
@set -e; \
trap "rm -f $(dot-target).tmp" EXIT; \
if [ -f $@ ]; then \
mv $@ $(dot-target).tmp; \
else \
echo "" > $(dot-target).tmp; \
fi; \
$(CONF) --syncconfig $(Kconfig); \
if ! cmp -s $@ $(dot-target).tmp; then \
echo ' UPD $@'; \
rm -f $(dot-target).tmp; \
else \
echo ' NUPD $@'; \
mv $(dot-target).tmp $@; \
fi
PHONY += $(MCONF)
$(MCONF):
@cd $(@D); $(MAKE) $(@F); cd -
PHONY += $(CONF)
$(CONF):
@cd $(@D); $(MAKE) $(@F); cd -
menuconfig: $(MCONF)
$< $(Kconfig)
defconfig: $(CONF)
@if [ -d project/$(PRJ) ] && [ -f project/$(PRJ)/gcc/defconfig ]; then \
cp $(_PROJECT)/gcc/defconfig .config; \
fi; \
$< --defconfig ./.config $(Kconfig)
config: $(CONF)
$< $(Kconfig)
oldconfig: $(CONF)
@$< --defconfig ./.config.old $(Kconfig)
define cd_prj_exe
@set -e; \
if [ -d $(1) ]; then \
cd $(1)/gcc/; make $@; cd -; \
else \
echo "$(1) not find"; \
fi
endef
all: FORCE
$(call cd_prj_exe, $(_PROJECT))
lib: FORCE
$(call cd_prj_exe, $(_PROJECT))
lib_clean: FORCE
$(call cd_prj_exe, $(_PROJECT))
install: FORCE
$(call cd_prj_exe, $(_PROJECT))
lib_install_clean: FORCE
$(call cd_prj_exe, $(_PROJECT))
build: FORCE
$(call cd_prj_exe, $(_PROJECT))
image: FORCE
$(call cd_prj_exe, $(_PROJECT))
image_clean: FORCE
$(call cd_prj_exe, $(_PROJECT))
image_xz: FORCE
$(call cd_prj_exe, $(_PROJECT))
ifeq ($(CONFIG_SECURE_BOOT), y)
sign: FORCE
$(call cd_prj_exe, $(_PROJECT))
endif
ifeq ($(CONFIG_TRUSTZONE), y)
trustzone: FORCE
$(call cd_prj_exe, $(_PROJECT))
trustzone_clean: FORCE
$(call cd_prj_exe, $(_PROJECT))
endif
size: FORCE
$(call cd_prj_exe, $(_PROJECT))
build_clean: FORCE
$(call cd_prj_exe, $(_PROJECT))
objdump: FORCE
$(call cd_prj_exe, $(_PROJECT)); \
cp $(_PROJECT)/gcc/*.objdump out/
clean: FORCE
$(call cd_prj_exe, $(_PROJECT))
PHONY += config_clean
config_clean: FORCE
$(Q)-rm -f .config .config.old
$(Q)-rm -rf include/generated/* include/config/*
$(Q)cd ./tools/config/; $(MAKE) clean; cd -
# Declare the contents of the PHONY variable as phony. We keep that
# information in a variable so we can use it in if_changed and friends.
.PHONY: $(PHONY)