Skip to content
Snippets Groups Projects
  • Marian Balakowicz's avatar
    f9328639
    Add support for a saving build objects in a separate directory. · f9328639
    Marian Balakowicz authored
    Modifications are based on the linux kernel approach and
    support two use cases:
    
      1) Add O= to the make command line
      'make O=/tmp/build all'
    
      2) Set environement variable BUILD_DIR to point to the desired location
      'export BUILD_DIR=/tmp/build'
      'make'
    
    The second approach can also be used with a MAKEALL script
    'export BUILD_DIR=/tmp/build'
    './MAKEALL'
    
    Command line 'O=' setting overrides BUILD_DIR environent variable.
    
    When none of the above methods is used the local build is performed and
    the object files are placed in the source directory.
    f9328639
    History
    Add support for a saving build objects in a separate directory.
    Marian Balakowicz authored
    Modifications are based on the linux kernel approach and
    support two use cases:
    
      1) Add O= to the make command line
      'make O=/tmp/build all'
    
      2) Set environement variable BUILD_DIR to point to the desired location
      'export BUILD_DIR=/tmp/build'
      'make'
    
    The second approach can also be used with a MAKEALL script
    'export BUILD_DIR=/tmp/build'
    './MAKEALL'
    
    Command line 'O=' setting overrides BUILD_DIR environent variable.
    
    When none of the above methods is used the local build is performed and
    the object files are placed in the source directory.
mkconfig 1.74 KiB
#!/bin/sh -e

# Script to create header files and links to configure
# U-Boot for a specific board.
#
# Parameters:  Target  Architecture  CPU  Board [VENDOR] [SOC]
#
# (C) 2002-2006 DENX Software Engineering, Wolfgang Denk <wd@denx.de>
#

APPEND=no	# Default: Create new config file
BOARD_NAME=""	# Name to print in make output

while [ $# -gt 0 ] ; do
	case "$1" in
	--) shift ; break ;;
	-a) shift ; APPEND=yes ;;
	-n) shift ; BOARD_NAME="${1%%_config}" ; shift ;;
	*)  break ;;
	esac
done

[ "${BOARD_NAME}" ] || BOARD_NAME="$1"

[ $# -lt 4 ] && exit 1
[ $# -gt 6 ] && exit 1

echo "Configuring for ${BOARD_NAME} board..."

#
# Create link to architecture specific headers
#
if [ "$SRCTREE" != "$OBJTREE" ] ; then
	mkdir -p ${OBJTREE}/include
	mkdir -p ${OBJTREE}/include2
	cd ${OBJTREE}/include2
	rm -f asm
	ln -s ${SRCTREE}/include/asm-$2 asm
	LNPREFIX="../../include2/asm/"
	cd ../include
	rm -rf asm-$2
	rm -f asm
	mkdir asm-$2
	ln -s asm-$2 asm
else
	cd ./include
	rm -f asm
	ln -s asm-$2 asm
fi

rm -f asm-$2/arch

if [ -z "$6" -o "$6" = "NULL" ] ; then
	ln -s ${LNPREFIX}arch-$3 asm-$2/arch
else
	ln -s ${LNPREFIX}arch-$6 asm-$2/arch
fi

if [ "$2" = "arm" ] ; then
	rm -f asm-$2/proc
	ln -s ${LNPREFIX}proc-armv asm-$2/proc
fi

#
# Create include file for Make
#
echo "ARCH   = $2" >  config.mk
echo "CPU    = $3" >> config.mk
echo "BOARD  = $4" >> config.mk

[ "$5" ] && [ "$5" != "NULL" ] && echo "VENDOR = $5" >> config.mk

[ "$6" ] && [ "$6" != "NULL" ] && echo "SOC    = $6" >> config.mk

#
# Create board specific header file
#
if [ "$APPEND" = "yes" ]	# Append to existing config file
then
	echo >> config.h
else
	> config.h		# Create new config file
fi
echo "/* Automatically generated - do not edit */" >>config.h
echo "#include <configs/$1.h>" >>config.h

exit 0