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)

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 

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.



vdr mailing list

Reply via email to