| --- |
| title: 'Bazel BUILD Encyclopedia of Functions' |
| --- |
| |
| ## Concepts and terminology |
| |
| * [Common definitions](/versions/9.1.0/reference/be/common-definitions) |
| + [Bourne shell tokenization](/versions/9.1.0/reference/be/common-definitions#sh-tokenization) |
| + [Label expansion](/versions/9.1.0/reference/be/common-definitions#label-expansion) |
| + [Typical attributes for most rules](/versions/9.1.0/reference/be/common-definitions#typical-attributes) |
| + [Common attributes for all rules](/versions/9.1.0/reference/be/common-definitions#common-attributes) |
| + [Common attributes for tests](/versions/9.1.0/reference/be/common-definitions#common-attributes-tests) |
| + [Common attributes for binaries](/versions/9.1.0/reference/be/common-definitions#common-attributes-binaries) |
| + [Configurable attributes](/versions/9.1.0/reference/be/common-definitions#configurable-attributes) |
| + [Implicit output targets](/versions/9.1.0/reference/be/common-definitions#implicit-outputs) |
| * ["Make" variables](/versions/9.1.0/reference/be/make-variables) |
| + [Use](/versions/9.1.0/reference/be/make-variables#use) |
| |
| ## Functions |
| |
| * [package](/versions/9.1.0/reference/be/functions#package) |
| * [package_group](/versions/9.1.0/reference/be/functions#package_group) |
| * [exports_files](/versions/9.1.0/reference/be/functions#exports_files) |
| * [glob](/versions/9.1.0/reference/be/functions#glob) |
| * [select](/versions/9.1.0/reference/be/functions#select) |
| * [workspace](/versions/9.1.0/rules/lib/globals/workspace#workspace) |
| |
| ## Rules |
| |
| Native rules ship with the Bazel binary and do not require a `load` statement. |
| Native rules are available globally in BUILD files. In .bzl files, you can find them in |
| the `native` module. |
| For non-native Starlark rules that ship separately from Bazel, see the list of |
| [recommended rules](/versions/9.1.0/rules/rules#recommended-rules). |
| |
| ### Language-specific native rules |
| |
| | Language | Flags | Binary rules | Library rules | Test rules | Other rules | |
| | --- | --- | --- | --- | --- | --- | |
| | C / C++ | | [cc_binary](/versions/9.1.0/reference/be/c-cpp#cc_binary) | [cc_import](/versions/9.1.0/reference/be/c-cpp#cc_import) [cc_library](/versions/9.1.0/reference/be/c-cpp#cc_library) [cc_shared_library](/versions/9.1.0/reference/be/c-cpp#cc_shared_library) [cc_static_library](/versions/9.1.0/reference/be/c-cpp#cc_static_library) | [cc_test](/versions/9.1.0/reference/be/c-cpp#cc_test) | [cc_toolchain](/versions/9.1.0/reference/be/c-cpp#cc_toolchain) [fdo_prefetch_hints](/versions/9.1.0/reference/be/c-cpp#fdo_prefetch_hints) [fdo_profile](/versions/9.1.0/reference/be/c-cpp#fdo_profile) [memprof_profile](/versions/9.1.0/reference/be/c-cpp#memprof_profile) [propeller_optimize](/versions/9.1.0/reference/be/c-cpp#propeller_optimize) | |
| | Java | | [java_binary](/versions/9.1.0/reference/be/java#java_binary) | [java_import](/versions/9.1.0/reference/be/java#java_import) [java_library](/versions/9.1.0/reference/be/java#java_library) | [java_test](/versions/9.1.0/reference/be/java#java_test) | [java_package_configuration](/versions/9.1.0/reference/be/java#java_package_configuration) [java_plugin](/versions/9.1.0/reference/be/java#java_plugin) [java_runtime](/versions/9.1.0/reference/be/java#java_runtime) [java_single_jar](/versions/9.1.0/reference/be/java#java_single_jar) [java_toolchain](/versions/9.1.0/reference/be/java#java_toolchain) | |
| | Objective-C | | | [objc_import](/versions/9.1.0/reference/be/objective-c#objc_import) [objc_library](/versions/9.1.0/reference/be/objective-c#objc_library) | | | |
| | Protocol Buffer | | | [cc_proto_library](/versions/9.1.0/reference/be/protocol-buffer#cc_proto_library) [java_lite_proto_library](/versions/9.1.0/reference/be/protocol-buffer#java_lite_proto_library) [java_proto_library](/versions/9.1.0/reference/be/protocol-buffer#java_proto_library) [proto_library](/versions/9.1.0/reference/be/protocol-buffer#proto_library) [py_proto_library](/versions/9.1.0/reference/be/protocol-buffer#py_proto_library) | | [proto_lang_toolchain](/versions/9.1.0/reference/be/protocol-buffer#proto_lang_toolchain) [proto_toolchain](/versions/9.1.0/reference/be/protocol-buffer#proto_toolchain) | |
| | Python | | [py_binary](/versions/9.1.0/reference/be/python#py_binary) | [py_library](/versions/9.1.0/reference/be/python#py_library) | [py_test](/versions/9.1.0/reference/be/python#py_test) | [py_runtime](/versions/9.1.0/reference/be/python#py_runtime) | |
| | Shell | | [sh_binary](/versions/9.1.0/reference/be/shell#sh_binary) | [sh_library](/versions/9.1.0/reference/be/shell#sh_library) | [sh_test](/versions/9.1.0/reference/be/shell#sh_test) | | |
| |
| ### Language-agnostic native rules |
| |
| | Family | Rules | |
| | --- | --- | |
| | Extra Actions | * [action_listener](/versions/9.1.0/reference/be/extra-actions#action_listener)* [extra_action](/versions/9.1.0/reference/be/extra-actions#extra_action) | |
| | General | * [alias](/versions/9.1.0/reference/be/general#alias)* [config_setting](/versions/9.1.0/reference/be/general#config_setting)* [filegroup](/versions/9.1.0/reference/be/general#filegroup)* [genquery](/versions/9.1.0/reference/be/general#genquery)* [genrule](/versions/9.1.0/reference/be/general#genrule)* [starlark_doc_extract](/versions/9.1.0/reference/be/general#starlark_doc_extract)* [test_suite](/versions/9.1.0/reference/be/general#test_suite) | |
| | Platforms and Toolchains | * [constraint_setting](/versions/9.1.0/reference/be/platforms-and-toolchains#constraint_setting)* [constraint_value](/versions/9.1.0/reference/be/platforms-and-toolchains#constraint_value)* [platform](/versions/9.1.0/reference/be/platforms-and-toolchains#platform)* [toolchain](/versions/9.1.0/reference/be/platforms-and-toolchains#toolchain)* [toolchain_type](/versions/9.1.0/reference/be/platforms-and-toolchains#toolchain_type) | |