[PD-cvs] externals/gridflow configure, 1.1, 1.2 TODO, 1.1, 1.2 README, 1.1, 1.2 Makefile.gf, 1.1, 1.2 ChangeLog, 1.1, 1.2

Mathieu Bouchard matju at users.sourceforge.net
Wed Mar 15 05:48:10 CET 2006


Update of /cvsroot/pure-data/externals/gridflow
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23382

Modified Files:
	configure TODO README Makefile.gf ChangeLog 
Log Message:
0.8.1



Index: TODO
===================================================================
RCS file: /cvsroot/pure-data/externals/gridflow/TODO,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** TODO	4 Oct 2005 02:12:43 -0000	1.1
--- TODO	15 Mar 2006 04:48:05 -0000	1.2
***************
*** 1,45 ****
  /* $Id$ */
  
! matju cvs update -dP :
! P format/quicktimeapple.c
! cvs update: warning: pd_examples/binary_operations.pd was lost
! C pd_examples/color_correction.pd
! C pd_examples/convolve.pd
! C pd_examples/drag_rectangle.pd
! C pd_examples/eclipse.pd
! C pd_examples/linear_transform.pd
! C pd_examples/waves.pd
  
! Checking in README;
! /home/cvs/gridflow/README,v  <--  README
! new revision: 1.22; previous revision: 1.21
! done
! $helo_domain: web.artengine.ca
! $from_address: matju at web.artengine.ca (matju)
! loginfo.rb is writing changelog...done
! loginfo.rb is parsing log message...done
! loginfo.rb is testing modules...log info for `/home/cvs/gridflow/README' is not ready
! done
! loginfo.rb is composing a mail...done
! loginfo.rb is posting email to gridflow ...ERROR: cannot send email using MTA on ns
! 450 <gridflow>: Recipient address rejected: User unknown in local recipient table
  
- done
- loginfo.rb is deleting tmp files...done
  
! AMD64 :
!  char 1 1
!  short 2 2
!  int 4 4
!  long 4 8
!  long long 8 8
!  float 4 4
!  double 8 8
!  void * 4 8
  
! <ClaudiusMaximus> hmm, sending a [reassign( message to the right inlet of a [#store] segfaults Pd
  
! <ClaudiusMaximus> hmmm, i get a segfault with a simple patch sending "reassign, put_at ( 0 0 ), reassign" to the right inlet of [#store ( 3 3 # 0 )]
  
  <alx1> matju: for the ./configure, I often get an error from aalib since common installs do not put the headers
  <alx1> matju: would it be possible to make it a user defined choice like --with-aalib and turn it off by default?
--- 1,36 ----
  /* $Id$ */
  
! [ ] SWIG: try -fcompact -fvirtual
  
! ClaudiusMaximus matju: [#draw_image] inlet 0 method "op <opname>" is undocumented, but very useful :)
! ClaudiusMaximus matju: [unix_time] is maldocumented, outlet 0 is a grid Dim[28](uint8), not a symbol
  
  
! [ ] pd_examples -> examples
! [ ] update doc
! [ ] 0.8.1
! [ ] make good use of the R type (automatic Ruby/C++ convs)
! [ ] ditch xml, switch to docstrings or whatever
! [ ] ...
! claude wants http://en.wikipedia.org/wiki/Graham_scan
  
! X Error of failed request:  BadValue (integer parameter out of range for operation)
! error=0x2
! request=0x91 (MIT-SHM)
! minor=0x3 (X_ShmPutImage)
! value in failed request: 0x04b008 == 240*320*4+8 (matju)
  
! invalid read of size 1 (main.c.fcs:438)
! malloc alignment = 4 mod 8 (en utilisant valgrind)
! 
! ClaudiusMaximus matju: feature request:  [#store4], behaves like store but accepts grids 
! of floats as coordinates and interpolate using 4-point interpolation, eg, right inlet -> 
! (3 3 f # 0 0 0 1 1 1 2 4 8), left inlet -> (1 # 0.5) outputs (0.5 0.5 0.5) 
! (or whatever the interpolation would really be), left inlet (2 # 1.5 1.5) outputs (3)
! 
! AMD64 diffs: long 4->8, void * 4->8
  
+ <ClaudiusMaximus> hmm, sending a [reassign( message to the right inlet of a [#store] segfaults Pd
+ <ClaudiusMaximus> hmmm, i get a segfault with a simple patch sending "reassign, put_at ( 0 0 ), reassign" to the right inlet of [#store ( 3 3 # 0 )]
  <alx1> matju: for the ./configure, I often get an error from aalib since common installs do not put the headers
  <alx1> matju: would it be possible to make it a user defined choice like --with-aalib and turn it off by default?
***************
*** 49,52 ****
--- 40,44 ----
  <alx1> matju: once I delete it, unlike the other gui objects, it takes about one second before it dissapears, maybe a difference in tcl versions?
  
+ http://oprofile.sourceforge.net/about/
  for 0.8.0:
  
***************
*** 56,70 ****
  [gf] returns: #<GridFlow::FormatX11 [FormatX11 out]>
  
! test with waves.pd, 24 by 32.
! ==1673== 809108 bytes in 187 blocks are still reachable in loss record 64 of 64
! ==1673==    at 0x40026DAA: __builtin_vec_new (vg_replace_malloc.c:203)
! ==1673==    by 0x40026E01: operator new[](unsigned) (vg_replace_malloc.c:216)
! ==1673==    by 0x41FE269F: Grid::init(P<Dim>, NumberTypeE) (base/grid.h.fcs:910)
! ==1673==    by 0x41FCBE27: Grid::init_from_ruby_list(int, unsigned long*, NumberTypeE) (base/grid.c.fcs:100)
! ==1673==    by 0x41FCC679: Grid::init_from_ruby(unsigned long) (base/grid.c.fcs:117)
! ==1673==    by 0x41FE223F: Grid::Grid(unsigned long) (base/grid.h.fcs:888)
! ==1673==    by 0x42093152: convert(unsigned long, Grid**) (base/grid.h.fcs:921)
! ==1673==    by 0x4208F72B: GridOuter::initialize_wrap(int, unsigned long*, unsigned long) (base/flow_objects.c.fcs:862)
! 
  [ ] try removing or modifying -falign on PPC/OSX
  [ ] c++ typecasting is nuts (see class Pt<T>)
--- 48,52 ----
  [gf] returns: #<GridFlow::FormatX11 [FormatX11 out]>
  
! [ ] FIX LIBQUICKTIME CODE: #include <lqt/*> instead of <quicktime/*>
  [ ] try removing or modifying -falign on PPC/OSX
  [ ] c++ typecasting is nuts (see class Pt<T>)
***************
*** 97,102 ****
  [ ] consider including [mysql] [renamefile] [ls] [shell]
  [ ] re-enable int64,float64
- [ ] <alx_> #define RUBY_STACK_END "0xbfffd5c0" (!?!?!?)
- [ ] remember who i am supposed to credit for making pd_help back in march 2003... alx knows
  [ ] added #matrix_solve, #slice
  [ ] Copy-on-Write (COW)
--- 79,82 ----
***************
*** 109,112 ****
--- 89,93 ----
  [ ] add support for "anything" methods (def _0_(sel,*a))
  [ ] look into -ftree-vectorize
+ [ ] should STACK_ARRAY remain at all?
  
  for 0.8.1:
***************
*** 117,121 ****
  Bugs (High Priority) (!!! Fix all of these before 0.8.0 !!!)
  
! pick a number: [147]
  
  [147] [#store] blows up in nervous_video (reassign)
--- 98,102 ----
  Bugs (High Priority) (!!! Fix all of these before 0.8.0 !!!)
  
! pick a number: [149]
  
  [147] [#store] blows up in nervous_video (reassign)
***************
*** 139,143 ****
  [129] jmax2pd: [display] should not be translated
  [128] jmax2pd(?): loadbang-messages (comma) don't get translated to .pd ??
- [119] osx: SDL doesn't work here
  [118] error messages can be unclear (eg. file not open... is it #in's, or #out's?)
  [117] osx: [#store] crash instead of raising
--- 120,123 ----
***************
*** 178,182 ****
  [047] make system to ensure everything is working before a release.
  [048] potential issues between fork() and X11 ?
- [050] BitPacking has trouble with masks that extend beyond int25be
  [051] remove the crap given by -w of ruby
  [054] it's possible to crash by sending data in two inlets of a same object at once
--- 158,161 ----

Index: configure
===================================================================
RCS file: /cvsroot/pure-data/externals/gridflow/configure,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** configure	4 Oct 2005 02:12:43 -0000	1.1
--- configure	15 Mar 2006 04:48:05 -0000	1.2
***************
*** 3,7 ****
  =begin
  	GridFlow
! 	Copyright (c) 2001,2002,2003,2004 by Mathieu Bouchard
  
  	This program is free software; you can redistribute it and/or
--- 3,7 ----
  =begin
  	GridFlow
! 	Copyright (c) 2001,2002,2003,2004,2005,2006 by Mathieu Bouchard
  
  	This program is free software; you can redistribute it and/or
***************
*** 26,32 ****
--- 26,40 ----
  require "ftools"
  include Config
+ OSX = !!( CONFIG["arch"] =~ /darwin/ )
+ 
  require "win32/process" if CONFIG["arch"] =~ /mingw/
  LOG = File.open "./config.log", "w"
  
+ Red   = "\e[0;1;31m"
+ Green = "\e[0;1;32m"
+ Light = "\e[0m"
+ Dark  = "\e[0;1;30m"
+ Yellow = "\e[0;1;33;44m"
+ 
  $verbose=false
  LOG.puts "-"*64
***************
*** 73,80 ****
  	:OPTIONS => [],
  	:DEFINES => {
! 		:RUBY_PREFIX => CONFIG['prefix'],
  		:PREFIX => "/usr/local",
  		:CPU => nil,
  		:RUBY_ARCH => CONFIG['arch'],
  	},
  	:CC => "g++",
--- 81,90 ----
  	:OPTIONS => [],
  	:DEFINES => {
! #		:RUBY_PREFIX => CONFIG['prefix'],
! 		:RUBY_PREFIX => nil,
  		:PREFIX => "/usr/local",
  		:CPU => nil,
  		:RUBY_ARCH => CONFIG['arch'],
+ 		:GEM_SOURCE => "../Gem/src",
  	},
  	:CC => "g++",
***************
*** 199,230 ****
  end
  
  $C_INCLUDE_PATH = (
! 	(ENV["CPLUS_INCLUDE_PATH"]||"").split(":") +
! 	(ENV["C_INCLUDE_PATH"]||"").split(":") +
  	["/usr/include"]).uniq
  
  $LIBRARY_PATH = (
! 	(ENV["LIBRARY_PATH"]||"").split(":") +
  	["/usr/lib","/lib"]).uniq
  
  $LD_LIBRARY_PATH = (
! 	(ENV["LD_LIBRARY_PATH"]||"").split(":") +
! 		read_ld_so_conf +
! 		["/usr/lib","/lib"]).uniq
  
  # making it easier for everybody I hope:
! ["/Applications/Pd.app/Contents/Resources","/sw","/usr/local",ENV["home"]].each do|base|
! 	if not $LD_LIBRARY_PATH.include? "#{base}/lib" and
! 	   not $LIBRARY_PATH.include? "#{base}/lib" then
! 		$conf[:LDSOFLAGS].unshift "-L#{base}/lib"
! 		$LD_LIBRARY_PATH.unshift "#{base}/lib"
! 		$LIBRARY_PATH.unshift "#{base}/lib"
  	end
! 	#and not $CPLUS_INCLUDE_PATH.include? "#{base}/include"
! 	if not $C_INCLUDE_PATH.include? "#{base}/include" then
! 		$CFLAGS += " -I#{base}/include"
! 		$C_INCLUDE_PATH.unshift "#{base}/include"
  	end
  end
  
  for var in [:$C_INCLUDE_PATH, :$LIBRARY_PATH, :$LD_LIBRARY_PATH] do
--- 209,251 ----
  end
  
+ def epath x; (ENV[x]||"").split(":") end
+ 
  $C_INCLUDE_PATH = (
! 	epath("CPLUS_INCLUDE_PATH") +
! 	epath("C_INCLUDE_PATH") +
  	["/usr/include"]).uniq
  
  $LIBRARY_PATH = (
! 	epath("LIBRARY_PATH") +
  	["/usr/lib","/lib"]).uniq
  
  $LD_LIBRARY_PATH = (
! 	epath("LD_LIBRARY_PATH") +
! 	read_ld_so_conf +
! 	["/usr/lib","/lib"]).uniq
! $LIBX11DIR = ["-L/usr/X11R6/lib"]
! $LIBX11 = ["-L/usr/X11R6/lib","-lX11"]
  
  # making it easier for everybody I hope:
! def prepend_path base
! 	bl = base+"/lib"
! 	bi = base+"/include"
! 	if not $LD_LIBRARY_PATH.include? bl and
! 	   not $LIBRARY_PATH.include? bl then
! 		$conf[:LDSOFLAGS].unshift "-L"+bl
! 		$LD_LIBRARY_PATH.unshift bl
! 		$LIBRARY_PATH.unshift bl
  	end
! 	#and not $CPLUS_INCLUDE_PATH.include? bi
! 	if not $C_INCLUDE_PATH.include? bi then
! 		$CFLAGS += " -I"+bi
! 		$C_INCLUDE_PATH.unshift bi
  	end
  end
+ prepend_path "/Applications/Pd.app/Contents/Resources" if OSX
+ prepend_path "/sw" if OSX
+ prepend_path "/usr/local"
+ prepend_path ENV["HOME"]
+ # prepend_path "."
  
  for var in [:$C_INCLUDE_PATH, :$LIBRARY_PATH, :$LD_LIBRARY_PATH] do
***************
*** 262,265 ****
--- 283,290 ----
      [:ruby, "main.rb"],
    ],
+   [:directory, "optional/",
+     [:ruby, "usb.rb"],
+     [:ruby, "lti.rb"],
+   ],
    [:directory, "extra/",
  	[:ruby, "smpte.rb"],
***************
*** 274,284 ****
  #----------------------------------------------------------------#
  Feature.add {
- 	tag :fast
- 	name "Compile for speed (and not debuggability)"
- }
- Feature.add {
  	tag :gcc3
  	name "GNU C++ Compiler 3"
  	options ["HAVE_GCC3"]
  	test proc {
  		pi=File.popen "#{$conf[:CC]} -v 2>&1", "r"
--- 299,306 ----
  #----------------------------------------------------------------#
  Feature.add {
  	tag :gcc3
  	name "GNU C++ Compiler 3"
  	options ["HAVE_GCC3"]
+ =begin
  	test proc {
  		pi=File.popen "#{$conf[:CC]} -v 2>&1", "r"
***************
*** 289,292 ****
--- 311,328 ----
  		true
  	}
+ =end
+ 	test proc {
+ 		c_test %{
+ 		#include <stdio.h>
+ 		int main () {
+ 			printf("GCC_VERSION %d.%d.%d\\n", __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__);
+ 			return !(__GNUC__>=3);
+ 		}}
+ 	}
+ 	defines :GCC_VERSION => proc {
+ 		m = /GCC_VERSION\s+(.*)/.match(File.popen("tmp/#{$$}","r"){|f| f.read })
+ 		m[1]
+ 	}
+ 
  }
  Feature.add {
***************
*** 310,314 ****
  		#include <stdlib.h>
  		#include <cstddef>
! 		#define T(a) printf("%s:%d; ",#a,sizeof(a));
  		int main () {
  			T(void *)T(ptrdiff_t)T(off_t)T(size_t)puts("");
--- 346,350 ----
  		#include <stdlib.h>
  		#include <cstddef>
! 		#define T(a) printf("%s:%ld; ",#a,(long)sizeof(a));
  		int main () {
  			T(void *)T(ptrdiff_t)T(off_t)T(size_t)puts("");
***************
*** 322,332 ****
  #----------------------------------------------------------------#
  
! $stack_end_test = %{
  	#include <stdio.h>
- 	#include <ruby.h>
  	int main () {
  		void *bp;
! 		printf("#define RUBY_STACK_END 0x%08lx",(long)&bp);
! 		return rb_rescue==0;
  	}
  }
--- 358,424 ----
  #----------------------------------------------------------------#
  
! Feature.add {
! 	tag :libc_stack_end
! 	name "Stack end defined by LibC"
! 	status :disabled
! 	test proc { c_test '
! 	#include <stdio.h>
! 	extern void *__libc_stack_end;
! 	int main () {
! 		printf("#define STACK_END 0x%0*lx",sizeof(long)*2,__libc_stack_end);
! 		return 0;
! 	}
! 	', uses_bridge_so }
! 	defines :HAVE_LIBC_STACK_END
! 	defines :STACK_END => proc {
! 		m = /STACK_END\s+(.*)/.match(File.popen("tmp/#{$$}","r"){|f| f.read })
! 		m[1]
! 	}
! }
! Feature.add {
! 	tag :segv_stack_end
! 	name "Stack end probed"
! 	test proc { c_test %`
! 		/* the segfault trick (by Mathieu Bouchard) */
! 		#ifndef STACK_GROW_DIRECTION
! 		#define STACK_GROW_DIRECTION -1
! 		#endif
! 		#include <stdio.h>
! 		#include <signal.h>
! 		#include <setjmp.h>
! 		static volatile long bogus = 0; // to force *bp to be read in memory
! 		static sigjmp_buf rescue_segfault;
! 		static void trap_segfault (int patate) { siglongjmp(rescue_segfault,11); }
! 		int main () {
! 		// get any stack address
! 		volatile long * volatile bp = (volatile long *)&bp;
! 		void (*oldsegv)(int) = signal(SIGSEGV,trap_segfault);
! 		void (*oldbus)(int)  = signal(SIGBUS, trap_segfault);
! 		if (!sigsetjmp(rescue_segfault,0)) for (;;bp-=STACK_GROW_DIRECTION) bogus += *bp;
! 		printf("#define STACK_END 0x%0*lx\\n",sizeof(long)*2,(long)(bp+STACK_GROW_DIRECTION));
! 		return 0;
! 	}
! 	`, uses_bridge_so }
! 	defines :HAVE_LIBC_STACK_END
! 	defines :STACK_END => proc {
! 		m = /STACK_END\s+(.*)/.match(File.popen("tmp/#{$$}","r"){|f| f.read })
! 		m[1]
! 	}
! }
! Feature.add {
! 	tag :wild_stack_end
! 	name "Stack end wild guess"
! 	unless_feature [:libc_stack_end,:segv_stack_end]
! 	test proc { c_test '
  	#include <stdio.h>
  	int main () {
  		void *bp;
! 		printf("#define STACK_END 0x%0*lx",sizeof(long)*2,(long)&bp);
! 		return 0;
! 	}
! 	', uses_bridge_so }
! 	defines :STACK_END => proc {
! 		m = /STACK_END\s+(.*)/.match(File.popen("tmp/#{$$}","r"){|f| f.read })
! 		m[1]
  	}
  }
***************
*** 336,344 ****
  	uses_bridge_so ["-lruby"]
  	#uses_h ["ruby.h"] # is in special directory
! 	defines :RUBY_STACK_END => proc {
! 		m = /RUBY_STACK_END\s+(.*)/.match(File.popen("tmp/#{$$}","r"){|f| f.read })
! 		m[1]
! 	}
! 	test proc { c_test $stack_end_test, uses_bridge_so }
  }
  Feature.add {
--- 428,433 ----
  	uses_bridge_so ["-lruby"]
  	#uses_h ["ruby.h"] # is in special directory
! 	test proc { c_test "#include <ruby.h>
! 		int main () { return rb_rescue==0; }", uses_bridge_so }
  }
  Feature.add {
***************
*** 349,362 ****
  	uses_bridge_so {
  		lib = " #{$LIBRUBY_A} #{CONFIG['LIBS']} "
! 		unless CONFIG["arch"] =~ /darwin/
! 			lib = "-Wl,--whole-archive"+lib+"-Wl,--no-whole-archive"
! 		end
  		[lib]
  	}
! 	defines :RUBY_STACK_END => proc {
! 		m = /RUBY_STACK_END\s+(.*)/.match(File.popen("tmp/#{$$}","r"){|f| f.read })
! 		m[1]
! 	}
! 	test proc { c_test $stack_end_test, ["-xnone", $LIBRUBY_A, *(CONFIG['LIBS'].split)] }
  	options ["HAVE_STATIC_RUBY"] #!@#$ useless?
  }
--- 438,447 ----
  	uses_bridge_so {
  		lib = " #{$LIBRUBY_A} #{CONFIG['LIBS']} "
! 			lib = "-Wl,--whole-archive"+lib+"-Wl,--no-whole-archive" unless OSX
  		[lib]
  	}
! 	test proc { c_test "#include <ruby.h>
! 		int main () { return rb_rescue==0; }",
! 		["-xnone", $LIBRUBY_A, *(CONFIG['LIBS'].split)] }
  	options ["HAVE_STATIC_RUBY"] #!@#$ useless?
  }
***************
*** 367,371 ****
  	action proc { $conf[:DEFINES][:CPU] ||= "pentium" }
  	test proc {
! 		(CONFIG["arch"] =~ /i\d86/) or raise "#{CONFIG["arch"]} instead"
  		c_test '
  		#include <stdio.h>
--- 452,456 ----
  	action proc { $conf[:DEFINES][:CPU] ||= "pentium" }
  	test proc {
! 		(CONFIG["arch"] =~ /(i\d86|x86_64)/) or raise "#{CONFIG["arch"]} instead"
  		c_test '
  		#include <stdio.h>
***************
*** 469,473 ****
  	tag :x11
  	name "X11 Display Protocol"
! 	uses_so ["-L/usr/X11R6/lib","-lX11","-lXext"]
  	uses_h ["X11/Xlib.h"]
  	test proc {
--- 554,558 ----
  	tag :x11
  	name "X11 Display Protocol"
! 	uses_so $LIBX11
  	uses_h ["X11/Xlib.h"]
  	test proc {
***************
*** 481,487 ****
  Feature.add {
  	tag :x11_shm
! 	name "X11 acceleration through shared memory"
  	uses_feature [:x11]
! 	uses_so ["-L/usr/X11R6/lib","-lX11","-lXext"]
  	uses_h ["X11/Xlib.h","sys/shm.h","X11/extensions/XShm.h"]
  	test proc {
--- 566,572 ----
  Feature.add {
  	tag :x11_shm
! 	name "X11 acceleration by shared memory (XSHM plugin)"
  	uses_feature [:x11]
! 	uses_so $LIBX11+["-lXext"]
  	uses_h ["X11/Xlib.h","sys/shm.h","X11/extensions/XShm.h"]
  	test proc {
***************
*** 496,506 ****
  	options ["HAVE_X11_SHARED_MEMORY"]
  }
! =begin
  Feature.add {
  	tag :opengl
  	name "OpenGL (only as framebuffer)"
! 	status :disabled
! 	uses_so ["-L/usr/X11R6/lib","-lglut","-lGL","-lGLU"]
! 	uses_h ["GL/glut.h"]
  	test proc {
  		c_test "
--- 581,604 ----
  	options ["HAVE_X11_SHARED_MEMORY"]
  }
! Feature.add {
! 	tag :x11_xv
! 	status :disabled
! 	name "X11 acceleration (XVIDEO plugin)"
! 	uses_feature [:x11]
! 	uses_so $LIBX11+["-lXext","-lXv"]
! 	uses_h ["X11/Xlib.h","X11/extensions/Xv.h"]
! 	test proc {
! 		c_test "
! 		#include#
! 		int main () {return 0;}
! 		"
! 	}
! 	options ["HAVE_X11_XVIDEO"]
! }
  Feature.add {
  	tag :opengl
  	name "OpenGL (only as framebuffer)"
! 	uses_so $LIBX11DIR+["-lglut","-lGL","-lGLU"]
! 	uses_h ["GL/gl.h","GL/glu.h","GL/glut.h"]
  	test proc {
  		c_test "
***************
*** 511,515 ****
  	uses_o ["format/opengl.o"]
  }
- =end
  Feature.add {
  	tag :sdl
--- 609,612 ----
***************
*** 517,521 ****
  	uses_so {
  		a=["-lSDL","-lpthread"]
! 		a<<"-lobjc" if CONFIG["arch"] =~ /darwin/
  		a
  	}
--- 614,618 ----
  	uses_so {
  		a=["-lSDL","-lpthread"]
! 		a<<"-lobjc" if OSX
  		a
  	}
***************
*** 608,611 ****
--- 705,709 ----
  	uses_o ["format/png.o"]
  }
+ #------------------------------------------------#
  Feature.add {
  	tag :videodev
***************
*** 623,628 ****
  	tag :mpeg3
  	name "HeroineWarrior LibMPEG3"
! 	uses_so ["-lmpeg3","-lpthread","-lm",
! 		"-L/usr/X11R6/lib"]
  	uses_h Or["libmpeg3/libmpeg3.h","libmpeg3.h"]
  	test proc {|f|
--- 721,725 ----
  	tag :mpeg3
  	name "HeroineWarrior LibMPEG3"
! 	uses_so $LIBX11DIR+["-lmpeg3","-lpthread","-lm"]
  	uses_h Or["libmpeg3/libmpeg3.h","libmpeg3.h"]
  	test proc {|f|
***************
*** 650,658 ****
  	tag :quicktimehw
  	unless_feature :quicktimeapple
! 	name "HeroineWarrior QuickTime4Linux (or LibQuickTime)"
  	uses_so Or[
  		["-lquicktime","-lpthread","-lpng","-ldl","-lglib","-lz"],
  		["-lquicktime","-lpthread","-lpng","-ldl","-lglib-1.2","-lz"]]
! 	uses_h ["quicktime/quicktime.h","quicktime/lqt_version.h"]
  	test proc {|f|
  		f.c_test %`
--- 747,758 ----
  	tag :quicktimehw
  	unless_feature :quicktimeapple
! 	name "Plaum's LibQuickTime"
  	uses_so Or[
  		["-lquicktime","-lpthread","-lpng","-ldl","-lglib","-lz"],
  		["-lquicktime","-lpthread","-lpng","-ldl","-lglib-1.2","-lz"]]
! 	f = ["quicktime.h","colormodels.h","lqt.h","lqt_version.h","lqt_codecinfo.h"]
! 	uses_h Or[
! 		f.map{|x| "quicktime/"+x },
! 		f.map{|x| "lqt/"+x }]
  	test proc {|f|
  		f.c_test %`
***************
*** 728,736 ****
  	}
  }
  
  $features_h = {}
  $features.each {|f| $features_h[f.tag]=f }
  
- #--------------------------------#
  
  def usage
--- 828,855 ----
  	}
  }
+ #--------------------------------#
+ Feature.add {
+ 	tag :gem
+ 	name "PureData GEM (source code)"
+ #	uses_h [$conf[:DEFINES][:GEM_SOURCE]+"/src/Base/GemBase.h"]
+ 	uses_feature [:puredata]
+ 	uses_o ["optional/gem.o"]
+ 	test proc {
+ 		# hack
+ 		$C_INCLUDE_PATH.unshift $conf[:DEFINES][ :GEM_SOURCE]
+ 		$CFLAGS += " -I"+$conf[:DEFINES][ :GEM_SOURCE]
+ 		c_test %`
+ 			#include "Base/GemBase.h"
+ 			int main () {
+ 				return 0;
+ 			}
+ 		`
+ 	}
+ }
+ #--------------------------------#
  
  $features_h = {}
  $features.each {|f| $features_h[f.tag]=f }
  
  
  def usage
***************
*** 739,743 ****
  	log << "[--use-compiler compiler] [--use-compiler-option option]* "
  	log << "[--use-cpu cpu] [--lite] [--debug] [--debug-harder]"
! 	log << "[--ruby-prefix directory] "
  	$features_h.keys.map {|k| k.to_s }.sort.each {|k| log << "[--no-#{k}] " }
  	$features_h.keys.map {|k| k.to_s }.sort.each {|k| log << "[--force-#{k}] " }
--- 858,863 ----
  	log << "[--use-compiler compiler] [--use-compiler-option option]* "
  	log << "[--use-cpu cpu] [--lite] [--debug] [--debug-harder]"
! 	log << "[--ruby-prefix directory] [--gem-source directory]"
! 	# [--puredata-prefix directory] "
  	$features_h.keys.map {|k| k.to_s }.sort.each {|k| log << "[--no-#{k}] " }
  	$features_h.keys.map {|k| k.to_s }.sort.each {|k| log << "[--force-#{k}] " }
***************
*** 779,784 ****
  		$conf[:OPTIONS].push :HAVE_LITE
  	when "--help"; usage; exit 0
! 	when "--prefix", "--ruby-prefix"
! 		$conf[:DEFINES][:RUBY_PREFIX]=ARGV.shift
  	when "--use-compiler"
  		$conf[:CC] = ARGV.shift
--- 899,907 ----
  		$conf[:OPTIONS].push :HAVE_LITE
  	when "--help"; usage; exit 0
! 
! 	when "--prefix", "--ruby-prefix"       : $conf[:DEFINES][:RUBY_PREFIX]=ARGV.shift
! 	when "--pd-prefix", "--puredata-prefix": $conf[:DEFINES][  :PD_PREFIX]=ARGV.shift
! 	when "--gem-source"                    : $conf[:DEFINES][ :GEM_SOURCE]=ARGV.shift
! 
  	when "--use-compiler"
  		$conf[:CC] = ARGV.shift
***************
*** 790,794 ****
  		$verbose=true
  	when "--bindir"
! 		$conv[:BINDIR] = ARGV.shift
  	else puts "unknown option \"#{arg}\""; usage; exit 1
  	end
--- 913,917 ----
  		$verbose=true
  	when "--bindir"
! 		$conf[:BINDIR] = ARGV.shift
  	else puts "unknown option \"#{arg}\""; usage; exit 1
  	end
***************
*** 799,804 ****
  CONFIG["rubylibdir"] ||= "$(libdir)/ruby/$(ruby_version)"
  CONFIG["archdir"] ||= CONFIG["rubylibdir"] + "/" + CONFIG["arch"]
! 
! $CFLAGS += " -I " + (make_expand CONFIG["archdir"])
  
  #--------------------------------#
--- 922,926 ----
  CONFIG["rubylibdir"] ||= "$(libdir)/ruby/$(ruby_version)"
  CONFIG["archdir"] ||= CONFIG["rubylibdir"] + "/" + CONFIG["arch"]
! $CFLAGS += " -I" + (make_expand CONFIG["archdir"])
  
  #--------------------------------#
***************
*** 816,819 ****
--- 938,942 ----
  
  def try feature
+ 
  	if Or===feature.uses_so
  		k=1
***************
*** 827,831 ****
  	if Or===feature.uses_h
  		feature.uses_h.a.each {|i|
! 			e=feature.dup; e.uses_h i; e.name(e.name+" <#{e.uses_h}>")
  			r=try e; return r if r
  		}
--- 950,954 ----
  	if Or===feature.uses_h
  		feature.uses_h.a.each {|i|
! 			e=feature.dup; e.uses_h i; e.name(e.name+" <#{i.to_a[0]}>")
  			r=try e; return r if r
  		}
***************
*** 833,852 ****
  	end
  	LOG.puts "", "-"*64
! 	DUAL.print "[#{feature.tag}] #{feature.name}: "
  	(feature.uses_feature||[]).find {|f|
  		if not (
  		  if Or===f then f.a.find {|x| $conf[:FEATURES][x] } else $conf[:FEATURES][f] end
  		) then 
! 			DUAL.puts "disabled (would need #{f})"
  			return
  		end
  	}
! 	if feature.status==:disabled then DUAL.puts "disabled (by author)"; return end
! 	if not $features_h[feature.tag] then DUAL.puts "disabled (by user)"; return end
  	fu = feature.unless_feature || []
  	fu = [fu] if not Array===fu
  	for f in fu || [] do
  		if $conf[:FEATURES][f] then
! 			DUAL.puts "disabled (using #{f} instead)"
  			return
  		end
--- 956,978 ----
  	end
  	LOG.puts "", "-"*64
! 	line = "[#{feature.tag}] #{feature.name}: "
! 	DUAL.print Light + "[#{Yellow}#{feature.tag}#{Light}] #{feature.name}: "
! 	arrow = "-"*([78-line.length,0].max)+ "> "
! 	#DUAL.print Dark + arrow +Red
  	(feature.uses_feature||[]).find {|f|
  		if not (
  		  if Or===f then f.a.find {|x| $conf[:FEATURES][x] } else $conf[:FEATURES][f] end
  		) then 
! 			DUAL.puts Red+arrow+"disabled (would need #{f})"
  			return
  		end
  	}
! 	if feature.status==:disabled then DUAL.puts Dark+arrow+"disabled (by author)"; return end
! 	if not $features_h[feature.tag] then DUAL.puts Dark+arrow+"disabled (by user)"; return end
  	fu = feature.unless_feature || []
  	fu = [fu] if not Array===fu
  	for f in fu || [] do
  		if $conf[:FEATURES][f] then
! 			DUAL.puts Dark+arrow+"disabled (using #{f} instead)"
  			return
  		end
***************
*** 859,863 ****
  		end
  		if tresult
! 			DUAL.puts "found "+(if tresult!=true
  				then " (#{tresult})"
  				else "" end)
--- 985,989 ----
  		end
  		if tresult
! 			DUAL.puts Green+arrow+"found "+(if tresult!=true
  				then " (#{tresult})"
  				else "" end)
***************
*** 871,875 ****
  			end
  		else
! 			DUAL.puts "missing "+(if e
  				then (if $verbose
  					then "(#{e} @ #{e.backtrace.join', '})"
--- 997,1001 ----
  			end
  		else
! 			DUAL.puts Red+arrow+"missing "+(if e
  				then (if $verbose
  					then "(#{e} @ #{e.backtrace.join', '})"
***************
*** 883,887 ****
  		end
  	else
! 		puts "enabled"
  		$conf[:FEATURES][feature.tag] = feature
  		feature.action.call if feature.action
--- 1009,1013 ----
  		end
  	else
! 		puts Green+arrow+"enabled"
  		$conf[:FEATURES][feature.tag] = feature
  		feature.action.call if feature.action
***************
*** 899,903 ****
  end
  
! DUAL.puts "This is the GridFlow 0.8.0 configurator within Ruby version #{RUBY_VERSION}"
  
  begin
--- 1025,1029 ----
  end
  
! DUAL.puts "This is the GridFlow 0.8.1 configurator within Ruby version #{RUBY_VERSION}"
  
  begin
***************
*** 908,915 ****
  end
  
  $conf[:LDSOFLAGS].uniq!
  $conf[:BRIDGE_LDFLAGS].uniq!
  
! $CFLAGS += " -falign-functions=4" if $conf[:FEATURES][:gcc3]
  
  #if not $conf[:FEATURES][:gcc3]
--- 1034,1043 ----
  end
  
+ puts Light
+ 
  $conf[:LDSOFLAGS].uniq!
  $conf[:BRIDGE_LDFLAGS].uniq!
  
! $CFLAGS += " -falign-functions=16" if $conf[:FEATURES][:gcc3]
  
  #if not $conf[:FEATURES][:gcc3]
***************
*** 976,985 ****
  f.puts "BRIDGE_LDFLAGS = " + $conf[:BRIDGE_LDFLAGS].flatten.join(" ") + " " + $LDFLAGS
  
! if CONFIG["arch"] =~ /darwin/ then
  	f.puts "BRIDGE_LDFLAGS += -bundle -flat_namespace"
  else
  	f.puts "BRIDGE_LDFLAGS += -rdynamic -shared"
  end
! $CFLAGS +=  " -mcpu=$(CPU)" if $conf[:DEFINES][:CPU]
  $CFLAGS += " -march=$(CPU)" if $conf[:DEFINES][:CPU]
  #$CFLAGS += " -fforce-addr"
--- 1104,1113 ----
  f.puts "BRIDGE_LDFLAGS = " + $conf[:BRIDGE_LDFLAGS].flatten.join(" ") + " " + $LDFLAGS
  
! if OSX then
  	f.puts "BRIDGE_LDFLAGS += -bundle -flat_namespace"
  else
  	f.puts "BRIDGE_LDFLAGS += -rdynamic -shared"
  end
! $CFLAGS += " -mtune=$(CPU)" if $conf[:DEFINES][:CPU]
  $CFLAGS += " -march=$(CPU)" if $conf[:DEFINES][:CPU]
  #$CFLAGS += " -fforce-addr"
***************
*** 987,990 ****
--- 1115,1119 ----
  #$CFLAGS += " -falign-jumps=4"
  #$CFLAGS += " -falign-loops=4"
+ $CFLAGS += " -DMACOSX" if OSX
  f.puts "CFLAGS += " + $CFLAGS
  
***************
*** 1024,1034 ****
  for k   in $conf[:OPTIONS] do f.puts "\#define #{k}" end
  for k,v in $conf[:DEFINES] do f.puts "\#define #{k} "+v.inspect end
! if $conf[:FEATURES][:mpeg3]
! f.puts "
! \#ifdef LIBMPEG_INCLUDE_HERE
! \#include <#{$conf[:FEATURES][:mpeg3].uses_h}>
! \#endif
! "
  end
  f.puts "
  \#define RUBY_BINDIR #{make_expand(CONFIG['bindir']).inspect}
--- 1153,1169 ----
  for k   in $conf[:OPTIONS] do f.puts "\#define #{k}" end
  for k,v in $conf[:DEFINES] do f.puts "\#define #{k} "+v.inspect end
! 
! def include_here(f,a,b)
!   return unless $conf[:FEATURES][b]
!   f.puts "\#ifdef #{a}_INCLUDE_HERE"
!   for inc in $conf[:FEATURES][b].uses_h.to_a do
!     f.puts "\#include <#{inc}>"
!   end
!   f.puts "\#endif"
  end
+ 
+ include_here f,"LIBMPEG", :mpeg3
+ include_here f,"QUICKTIMEHW",:quicktimehw
+ 
  f.puts "
  \#define RUBY_BINDIR #{make_expand(CONFIG['bindir']).inspect}
***************
*** 1090,1094 ****
  	"gfbindir = #{$conf[:BINDIR]}\n"
  mf.sub!(/^site-install:\s*install/,"site-install: ")
! mf.sub! /^prefix = .*$/, "prefix = " + make_expand($conf[:DEFINES][:RUBY_PREFIX])
  mf.sub! /^LDSHARED = g?cc/, "LDSHARED = $(CXX)"
  # Adam Lindsay's Mac attempts.
--- 1225,1235 ----
  	"gfbindir = #{$conf[:BINDIR]}\n"
  mf.sub!(/^site-install:\s*install/,"site-install: ")
! 
! rp=$conf[:DEFINES][:RUBY_PREFIX]
! if rp
!   mf.sub! /^prefix\s*=.*$/,   "prefix = " + make_expand(rp)
!   mf.sub! /^sitedir\s*=.*$/, "sitedir = " + make_expand(rp)
! end
! 
  mf.sub! /^LDSHARED = g?cc/, "LDSHARED = $(CXX)"
  # Adam Lindsay's Mac attempts.

Index: Makefile.gf
===================================================================
RCS file: /cvsroot/pure-data/externals/gridflow/Makefile.gf,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Makefile.gf	4 Oct 2005 02:12:43 -0000	1.1
--- Makefile.gf	15 Mar 2006 04:48:08 -0000	1.2
***************
*** 93,99 ****
  	less gf-valgrind
  
- test16:: test
- 	(ruby-1.6.7 -w $(TEST)) || $(BACKTRACE)
- 
  testpd::
  	rm -f gridflow.pd_linux && make && \
--- 93,96 ----
***************
*** 146,155 ****
  	cp -r images/ $(PUREDATA_PATH)/extra/gridflow
  	cp $(PD_LIB) pd_abstractions/*.pd $(PUREDATA_PATH)/extra
! 	for z in camera_control motion_detection color mouse centroid centre_of_gravity fade \
  	apply_colormap_channelwise checkers contrast posterize ravel remap_image solarize spread \
  	rgb_to_greyscale greyscale_to_rgb rgb_to_yuv yuv_to_rgb; do \
  		cp pd_abstractions/\#$$z.pd $(PUREDATA_PATH)/extra/\@$$z.pd; done
  	mkdir -p $(PUREDATA_PATH)/extra/gridflow/icons
! 	$(INSTALL_DATA) java/peephole.gif $(PUREDATA_PATH)/extra/gridflow/icons/peephole.gif
  
  else
--- 143,152 ----
  	cp -r images/ $(PUREDATA_PATH)/extra/gridflow
  	cp $(PD_LIB) pd_abstractions/*.pd $(PUREDATA_PATH)/extra
! 	for z in camera_control motion_detection color mouse centre_of_gravity fade \
  	apply_colormap_channelwise checkers contrast posterize ravel remap_image solarize spread \
  	rgb_to_greyscale greyscale_to_rgb rgb_to_yuv yuv_to_rgb; do \
  		cp pd_abstractions/\#$$z.pd $(PUREDATA_PATH)/extra/\@$$z.pd; done
  	mkdir -p $(PUREDATA_PATH)/extra/gridflow/icons
! 	$(INSTALL_DATA) icons/peephole.gif $(PUREDATA_PATH)/extra/gridflow/icons/peephole.gif
  
  else

Index: ChangeLog
===================================================================
RCS file: /cvsroot/pure-data/externals/gridflow/ChangeLog,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ChangeLog	4 Oct 2005 02:12:43 -0000	1.1
--- ChangeLog	15 Mar 2006 04:48:08 -0000	1.2
***************
*** 1,4 ****
--- 1,18 ----
  /* $Id$ */
  
+ version 0.8.1 (2006.02.20):
+ 
+  * [ls] now supports wildcards: ? [] * **
+  * [#color] has new method: delegate
+  * added [regsub], [memstat], [listfind], [sendgui]
+  * x11: removed methods: draw,autodraw; added: use_shm,title
+  * examples : added markov.pd, bounce.pd, doodle.pd, mechanics.pd
+  * [#pack],[#unpack] now default to 2 values
+  * new numops: clip+,clip-
+  * fix for shared memory bug in [#out x11]
+  * added [#out tk]
+  * added [#out opengl] (using GLUT, hackishly)
+  * [unix_time] behaviour changed. (see manual)
+ 
  version 0.8.0 (2005.06.06):
  
***************
*** 13,17 ****
   * merged [@],[@!] -> [#] and added message "op"
   * removed all one-input ops (see next...)
!  * new two-input ops: abs- sq- avg hypot sqrt rand (soon erf* clip+ clip-)
   * [#fold],[#scan]: removed seed arg and right outlet; added msgs "op" and "seed"
   * [#inner],[#convolve] : added msgs "op" and "seed"
--- 27,31 ----
   * merged [@],[@!] -> [#] and added message "op"
   * removed all one-input ops (see next...)
!  * new two-input ops: abs- sq- avg hypot sqrt rand
   * [#fold],[#scan]: removed seed arg and right outlet; added msgs "op" and "seed"
   * [#inner],[#convolve] : added msgs "op" and "seed"
***************
*** 35,38 ****
--- 49,53 ----
   * in pd_examples added Alx's epicycloid.pd, scratch_video.pd, threshold.pd
        and Matju's goop.pd
+  * some new/updated help files by Stéphanie Brodeur & Darsha Hewitt
  
  version 0.7.7 (2004.08.24):





More information about the Pd-cvs mailing list