o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
Unlike the svn version, ths git version isn't tested on all platformss. I _think: what I should do is "tag" the occasional commits that I've tested semi-thoroughly and also commit those to svn (the traditional place I've been uploading tested code to). So the svn code will always be clean and the git code variously clean and dirty depending on phase.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
cheers Miller
On 2010-07-12 05:33, Miller Puckette wrote:
o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
cool, thanks.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
the major question i have right now (after cloning the repository): how do you compile it? it seems like you have not fully taken hans's autoconf buildsystem, though there are some definitive traces of it in the repository (e.g. there is ./configure.ac and ./autogen.sh but no ./Makefile.am; as a matter of fact no "*.am" file (from automake) is there at all)
i tried the "old way" (by running "autconf && ./configure && make" in ./src) which compiles fine but i get an error at startup:
invalid command name ".menubar.file"
skipping the error, seems to make everything work.
fgmasd IOhanhnes
Hmm... I hadn't tried the 'new' build but apparently am missing something. I'll try adding HC's Makefile.am and see if I can build it that way over here.
I don't get the ".menubar.file" error -- you're in linux, I presume ... could you send the tk backtrace?
On Mon, Jul 12, 2010 at 11:03:51AM +0200, IOhannes m zmoelnig wrote:
On 2010-07-12 05:33, Miller Puckette wrote:
o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
cool, thanks.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
the major question i have right now (after cloning the repository): how do you compile it? it seems like you have not fully taken hans's autoconf buildsystem, though there are some definitive traces of it in the repository (e.g. there is ./configure.ac and ./autogen.sh but no ./Makefile.am; as a matter of fact no "*.am" file (from automake) is there at all)
i tried the "old way" (by running "autconf && ./configure && make" in ./src) which compiles fine but i get an error at startup:
invalid command name ".menubar.file"
skipping the error, seems to make everything work.
fgmasd IOhanhnes
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
hi miller.
On 2010-07-12 18:22, Miller Puckette wrote:
Hmm... I hadn't tried the 'new' build but apparently am missing something. I'll try adding HC's Makefile.am and see if I can build it that way over here.
i guess you'll need to add all the Makefile.am's right now (they are scattered over various places in ./src). i'll probably will have a look at that and send you a changeset
I don't get the ".menubar.file" error -- you're in linux, I presume ... could you send the tk backtrace?
did you receive my "[PATCH] only add window-bindings after it has been fully initialized to pdwindow"? there's a fix included in that.
it turned out to be a race-condition, between the initialization of Pd and Pd-gui.
another (simpler, better) fix can be found in the attachment: it's really only checking whether the menu is there before trying to disable entries within the menubar)
anyhow, here is the backtrace: <snip> invalid command name ".menubar.file" invalid command name ".menubar.file" while executing "$menubar.file entryconfigure [_ "Save"] -state disabled" (procedure "::pd_menus::configure_for_pdwindow" line 6) invoked from within "::pd_menus::configure_for_pdwindow " (procedure "::pd_bindings::window_focusin" line 9) invoked from within "::pd_bindings::window_focusin .pdwindow" (command bound to event) </snip>
fgmasdr IOhannes
Hi Hannes --
I'll track down the makefile.am business - it's time I tried the autobuild system anyway.
I didn't see the "[PATCH] only add window-bindings ..." - is it on Source- forge or somewhere else?
thanks M
On Mon, Jul 12, 2010 at 06:51:43PM +0200, IOhannes m zmoelnig wrote:
hi miller.
On 2010-07-12 18:22, Miller Puckette wrote:
Hmm... I hadn't tried the 'new' build but apparently am missing something. I'll try adding HC's Makefile.am and see if I can build it that way over here.
i guess you'll need to add all the Makefile.am's right now (they are scattered over various places in ./src). i'll probably will have a look at that and send you a changeset
I don't get the ".menubar.file" error -- you're in linux, I presume ... could you send the tk backtrace?
did you receive my "[PATCH] only add window-bindings after it has been fully initialized to pdwindow"? there's a fix included in that.
it turned out to be a race-condition, between the initialization of Pd and Pd-gui.
another (simpler, better) fix can be found in the attachment: it's really only checking whether the menu is there before trying to disable entries within the menubar)
anyhow, here is the backtrace:
<snip> invalid command name ".menubar.file" invalid command name ".menubar.file" while executing "$menubar.file entryconfigure [_ "Save"] -state disabled" (procedure "::pd_menus::configure_for_pdwindow" line 6) invoked from within "::pd_menus::configure_for_pdwindow " (procedure "::pd_bindings::window_focusin" line 9) invoked from within "::pd_bindings::window_focusin .pdwindow" (command bound to event) </snip>
fgmasdr IOhannes
diff --git a/tcl/pd_menus.tcl b/tcl/pd_menus.tcl index 7157c5e..65f3174 100644 --- a/tcl/pd_menus.tcl +++ b/tcl/pd_menus.tcl @@ -50,6 +50,7 @@ proc ::pd_menus::create_menubar {} {
proc ::pd_menus::configure_for_pdwindow {} { variable menubar
- if { ![winfo exists $menubar] } { return } # these are meaningless for the Pd window, so disable them # File menu $menubar.file entryconfigure [_ "Save"] -state disabled
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
On 2010-07-13 02:40, Miller Puckette wrote:
Hi Hannes --
I didn't see the "[PATCH] only add window-bindings ..." - is it on Source- forge or somewhere else?
no, i used "git format-patch" and "git send-email" to send a number of patchsets to msp[]ucsd_edu (the address you used for committing to git). you should be able to apply them using "git am"
by now, i have about 7 changesets lying around on my harddisk. some of them are fixing race-conditions (like the one originally mentioned, but also a more severe one with the list of APIs), trying to get in patches used in the original Debian packages (some ifdefs for Debian/Hurd and Debian/kFreeBSD) and some small fixes.
so, in order to safe you from as much work as possible, what would be the best way to send you these patches? - use "git send-email" but with an email-address you are actually using? - commit patches to the sourceforge git repository, so you can pull them and then "git cherry-pick" them into your final versioin? - use the sourceforge tracker?
you choose.
fgmasdr IOhannes
Hi again --
I looked all over and still can't find it... maybe git isn't really sending them???
I think from my standpoint either the e-mail or SF patch tracker works fine.
About the race condition itself... the problem seems to be that there's no way to keep other Pd TK commands to get interpreted right after the pdtk_pd_startup, which migth depend on various stuff in the GUI having been initialized. I think the best way is to put the initialization stuff:
::pd_bindings::class_bindings ::pd_bindings::global_bindings ::pdtk_canvas::create_popup ::pdwindow::create_window ::pd_menus::create_menubar ::pd_menus::configure_for_pdwindow
inside pdtk_pd_startup. I'm worried about the lines:
load_startup_plugins open_filestoopen
which might depend on the path being set -- I don't think the "vwait" there works either, but the fix will be more complicated (but of course maybe your patch already addresses that, once I see it :)
M
"msp[]ucsd_edu" literally (instead of msp@ucsd.edu
On Tue, Jul 13, 2010 at 08:56:31AM +0200, IOhannes m zmoelnig wrote:
On 2010-07-13 02:40, Miller Puckette wrote:
Hi Hannes --
I didn't see the "[PATCH] only add window-bindings ..." - is it on Source- forge or somewhere else?
no, i used "git format-patch" and "git send-email" to send a number of patchsets to msp[]ucsd_edu (the address you used for committing to git). you should be able to apply them using "git am"
by now, i have about 7 changesets lying around on my harddisk. some of them are fixing race-conditions (like the one originally mentioned, but also a more severe one with the list of APIs), trying to get in patches used in the original Debian packages (some ifdefs for Debian/Hurd and Debian/kFreeBSD) and some small fixes.
so, in order to safe you from as much work as possible, what would be the best way to send you these patches?
- use "git send-email" but with an email-address you are actually using?
- commit patches to the sourceforge git repository, so you can pull them
and then "git cherry-pick" them into your final versioin?
- use the sourceforge tracker?
you choose.
fgmasdr IOhannes
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
Hey Miller,
Good news with the git repo! I think your plan makes sense. I would be willing to try doing future work on 0.43 in git if that makes it easier for you to sync those changes. Also, I noticed that you changed the startup order. Could you shed some light on why? I carefully tweaked that order to make sure things got started up in time for when they were needed.
Now that things are synced up there are two changes that should be included in 0.43:
- UTF-8 integration - renaming pd_bindings to window_bindings (both the file and the Tcl 'package')
.hc
On Jul 11, 2010, at 11:33 PM, Miller Puckette wrote:
o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
Unlike the svn version, ths git version isn't tested on all platformss. I _think: what I should do is "tag" the occasional commits that I've tested semi-thoroughly and also commit those to svn (the traditional place I've been uploading tested code to). So the svn code will always be clean and the git code variously clean and dirty depending on phase.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
cheers Miller
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
If nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea, which an individual may exclusively possess as long as he keeps it to himself; but the moment it is divulged, it forces itself into the possession of everyone, and the receiver cannot dispossess himself of it. - Thomas Jefferson
Hi Hans --
I think it should be easy for me to apply patches regardless of how you generate them... but it might easily be that the easiest way to work anyway will be to do git-style checkouts. I have to say that the git learning curve is steeper than for svn. But once you've got it working it's way easier to figure out what's going on.
I had problems with this order:
vwait ::wait4pd if {$::wait4pd eq "timeout"} { puts stderr [_ "ERROR: 'pd' never showed up, 'pd-gui' quitting!"] exit 2 } ::pd_bindings::class_bindings ::pd_bindings::global_bindings ::pd_menus::create_menubar ::pdtk_canvas::create_popup ::pdwindow::create_window ::pd_menus::configure_for_pdwindow
The "vwait" command ended up reading stuff from Pd (some printout and then a "pdtk_pd_dio" call) that the Pd window wasn't set up to deal with. The printout got dropped and the "dio" printed out a tcl error.
I had to try a few things before I got it "working"... and apparently it was't yet -- I'll look and see if Hannes's patch helps.
cheers Miller
On Mon, Jul 12, 2010 at 04:29:52PM -0400, Hans-Christoph Steiner wrote:
Hey Miller,
Good news with the git repo! I think your plan makes sense. I would be willing to try doing future work on 0.43 in git if that makes it easier for you to sync those changes. Also, I noticed that you changed the startup order. Could you shed some light on why? I carefully tweaked that order to make sure things got started up in time for when they were needed.
Now that things are synced up there are two changes that should be included in 0.43:
- UTF-8 integration
- renaming pd_bindings to window_bindings (both the file and the Tcl
'package')
.hc
On Jul 11, 2010, at 11:33 PM, Miller Puckette wrote:
o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
Unlike the svn version, ths git version isn't tested on all platformss. I _think: what I should do is "tag" the occasional commits that I've tested semi-thoroughly and also commit those to svn (the traditional place I've been uploading tested code to). So the svn code will always be clean and the git code variously clean and dirty depending on phase.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
cheers Miller
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
If nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea, which an individual may exclusively possess as long as he keeps it to himself; but the moment it is divulged, it forces itself into the possession of everyone, and the receiver cannot dispossess himself of it. - Thomas Jefferson
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
On Jul 11, 2010, at 11:33 PM, Miller Puckette wrote:
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such
Also, there were code contributions from Chun Lee, Federico Ferri, Bryan Jurish, dmotd, and perhaps others that I am forgetting.
.hc
----------------------------------------------------------------------------
"[W]e have invented the technology to eliminate scarcity, but we are deliberately throwing it away to benefit those who profit from scarcity." -John Gilmore
Hello! Thanks for the git repo, it's a much preferable way to follow Pd development for me..
Just for some feedback, here's my session trying to compile it..
$ ./autogen.sh autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 aclocal: couldn't open directory `m4': No such file or directory autoreconf: aclocal failed with exit status: 1
$ mkdir m4 $ ./autogen.sh .. snip.. success.
$ ./configure .. snip.. success.
$ make .. snip .. make[2]: *** No rule to make target `AppMain.tcl', needed by `all-am'. Stop. make[2]: Leaving directory `/home/sinclairs/projects/pd-vanilla/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/sinclairs/projects/pd-vanilla' make: *** [all] Error 2
It seems the src/Makefile.am file needs all the .tcl files, but these are actually in the "tcl" folder, not "src".
$ cp tcl/*.tcl src/ $ make .. snip .. Making all in extra make[2]: Entering directory `/home/sinclairs/projects/pd-vanilla/extra' make[2]: *** No rule to make target `all'. Stop.
Seems like there is no Makefile.am in "extra". Saw that extra/makefile exists.. got confused, so I edited Makefile.am to remove "extra" from SUBDIRS.
$ make .. snip.. SUCCESS.
I saw that I could cd to each of the subfolders under "extra" and make each of them individually, since they seem to include "extra/makefile" while filing in the NAME variable. I would maybe suggest renaming "makefile" to something like "external.mk", since the name "makefile" suggests to me that I should be able to run "make" in that folder. Or alternatively just going all the way with automake by providing Makefile.am in each of these folders. In any case if there is no Makefile.am in extra, it shouldn't be included in SUBDIRS..
Steve
On Sun, Jul 11, 2010 at 11:33 PM, Miller Puckette mpuckett@imusic1.ucsd.edu wrote:
o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
Unlike the svn version, ths git version isn't tested on all platformss. I _think: what I should do is "tag" the occasional commits that I've tested semi-thoroughly and also commit those to svn (the traditional place I've been uploading tested code to). So the svn code will always be clean and the git code variously clean and dirty depending on phase.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
cheers Miller
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
THanks for the feedback. I'm not sure what to do about the autobuild problems but mean to work on that. (Me, I use the old-fashioned cd src; ./configure; make method which I hope to maintain in parallel with the autobuild thing in order to avoid letting unintended dependencies creep in). The extra/makefile stuff belongs to the old-fashioned system. Maybe this just needs clearer documentation...
cheers Miller
On Wed, Jul 14, 2010 at 03:03:00PM -0400, Stephen Sinclair wrote:
Hello! Thanks for the git repo, it's a much preferable way to follow Pd development for me..
Just for some feedback, here's my session trying to compile it..
$ ./autogen.sh autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 aclocal: couldn't open directory `m4': No such file or directory autoreconf: aclocal failed with exit status: 1
$ mkdir m4 $ ./autogen.sh .. snip.. success.
$ ./configure .. snip.. success.
$ make .. snip .. make[2]: *** No rule to make target `AppMain.tcl', needed by `all-am'. Stop. make[2]: Leaving directory `/home/sinclairs/projects/pd-vanilla/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/sinclairs/projects/pd-vanilla' make: *** [all] Error 2
It seems the src/Makefile.am file needs all the .tcl files, but these are actually in the "tcl" folder, not "src".
$ cp tcl/*.tcl src/ $ make .. snip .. Making all in extra make[2]: Entering directory `/home/sinclairs/projects/pd-vanilla/extra' make[2]: *** No rule to make target `all'. Stop.
Seems like there is no Makefile.am in "extra". Saw that extra/makefile exists.. got confused, so I edited Makefile.am to remove "extra" from SUBDIRS.
$ make .. snip.. SUCCESS.
I saw that I could cd to each of the subfolders under "extra" and make each of them individually, since they seem to include "extra/makefile" while filing in the NAME variable. I would maybe suggest renaming "makefile" to something like "external.mk", since the name "makefile" suggests to me that I should be able to run "make" in that folder. Or alternatively just going all the way with automake by providing Makefile.am in each of these folders. In any case if there is no Makefile.am in extra, it shouldn't be included in SUBDIRS..
Steve
On Sun, Jul 11, 2010 at 11:33 PM, Miller Puckette mpuckett@imusic1.ucsd.edu wrote:
o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ??ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
Unlike the svn version, ths git version isn't tested on all platformss. ??I _think: what I should do is "tag" the occasional commits that I've tested semi-thoroughly and also commit those to svn (the traditional place I've been uploading tested code to). ??So the svn code will always be clean and the git code variously clean and dirty depending on phase.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
cheers Miller
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
Miller, you might consider taking the extra/Makefile I wrote, it is only a Makefile, and works on all platforms that use gcc. It is also integrated into the autotools build system I made in pd-gui-rewrite/ 0.43 branch.
As for the 'tcl' dir, that didn't exist when I did all the Makefile.am files, so things would have to be adapted to use the 'tcl' dir.
.hc
On Jul 14, 2010, at 3:08 PM, Miller Puckette wrote:
THanks for the feedback. I'm not sure what to do about the autobuild problems but mean to work on that. (Me, I use the old-fashioned cd src; ./configure; make method which I hope to maintain in parallel with the autobuild thing in order to avoid letting unintended dependencies creep in). The extra/makefile stuff belongs to the old-fashioned system. Maybe this just needs clearer documentation...
cheers Miller
On Wed, Jul 14, 2010 at 03:03:00PM -0400, Stephen Sinclair wrote:
Hello! Thanks for the git repo, it's a much preferable way to follow Pd development for me..
Just for some feedback, here's my session trying to compile it..
$ ./autogen.sh autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 aclocal: couldn't open directory `m4': No such file or directory autoreconf: aclocal failed with exit status: 1
$ mkdir m4 $ ./autogen.sh .. snip.. success.
$ ./configure .. snip.. success.
$ make .. snip .. make[2]: *** No rule to make target `AppMain.tcl', needed by `all- am'. Stop. make[2]: Leaving directory `/home/sinclairs/projects/pd-vanilla/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/sinclairs/projects/pd-vanilla' make: *** [all] Error 2
It seems the src/Makefile.am file needs all the .tcl files, but these are actually in the "tcl" folder, not "src".
$ cp tcl/*.tcl src/ $ make .. snip .. Making all in extra make[2]: Entering directory `/home/sinclairs/projects/pd-vanilla/ extra' make[2]: *** No rule to make target `all'. Stop.
Seems like there is no Makefile.am in "extra". Saw that extra/makefile exists.. got confused, so I edited Makefile.am to remove "extra" from SUBDIRS.
$ make .. snip.. SUCCESS.
I saw that I could cd to each of the subfolders under "extra" and make each of them individually, since they seem to include "extra/ makefile" while filing in the NAME variable. I would maybe suggest renaming "makefile" to something like "external.mk", since the name "makefile" suggests to me that I should be able to run "make" in that folder. Or alternatively just going all the way with automake by providing Makefile.am in each of these folders. In any case if there is no Makefile.am in extra, it shouldn't be included in SUBDIRS..
Steve
On Sun, Jul 11, 2010 at 11:33 PM, Miller Puckette mpuckett@imusic1.ucsd.edu wrote:
o Pd developers --
After much uncertainty how to proceed, I finally went ahead and 'pushed' my Pd git repository to sourceforgs -- available at
http://pure-data.git.sourceforge.net/git/gitweb.cgi?p=pure-data/pure-data
or to clone it to your machine (once you have git installed):
git clone \ ??ssh://YOURNAME@pure-data.git.sourceforge.net/gitroot/pure-data/pure-data
Unlike the svn version, ths git version isn't tested on all platformss. ??I _think: what I should do is "tag" the occasional commits that I've tested semi-thoroughly and also commit those to svn (the traditional place I've been uploading tested code to). ??So the svn code will always be clean and the git code variously clean and dirty depending on phase.
The git code is based on the Hans/IOhannes gui rewrite -- that alone is such a dramatic improvement that I'm thinking I should just do some audio testing and tuning now, and then call it 0.43.
cheers Miller
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
¡El pueblo unido jamás será vencido!
here is a patch for current git that should make the automake functional again.
note: when doing a "make install", the "pd" binary only get's installed into /usr/local/bin/pd (by default) and not into /usr/local/lib/pd/bin/pd; this is not a problem unless you try to start Pd from the gui-side (pd-gui will only look into /usr/local/lib/pd/bin/pd for the binary)
note: for extra/, i have build on the original makefile by miller, as it seems to be more extendable than hc's suggestion, which resulted in a rather tedious enumeration of all the files to be compiled in a centralized file.
that's all the issues i currently know of.
fgmasdr IOhannes
On Jul 15, 2010, at 5:19 AM, IOhannes m zmoelnig wrote:
here is a patch for current git that should make the automake functional again.
note: when doing a "make install", the "pd" binary only get's installed into /usr/local/bin/pd (by default) and not into /usr/local/lib/pd/bin/ pd; this is not a problem unless you try to start Pd from the gui-side (pd-gui will only look into /usr/local/lib/pd/bin/pd for the binary)
note: for extra/, i have build on the original makefile by miller, as it seems to be more extendable than hc's suggestion, which resulted in a rather tedious enumeration of all the files to be compiled in a centralized file.
That rather tedious enumeration is something that rarely changes and provides error checking where automatic enumeration does not. A build system should know if any of the relevant files are missing, and it should ignore all non-relevant files. Therefore tedious enumeration is often the best practice.
.hc
that's all the issues i currently know of.
fgmasdr IOhannes
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
"Making boring techno music is really easy with modern tools, but with live coding, boring techno is much harder." - Chris McCormick
On 2010-07-15 16:08, Hans-Christoph Steiner wrote:
That rather tedious enumeration is something that rarely changes and provides error checking where automatic enumeration does not. A build system should know if any of the relevant files are missing, and it should ignore all non-relevant files. Therefore tedious enumeration is often the best practice.
sure sometimes this is true. in other cases, it boils down to a human-written list that contains files that were non-relevant from the beginning...
anyhow, i'm not so objecting enumeration, but i'm very much objecting enumeration of files for extra/pd~/ in extra/Makefile. shouldn't they be enumerated in extra/pd~/Makefile?
fgma IOhannes
On Jul 15, 2010, at 10:13 AM, IOhannes m zmoelnig wrote:
On 2010-07-15 16:08, Hans-Christoph Steiner wrote:
That rather tedious enumeration is something that rarely changes and provides error checking where automatic enumeration does not. A build system should know if any of the relevant files are missing, and it should ignore all non-relevant files. Therefore tedious enumeration is often the best practice.
sure sometimes this is true. in other cases, it boils down to a human-written list that contains files that were non-relevant from the beginning...
Which files are non-relevant that are included in extra/Makefile?
anyhow, i'm not so objecting enumeration, but i'm very much objecting enumeration of files for extra/pd~/ in extra/Makefile. shouldn't they be enumerated in extra/pd~/Makefile?
Or how about making 'extra' have a flat directory structure, that would also simplify things. The symlinking in the existing extra makefiles is horrendous, IMHO. I've wasted too much time on those kludges.
.hc
----------------------------------------------------------------------------
Looking at things from a more basic level, you can come up with a more direct solution... It may sound small in theory, but it in practice, it can change entire economies. - Amy Smith
On Jul 15, 2010, at 10:31 AM, IOhannes zmölnig wrote:
On 07/15/2010 04:25 PM, Hans-Christoph Steiner wrote:
Which files are non-relevant that are included in extra/Makefile?
pd~/z.pd
Remove it from extra/Makefile.
.hc
----------------------------------------------------------------------------
kill your television
this is a little addendum to make miller's inclusion of the automake-based build system actually work.
autogen.sh: now creates ./m4 directory if necessary Makefile.am: include tcl tcl/Makefile: installs tcl-files into .../pd/tcl/ po/Makefile: fixed the paths (tcl-files no longer in ./src) src/Makefile: removed tcl-files (no longer here) extra/expr~/makefile: fixed typo in the clean target extra/makefile: added targets to be called directly from ./extra
handcrafted (non-automake) Makefiles now have supprt for rudimentary standard targets, like "install". --- Makefile.am | 3 ++- autogen.sh | 7 +++++++ extra/expr~/makefile | 9 ++++----- extra/makefile | 35 +++++++++++++++++++++++++++++++++-- po/Makefile | 22 ++++++++++++---------- src/Makefile.am | 16 ++++------------ tcl/Makefile | 40 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 102 insertions(+), 30 deletions(-) create mode 100644 tcl/Makefile
diff --git a/Makefile.am b/Makefile.am index 2cd7bf1..7a626d6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,7 +23,7 @@ EXTRA_DIST = LICENSE.txt README.txt INSTALL.txt SUBDIRS = $(EXTRA_SUBDIRS) src extra man
# subdirs that are always included in the dist, etc. -DIST_SUBDIRS = asio extra man po portaudio portmidi src +DIST_SUBDIRS = asio extra man po portaudio portmidi src tcl
# bin and tcl are symlinks for compatibility with the Pd-vanilla source tree. # Symlinks don't work on Windows/MinGW but they do on Cygwin. @@ -56,6 +56,7 @@ clean-local:
install-data-local: make libpddir=$(libpddir) -C po install + make libpddir=$(libpddir) -C tcl install make libpddir=$(libpddir) -C extra install $(INSTALL) -d $(DESTDIR)$(libpddir)/startup $(INSTALL) -d $(DESTDIR)$(libpddir)/startup/disabled diff --git a/autogen.sh b/autogen.sh index 582ecb1..a57907f 100755 --- a/autogen.sh +++ b/autogen.sh @@ -2,6 +2,13 @@
PATH=/sw/bin:$PATH
+PWD=${0%/*} + + +## git cannot really handle empty directories +## so let's create the missing ones +mkdir -p ${PWD}/m4 + case `uname -s` in MINGW*) # autoreconf doesn't always work on MinGW diff --git a/extra/expr~/makefile b/extra/expr~/makefile index 892b0a7..5dee147 100644 --- a/extra/expr~/makefile +++ b/extra/expr~/makefile @@ -6,7 +6,7 @@ install: install_linux
clean: clean_linux
-PDEXTERN=/usr/local/lib/pd/externs +PDEXTERN=/usr/local/lib/pd/extra
# ----------------------- NT -----------------------
@@ -109,12 +109,11 @@ install_linux: install expr.pd_linux $(PDEXTERN) rm -f $(PDEXTERN)/expr~.pd_linux rm -f $(PDEXTERN)/fexpr~.pd_linux - cd $(PDEXTERN); \ - -ln -s expr.pd_linux expr~.pd_linux - -ln -s expr.pd_linux fexpr~.pd_linux + cd $(PDEXTERN); ln -s expr.pd_linux expr~.pd_linux + cd $(PDEXTERN); ln -s expr.pd_linux fexpr~.pd_linux
-linux_clean: +clean_linux: rm -f *.pd_linux_o *.o
# ----------------------- MAC OSX ----------------------- diff --git a/extra/makefile b/extra/makefile index ddbba77..b176f83 100644 --- a/extra/makefile +++ b/extra/makefile @@ -1,3 +1,10 @@ +# this is the UNIX-style complicated layout dir, simple goes to $(prefix)/po +prefix = /usr/local +libpddir = $(prefix)/lib/pd + +EXTERNALS=bonk~ choice expr~ fiddle~ loop~ lrshift~ pd~ pique sigmund~ stdout +.PHONY: $(EXTERNALS) + current: pd_linux
# ----------------------- NT ----------------------- @@ -63,5 +70,29 @@ DARWINCFLAGS = -DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \
# ----------------------------------------------------------
-clean: - rm -f *.o *.pd_* so_locations +distclean clean: clean-externals + rm -f *.o *.pd_* *.l_* *.d_* *.m_* so_locations + +# ---------------------------------------------------------- +# ---------------------------------------------------------- + +$(EXTERNALS): + if test -d $@; then make -C $@; fi + +$(EXTERNALS:%=%-clean): + if test -d $(@:-clean=); then make -C $(@:-clean=) clean; fi + +$(EXTERNALS:%=%-install): + if test -d $(@:-install=); then make -C $(@:-install=) install; fi + +all: $(EXTERNALS) + +clean-externals: $(EXTERNALS:%=%-clean) + +install: $(EXTERNALS:%=%-install) + install -d $(DESTDIR)$(libpddir)/extra/$(NAME) + install -m644 -p *.*_* $(DESTDIR)$(libpddir)/extra/$(NAME) + install -m644 -p *.pd $(DESTDIR)$(libpddir)/extra/$(NAME) + +test: + @echo prefix: $(prefix) diff --git a/po/Makefile b/po/Makefile index 7a91a7c..9ffd2ff 100644 --- a/po/Makefile +++ b/po/Makefile @@ -8,15 +8,17 @@ ifeq ($(UNAME),Darwin) endif
# these are the files to search for localization strings -SOURCES = ../src/AppMain.tcl ../src/apple_events.tcl ../src/dialog_array.tcl \ - ../src/dialog_audio.tcl ../src/dialog_canvas.tcl ../src/dialog_data.tcl \ - ../src/dialog_find.tcl ../src/dialog_font.tcl ../src/dialog_gatom.tcl \ - ../src/dialog_iemgui.tcl ../src/dialog_message.tcl ../src/dialog_midi.tcl \ - ../src/dialog_path.tcl ../src/dialog_startup.tcl ../src/helpbrowser.tcl \ - ../src/opt_parser.tcl ../src/pd-gui.tcl ../src/pd_bindings.tcl \ - ../src/pd_connect.tcl ../src/pd_menucommands.tcl ../src/pd_menus.tcl \ - ../src/pdtk_canvas.tcl ../src/pdtk_text.tcl ../src/pdwindow.tcl \ - ../src/scrollbox.tcl ../src/scrollboxwindow.tcl ../src/wheredoesthisgo.tcl +TCLSOURCES = AppMain.tcl apple_events.tcl dialog_array.tcl \ + dialog_audio.tcl dialog_canvas.tcl dialog_data.tcl \ + dialog_find.tcl dialog_font.tcl dialog_gatom.tcl \ + dialog_iemgui.tcl dialog_message.tcl dialog_midi.tcl \ + dialog_path.tcl dialog_startup.tcl helpbrowser.tcl \ + opt_parser.tcl pd-gui.tcl pd_bindings.tcl \ + pd_connect.tcl pd_menucommands.tcl pd_menus.tcl \ + pdtk_canvas.tcl pdtk_text.tcl pdwindow.tcl \ + scrollbox.tcl scrollboxwindow.tcl wheredoesthisgo.tcl + +SOURCES=$(addprefix ../tcl/, $(TCLSOURCES))
# these are the supported languages, ALL_LINGUAS = af az be bg de el en_ca eu fr gu he hi hu it pa pt_br pt_pt sq sv vi @@ -69,7 +71,7 @@ distdir: install -m644 -p $(TEMPLATE) $(distdir) install -m644 -p $(POFILES) $(distdir)
-distclean: clean +maintainer-clean distclean: clean
clean: -rm -f -- $(MSGFILES) diff --git a/src/Makefile.am b/src/Makefile.am index 4161a06..60ca008 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,20 +30,12 @@ pd_SOURCES = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c \ x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \ x_time.c x_acoustics.c x_net.c x_qlist.c x_gui.c x_list.c d_soundfile.c
-TCL_FILES = AppMain.tcl apple_events.tcl dialog_array.tcl dialog_audio.tcl \ - dialog_canvas.tcl dialog_data.tcl dialog_find.tcl dialog_font.tcl \ - dialog_gatom.tcl dialog_iemgui.tcl dialog_message.tcl dialog_midi.tcl \ - dialog_path.tcl dialog_startup.tcl helpbrowser.tcl opt_parser.tcl \ - pd-gui.tcl pd_bindings.tcl pd_connect.tcl pd_menucommands.tcl pd_menus.tcl \ - pdtk_canvas.tcl pdtk_text.tcl pdwindow.tcl pkgIndex.tcl scrollbox.tcl \ - scrollboxwindow.tcl wheredoesthisgo.tcl - include_HEADERS = m_pd.h m_imp.h g_canvas.h s_stuff.h noinst_HEADERS = g_all_guis.h s_audio_alsa.h s_audio_pablio.h s_audio_paring.h
# we want these in the dist tarball -EXTRA_DIST = CHANGELOG.txt notes.txt makefile.mingw $(TCL_FILES) +EXTRA_DIST = CHANGELOG.txt notes.txt makefile.mingw
# configurations per library if ALSA @@ -111,7 +103,7 @@ if LINUX pd_CFLAGS += -DUNIX
libpdbindir = $(pkglibdir)/bin -libpdbin_DATA = $(TCL_FILES) +libpdbin_DATA = # this flag has to have a single leading "-" for libtool, even though ld uses # --export-dynamic, and libtool sends -Wl,--export-dynamic to ld... pd_LDFLAGS += -export-dynamic @@ -122,14 +114,14 @@ endif if MACOSX LIBS += -framework Carbon pd_CFLAGS += -DMACOSX #kludge, should use auto macro __APPLE__ -bin_SCRIPTS = $(TCL_FILES) +bin_SCRIPTS = endif
if WINDOWS LIBS += -lwsock32 -lwinmm -lole32 pd_CFLAGS += -DUSEAPI_MMIO -DPD_INTERNAL pd_SOURCES += s_audio_mmio.c s_midi_mmio.c -bin_SCRIPTS = $(TCL_FILES) +bin_SCRIPTS = endif
# Cygwin is not _WIN32 and MSW vaguely means the same thing, so MINGW only diff --git a/tcl/Makefile b/tcl/Makefile new file mode 100644 index 0000000..2e26168 --- /dev/null +++ b/tcl/Makefile @@ -0,0 +1,40 @@ +# this is the UNIX-style complicated layout dir, simple goes to $(prefix)/po +libpddir = $(prefix)/lib/pd + +# these are the files to search for localization strings +APPSOURCES = pd-gui.tcl +MODSOURCES = AppMain.tcl apple_events.tcl dialog_array.tcl \ + dialog_audio.tcl dialog_canvas.tcl dialog_data.tcl \ + dialog_find.tcl dialog_font.tcl dialog_gatom.tcl \ + dialog_iemgui.tcl dialog_message.tcl dialog_midi.tcl \ + dialog_path.tcl dialog_startup.tcl helpbrowser.tcl \ + opt_parser.tcl pd_bindings.tcl \ + pd_connect.tcl pd_menucommands.tcl pd_menus.tcl \ + pdtk_canvas.tcl pdtk_text.tcl pdwindow.tcl \ + scrollbox.tcl scrollboxwindow.tcl wheredoesthisgo.tcl \ + pkgIndex.tcl + +SOURCES = $(APPSOURCES) $(MODSOURCES) + +.SUFFIXES = .tcl +.PHONY = all install clean + +# nothing todo +all: + +install: $(MSGFILES) + install -d $(DESTDIR)$(libpddir)/tcl + install -p $(APPSOURCES) $(DESTDIR)$(libpddir)/tcl + install -m644 -p $(MODSOURCES) $(DESTDIR)$(libpddir)/tcl + +distdir: + install -m644 -p Makefile $(distdir) + install -p $(APPSOURCES) $(distdir) + install -m644 -p $(MODSOURCES) $(distdir) + +maintainer-clean distclean: clean + +clean: + -rm -f -- $(SOURCES:=~) + +
FYI: if you remove all makefiles in 'extra' you can replace it with the extra/Makefile from pd-gui-rewrite-0.43 which builds all objects in 'extra'. It has the added advantage of working on GNU/Linux, Mac OS X, MinGW and Cygwin, plus is based on the Makefile template for libraries. The existing 'extra' makefiles have always been problematic when it comes to anything but GNU/Linux.
.hc
On Jul 15, 2010, at 5:19 AM, IOhannes m zmoelnig wrote:
this is a little addendum to make miller's inclusion of the automake- based build system actually work.
autogen.sh: now creates ./m4 directory if necessary Makefile.am: include tcl tcl/Makefile: installs tcl-files into .../pd/tcl/ po/Makefile: fixed the paths (tcl-files no longer in ./src) src/Makefile: removed tcl-files (no longer here) extra/expr~/makefile: fixed typo in the clean target extra/makefile: added targets to be called directly from ./extra
handcrafted (non-automake) Makefiles now have supprt for rudimentary standard targets, like "install".
Makefile.am | 3 ++- autogen.sh | 7 +++++++ extra/expr~/makefile | 9 ++++----- extra/makefile | 35 +++++++++++++++++++++++++++++++++-- po/Makefile | 22 ++++++++++++---------- src/Makefile.am | 16 ++++------------ tcl/Makefile | 40 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 102 insertions(+), 30 deletions(-) create mode 100644 tcl/Makefile
diff --git a/Makefile.am b/Makefile.am index 2cd7bf1..7a626d6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,7 +23,7 @@ EXTRA_DIST = LICENSE.txt README.txt INSTALL.txt SUBDIRS = $(EXTRA_SUBDIRS) src extra man
# subdirs that are always included in the dist, etc. -DIST_SUBDIRS = asio extra man po portaudio portmidi src +DIST_SUBDIRS = asio extra man po portaudio portmidi src tcl
# bin and tcl are symlinks for compatibility with the Pd-vanilla source tree. # Symlinks don't work on Windows/MinGW but they do on Cygwin. @@ -56,6 +56,7 @@ clean-local:
install-data-local: make libpddir=$(libpddir) -C po install
- make libpddir=$(libpddir) -C tcl install make libpddir=$(libpddir) -C extra install $(INSTALL) -d $(DESTDIR)$(libpddir)/startup $(INSTALL) -d $(DESTDIR)$(libpddir)/startup/disabled
diff --git a/autogen.sh b/autogen.sh index 582ecb1..a57907f 100755 --- a/autogen.sh +++ b/autogen.sh @@ -2,6 +2,13 @@
PATH=/sw/bin:$PATH
+PWD=${0%/*}
+## git cannot really handle empty directories +## so let's create the missing ones +mkdir -p ${PWD}/m4
case `uname -s` in MINGW*) # autoreconf doesn't always work on MinGW diff --git a/extra/expr~/makefile b/extra/expr~/makefile index 892b0a7..5dee147 100644 --- a/extra/expr~/makefile +++ b/extra/expr~/makefile @@ -6,7 +6,7 @@ install: install_linux
clean: clean_linux
-PDEXTERN=/usr/local/lib/pd/externs +PDEXTERN=/usr/local/lib/pd/extra
# ----------------------- NT -----------------------
@@ -109,12 +109,11 @@ install_linux: install expr.pd_linux $(PDEXTERN) rm -f $(PDEXTERN)/expr~.pd_linux rm -f $(PDEXTERN)/fexpr~.pd_linux
- cd $(PDEXTERN); \
- -ln -s expr.pd_linux expr~.pd_linux
- -ln -s expr.pd_linux fexpr~.pd_linux
- cd $(PDEXTERN); ln -s expr.pd_linux expr~.pd_linux
- cd $(PDEXTERN); ln -s expr.pd_linux fexpr~.pd_linux
-linux_clean: +clean_linux: rm -f *.pd_linux_o *.o
# ----------------------- MAC OSX ----------------------- diff --git a/extra/makefile b/extra/makefile index ddbba77..b176f83 100644 --- a/extra/makefile +++ b/extra/makefile @@ -1,3 +1,10 @@ +# this is the UNIX-style complicated layout dir, simple goes to $ (prefix)/po +prefix = /usr/local +libpddir = $(prefix)/lib/pd
+EXTERNALS=bonk~ choice expr~ fiddle~ loop~ lrshift~ pd~ pique sigmund~ stdout +.PHONY: $(EXTERNALS)
current: pd_linux
# ----------------------- NT ----------------------- @@ -63,5 +70,29 @@ DARWINCFLAGS = -DPD -O2 -Wall -W -Wshadow - Wstrict-prototypes \
# ----------------------------------------------------------
-clean:
- rm -f *.o *.pd_* so_locations
+distclean clean: clean-externals
- rm -f *.o *.pd_* *.l_* *.d_* *.m_* so_locations
+# ---------------------------------------------------------- +# ----------------------------------------------------------
+$(EXTERNALS):
- if test -d $@; then make -C $@; fi
+$(EXTERNALS:%=%-clean):
- if test -d $(@:-clean=); then make -C $(@:-clean=) clean; fi
+$(EXTERNALS:%=%-install):
- if test -d $(@:-install=); then make -C $(@:-install=) install; fi
+all: $(EXTERNALS)
+clean-externals: $(EXTERNALS:%=%-clean)
+install: $(EXTERNALS:%=%-install)
- install -d $(DESTDIR)$(libpddir)/extra/$(NAME)
- install -m644 -p *.*_* $(DESTDIR)$(libpddir)/extra/$(NAME)
- install -m644 -p *.pd $(DESTDIR)$(libpddir)/extra/$(NAME)
+test:
- @echo prefix: $(prefix)
diff --git a/po/Makefile b/po/Makefile index 7a91a7c..9ffd2ff 100644 --- a/po/Makefile +++ b/po/Makefile @@ -8,15 +8,17 @@ ifeq ($(UNAME),Darwin) endif
# these are the files to search for localization strings -SOURCES = ../src/AppMain.tcl ../src/apple_events.tcl ../src/ dialog_array.tcl \
- ../src/dialog_audio.tcl ../src/dialog_canvas.tcl ../src/
dialog_data.tcl \
- ../src/dialog_find.tcl ../src/dialog_font.tcl ../src/
dialog_gatom.tcl \
- ../src/dialog_iemgui.tcl ../src/dialog_message.tcl ../src/
dialog_midi.tcl \
- ../src/dialog_path.tcl ../src/dialog_startup.tcl ../src/
helpbrowser.tcl \
- ../src/opt_parser.tcl ../src/pd-gui.tcl ../src/pd_bindings.tcl \
- ../src/pd_connect.tcl ../src/pd_menucommands.tcl ../src/
pd_menus.tcl \
- ../src/pdtk_canvas.tcl ../src/pdtk_text.tcl ../src/pdwindow.tcl \
- ../src/scrollbox.tcl ../src/scrollboxwindow.tcl ../src/
wheredoesthisgo.tcl +TCLSOURCES = AppMain.tcl apple_events.tcl dialog_array.tcl \
- dialog_audio.tcl dialog_canvas.tcl dialog_data.tcl \
- dialog_find.tcl dialog_font.tcl dialog_gatom.tcl \
- dialog_iemgui.tcl dialog_message.tcl dialog_midi.tcl \
- dialog_path.tcl dialog_startup.tcl helpbrowser.tcl \
- opt_parser.tcl pd-gui.tcl pd_bindings.tcl \
- pd_connect.tcl pd_menucommands.tcl pd_menus.tcl \
- pdtk_canvas.tcl pdtk_text.tcl pdwindow.tcl \
- scrollbox.tcl scrollboxwindow.tcl wheredoesthisgo.tcl
+SOURCES=$(addprefix ../tcl/, $(TCLSOURCES))
# these are the supported languages, ALL_LINGUAS = af az be bg de el en_ca eu fr gu he hi hu it pa pt_br pt_pt sq sv vi @@ -69,7 +71,7 @@ distdir: install -m644 -p $(TEMPLATE) $(distdir) install -m644 -p $(POFILES) $(distdir)
-distclean: clean +maintainer-clean distclean: clean
clean: -rm -f -- $(MSGFILES) diff --git a/src/Makefile.am b/src/Makefile.am index 4161a06..60ca008 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -30,20 +30,12 @@ pd_SOURCES = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c \ x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \ x_time.c x_acoustics.c x_net.c x_qlist.c x_gui.c x_list.c d_soundfile.c
-TCL_FILES = AppMain.tcl apple_events.tcl dialog_array.tcl dialog_audio.tcl \
- dialog_canvas.tcl dialog_data.tcl dialog_find.tcl dialog_font.tcl \
- dialog_gatom.tcl dialog_iemgui.tcl dialog_message.tcl
dialog_midi.tcl \
- dialog_path.tcl dialog_startup.tcl helpbrowser.tcl opt_parser.tcl \
- pd-gui.tcl pd_bindings.tcl pd_connect.tcl pd_menucommands.tcl
pd_menus.tcl \
- pdtk_canvas.tcl pdtk_text.tcl pdwindow.tcl pkgIndex.tcl
scrollbox.tcl \
- scrollboxwindow.tcl wheredoesthisgo.tcl
include_HEADERS = m_pd.h m_imp.h g_canvas.h s_stuff.h noinst_HEADERS = g_all_guis.h s_audio_alsa.h s_audio_pablio.h s_audio_paring.h
# we want these in the dist tarball -EXTRA_DIST = CHANGELOG.txt notes.txt makefile.mingw $(TCL_FILES) +EXTRA_DIST = CHANGELOG.txt notes.txt makefile.mingw
# configurations per library if ALSA @@ -111,7 +103,7 @@ if LINUX pd_CFLAGS += -DUNIX
libpdbindir = $(pkglibdir)/bin -libpdbin_DATA = $(TCL_FILES) +libpdbin_DATA = # this flag has to have a single leading "-" for libtool, even though ld uses # --export-dynamic, and libtool sends -Wl,--export-dynamic to ld... pd_LDFLAGS += -export-dynamic @@ -122,14 +114,14 @@ endif if MACOSX LIBS += -framework Carbon pd_CFLAGS += -DMACOSX #kludge, should use auto macro __APPLE__ -bin_SCRIPTS = $(TCL_FILES) +bin_SCRIPTS = endif
if WINDOWS LIBS += -lwsock32 -lwinmm -lole32 pd_CFLAGS += -DUSEAPI_MMIO -DPD_INTERNAL pd_SOURCES += s_audio_mmio.c s_midi_mmio.c -bin_SCRIPTS = $(TCL_FILES) +bin_SCRIPTS = endif
# Cygwin is not _WIN32 and MSW vaguely means the same thing, so MINGW only diff --git a/tcl/Makefile b/tcl/Makefile new file mode 100644 index 0000000..2e26168 --- /dev/null +++ b/tcl/Makefile @@ -0,0 +1,40 @@ +# this is the UNIX-style complicated layout dir, simple goes to $ (prefix)/po +libpddir = $(prefix)/lib/pd
+# these are the files to search for localization strings +APPSOURCES = pd-gui.tcl +MODSOURCES = AppMain.tcl apple_events.tcl dialog_array.tcl \
- dialog_audio.tcl dialog_canvas.tcl dialog_data.tcl \
- dialog_find.tcl dialog_font.tcl dialog_gatom.tcl \
- dialog_iemgui.tcl dialog_message.tcl dialog_midi.tcl \
- dialog_path.tcl dialog_startup.tcl helpbrowser.tcl \
- opt_parser.tcl pd_bindings.tcl \
- pd_connect.tcl pd_menucommands.tcl pd_menus.tcl \
- pdtk_canvas.tcl pdtk_text.tcl pdwindow.tcl \
- scrollbox.tcl scrollboxwindow.tcl wheredoesthisgo.tcl \
- pkgIndex.tcl
+SOURCES = $(APPSOURCES) $(MODSOURCES)
+.SUFFIXES = .tcl +.PHONY = all install clean
+# nothing todo +all:
+install: $(MSGFILES)
- install -d $(DESTDIR)$(libpddir)/tcl
- install -p $(APPSOURCES) $(DESTDIR)$(libpddir)/tcl
- install -m644 -p $(MODSOURCES) $(DESTDIR)$(libpddir)/tcl
+distdir:
- install -m644 -p Makefile $(distdir)
- install -p $(APPSOURCES) $(distdir)
- install -m644 -p $(MODSOURCES) $(distdir)
+maintainer-clean distclean: clean
+clean:
- -rm -f -- $(SOURCES:=~)
-- 1.7.1
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
There is no way to peace, peace is the way. -A.J. Muste
On 2010-07-15 16:06, Hans-Christoph Steiner wrote:
FYI: if you remove all makefiles in 'extra' you can replace it with the extra/Makefile from pd-gui-rewrite-0.43 which builds all objects in 'extra'. It has the added advantage of working on GNU/Linux, Mac OS X, MinGW and Cygwin, plus is based on the Makefile template for libraries. The existing 'extra' makefiles have always been problematic when it comes to anything but GNU/Linux.
true. however the extra/Makefile from pd-gui-rewrite is again a big monolithic chunk with all files (and by-now non-existant files as well) enumerated. it reminds me of the old externs/Makefile for pd-extended. that's one reason why i chose not to use that.
fgmasdr IOhannes
On Jul 15, 2010, at 10:10 AM, IOhannes m zmoelnig wrote:
On 2010-07-15 16:06, Hans-Christoph Steiner wrote:
FYI: if you remove all makefiles in 'extra' you can replace it with the extra/Makefile from pd-gui-rewrite-0.43 which builds all objects in 'extra'. It has the added advantage of working on GNU/Linux, Mac OS X, MinGW and Cygwin, plus is based on the Makefile template for libraries. The existing 'extra' makefiles have always been problematic when it comes to anything but GNU/Linux.
true. however the extra/Makefile from pd-gui-rewrite is again a big monolithic chunk with all files (and by-now non-existant files as well) enumerated. it reminds me of the old externs/Makefile for pd-extended. that's one reason why i chose not to use that.
fgmasdr IOhannes
One good feature that a build system should provide is to notify you when files are missing. So if files have been removed from pd/extra in 0.43, then the build system should tell you that. Then you should edit the Makefile so it has an up-to-date list of relevant files.
.hc
----------------------------------------------------------------------------
Another fly in the ointment -- I use the extra/*/makefile s when compiling for windows under Visual C (the ugly "nmake" program) -- and haven't been able to figure out how to do that from a central spot yet.
cheers Miller
On Thu, Jul 15, 2010 at 10:27:17AM -0400, Hans-Christoph Steiner wrote:
On Jul 15, 2010, at 10:10 AM, IOhannes m zmoelnig wrote:
On 2010-07-15 16:06, Hans-Christoph Steiner wrote:
FYI: if you remove all makefiles in 'extra' you can replace it with the extra/Makefile from pd-gui-rewrite-0.43 which builds all objects in 'extra'. It has the added advantage of working on GNU/Linux, Mac OS X, MinGW and Cygwin, plus is based on the Makefile template for libraries. The existing 'extra' makefiles have always been problematic when it comes to anything but GNU/Linux.
true. however the extra/Makefile from pd-gui-rewrite is again a big monolithic chunk with all files (and by-now non-existant files as well) enumerated. it reminds me of the old externs/Makefile for pd-extended. that's one reason why i chose not to use that.
fgmasdr IOhannes
One good feature that a build system should provide is to notify you when files are missing. So if files have been removed from pd/extra in 0.43, then the build system should tell you that. Then you should edit the Makefile so it has an up-to-date list of relevant files.
.hc
http://at.or.at/hans/
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
I think the nmake files should be separately maintained and named accordingly, and only have nmake content in them, like the pd/src/ makefile.nt. But I think 'makefile.nt' isn't a good name, it should be like 'makefile.windows' or 'makefile.msvc' or 'makefile.nmake'.
From my experience, makefiles that mix proper make and nmake stuff are just a massive headache. Or maybe M$ is just a massive headache, so I want to wrap it in GNU. Just a spoonful of sugar makes the "medicine" go down...
.hc
On Jul 15, 2010, at 11:33 AM, Miller Puckette wrote:
Another fly in the ointment -- I use the extra/*/makefile s when compiling for windows under Visual C (the ugly "nmake" program) -- and haven't been able to figure out how to do that from a central spot yet.
cheers Miller
On Thu, Jul 15, 2010 at 10:27:17AM -0400, Hans-Christoph Steiner wrote:
On Jul 15, 2010, at 10:10 AM, IOhannes m zmoelnig wrote:
On 2010-07-15 16:06, Hans-Christoph Steiner wrote:
FYI: if you remove all makefiles in 'extra' you can replace it with the extra/Makefile from pd-gui-rewrite-0.43 which builds all objects in 'extra'. It has the added advantage of working on GNU/Linux, Mac OS X, MinGW and Cygwin, plus is based on the Makefile template for libraries. The existing 'extra' makefiles have always been problematic when it comes to anything but GNU/Linux.
true. however the extra/Makefile from pd-gui-rewrite is again a big monolithic chunk with all files (and by-now non-existant files as well) enumerated. it reminds me of the old externs/Makefile for pd-extended. that's one reason why i chose not to use that.
fgmasdr IOhannes
One good feature that a build system should provide is to notify you when files are missing. So if files have been removed from pd/extra in 0.43, then the build system should tell you that. Then you should edit the Makefile so it has an up-to-date list of relevant files.
.hc
http://at.or.at/hans/
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
----------------------------------------------------------------------------
I spent 33 years and four months in active military service and during that period I spent most of my time as a high class muscle man for Big Business, for Wall Street and the bankers. - General Smedley Butler
On 07/15/2010 06:03 PM, Hans-Christoph Steiner wrote:
I think the nmake files should be separately maintained and named accordingly, and only have nmake content in them, like the pd/src/makefile.nt. But I think 'makefile.nt' isn't a good name, it should be like 'makefile.windows' or 'makefile.msvc' or 'makefile.nmake'.
what about "nmakefile"
gfmsdr IOhannes
On Jul 15, 2010, at 12:04 PM, IOhannes zmölnig wrote:
On 07/15/2010 06:03 PM, Hans-Christoph Steiner wrote:
I think the nmake files should be separately maintained and named accordingly, and only have nmake content in them, like the pd/src/makefile.nt. But I think 'makefile.nt' isn't a good name, it should be like 'makefile.windows' or 'makefile.msvc' or 'makefile.nmake'.
what about "nmakefile"
Sounds like it makes a lot more sense.
.hc
----------------------------------------------------------------------------
On 07/12/2010 05:33 AM, Miller Puckette wrote:
o Pd developers --
is it only me that cannot open files via "open"?
i get: <snip> bad option "-cursor": must be bbox, cget, compare, configure, count, debug, delete, dlineinfo, dump, edit, get, image, index, insert, mark, peer, replace, scan, search, see, tag, window, xview, or yview bad option "-cursor": must be bbox, cget, compare, configure, count, debug, delete, dlineinfo, dump, edit, get, image, index, insert, mark, peer, replace, scan, search, see, tag, window, xview, or yview while executing ".pdwindow.text -cursor watch" (procedure "::pdtk_canvas::started_loading_file" line 3) invoked from within "::pdtk_canvas::started_loading_file [format "%s/%s" $basename $filename]" (procedure "open_file" line 5) invoked from within "open_file $filename" (procedure "menu_open" line 6) invoked from within "menu_open" (command bound to event) </snip>
when i remove the offending line, i get
<snip> bad window path name ".pdwindow.tcl.entry" bad window path name ".pdwindow.tcl.entry" while executing "grab set -global .pdwindow.tcl.entry" (procedure "::pdtk_canvas::started_loading_file" line 4) invoked from within "::pdtk_canvas::started_loading_file [format "%s/%s" $basename $filename]" (procedure "open_file" line 5) invoked from within "open_file $filename" (procedure "menu_open" line 6) invoked from within "menu_open" (command bound to event) </snip>
when i turn on the tcl-prompt, it finally succeeds in opening the file.
mfgr IOhannes
On 15/07/10 17:08, IOhannes zmölnig wrote:
On 07/12/2010 05:33 AM, Miller Puckette wrote:
o Pd developers --
is it only me that cannot open files via "open"?
No, I got this error too. Command line -open is what I used so far, but obviously unsatisfactory.
i get:
<snip> bad option "-cursor":
Claude
Sure enough... will debug.
thanks M ` On Thu, Jul 15, 2010 at 08:18:41PM +0100, Claude Heiland-Allen wrote:
On 15/07/10 17:08, IOhannes zm?lnig wrote:
On 07/12/2010 05:33 AM, Miller Puckette wrote:
o Pd developers --
is it only me that cannot open files via "open"?
No, I got this error too. Command line -open is what I used so far, but obviously unsatisfactory.
i get:
<snip> bad option "-cursor":
Claude
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
Should be fixed now (in git repo)
thanks Miller
On Thu, Jul 15, 2010 at 12:38:59PM -0700, Miller Puckette wrote:
Sure enough... will debug.
thanks M ` On Thu, Jul 15, 2010 at 08:18:41PM +0100, Claude Heiland-Allen wrote:
On 15/07/10 17:08, IOhannes zm?lnig wrote:
On 07/12/2010 05:33 AM, Miller Puckette wrote:
o Pd developers --
is it only me that cannot open files via "open"?
No, I got this error too. Command line -open is what I used so far, but obviously unsatisfactory.
i get:
<snip> bad option "-cursor":
Claude
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev
Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev