[sr-dev] Makefile troubles

Daniel-Constantin Mierla miconda at gmail.com
Wed Jul 21 11:03:19 CEST 2010



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).

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
http://www.asipto.com/




More information about the sr-dev mailing list