[vdr] [DISCUSSION REQUEST] reintroduce a common make configuration file in VDR-1.7.35

Udo Richter udo_richter at gmx.de
Wed Dec 26 20:19:42 CET 2012


I've been doing things with Make.config too, and would like it to be 
available again. My plugins usually followed this pattern:

-include $(VDRDIR)/Make.global
-include $(VDRDIR)/Make.config
-include Make.config

so you always had the chance to have optional control without patching 
makefiles.

The global Make.config had lines like this:

ifeq ($(PLUGIN),someplugin)
   ...
endif

to do build configuration for some plugins, or to force-off some 
warnings or fix certain compile issues, or even add 
distribution-specific quirks. (building for different debian releases 
from same source)

So I'm in for a central method to do configuration, and not having to 
patch every plugin makefile and distribute several local Make.config files.


Am 25.12.2012 21:07, schrieb Klaus Schmidinger:
> On 25.12.2012 20:47, Reinhard Nissl wrote:
>> 1.) there is a need for a common make configuration file for both VDR and plugins.
>
> No, only for *plugins*!
> VDR itself will have nothing to do with this file!

Should be ok to have an Make-plugin.config, as long as all vdr relevant 
options from Make.config get passed on into vdr.pc and can be re-read by 
the plugin. Directly accessing Make.config is way easier than 
reconstructing it, though. Speaking of all, I wonder whether some plugin 
out there used PREFIX or MANDIR, these are now off-limits.

Oh, and by the way, with introducing $(CWD) some previously relative 
paths got hard coded, so moving these builds around or accessing them 
from different mount points might now be broken. For example, my default 
lib dir changed from ./PLUGINS/lib to 
/usr/src/pc/vdr/vdr-1.7.34/PLUGINS/lib, which only makes sense within a 
single virtual machine that cannot even run VDR at all. I'll have to add 
some overrides for that.


Also, this needs some thoughts on compatibility, as I prefer to provide 
ONE source code package, no matter what VDR version it is for. I won't 
support X different plugin versions for Y different VDR versions. Don't 
make me choose between dropping pre-1.7.34 or post-1.7.33, you might not 
like the outcome. Right now, the old Makefiles luckily just do compile 
after all.


> I suggest to put the lines
>
> PLGCFG ?= /etc/vdr/plugins.conf
> -include $(PLGCFG)
>
> into each plugin's Makefile and that's it.

Please, prettyprettyprettyplease NOT /etc. Source code should compile 
from within its source folder, and not interfere with global 
configuration. I don't want to sudo scripts that prepare sources for 
compiling, and I want multiple source codes in parallel to build 
independently, without swapping files in /etc each time.


Am 26.12.2012 15:54, schrieb Manuel Reimer:
> then just add your options to your "Make.config" as you did in the
> past, but prefix them with an "export ". Something like:
>
> export PLUGIN_OPTION = "any_value"
>
> This way the options reach the plugin Makefiles if you do your "make
> plugins" as the global VDR Makefile exports the value.

Especially for development, make plugins is waaay to heavyweight. Until 
now it was easily possible to enter the plugin source directory and just 
do an make all. (for my plugins, even a simple make will do.)
Your suggestion depends on passing through VDR's makefile first to 
realize these options.

Cheers,

Udo




More information about the vdr mailing list