# audit has some builtin per-architecture system call tables
config BR2_PACKAGE_AUDIT_ARCH_SUPPORTS
	bool
	default y if BR2_aarch64 || BR2_arm || BR2_armeb || \
		BR2_i386 || BR2_powerpc || BR2_powerpc64 || \
		BR2_x86_64

config BR2_PACKAGE_AUDIT
	bool "audit"
	depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS
	depends on BR2_TOOLCHAIN_HAS_THREADS
	depends on !BR2_STATIC_LIBS
	help
	  The audit package contains the user space utilities for
	  storing and searching the audit records generated by
	  the audit subsystem in the Linux 2.6 kernel

	  Note: The z/OS remote plugin is disabled in this package

	  http://people.redhat.com/sgrubb/audit/

comment "audit needs a toolchain w/ threads, dynamic library"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
	depends on BR2_PACKAGE_AUDIT_ARCH_SUPPORTS
