| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | #! /bin/sh# usage:## make \#	REAL_CC=gcc-mine \#	CC=extra/scripts/cppcheck.sh \#	CPPCHECK_FLAGS="--enable=style,performance,portability,information,missingInclude --max-configs=256 -j $(($(getconf _NPROCESSORS_ONLN)-1))" \#	CPPCHECK_LIMIT="yes"# CPPCHECK_FLAGS are optional and are not set per default.# CPPCHECK_LIMIT limits cppcheck to the -D and -U that would be passed to CC.# Setting CPPCHECK_LIMIT greatly improves the check-time but obviously# just checks a small subset of the defines found in a file.: ${REAL_CC:=gcc}${REAL_CC} $@args=""limits=""next_arg=0next_limit=0for i in $@do  if [ $next_arg -eq 1 ] ; then	next_arg=0	case "/$i" in	/-*) exit 0 ;;	esac    [ "x$args" = "x" ] && args="$i" || args="$args $i"	continue  fi  if [ $next_limit -eq 1 ] ; then	next_limit=0    [ "x$limits" = "x" ] && limits="$i" || limits="$limits $i"	continue  fi  case "/$i" in  /-c) next_arg=1 ;;  /-isystem)		next_arg=1;		[ "x$args" = "x" ] && args="-I" || args="$args -I" ;;  /-I)		next_arg=1;		[ "x$args" = "x" ] && args="$i" || args="$args $i" ;;  /-I*) [ "x$args" = "x" ] && args="$i" || args="$args $i" ;;  /-D|/-U)		next_limit=1;		[ "x$limit" = "x" ] && limit="$i" || limit="$limit $i" ;;  /-D*) [ "x$limits" = "x" ] && limits="$i" || limits="$limits $i" ;;  /-s|/-S|/-dump*|/--print*|/-print*) exit 0 ;;  *) ;;  esacdone[ -z "${CPPCHECK_LIMIT}" ] && limits=""[ -z "${args}" ] || exec cppcheck ${CPPCHECK_FLAGS} ${args} ${limits}
 |