[sr-dev] Makefile troubles

Timo Reimann timo.reimann at 1und1.de
Wed Jul 21 10:53:19 CEST 2010


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.


Cheers,

--Timo



More information about the sr-dev mailing list