#!/bin/sh # A trivial script to build with all known configurations # (please add a file in configs/*_defconfig to test your special case) T=$(mktemp /tmp/wrpc-config.XXXXXX) TW=$(mktemp /tmp/save-dotconfig-wrpc.XXXXXX) TP=$(mktemp /tmp/save-dotconfig-ppsi.XXXXXX) test -f .config && cp .config $TW test -f ppsi/.config && cp ppsi/.config $TP # check whether we want to compare sizes of binaries to older builds if [ $# -ne 0 ] && [ x"$1" = x"-c" ]; then compare_mode=y shift; fi configs=$(cd configs; echo *_defconfig) if [ $# -ne 0 ]; then configs="$*" fi if [ x"$compare_mode" = x"y" ]; then if ! [ -n "$size_db_file" ]; then size_db_file=size_db.txt echo "No file with size DB specified! Using default ($size_db_file)" fi if ! [ -n "$size_info_file" ]; then size_info_file=size_info.txt echo "No file with size info specified! Using default ($size_info_file)" fi fi export size_db_file export size_info_file rm -rf $size_info_file # remove files from the previous compilations first make distclean -s for c in $configs; do echo "##### Building with '$c'" if ! make -s clean; then echo "Error while cleaning (see $T)" exit 1 fi rm -f ppsi/.config if ! make $c 2>&1 >> $T; then echo "Error in configuration (see $T)" exit 1 fi DEFCONFIG_NAME=$c export DEFCONFIG_NAME # Remove "# configuration written to .config" from output make -s | grep -v '^#' if [ x"$compare_mode" = x"y" ]; then make makeall_copy fi done make -s clean # Recover local configs cp $TW .config; rm $TW cp $TP ppsi/.config; rm $TP rm $T if [ x"$compare_mode" = x"y" ]; then ./compare_size.sh 1>&2 GIT_HASH=`git log --format=format:%H -1` if [ -f "$size_db_file" ]; then cat "$size_db_file" | grep -v $GIT_HASH > "$size_db_file".tmp mv "$size_db_file".tmp "$size_db_file" fi cat "$size_info_file" >> "$size_db_file" fi