# Bazel BUILD Encyclopedia of Functions

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/docgen/templates/be/overview.vm" %} {% dynamic setvar version "7.4.0" %} {% dynamic setvar original_path "/reference/be/overview" %} {% include "_buttons.html" %}

## Concepts and terminology

- Common definitions
  - Bourne shell tokenization
  - Label expansion
  - Typical attributes for most rules
  - Common attributes for all rules
  - Common attributes for tests
  - Common attributes for binaries
  - Configurable attributes
  - Implicit output targets
- "Make" variables

## Functions

## 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.

### Language-specific native rules

Language | Binary rules | Library rules | Test rules | Other rules
--- | --- | --- | --- | ---
Android | android_binary | aar_import android_library | android_instrumentation_test android_local_test | android_device android_ndk_repository android_sdk_repository
C / C++ | cc_binary | cc_import cc_library cc_proto_library cc_shared_library cc_static_library fdo_prefetch_hints fdo_profile memprof_profile propeller_optimize | cc_test | cc_toolchain cc_toolchain_suite
Java | java_binary | java_import java_library java_lite_proto_library java_proto_library | java_test | java_package_configuration java_plugin java_runtime java_toolchain
Objective-C |  | j2objc_library objc_import objc_library |  | available_xcodes xcode_config xcode_version
Protocol Buffer |  | proto_lang_toolchain proto_library |  |
Python | py_binary | py_library | py_test | py_runtime
Shell | sh_binary | sh_library | sh_test |

### Language-agnostic native rules

Family | Rules
--- | ---
Extra Actions | action_listener extra_action
General | alias config_setting filegroup genquery genrule starlark_doc_extract test_suite
Platforms and Toolchains | constraint_setting constraint_value platform toolchain toolchain_type
Workspace | bind local_repository new_local_repository