[M3devel] program vs. Program
Jay K
jay.krell at cornell.edu
Mon May 10 11:37:21 CEST 2010
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