On Mar 27, 2007, at 12:00 AM, Alexandre Quessy wrote: > Hi again, > > 2007/3/26, Hans-Christoph Steiner <[EMAIL PROTECTED]>: >> It's the $. Since $ denotes a variable in Makefiles, you have to use >> $$ in order for it to make it to the shell, like \$$dir. > > It seems like we should use $$ within normal bash lines, and \$$ > within sed scripts... For instance : > > all:tata > tata:toto > for i in to*; do cp $$i tata; done; > >> In general, this kind of directory recursion is a hack tho. For >> example, errors in the resursive parts of the script aren't handled >> as well as errors in regular parts of the Makefile. > > Is it acceptable in the pd-extended makefile ?
I am not going to stop you, but it is a hack that will most likely lead to problems in the future. .hc > > Alex > > > > > >> >> .hc >> >> On Mar 26, 2007, at 3:17 AM, Alexandre Quessy wrote: >> >> > Hi again, >> > I made it a bit better. I still get 2 errors. (see below) I >> think that >> > something gets expanded badly in the sed expression that makes >> it not >> > match what I want, hence it doesn't remove the unwanted path for >> every >> > file that is found. (see the part saying "src/pdmtl/src: No such >> file >> > or directory") This is quite funky even though it doesn't even >> build >> > anything ! ;-) >> > >> > alex >> > >> > ======================== makefile ================== >> > all: pdmtl_install >> > >> > # remove these 3 variables >> > abstractions_src = src >> > objectsdir = objects >> > helpdir = help >> > >> > # pdmtl >> > PDMTL_NAME = pdmtl >> > pdmtl_install: >> > install -d $(objectsdir)/$(PDMTL_NAME) >> > for dir in `find $(abstractions_src)/$(PDMTL_NAME) -type d >> | grep -v >> > 'examples' | sed 's,$(abstractions_src)/$(PDMTL_NAME)/,,'`; do \ >> > install -d $(objectsdir)/$(PDMTL_NAME)/$$dir; \ >> > for fil in `find $(abstractions_src)/$(PDMTL_NAME)/ >> $$dir -name >> > '*.pd' | grep -v '-help' | sed >> > "s,$(abstractions_src)/$(PDMTL_NAME)/\$$dir/,,"`; do \ >> > install -p $(abstractions_src)/$ >> (PDMTL_NAME)/$$dir/$$fil >> > $(objectsdir)/$(PDMTL_NAME)/$$dir; \ >> > done; \ >> > done >> > install -d $(helpdir)/$(PDMTL_NAME) >> > for dir in `find $(abstractions_src)/$(PDMTL_NAME) -type d >> | sed >> > 's,$(abstractions_src)/$(PDMTL_NAME)/,,'`; do \ >> > install -d $(helpdir)/$(PDMTL_NAME)/$$dir; \ >> > for fil in `find $(abstractions_src)/$(PDMTL_NAME)/ >> $$dir -type f | >> > grep '\.mov\|\.jpg\|\.ttf\|\.keys\|\.wav\|\-help\.pd' | sed >> > "s,$(abstractions_src)/$(PDMTL_NAME)/\$$dir/,,"`; do \ >> > install -p $(abstractions_src)/$ >> (PDMTL_NAME)/$$dir/$$fil >> > $(helpdir)/$(PDMTL_NAME)/$$dir; \ >> > done; \ >> > done >> > done >> > @echo Done installing the Pure Data Montreal Abstractions >> library >> > >> > ======================== output =============== >> > >> > install -d objects/pdmtl >> > for dir in `find src/pdmtl -type d | grep -v 'examples' | sed >> > 's,src/pdmtl/,,'`; do \ >> > install -d objects/pdmtl/$dir; \ >> > for fil in `find src/pdmtl/$dir -name '*.pd' | >> grep -v '-help' | sed >> > "s,src/pdmtl/\$dir/,,"`; do \ >> > install -p src/pdmtl/$dir/$fil objects/ >> pdmtl/$dir; \ >> > done; \ >> > done >> > find: src/pdmtl/src: No such file or directory >> > install -d help/pdmtl >> > for dir in `find src/pdmtl -type d | sed 's,src/pdmtl/,,'`; do \ >> > install -d help/pdmtl/$dir; \ >> > for fil in `find src/pdmtl/$dir -type f | grep >> > '\.mov\|\.jpg\|\.ttf\|\.keys\|\.wav\|\-help\.pd' | sed >> > "s,src/pdmtl/\$dir/,,"`; do \ >> > /bin/sh: Syntax error: end of file unexpected (expecting "done") >> > make: *** [pdmtl_install] Error 2 >> > >> > >> > ====================================== >> > >> > >> > >> > 2007/3/26, Alexandre Quessy <[EMAIL PROTECTED]>: >> >> Something like this ? >> >> ---------------- >> >> >> >> all: pdmtl >> >> PDMTL_NAME = pdmtl >> >> abstractions_src = . >> >> pdmtl_install: >> >> install -d $(objectsdir)/$(PDMTL_NAME) >> >> install -d $(helpdir)/$(PDMTL_NAME) >> >> for dir in `find $(abstractions_src)$(PDMTL_NAME) -type d >> >> | grep -v >> >> 'examples'`; do \ >> >> install -d $(objectsdir)/$(PDMTL_NAME)/$$dir; \ >> >> for f in `find $(abstractions_src)$(PDMTL_NAME)/$ >> >> $dir -name '*.pd' | >> >> grep -v '-help'`; do \ >> >> install -p $$f $(objectsdir)/$ >> (PDMTL_NAME)/ >> >> $$dir; \ >> >> done; \ >> >> done; \ >> >> for dir in `find $(abstractions_src)$(PDMTL_NAME) -type >> >> d`; do \ >> >> install -d $(helpdir)/$(PDMTL_NAME)/$$dir; \ >> >> for typ in '.mov' '.jpg' '.ttf' '.keys' '.wav' '- >> >> help.pd'; do \ >> >> for f in `find $(abstractions_src)$ >> >> (PDMTL_NAME)/$$dir -name $$typ`; do \ >> >> install -p $$f $(helpdir)/$ >> >> (PDMTL_NAME)/$$dir; \ >> >> done; \ >> >> done; \ >> >> done; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> 2007/3/23, Hans-Christoph Steiner <[EMAIL PROTECTED]>: >> >> > >> >> > Makefiles are largely tied to bourne shell scripts, so that >> >> would be >> >> > the preferred scripting language with Makefiles. You can write >> >> > bourne shell code right into the Makefile. For directory >> recursion >> >> > or pattern matching, check out these files: >> >> > >> >> > externals/Makefile - $(wildcard ...) and $(shell sed ...) >> >> > pd/src/makefile.in - for dir in $(shell ...) >> >> > >> >> > And others too >> >> > >> >> > .hc >> >> > >> >> > On Mar 22, 2007, at 2:57 AM, Alexandre Quessy wrote: >> >> > >> >> > > Hi all, >> >> > > I want to add the pdmtl abstractions in the CVS. (I have a >> >> developper >> >> > > account.) Our library uses many directories so that our >> >> abstractions >> >> > > names look like [generate/adsr~] and [seq/liner], for >> >> instance. Now, >> >> > > having several directories that might (will) change over time >> >> makes it >> >> > > a bit longer to write a Makefile entry to make it part of the >> >> > > pd-extended build system. Is there somewhere a Makefile syntax >> >> to make >> >> > > it automagic ? Otherwise, this could be a ($shell ) thing with >> >> a find >> >> > > and a bunch of grep. Other solution : generate the makefile >> >> with a >> >> > > Python script, for instance. Anyone has a quick solution for >> >> this ? >> >> > > >> >> > > Other point: I need to put this in the abstractions part of >> >> the CVS, >> >> > > right ? I would rather put it in externals, but if you >> >> insist... ;) >> >> > > >> >> > > Thanks for helping. By the way, this structure is a kind of a >> >> proposal >> >> > > for a system to classify externals and abstractions by what >> >> they do, >> >> > > not by they author's name. See http://pdmtl.goto10.org for >> >> more infos. >> >> > > >> >> > > -- >> >> > > Alexandre Quessy >> >> > > http://alexandre.quessy.net >> >> > > >> >> > > _______________________________________________ >> >> > > PD-dev mailing list >> >> > > PD-dev@iem.at >> >> > > http://lists.puredata.info/listinfo/pd-dev >> >> > >> >> > >> >> > >> >> > >> >> >> --------------------------------------------------------------------- >> >> --- >> >> > ---- >> >> > >> >> > ¡El pueblo unido jamás será vencido! >> >> > >> >> > >> >> > >> >> >> >> >> >> -- >> >> Alexandre Quessy >> >> http://alexandre.quessy.net >> >> >> > >> > >> > -- >> > Alexandre Quessy >> > http://alexandre.quessy.net >> >> >> >> --------------------------------------------------------------------- >> --- >> ---- >> >> I have the audacity to believe that peoples everywhere can have three >> meals a day for their bodies, education and culture for their minds, >> and dignity, equality and freedom for their spirits. - Martin >> Luther King, Jr. >> >> >> > > > -- > Alexandre Quessy > http://alexandre.quessy.net ------------------------------------------------------------------------ ---- All information should be free. - the hacker ethic _______________________________________________ PD-dev mailing list PD-dev@iem.at http://lists.puredata.info/listinfo/pd-dev