Re: [PD-dev] Makefile with recursive directories

2007-03-27 Thread Hans-Christoph Steiner

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 

Re: [PD-dev] Makefile with recursive directories

2007-03-26 Thread Alexandre Quessy
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 

Re: [PD-dev] Makefile with recursive directories

2007-03-26 Thread Hans-Christoph Steiner

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.

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.

.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 

Re: [PD-dev] Makefile with recursive directories

2007-03-26 Thread Alexandre Quessy
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 ?

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 

Re: [PD-dev] Makefile with recursive directories

2007-03-23 Thread Hans-Christoph Steiner

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!



___
PD-dev mailing list
PD-dev@iem.at
http://lists.puredata.info/listinfo/pd-dev