[sr-dev] Makefile troubles

Andrei Pelinescu-Onciul andrei at iptel.org
Wed Jul 21 13:02:03 CEST 2010


On Jul 21, 2010 at 11:10, Timo Reimann <timo.reimann at 1und1.de> wrote:
> Daniel-Constantin Mierla wrote:
> > 
> > 
> > On 7/21/10 10:53 AM, Timo Reimann wrote:
> >> Daniel-Constantin Mierla wrote:
> >>   
> >>>
> >>> On 7/21/10 10:46 AM, Timo Reimann 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.
> >>>>
> >>>> 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?
> >>>>
> >>>>        
> >>> as said, these files are auto-generated. In the 1.x, you had to do:
> >>>
> >>> make PARAMETERS all; make PARAMETERS install
> >>>
> >>> now you can do:
> >>>
> >>> make PARAMETERS cfg; make all; make install
> >>>
> >>> You can overwrite in some cases, for example:
> >>>
> >>> make modules modules=modules_k/pdt
> >>>
> >>> will compile only the pdt module from K.
> >>>      
> >> Gotcha. Thanks for clearing things up.
> >>    
> > welcome. The new makefile system is 'new' :-) for me as well, but looks
> > more powerful. Another thing that I like is grouping modules:
> > 
> > make every-module group_include=kpresence
> > 
> > will build all K presence modules. The pre-defined groups follow closely
> > debian packaging - see Makefile.
> > 
> > Also, when you need to add a new module in compile list, you edit
> > modules.lst, not touching Makefile means only that extra module will be
> > compiled, not a full recompilation of everything (core+modules).
> 
> One last questions: What's the difference between skip_modules and
> exclude_modules?

Not much: exclude_modules contains the list of the modules excluded by
default (automatically). skip_modules is supposed to be the list of
extra excluded modules, specified by the user.
E.g.:
- make all skip_modules="foo"   will compile every module with the
  exception of the default exclude_modules + "foo".
- make all exclude_modules="foo"  will compile every module, except
  "foo".

Andrei



More information about the sr-dev mailing list