#Directories
BERTOS_DIR="./bertos"
+COPY_DIR="./bertos.saved"
CPU_DIR="${BERTOS_DIR}/cpu"
#Directory to exclude
OS_DIR="${BERTOS_DIR}/os"
EMUL_DIR="${BERTOS_DIR}/emul"
-APP_DIR="./app"
+WIZARD_DIR="./wizard"
+APP_DIR="./examples"
+FAT_DIR="${BERTOS_DIR}/fs/fatfs"
+NMEA_DIR="${BERTOS_DIR}/net/nmeap"
if [ $# \< 2 ] ; then
printf "You must specify a cpu target, and source file type!\n"
exit 1
fi
+CPU_TARGET=$1
+EXCLUDE_DIRS="$COPY_DIR $CPU_DIR $APP_DIR $OS_DIR $WIZARD_DIR $EMUL_DIR $FAT_DIR $NMEA_DIR"
+EXCLUDE_CMD="\.svn -prune "
+for i in $EXCLUDE_DIRS; do
+ EXCLUDE_CMD="$EXCLUDE_CMD -o -path $i -prune ";
+done
-#Create a list of source file whitout a cpu specific source
-GEN_SRC=`find . \( -name \.svn -prune -o -path $CPU_DIR -prune -o -path $APP_DIR -prune -o -path $OS_DIR -prune -o -path $EMUL_DIR -prune \) -o -name *.${2} -print | xargs`
+#Create a list of source file without a cpu specific source
+GEN_SRC=`find . \( -name $EXCLUDE_CMD \) -o -name *.${2} -print | xargs`
#Select c and asm sources for selected cpu target
-TRG_SRC=`find ${CPU_DIR}/${1} -name \.svn -prune -o -name *.${2} -print | xargs`
+TRG_SRC=`find ${CPU_DIR}/$CPU_TARGET -name \.svn -prune -o -name *.${2} -print | xargs`
#Generate a list of all source for each cpu
SRC_ALL=${GEN_SRC}" "${TRG_SRC}
+# Find the files that contain the string
+# NOTEST <cpu target> and put it in a list
+
+NOTEST="notest:"
+for src in $SRC_ALL ;
+do
+ grep -P "$NOTEST\s*$CPU_TARGET" $src 2>&1 > /dev/null
+ if [ $? -eq 0 ] ; then
+ EXCLUDE_LIST="$EXCLUDE_LIST $src"
+ fi
+done
+
+# Remove the exclude list files from the sources to be
+# compiled
+for src in $EXCLUDE_LIST ;
+do
+ SRC_ALL=`echo $SRC_ALL | sed -e "s;$src;;g"`
+done
printf "${SRC_ALL}"