---
layout: documentation
title: Build Encyclopedia
---

Bazel BUILD Encyclopedia of Functions

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

- Use

    </ul>
  

Functions

- package
  
- package_group

- licenses
  
- exports_files
  
- glob
  
- select
  
- 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.

Language-specific native rules

#macro(ruleLink $ruleFamily $rule)
  ${rule.ruleName}
#end

       Language
       Binary rules
       Library rules
       Test rules
       Other rules

  #foreach($ruleFamily in $langSpecificRuleFamilies)
    #if($ruleFamily.size() > 0)
      
         ${ruleFamily.name}
      #set( $ruleTypes = [$ruleFamily.binaryRules, $ruleFamily.libraryRules, $ruleFamily.testRules, $ruleFamily.otherRules] )
      #foreach($ruleType in $ruleTypes)
                 #foreach($rule in $ruleType)
          #ruleLink($ruleFamily, $rule)
          
        #end
        
      #end
      
    #end
  #end

Language-agnostic native rules

       Family
       Rules

  #foreach($ruleFamily in $genericRuleFamilies)
    #if($ruleFamily.size() > 0)
      
         ${ruleFamily.name}
                   
          #foreach($rule in $ruleFamily.rules)
            
- #ruleLink($ruleFamily, $rule)
          #end

    #end
  #end

