Development
Package Flags
For every package that is maintained by core DuckDB, there exists a flag in the Makefile to enable building the package.
These can be enabled by either setting them in the current `env`, through set up files like `bashrc` or `zshrc`, or by setting them before the call to `make`, for example:  
```bash
BUILD_PYTHON=1 make debug
```  
#### `BUILD_PYTHON` {#docs:dev:building:build_configuration::build_python}  
When this flag is set, the [Python](#docs:api:python:overview) package is built.  
#### `BUILD_SHELL` {#docs:dev:building:build_configuration::build_shell}  
When this flag is set, the [CLI](#docs:api:cli:overview) is built, this is usually enabled by default.  
#### `BUILD_BENCHMARK` {#docs:dev:building:build_configuration::build_benchmark}  
When this flag is set, DuckDB's in-house benchmark suite is built.
More information about this can be found [here](https://github.com/duckdb/duckdb/blob/main/benchmark/README.md).  
#### `BUILD_JDBC` {#docs:dev:building:build_configuration::build_jdbc}  
When this flag is set, the [Java](#docs:api:java) package is built.  
#### `BUILD_ODBC` {#docs:dev:building:build_configuration::build_odbc}  
When this flag is set, the [ODBC](#docs:api:odbc:overview) package is built.