123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- import os
- import re
- ignored_directories = [
- 'support/testing/',
- ]
- # Makefile
- symbols_used_only_in_source_code = [
- 'BR2_USE_CCACHE',
- ]
- # package/skeleton/Config.in
- symbols_used_only_for_host_variant = [
- 'BR2_PACKAGE_SKELETON',
- ]
- # Makefile
- # package/pkg-generic.mk
- symbols_defined_only_at_command_line = [
- 'BR2_GRAPH_ALT',
- 'BR2_GRAPH_DEPS_OPTS',
- 'BR2_GRAPH_DOT_OPTS',
- 'BR2_GRAPH_OUT',
- 'BR2_GRAPH_SIZE_OPTS',
- 'BR2_INSTRUMENTATION_SCRIPTS',
- ]
- # Makefile
- symbols_defined_only_when_using_br2_external = [
- 'BR2_EXTERNAL',
- 'BR2_EXTERNAL_DIRS',
- 'BR2_EXTERNAL_MKS',
- 'BR2_EXTERNAL_NAMES',
- ]
- # boot/barebox/barebox.mk
- symbols_defined_only_for_barebox_variant = [
- 'BR2_TARGET_BAREBOX_AUX_BAREBOXENV',
- ]
- # toolchain/toolchain/toolchain.mk
- # toolchain/toolchain-buildroot/toolchain-buildroot.mk
- # toolchain/toolchain-bare-metal-buildroot/toolchain-bare-metal-buildroot.mk
- symbols_not_defined_for_fake_virtual_packages = [
- 'BR2_PACKAGE_HAS_TOOLCHAIN',
- 'BR2_PACKAGE_HAS_TOOLCHAIN_BUILDROOT',
- 'BR2_PACKAGE_HAS_TOOLCHAIN_BARE_METAL_BUILDROOT',
- 'BR2_PACKAGE_PROVIDES_TOOLCHAIN',
- 'BR2_PACKAGE_PROVIDES_TOOLCHAIN_BUILDROOT',
- 'BR2_PACKAGE_PROVIDES_TOOLCHAIN_BARE_METAL_BUILDROOT',
- ]
- # Config.in
- symbols_possibly_unused = [
- 'BR2_BROKEN',
- ]
- # fs/common.mk
- suffixes_not_defined_for_all_rootfs_types = [
- '_BZIP2',
- '_GZIP',
- '_LZ4',
- '_LZMA',
- '_LZO',
- '_XZ',
- '_ZSTD',
- ]
- # fs/common.mk
- rootfs_prefix = 'BR2_TARGET_ROOTFS_'
- # package/pkg-generic.mk
- package_prefix = 'BR2_PACKAGE_'
- # package/pkg-generic.mk
- boot_prefix = 'BR2_TARGET_'
- # package/pkg-generic.mk
- toolchain_prefix = 'BR2_'
- # boot/barebox/barebox.mk
- barebox_infra_suffixes = [
- '',
- '_BAREBOXENV',
- '_BOARD_DEFCONFIG',
- '_CONFIG_FRAGMENT_FILES',
- '_CUSTOM_CONFIG_FILE',
- '_CUSTOM_EMBEDDED_ENV_PATH',
- '_CUSTOM_ENV',
- '_CUSTOM_ENV_PATH',
- '_IMAGE_FILE',
- '_USE_CUSTOM_CONFIG',
- '_USE_DEFCONFIG',
- ]
- re_kconfig_symbol = re.compile(r'\b(BR2_\w+)\b')
- # Example lines to be handled:
- # config BR2_TOOLCHAIN_EXTERNAL_PREFIX
- # menuconfig BR2_PACKAGE_GST1_PLUGINS_BASE
- re_kconfig_config = re.compile(r'^\s*(menu|)config\s+(BR2_\w+)')
- # Example lines to be handled:
- # default "uclibc" if BR2_TOOLCHAIN_BUILDROOT_UCLIBC
- # default BR2_TARGET_GRUB2_BUILTIN_MODULES if BR2_TARGET_GRUB2_BUILTIN_MODULES != ""
- # default y if BR2_HOSTARCH = "powerpc"
- re_kconfig_default = re.compile(r'^\s*default\s')
- re_kconfig_default_before_conditional = re.compile(r'^.*\bif\b')
- re_kconfig_default_legacy_comment = re.compile(r'#\s*legacy')
- # Example lines to be handled:
- # depends on !(BR2_TOOLCHAIN_USES_GLIBC && BR2_TOOLCHAIN_USES_MUSL)
- # depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
- re_kconfig_depends = re.compile(r'^\s*depends on\s')
- # Example lines to be handled:
- # select BR2_PACKAGE_HOST_NODEJS if BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL != ""
- # select BR2_PACKAGE_LIBDRM if !(BR2_arm && BR2_PACKAGE_IMX_GPU_VIV_OUTPUT_FB)
- # select BR2_PACKAGE_OPENSSL if !(BR2_PACKAGE_GNUTLS || BR2_PACKAGE_MBEDTLS)
- re_kconfig_select = re.compile(r'^\s*select\s')
- re_kconfig_select_conditional = re.compile(r'\bif\s.*')
- # Example lines to be handled:
- # if !BR2_SKIP_LEGACY
- # if (BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX51 || BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX53)
- # if BR2_PACKAGE_HAS_LUAINTERPRETER && !BR2_STATIC_LIBS
- # if BR2_PACKAGE_QEMU_CUSTOM_TARGETS = ""
- re_kconfig_if = re.compile(r'^\s*if\s')
- # Example lines to be handled:
- # source "$BR2_BASE_DIR/.br2-external.in.jpeg"
- re_kconfig_source = re.compile(r'^\s*source\b')
- re_kconfig_choice = re.compile(r'^\s*choice\b')
- re_kconfig_endchoice = re.compile(r'^\s*endchoice\b')
- re_makefile_eval = re.compile(r'^\s*\$\(eval\b')
- re_menu = re.compile(r'^\s*menu\b')
- re_endmenu = re.compile(r'^\s*endmenu\b')
- re_comments = re.compile(r'#.*$')
- re_legacy_special_comment = re.compile(r'#.*(BR2_\w+)\s.*still referenced')
- re_host_symbol = re.compile(r'(BR2_PACKAGE_HOST_\w+|BR2_PACKAGE_HAS_HOST_\w+)')
- re_makefile_symbol_usage = re.compile(r'\$\((BR2_\w+)\)')
- re_makefile_symbol_export = re.compile(r'export\s*(BR2_\w+)')
- re_makefile_symbol_attribution = re.compile(r'^\s*(BR2_\w+)\s*[?:=]')
- def get_package_from_filename(filename):
- package = os.path.basename(filename)[:-3].upper().replace('-', '_')
- return package
- def is_an_optional_symbol_for_a_roofts(symbol):
- if not symbol.startswith(rootfs_prefix):
- return False
- for sufix in suffixes_not_defined_for_all_rootfs_types:
- if symbol.endswith(sufix):
- return True
- return False
- def file_belongs_to_an_ignored_diretory(filename):
- for d in ignored_directories:
- if filename.startswith(d):
- return True
- return False
|