nuttx-apps/tools
wangjianyu3 266049bd11 tools/mksymtab.sh: Using getopts to parse parameters
Use the "-a" option to specify additional lists

Examples
  - The basic.txt
    $ cat basic.txt
    basic_func0
    basic_func1
    basic_func2

  - The additional.txt
    $ cat additional.txt
    additional_func0
    additional_func1
    additional_func2

  1. Get symbols from directory "EMPTY_DIR" and additional list basic.txt
    ./tools/mksymtab.sh ./EMPTY_DIR -a basic.txt
    #if defined(CONFIG_EXECFUNCS_HAVE_SYMTAB)
    const struct symtab_s CONFIG_EXECFUNCS_SYMTAB_ARRAY[] =
    #elif defined(CONFIG_NSH_SYMTAB)
    const struct symtab_s CONFIG_NSH_SYMTAB_ARRAYNAME[] =
    #else
    const struct symtab_s dummy_symtab[] =
    #endif
    {
      {"basic_func0", &basic_func0},
      {"basic_func1", &basic_func1},
      {"basic_func2", &basic_func2},
    };

  2. Get symbols from directory "EMPTY_DIR" and two additional lists basic.txt, additional.txt
    ./tools/mksymtab.sh ./EMPTY_DIR -a basic.txt -a additional.txt
    #if defined(CONFIG_EXECFUNCS_HAVE_SYMTAB)
    const struct symtab_s CONFIG_EXECFUNCS_SYMTAB_ARRAY[] =
    #elif defined(CONFIG_NSH_SYMTAB)
    const struct symtab_s CONFIG_NSH_SYMTAB_ARRAYNAME[] =
    #else
    const struct symtab_s dummy_symtab[] =
    #endif
    {
      {"additional_func0", &additional_func0},
      {"additional_func1", &additional_func1},
      {"additional_func2", &additional_func2},
      {"basic_func0", &basic_func0},
      {"basic_func1", &basic_func1},
      {"basic_func2", &basic_func2},
    };

  3. Set prefix and get symbols from directory "EMPTY_DIR" and two additional lists basic.txt, additional.txt
    ./tools/mksymtab.sh ./EMPTY_DIR PREFIX_TEST  -a basic.txt -a additional.txt
    const struct symtab_s PREFIX_TEST_exports[] =
    {
      {"additional_func0", &additional_func0},
      {"additional_func1", &additional_func1},
      {"additional_func2", &additional_func2},
      {"basic_func0", &basic_func0},
      {"basic_func1", &basic_func1},
      {"basic_func2", &basic_func2},
    };

  4. Error: Missing <imagedirpath>
    $ ./tools/mksymtab.sh
    ERROR: Missing <imagedirpath>

    Usage: ./tools/mksymtab.sh <imagedirpath> [symtabprefix] [-a additionalsymbolspath]

UNSUPPORTED usage examples
  # `getopt` supports these, but the usage in GNU and macOS is incompatible.
  - ./tools/mksymtab.sh ./EMPTY_DIR -a basic.txt PREFIX_TEST -a additional.txt
  - ./tools/mksymtab.sh -a basic.txt ./EMPTY_DIR PREFIX_TEST -a additional.txt

References
  BASH(1)   -- getopts
  GETOPT(1) -- getopt

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-10-07 18:55:06 +08:00
..
Wasm tools: New CMake based Wasm build system 2024-03-15 11:15:25 -03:00
bitmap_converter.py Remove unneeded semicolons and parentheses from Python files 2020-12-12 19:20:38 +01:00
check-hash.sh Fix the minor style issue 2022-10-16 19:07:16 +02:00
CMakeLists.txt tools: New CMake based Wasm build system 2024-03-15 11:15:25 -03:00
host_sysinfo.py system/nxdiag: Add Espressif's HAL version 2023-06-29 00:57:53 +08:00
Kconfig Fix Kconfig style 2024-04-09 08:16:40 +02:00
mkimport.sh tools/mkimport.sh: enrich help message 2024-05-09 17:29:39 +08:00
mkkconfig.bat tools: update licenses to Apache 2021-06-10 08:49:24 -05:00
mkkconfig.sh apps/tools:fix build warning. 2023-08-09 13:52:22 +08:00
mkromfsimg.sh add const for romfs_img_len 2024-01-04 09:12:48 -08:00
mksymtab.sh tools/mksymtab.sh: Using getopts to parse parameters 2024-10-07 18:55:06 +08:00
pre-commit tools: add git pre-commit hook for apps 2022-08-14 14:06:10 +03:00
WASI-SDK.defs fix nxstyle 2024-05-15 23:53:05 +08:00
Wasm.mk Wasm.mk: disable by default 2024-01-13 02:16:16 -08:00