[sr-dev] Makefile troubles

Andrei Pelinescu-Onciul andrei at iptel.org
Wed Jul 21 12:58:49 CEST 2010


On Jul 21, 2010 at 10:46, Timo Reimann <timo.reimann at 1und1.de> wrote:
> Daniel-Constantin Mierla wrote:
> >>>>> Friends, I feel like an idiot. I've been trying to compile Kamailio
> >>>>> 3.0.2 with presence for  hours. I have edited make files, read the
> >>>>> INSTALL and tried many things... I just can't get it.
> >>>>>
> >>>>> I think something is wrong in the build system and the documentation.
> >>>>> I will fight a bit more to get some more detailed information for you
> >>>>> to work with, but it worries me that I can't figure this out by
> >>>>> myself. Something propably needs to change to make Kamailio more
> >>>>> "oej-compatible" ;-)
> >>>>>
> >>>>>          
> >>>> Frankly, I feel similar about 3.0's build system. When I build sr the
> >>>> other day I too had the impression that docs and Makefiles don't match
> >>>> up nicely. IMHO, Kamailio 1.5's way of building was more intuitive.
> >>>>
> >>>>        
> >>> maybe the confusions come now from multiple directories storing the
> >>> modules, in some cases you would need to use the name of the directory
> >>>
> >>> One of the features of the new makefile system is the ability to
> >>> remember settings by two generated config files:
> >>> - config.mak
> >>> - modules.lst
> >>>
> >>> In this way is not needed to give all command line parameters to make
> >>> and make install everytime.
> >>>      
> >> Ah ok, good to know.
> >>
> >> So is there still a way to disregard those two files for a specific Make
> >> run and use parameters given on the command-line only? Or do you always
> >> have to edit config.mak and modules.lst?
> >>
> >>    
> > these files are auto-generated. If you run 'make cfg', e.g.,:
> > 
> > make PREFIX=/usr/local/kamailio FLAVOUR=kamailio
> > include_modules="db_mysql presence presence_xml" cfg
> > 
> > will create the config.mak and modules.lst with appropriate variable set.
> > 
> > If you do not run 'make cfg', is automatically run by simple 'make'
> > command, without any extra parameters.
> 
> Let's assume that I usually build a set of modules given in modules.lst.
> Now, say I want to run another build where some modules missing in the
> config file should be build, and let's also assume that I explicitly
> want to ignore a bunch of modules which are included in modules.lst. The
> build deviations should affect a single build run only but not any
> subsequent builds.

make all include_modules="extra mod lst" skip_modules="ignored mods"
(you would need to repeat the above overrides on all the make commands,
 like make every-modules ..., make install ... ).

> 
> Would I need to change the config file(s) for that special build (and
> later revert them), or could I do it by means of giving Make parameters
> that override cfg settings?

You can change the modules config file, but then the changes will be
permanent (unless you undo them after your build):
make modules-cfg include_modules="..." skip_modules="..."
(or edit modules.lst by hand)

If you run make modules-cfg instead of make cfg, only the modules.lst
will be changed, and hence the already compiled stuff won't be
re-compiled (any change in the compile options in config.mak triggers a
complete re-compile).

To see what will be compiled, use make print-modules.

Andrei



More information about the sr-dev mailing list