• Masahiro Yamada's avatar
    unicode: refactor the rule for regenerating utf8data.h · 28ba53c0
    Masahiro Yamada authored
    scripts/mkutf8data is used only when regenerating utf8data.h,
    which never happens in the normal kernel build. However, it is
    irrespectively built if CONFIG_UNICODE is enabled.
    
    Moreover, there is no good reason for it to reside in the scripts/
    directory since it is only used in fs/unicode/.
    
    Hence, move it from scripts/ to fs/unicode/.
    
    In some cases, we bypass build artifacts in the normal build. The
    conventional way to do so is to surround the code with ifdef REGENERATE_*.
    
    For example,
    
     - 7373f4f8 ("kbuild: add implicit rules for parser generation")
     - 6aaf49b4 ("crypto: arm,arm64 - Fix random regeneration of S_shipped")
    
    I rewrote the rule in a more kbuild'ish style.
    
    In the normal build, utf8data.h is just shipped from the check-in file.
    
    $ make
      [ snip ]
      SHIPPED fs/unicode/utf8data.h
      CC      fs/unicode/utf8-norm.o
      CC      fs/unicode/utf8-core.o
      CC      fs/unicode/utf8-selftest.o
      AR      fs/unicode/built-in.a
    
    If you want to generate utf8data.h based on UCD, put *.txt files into
    fs/unicode/, then pass REGENERATE_UTF8DATA=1 from the command line.
    The mkutf8data tool will be automatically compiled to generate the
    utf8data.h from the *.txt files.
    
    $ make REGENERATE_UTF8DATA=1
      [ snip ]
      HOSTCC  fs/unicode/mkutf8data
      GEN     fs/unicode/utf8data.h
      CC      fs/unicode/utf8-norm.o
      CC      fs/unicode/utf8-core.o
      CC      fs/unicode/utf8-selftest.o
      AR      fs/unicode/built-in.a
    
    I renamed the check-in utf8data.h to utf8data.h_shipped so that this
    will work for the out-of-tree build.
    
    You can update it based on the latest UCD like this:
    
    $ make REGENERATE_UTF8DATA=1 fs/unicode/
    $ cp fs/unicode/utf8data.h fs/unicode/utf8data.h_shipped
    
    Also, I added entries to .gitignore and dontdiff.
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
    28ba53c0
mkutf8data.c 79.2 KB