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 run "make" to compile everything, then "make modules" and then "make install" - when running make install it still compiles a lot of files, which feels wrong. They should have been compiled in "make".
In some cases running "make" twice without changing anything else than one module in the make file, kamailio still recompiles a lot of files. That indicates bad dependencies to me.
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" ;-)
My pua module still hasn't compiled, even though I did run this command (quote from INSTALL):
--------------------------------- -compile all the modules from the modules subdirectory (even the one excluded by default):
make exclude_modules="" modules-all
.---------------------------------
Hmmmm. /O
Hey Olle,
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.
As a more constructive note: Have you tried applying either
modules="module1 module2 ..."
or
include_modules="module1 module2 ..."
possibly prefixing modules from the k or s part with the respective directory path? I know that some combination worked out for me; unfortunately, I cannot remember which one it was.
Cheers,
--Timo
Hello,
On 7/20/10 10:50 AM, Timo Reimann wrote:
Hey Olle,
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
As a more constructive note: Have you tried applying either
modules="module1 module2 ..."
or
include_modules="module1 module2 ..."
possibly prefixing modules from the k or s part with the respective directory path? I know that some combination worked out for me; unfortunately, I cannot remember which one it was.
Here is a way I use more and more:
- do: make cfg - edit the generated file: modules.lst - tune there what modules you want to compile/install - then just to: make all, make install
There is also a wiki page for new makefile system, feel free to add there:
http://sip-router.org/wiki/tutorials/makefile-system
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.
Cheers, Daniel
Cheers,
--Timo
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
Hey Daniel,
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?
Cheers,
--Timo
Hi Timo,
On 7/21/10 10:24 AM, Timo Reimann wrote:
Hey Daniel,
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.
Cheers, Daniel
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?
Cheers,
--Timo
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.
Cheers, Daniel
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
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 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?
On Jul 21, 2010 at 11:10, Timo Reimann timo.reimann@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
21 jul 2010 kl. 11.03 skrev Daniel-Constantin Mierla:
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).
My summary of this is that we have released a product without proper instructions in the INSTALL/README ;-) We need to fix that.
/O
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
On Jul 21, 2010 at 10:46, Timo Reimann timo.reimann@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
On Jul 21, 2010 at 10:24, Timo Reimann timo.reimann@1und1.de wrote:
Hey Daniel,
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?
Some parameters can override those saved. Everything you see in modules.lst can be overridden from the command line. The most useful ones are probably: include_modules and skip_modules. For config.mak, the most useful overrides/additions are Q, CPU, CC_EXTRA_OPTS (additional CC opts), BASEDIR, PREFIX and possibly CFLAGS_RM and CFLAGS.
Andrei
On Jul 19, 2010 at 18:21, Olle E. Johansson oej@edvina.net 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 run "make" to compile everything, then "make modules" and then "make install" - when running make install it still compiles a lot of files, which feels wrong. They should have been compiled in "make".
When running make install, the libraries are re-linked. That might be what you see. Another possibility is that you use different options for install (in which case everything compiled with different options will be automatically re-compiled).
In some cases running "make" twice without changing anything else than one module in the make file, kamailio still recompiles a lot of files. That indicates bad dependencies to me.
If you change one of the main Makefile*, everything will be re-compiled (everything depends on the Makefile, if you change some option in it, everything has to be re-compiled).
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" ;-)
My pua module still hasn't compiled, even though I did run this command (quote from INSTALL):
-compile all the modules from the modules subdirectory (even the one excluded by default):
make exclude_modules="" modules-all
It works perfectly for me. Maybe you have a strange modules.lst? (try a make proper, although for me it works without it) BTW: the easiest way to include your module temporarily (only for one build) is: make include_modules=pua modules-all. To include it permanently: make modules-cfg include_modules=pua. To only compile only your module: make -C modules_k/pua .
You can see the list of the modules that will be compiled, the list of extra included modules and the list of excluded modules, by running:
make print-modules
E.g.: in your case, try: make print-modules |grep --color pua make print-modules exclude_modules=""|grep --color pua make print-modules include_modules=pua|grep --color pua
All this commands are documented in INSTALL (not in the most friendly or structured way though):
- change & save the modules list without rebuilding the whole config (so that already compiled modules won't be re-compiled by make all/make modules): make modules-cfg include_modules="mysql postgress"
... NOTE!!! As this mechanism is very powerful, you may be uncertain which modules that will be included. Just replace all (or modules) with print-modules and you will see which modules will be included and excluded, ex: make print-modules
... * make cfg or make config - force config and module list regeneration Example: make cfg include_modules=mysql mode=debug ...
* make cfg-defs (force config regeneration, but don't touch the module list)
make modules-cfg or make modules-list saves the module list, without regenerating the build config Example: make modules-list include_modules="tls" skip_modules="print"
Andrei