Enable confiugure script to generate header in parallel.
Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
This commit is contained in:
parent
9473cf9795
commit
a32b079a8a
46
configure
vendored
46
configure
vendored
@ -19,7 +19,7 @@ SCRIPTPATH=`realpath $SCRIPTPATH`
|
||||
CONFIG_FILES=`ls $SCRIPTPATH/configure.d/*.conf | sort`
|
||||
FILES_COUNT=`echo $CONFIG_FILES | wc -w`
|
||||
|
||||
CONFIG_FILE="config.out"
|
||||
CONFIG_FILE=$SCRIPTPATH/"config.out"
|
||||
|
||||
generate_config() {
|
||||
rm -f ${CONFIG_FILE}
|
||||
@ -27,47 +27,59 @@ generate_config() {
|
||||
declare -a pid_list
|
||||
progress=0
|
||||
|
||||
# Compile each test module in backgorund
|
||||
# Compile each test module in background
|
||||
echo "Preparing configuration"
|
||||
for file in $CONFIG_FILES; do
|
||||
progress=$((progress+1))
|
||||
# $1 - Action to be performed
|
||||
# $2 - File with stored configuration
|
||||
# $3 - Name of called script (since script is running as subprocess
|
||||
# it has to be passed explicitly
|
||||
source $file "check" "${SCRIPTPATH}/${CONFIG_FILE}" "$file" &
|
||||
# it has to be passed explicitly)
|
||||
source $file "check" "$CONFIG_FILE" "$file" &
|
||||
pid_list+=($!)
|
||||
done
|
||||
|
||||
# Wait for all compilation processes to finish
|
||||
for i in "${pid_list[@]}"; do
|
||||
wait $i &> /dev/null
|
||||
done
|
||||
wait
|
||||
|
||||
grep "X" ${SCRIPTPATH}/${CONFIG_FILE} &> /dev/null
|
||||
grep "X" ${CONFIG_FILE} &> /dev/null
|
||||
if [ $? -eq 0 ] ; then
|
||||
echo "ERROR! Following steps failed while preparing config:"
|
||||
grep "X" ${SCRIPTPATH}/${CONFIG_FILE} | cut -f1 -d ' '
|
||||
grep "X" ${CONFIG_FILE} | cut -f1 -d ' '
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
generate_header() {
|
||||
rm -f $SCRIPTPATH/modules/generated_defines.h
|
||||
progress=0
|
||||
for file in $CONFIG_FILES; do
|
||||
progress=$((progress+1))
|
||||
echo -ne "Configuring OpenCAS: $progress/$FILES_COUNT\033[0K\r"
|
||||
CONF=$(cat ${CONFIG_FILE} | awk -v file=$(basename $file) '{ if ($1 == file) print $2 }')
|
||||
/bin/bash $file "apply" "$CONF" "$file"
|
||||
# Configs starting with '1_' have to be put as first in header
|
||||
FIRST=$(echo $CONFIG_FILES | tr ' ' '\n' | grep '1_')
|
||||
SECOND=$(echo $CONFIG_FILES | tr ' ' '\n' | grep '2_')
|
||||
|
||||
echo "Configuring OpenCAS"
|
||||
for file in $FIRST; do
|
||||
CONF=$(cat ${CONFIG_FILE} | grep $(basename $file) | cut -d' ' -f2)
|
||||
source $file "apply" "$CONF" "$file" &
|
||||
done
|
||||
echo ""
|
||||
|
||||
wait
|
||||
|
||||
for file in $SECOND; do
|
||||
CONF=$(cat ${CONFIG_FILE} | grep $(basename $file) | cut -d' ' -f2)
|
||||
source $file "apply" "$CONF" "$file" &
|
||||
done
|
||||
|
||||
wait
|
||||
}
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
generate_config
|
||||
else
|
||||
CONFIG_FILE="$1"
|
||||
CONFIG_FILE=$(realpath $1)
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo "Invaild path to config file!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
generate_header
|
||||
|
@ -9,7 +9,7 @@ SCRIPTPATH=`realpath $SCRIPTPATH`
|
||||
KERNEL_DIR="${KERNEL_DIR:-/lib/modules/$(uname -r)/build/}"
|
||||
KERNEL_VER="$(cd $KERNEL_DIR; make kernelversion)"
|
||||
NPROC=`nproc`
|
||||
DEFINE_FILE=$SCRIPTPATH/../modules/generated_defines.h
|
||||
DEFINE_FILE=$SCRIPTPATH/modules/generated_defines.h
|
||||
|
||||
|
||||
add_define() {
|
||||
|
Loading…
Reference in New Issue
Block a user