Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,39 @@ Git Remotes will automatically be created for both your fork and the upstream re

In each of the clones, run `gh repo set-default`. Select either asterisk/asterisk or asterisk/testsuite as appropriate. They should be the defaults but check anyway. Also run `git config user.email` and `git config user.name` in each of the repos to make sure they're correct. At a minimum, user.email should match one of the emails you've added to your GitHub account.

### Run `bootstrap.sh`

Asterisk uses the [GNU Autotools](https://en.wikipedia.org/wiki/GNU_Autotools)
to configure its build system. Historically, project maintainers would
include the `configure` script (along with other generated artifacts)
when making changes to `configure.ac`. That practice is being phased
out, so your clone of the repository may not include `configure`. If
that is the case, you should run the `bootstrap.sh` script to invoke
`autoconf` (and `automake`, etc.) which will generate `configure`
along with its support files:

```sh
$ ./bootstrap.sh
```

/// tip | Keep an eye on `configure.ac`
You will need to re-run `bootstrap.sh` any time changes to the build
system configuration files (like `configure.ac`) are pulled from the
upstream repository.
//// warning | Branches
The contents of `configure.ac` can also change when switching between
branches.
////
///

If you encounter any errors, the `install_prereq` script
[included in the repository](https://github.com/asterisk/asterisk/blob/master/contrib/scripts/install_prereq)
can be invoked to install any missing packages:

```sh
$ sudo ./contrib/scripts/install_prereq minimal
```

### Do Work

New work should never be based on a branch other than "master" so unless you have some special circumstance, start by checking out the "master" branch and syncing it to your fork.
Expand Down