[sr-dev] Makefile troubles

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



On 7/21/10 11:24 AM, Olle E. Johansson 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).
>>      
> My summary of this is that we have released a product without proper instructions in the INSTALL/README ;-)
> We need to fix that.
>    
not sure! did you run

make exclude_modules="" modules-all

on a clean checkout? If not run "make proper" and try again. I just run the command and seems all modules are to be compiled.

Cheers,
Daniel


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




More information about the sr-dev mailing list