In the 1.4.0 version of Asterisk and its related packages, a new build system, autoconf, was implemented. This has changed the build process slightly, but has given more flexibilty to control what modules are being built at build time. This has an advantage in that we only have to build the modules we want and need instead of building everything.

Along with the new build system, a new menu-based selection system was introduced, courtesy of Russell Bryant. This new system permits a finer-grained selection to which modules are built before compiling the software and no longer requires the user to edit Makefiles. So instead of discussing how to use menuselect in every “Compiling ...” section, we will discuss it here, so when you see make menuselect you will understand what to do once inside the menuselect configuration screen.

In Figure 3.1, “Sample menuselect screen”, we see the opening menuselect screen for the Asterisk software. Other packages will look extremely similar, but with less options. We can navigate up and down the list using the arrow keys. We can select one of the menu options by pressing Enter or by using the right arrow key. The left arrow key can be used to go back.

Figure 3.1. Sample menuselect screen

Sample menuselect screen

Figure 3.2, “List of modules to be built” shows a list of possible dialplan applications that can be built for use in Asterisk. Modules to be built are marked as [*]. A module is marked as not being built by [ ]. Modules that have XXX in front of them are missing a package dependency which must be satisfied before it will be available to be built. In Figure 3.2, “List of modules to be built”, we can see that the app_flash module cannot be built due to a missing dependency of Zaptel (i.e., the Zaptel module has not been built and installed on the system since the last time ./configure was run). If you have satisfied a dependency since the last time you ran ./configure, then run it again, and rerun menuselect. Your module should now be available for building.

Figure 3.2. List of modules to be built

List of modules to be built

After you have finished making changes to menuselect, type x to save and quit. q will also quit out of menuselect, but it will not save the changes. If you make changes and type q, your changes may be lost!