enable noisy build / opensips

enable noisy build / opensips

  • Written by
    Walter Doekes
  • Published on

How do you enable the noisy build when building OpenSIPS? The one where the actual gcc invocations are not hidden.

In various projects the compilation and linking steps called by make are cleaned up, so you only see things like:

Compiling db/db_query.c
Compiling db/db_id.c

This looks cleaner. But sometimes you want to see (or temporarily change) the compilation/linking call:

gcc -g -O9 -funroll-loops -Wcast-align -Wall [...] -c db/db_query.c -o db/db_query.o
gcc -g -O9 -funroll-loops -Wcast-align -Wall [...] -c db/db_id.c -o db/db_id.o

(I elided about 800 characters per line in this example. Noisy indeed.)

The setting to disable this “clean” output and favor a “noisy” one generally exists, but there is no consensus on a standardized name.

For projects built with CMake, enabling verbose mode probably does the trick (VERBOSE=1). For other projects, the name varies. (I'm partial to the NOISY_BUILD=yes that Asterisk PBX uses.)

For OpenSIPS you can achieve this effect by setting the Q variable to empty:

$ make Q= opensips modules

Other OpenSIPS make variables

Okay. And what about parallel jobs?

Use the FASTER=1 variable, along with the -j flag:

$ make -j4 FASTER=1 opensips modules

And building only a specific module?

Generally you'll want to preset which modules to include or exclude in Makefile.conf. There you have exclude_modules?= and include_modules?= which are used unless you set them earlier (on the command line).

(Beware: touching Makefile.conf will force a rebuild of the entire project.)

For a single run, you can specify either one of them or modules on the command line, where modules takes space separated modules with a modules/ prefix:

$ make modules exclude_modules=presence
(builds all modules except presence)
$ make modules include_modules=presence
(builds the selected modules from Makefile.conf and the presence module)
$ make modules modules=modules/presence
(builds only the presence module)

This might save you some time.

Back to overview Newer post: partially removed pve node / proxmox cluster Older post: missing serial / scsi / disk by-id