1 #!/bin/bash 1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0 OR BSD-3-Cl 2 # SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 3 3 4 TOOL=$(dirname $(realpath $0))/ynl-gen-c.py 4 TOOL=$(dirname $(realpath $0))/ynl-gen-c.py 5 5 6 force= 6 force= 7 search= 7 search= 8 8 9 while [ ! -z "$1" ]; do 9 while [ ! -z "$1" ]; do 10 case "$1" in 10 case "$1" in 11 -f ) force=yes; shift ;; 11 -f ) force=yes; shift ;; 12 -p ) search=$2; shift 2 ;; 12 -p ) search=$2; shift 2 ;; 13 * ) echo "Unrecognized option '$1'"; exit 13 * ) echo "Unrecognized option '$1'"; exit 1 ;; 14 esac 14 esac 15 done 15 done 16 16 17 KDIR=$(dirname $(dirname $(dirname $(dirname $ 17 KDIR=$(dirname $(dirname $(dirname $(dirname $(realpath $0))))) 18 pushd ${search:-$KDIR} >>/dev/null 18 pushd ${search:-$KDIR} >>/dev/null 19 19 20 files=$(git grep --files-with-matches '^/\* YN 20 files=$(git grep --files-with-matches '^/\* YNL-GEN \(kernel\|uapi\|user\)') 21 for f in $files; do 21 for f in $files; do 22 # params: 0 1 2 3 22 # params: 0 1 2 3 23 # $YAML YNL-GEN kernel $mode 23 # $YAML YNL-GEN kernel $mode 24 params=( $(git grep -B1 -h '/\* YNL-GEN' $ 24 params=( $(git grep -B1 -h '/\* YNL-GEN' $f | sed 's@/\*\(.*\)\*/@\1@') ) 25 args=$(sed -n 's@/\* YNL-ARG \(.*\) \*/@\1 25 args=$(sed -n 's@/\* YNL-ARG \(.*\) \*/@\1@p' $f) 26 26 27 if [ $f -nt ${params[0]} -a -z "$force" ]; 27 if [ $f -nt ${params[0]} -a -z "$force" ]; then 28 echo -e "\tSKIP $f" 28 echo -e "\tSKIP $f" 29 continue 29 continue 30 fi 30 fi 31 31 32 echo -e "\tGEN ${params[2]}\t$f" 32 echo -e "\tGEN ${params[2]}\t$f" 33 $TOOL --cmp-out --mode ${params[2]} --${pa 33 $TOOL --cmp-out --mode ${params[2]} --${params[3]} \ 34 --spec $KDIR/${params[0]} $args -o $ 34 --spec $KDIR/${params[0]} $args -o $f 35 done 35 done 36 36 37 popd >>/dev/null 37 popd >>/dev/null
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.