[M3devel] program vs. Program

Tony Hosking hosking at cs.purdue.edu
Mon May 10 15:42:12 CEST 2010


program is not supposed to ship anything, right?

Only Program should do that.

On 10 May 2010, at 05:37, Jay K wrote:

> 
> Despite the length of this email, I don't think this is a big deal..
> 
> 
> With the "origin/runpath" changes from a while ago, "program" "doesn't work", unless build_standalone.
> At least on most systems. That is, you can't run the binary from its shipped location, in pkg.
> 
> 
> We should consider: 
>  - make program imply build_standalone? 
>  - never ship "program" -- not runable within the package store  
>  - drop in wrapper .sh files that set/append LD_LIBRARY_PATH? 
>  - maybe the scheme I alluded to, which I'm pretty sure libtool implements sometimes, where you use full paths on the initial link, an then "ship/install" relink first, either with new full paths or with $ORIGIN.
> 
> 
> An exception would be, like, how gcc uses libexec/cc1.
>  If something in bin calls out to something in pkg, and either the file in pkg is build_standalone, or, well $ORIGIN sometimes
>  is relative to the executable -- like on Mac OSX 10.4 with @executable_path, but this is probably too rare to consider.
> And even if we have "private" executables in "pkg", build_standalone is still wasteful.
> 
> 
> So we'd want to look through stuff like:
> 
> 
> jbook2:cm3 jay$ grep ^program `find . | grep /m3makefile$` | grep -v examples | grep -v test
> ./caltech-parser/hack/src/m3makefile:program("dummy")
> ./doc/tutorial/ui/script/m3makefile:program ("script")
> ./m3-comm/tapi/src/m3makefile:program ("foo2")
> ./m3-db/db/demo/m3makefile:program("demo")
> ./m3-db/db/src/postgresql/demo/m3makefile:program("demo")
> ./m3-db/stable/example/src/m3makefile:program("example")
> ./m3-demo/sharedboard/boardclient/src/m3makefile:program ("boardclient")
> ./m3-demo/sharedboard/boardserver/src/m3makefile:program ("boardserver")
> ./m3-demo/sharedboard/calendar/src/m3makefile:program ("calendar")
> ./m3-libs/digraph/src/m3makefile:program(DiGraphTest)
> ./m3-libs/digraph/src/m3makefile:program(TopSortTest)
> ./m3-libs/synthesizer/example/chirp/src/m3makefile:program("chirp")
> ./m3-libs/synthesizer/example/echo/src/m3makefile:program("echo")
> ./m3-libs/synthesizer/example/entchen/src/m3makefile:program("entchen")
> ./m3-libs/synthesizer/example/filter/src/m3makefile:program("filter")
> ./m3-libs/synthesizer/example/inout/src/m3makefile:program("inout")
> ./m3-libs/synthesizer/example/oscillator/src/m3makefile:program("oscillator")
> ./m3-libs/synthesizer/example/plot/src/m3makefile:program("plot")
> ./m3-libs/synthesizer/example/rueckwaerts/src/m3makefile:program("rueckwaerts")
> ./m3-libs/synthesizer/example/sirene/src/m3makefile:program("sirene")
> ./m3-libs/synthesizer/example/stereo/src/m3makefile:program("stereo")
> ./m3-libs/synthesizer/example/stream/src/m3makefile:program("stream")
> ./m3-libs/wellfett/example/src/m3makefile:program("example")
> ./m3-pkgtools/pkgfprint/src/m3makefile:program("pkgfp")
> ./m3-pkgtools/pkgq/src/m3makefile:program("pkgq")
> ./m3-pkgtools/pkgsrv/src/m3makefile:program("packageserver")
> ./m3-pkgtools/pkgtool/src/m3makefile:program("packagetool")
> ./m3-sys/cm3/src/m3makefile:program ("cm3")
> ./m3-sys/cminstall/src/m3makefile:program ("cminstall")
> ./m3-sys/dll2lib/src/m3makefile:program ("dll2lib")
> ./m3-sys/libdump/src/m3makefile:program ("libdump")
> ./m3-sys/m3cgcat/src/m3makefile:program ("m3cgcat")
> ./m3-sys/m3cggen/src/m3makefile:program ("m3cggen")
> ./m3-sys/m3staloneback/src/m3makefile:program ("m3back")
> ./m3-tools/cmpfp/src/m3makefile:program ("cmpfp")
> ./m3-tools/cvsup/cvpasswd/src/m3makefile:program("cvpasswd")
> ./m3-tools/macapi/src/m3makefile:program("macapi")
> ./m3-ui/juno-2/juno-app/pkl-fonts/src/m3makefile:program        ("PklFonts")
> ./m3-ui/juno-2/juno-machine/linear/src/m3makefile:program("LinearTest")
> ./m3-ui/juno-2/juno-machine/nonlinear/src/m3makefile:program        ("NonLinearTest")
> ./m3-ui/juno-2/juno-machine/runtime/src/m3makefile:program        ("RuntimeTest")
> ./m3-ui/juno-2/juno-machine/solve/src/m3makefile:program        ("SolveTest")
> 
> 
> At a quick glance, a lot can be ignored. Anything without quotes doesn't curently build.
> m3-pkgtools doesn't currently build.
> cm3 and cminstall are "special" -- and still, we shouldn't bother putting them in pkg.
> m3back is never used; m3ccgen is standalone and rarely used
> libdump I think is unused; dll2lib is unused.
> This doesn't check if things are build_standalone, e.g. PklFonts.
> 
> 
>  - Jay
> 
> 
> 		 	   		  




More information about the M3devel mailing list