On Sat, 05 Dec 2009 05:58:59 +0100, Mike Frysinger <[email protected]> wrote:
> On Friday 04 December 2009 20:19:13 Jiří Paleček wrote: >> On Fri, 04 Dec 2009 20:06:40 +0100, Mike Frysinger <[email protected]> >> >> wrote: >> > On Friday 04 December 2009 11:58:13 Jiri Palecek wrote: >> >> the makefiles install all files with executable mode by default. This >> >> patch >> >> changes it for some of the Makefiles, that install data files, which >> >> should IMHO not be executable. The change makes INSTALL_MODE decide >> the >> >> actual mode when it is expanded inside the install rule (depending >> on >> >> $@, >> >> which is the install target name). >> > >> > that's pretty fugly way to go about it. let's go the more natural >> route >> > and >> > have the common code default to $(INSTALL_MODE_$@) and if that's >> unset, >> > use >> > the default $(INSTALL_MODE). >> >> Sorry, but I don't agree with that. This is a function-like approach >> which >> is not any less "natural" than what you propose - and it makes no >> demands >> on anyone who doesn't need it, and gives great power to those who need >> it. > > your solution requires non-obvious delayed evaluation that isnt > straightforward. mine is explicit, unambiguous, and already in use by > many > other projects that ltp is related to. ... and weak. >> The main reason I don't like the INSTALL_MODE_$@ thing, is that eg. >> INSTALL_TARGETS can contain wildcards (eg. dir/*.ext), and there cannot >> be >> any such thing as $(INSTALL_MODE_dir/*.ext). You would have to enumerate >> all data files - or all program files - which would be a chore esp. if >> any >> of these isn't known in the makefile until "make all" is ran. > > so fix install targets to expand the globs at make time and not shell > time. > i.e. something like INSTALL_TARGETS := $(wildcard $(INSTALL_TARGETS)) We do that currently, but this doesn't change the problem in any way. The problem is that if I am able to write INSTALL_TARGETS := 1* 2* I want to be able to specify that the files in 1* are executables and files in 2* are not, without having to enumerate them all. This is impossible with your "explicit" solution. I would be happy with something like EXECUTABLES := 1* Jiri Palecek ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Ltp-list mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ltp-list
