On 08/07/2014 11:17 AM, Miller Puckette wrote:
Or better yet, without changing any files at all - invoke Pd with the full pathname, ../src/pd (or even ../src/pd!) instead of ./pd and I think all the filename bashing will work.
That doesn't work.
But this is an academic conversation at this point. I no longer have a need to do incremental builds, I could use makefile.gnu if I needed to, and the autogen.sh works fine for IOhannes' needs.
-Jonathan
cheers M
On Thu, Aug 07, 2014 at 12:14:16PM +0200, IOhannes m zmoelnig wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
thanks for the detailed description.
On 2014-08-07 00:24, Jonathan Wilkes via Pd-list wrote:
- ./src/pd
Oops... Error in startup script: couldn't read file "/home/pd-0.45-5/src/tcl//pd-gui.tcl": no such file or directory
this would be trivial to fix in Pd. i haven't done this because i considered the problem an edge case (the idea being, that we shouldn't add too much cruft to the source base to cater for the needs of very few people, esp. as there are simple workarounds).
my usual workaround for this is: $ cd src $ ln -s ../tcl .
Which-- as I already stated in an old thread-- requires me to do this from the main pd directory: cp src/pd .
Then run ./pd
Now it runs. Great!
[...]
So I don't get an updated binary in the src/ directory with "make", and I do get an updated binary when doing "make && make clean".
actually no, the last part is not quite correct (though the effect is the same).
it seems that all the problems come from compiling Pd with the included "portaudio", which enables a number of hacks to properly load the included library (rather than one provided by the system). this boils down to ./src/pd *not* being a binary at all, but instead being a wrapper script, that launches the actual binary that is hidden in ./src/.libs. now when you copy the script ./src/pd to ./ and call it, it will
- try to launch ./.libs/pd
and if that fails it will
- (magically) find the correct binary in ./src/.libs/ and create a
local copy in ./.libs/; and then launch it.
now when you do your changes to clip_float() and recompile, that binary in ./src/.libs/ gets updated nicely, but when you call ./pd it will still use it's outdated copy of the binary. when running "make clean" the ./.libs/ folder (containing the outdated copy) is deleted and later re-popuplated with the now-current binary.
i understand that this is a quite convoluted process, and that not everyone wants to pile up the knowledge to understand and debug this (and probably not even read my above explanation).
i can offer 3 possible "solutions":
- disable "portaudio" when building Pd. this basically disables the
wrapper-script trickery and gives you a "src/pd" *binary* that can be run without any hacks. obviously this is not very practical if you *want* portaudio.
(rather than copying ./src/pd to ./ and then call ./pd)
- use symlinks from ./src/tcl to ./tcl, and call ./src/pd;
add this information to the documentation
- add code to Pd that searches for the tcl-files in the correct place,
even when called from the wrapper script.
gfsd IOhannes
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1 Comment: Using GnuPG with Icedove - http://www.enigmail.net/
iQIcBAEBCAAGBQJT41F1AAoJELZQGcR/ejb43K8P+wZzYCPoN5J6g1CPC3K69Wrj 3nsyDm3ugJaGVSi/CJ7Gr+CVM/gkpckbSLvmCtABDRW0etFOVrdvaF42xlA/smT9 2bD4AzCzlXc/PWerEdjaKCoP/FiVZj5a99r2moJttMMlj5WU6PS1Q1+pPxEUh98r FPMj+J069u1cArn57oTRFlKthW5yPNBdGBD7AVrvhkHC0kENmdQxqzQiioDHUsOQ xTA62K0t4HU70s85gDSbEiGI8qIda4k50sDsAPNrYnGqiyi+AXN9C2BeKEVD/Nx3 /Fmg0YDlzkMMrdjlY1YKwIHohC1S0ynrHs2zuCkzPCzeU0gAo1u5PHpNwExMy5Mq h98yBWAdSuhLBGlyZAindGopHiES9julDO3NghQyVDSXFQmoGnQig+bVwuS938P6 +l+BTk49kSoltiC9rYP+zusSQ0rFS5ytkyQPJXdegA93hvnroamTNEb0IL80V0dK PCtUX2ngjMweBhJBbUrvD/MHzTaX6mIEgd1TX0xMk5wkeDwJNhFrlpnGWasAulhk YX6ti0mZ9WnDBE4wlXZ4yVulx6eWa896J+aIL4/GcCf0XnKGETdh92DSBWGvLZjN dwsXDAM5IxKhI95F6xU6MJ4y8y8W8U1iPe6rL2DxOKylhr8em8X0+R4CVyXg2QoQ GLLBbHlrYH2TvQP3b5oB =BURL -----END PGP SIGNATURE-----
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list