% Conditional Compilation
There is a new edition of the book and this is an old link.
> Sometimes one wants to have different compiler outputs from the same code, depending on build target, such as targeted operating system, or to enable release builds.
> Configuration options are either provided by the compiler or passed in on the command line using.
> Rust code then checks for their presence using the `#[cfg(...)]` attribute
```rust
// The function is only included in the build when compiling for macOS
#[cfg(target_os = "macos")]
fn macos_only() {
// ...
}
```
---
This particular chapter does not exist in [the second edition][2].
The best place to learn about it is [the Rust Reference][3].
* **[In the Rust Reference: Ch 5 — Conditional Compilation][3]**
* [In the first edition: Ch 4.3 — Conditional Compilation][1]
[1]: https://doc.rust-lang.org/1.30.0/book/first-edition/conditional-compilation.html
[2]: index.html
[3]: ../reference/conditional-compilation.html