#!/bin/bash
|
|
BUILD_DIR=$(cd `dirname $0`; pwd)
|
if [ -h $0 ]
|
then
|
CMD=$(readlink $0)
|
BUILD_DIR=$(dirname $CMD)
|
fi
|
cd $BUILD_DIR/../../
|
TOP_DIR=$(pwd)
|
cd - > /dev/null
|
CONIFG_DIR=$TOP_DIR/buildroot/configs
|
CONFIG=$1
|
LINE=$(head -n 1 $CONIFG_DIR/$CONFIG)
|
ROCKCHIP=$(echo "$LINE" | cut -c1-8)
|
TARGET_DIR=${CONFIG%_defconfig}
|
mkdir -p $TOP_DIR/buildroot/output/$TARGET_DIR
|
DST_CONFIG=$TOP_DIR/buildroot/output/$TARGET_DIR/.rockchipconfig
|
SRC_CONFIG=$TOP_DIR/buildroot/configs/$CONFIG
|
echo "dst:$DST_CONFIG"
|
echo "src:$SRC_CONFIG"
|
|
function additem()
|
{
|
ITEM=$1
|
TARGET_FILE=$2
|
if [ ! -f $TARGET_FILE ]
|
then
|
#echo "$TARGET_FILE doesn't exist, so add item directly"
|
echo "$ITEM" >> $TARGET_FILE
|
return
|
echo "return"
|
fi
|
LINE_CNT=0
|
#echo "check if item $ITEM in file $TARGET_FILE"
|
for line in $(cat $TARGET_FILE)
|
do
|
SRC_BRITEM=${ITEM%=*}
|
DST_BRITEM=${line%=*}
|
BR2=$(echo "${line}" | cut -c1-3)
|
if [ $BR2 != "BR2" ]
|
then
|
#echo "${line} is not valid, skip"
|
continue
|
fi
|
LINE_CNT=$[LINE_CNT+1]
|
#echo "line $LINE_CNT is ${line}"
|
#echo "src br item: $SRC_BRITEM, dst br item: $DST_BRITEM"
|
if [ $SRC_BRITEM = $DST_BRITEM ]
|
then
|
#echo "${line} already in $DST_CONFIG, check if it is fs-overlay"
|
if [ $SRC_BRITEM = "BR2_ROOTFS_OVERLAY" ]
|
then
|
#echo "merge $ITEM and ${line} to a new fs-overlay"
|
SRC_FSOVERLAY=${ITEM#*\"}
|
DST_FSOVERLAY=${line#*=}
|
DST_FSOVERLAY=${DST_FSOVERLAY%\"*}
|
REPLACE_ITEM="BR2_ROOTFS_OVERLAY=$DST_FSOVERLAY $SRC_FSOVERLAY"
|
else
|
REPLACE_ITEM=$ITEM
|
fi
|
#echo "replace line $LINE_CNT ${line} in $TARGET_FILE to $REPLACE_ITEM"
|
sed -i "${LINE_CNT}c ${REPLACE_ITEM}" $TARGET_FILE
|
return
|
fi
|
done
|
|
if [ -z $FOUND_ITEM ]
|
then
|
#echo "$ITEM not found in $TARGET_FILE, add it"
|
echo "$ITEM" >> $TARGET_FILE
|
fi
|
}
|
|
function addfile()
|
{
|
SRC=$1
|
DST=$2
|
#echo "add $SRC to $DST"
|
for line in $(cat $SRC)
|
do
|
#echo "add file, add item ${line} from $SRC to $DST"
|
additem ${line} $DST
|
done
|
}
|
|
if [ $ROCKCHIP = rockchip ]
|
then
|
rm $DST_CONFIG 2>/dev/null
|
for line in $(cat $SRC_CONFIG)
|
do
|
if [ -f $TOP_DIR/buildroot/configs/${line} ]
|
then
|
echo "merge $TOP_DIR/buildroot/configs/${line}"
|
#cat $TOP_DIR/buildroot/configs/${line} >> $DST_CONFIG
|
addfile $TOP_DIR/buildroot/configs/${line} $DST_CONFIG
|
else
|
echo "merge single item ${line}"
|
additem ${line} $DST_CONFIG
|
fi
|
done
|
else
|
cp $SRC_CONFIG $DST_CONFIG
|
fi
|