1 #!/bin/bash
   2 
   3 PROJECT=kernel
   4 
   5 function usage {
   6     echo
   7     echo "Usage:  $0"
   8     echo "Updates the smatch_data/ directory and builds the smatch database"
   9     echo
  10     exit 1
  11 }
  12 
  13 if [ "$1" = "-h" ] || [ "$1" = "--help" ] ; then
  14         usage;
  15 fi
  16 
  17 SCRIPT_DIR=$(dirname $0)
  18 if [ -e $SCRIPT_DIR/../smatch -a -d kernel -a -d fs ] ; then
  19     CMD=$SCRIPT_DIR/../smatch
  20     DATA_DIR=$SCRIPT_DIR/../smatch_data
  21 else
  22     echo "This script should be located in the smatch_scripts/ subdirectory of the smatch source."
  23     echo "It should be run from the root of a kernel source tree."
  24     exit 1
  25 fi
  26 
  27 # If someone is building the database for the first time then make sure all the
  28 # required packages are installed
  29 if [ ! -e smatch_db.sqlite ] ; then
  30     [ -e smatch_warns.txt ] || touch smatch_warns.txt
  31     if ! $DATA_DIR/db/create_db.sh -p=kernel smatch_warns.txt ; then
  32         echo "Hm... Not working.  Make sure you have all the sqlite3 packages"
  33         echo "And the sqlite3 libraries for Perl and Python"
  34         exit 1
  35     fi
  36 fi
  37 
  38 $SCRIPT_DIR/test_kernel.sh --call-tree --info --param-mapper --spammy --data=$DATA_DIR
  39 
  40 for i in $SCRIPT_DIR/gen_* ; do
  41         $i smatch_warns.txt -p=kernel
  42 done
  43 
  44 mv ${PROJECT}.* $DATA_DIR
  45 
  46 $DATA_DIR/db/create_db.sh -p=kernel smatch_warns.txt
  47