Currently the Gambit makefiles support these targets (and more):
% make mostlyclean Removes all the files that can be regenerated using standard tools (C compiler, TeX, etc). The C files generated by gsc, and the gsi and gsc executables are not removed.
% make clean Removes all the files that can be regenerated by a "make" (object files, C files generated by gsc, etc) **except** gsi and gsc. This is useful to bootstrap from the Scheme sources after gsc has been built with an initial "make bootstrap".
% make realclean Like "make clean", but also removes gsi and gsc, and all the makefiles generated by the configure script.
This is often confusing for newcomers because in most open-source projects a "make clean" followed by "make" usually restarts the build process from the state of the distributed sources. Currently, the Gambit makefiles will remove all the C files generated by gsc (which are distributed in the tar file), so in fact the system won't build unless the user had successfully done a "make bootstrap".
To remove the confusion I'm going to rename the targets as follows:
new "clean" target = old "mostlyclean" target
new "realclean" target = old "clean" target + old "realclean" target
The mostlyclean target will be removed.
Moreover, a "make" will be equivalent to a "make bootstrap" unless the gsc-comp (Gambit compiler for bootstrapping) exists. This way, the user can get out of trouble if he does a "make realclean" after a "make".
Please let me know if you have suggestions.
Marc
Afficher les réponses par date
Ha ! It took me a while, but I finally put 4.4.3 in the FreeBSD ports tree (and it made it today).
Since you are changing makefiles a bit, I would like to a few changes with configure too configure --interpreter-name=gsi --compiler-name=gsc Those defauts would not break anything, and changing them would have all the scripts (six, scheme-r4rs, etc) not broken…
Also, as far as documentation is concerned, I wish for a little more (trivial?) GNUgt portability with rules "pdf", "html", "info" and correstponding "install-pdf", "install-html" and "install-info". http://www.gnu.org/software/hello/manual/automake/Texinfo.html gives pieces of information.
One more question: now that installation can be properly and easily done in several directories, isn't it time for gambit's path-expand to have shortcuts to the installation's libs, includes, and so on? Since basically gambit modifies only 5 or so paths (bin, include, lib, share, doc, info…), perhaps they could be pointed at by some hardcoded expansion, or a look at the environment.
Last but not least, when I tried a complete parallel "make -j 4 install" from scratch, I had errors. I'll copy/paste them here later to explicit them, but basically, when entering subdirectories, it had a bad precondition (such as "this tool already exists" or something like that).
Adrien
2009/6/6 Marc Feeley feeley@iro.umontreal.ca:
Currently the Gambit makefiles support these targets (and more):
% make mostlyclean Removes all the files that can be regenerated using standard tools (C compiler, TeX, etc). The C files generated by gsc, and the gsi and gsc executables are not removed.
% make clean Removes all the files that can be regenerated by a "make" (object files, C files generated by gsc, etc) **except** gsi and gsc. This is useful to bootstrap from the Scheme sources after gsc has been built with an initial "make bootstrap".
% make realclean Like "make clean", but also removes gsi and gsc, and all the makefiles generated by the configure script.
This is often confusing for newcomers because in most open-source projects a "make clean" followed by "make" usually restarts the build process from the state of the distributed sources. Currently, the Gambit makefiles will remove all the C files generated by gsc (which are distributed in the tar file), so in fact the system won't build unless the user had successfully done a "make bootstrap".
To remove the confusion I'm going to rename the targets as follows:
new "clean" target = old "mostlyclean" target
new "realclean" target = old "clean" target + old "realclean" target
The mostlyclean target will be removed.
Moreover, a "make" will be equivalent to a "make bootstrap" unless the gsc-comp (Gambit compiler for bootstrapping) exists. This way, the user can get out of trouble if he does a "make realclean" after a "make".
Please let me know if you have suggestions.
Marc
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
On 6-Jun-09, at 3:50 AM, Adrien Piérard wrote:
Ha ! It took me a while, but I finally put 4.4.3 in the FreeBSD ports tree (and it made it today).
I hope you will port the next release when it comes out (soon!). 4.4.3 has a few nasty bugs (such as leaving the terminal in non- blocking mode).
Since you are changing makefiles a bit, I would like to a few changes with configure too configure --interpreter-name=gsi --compiler-name=gsc Those defauts would not break anything, and changing them would have all the scripts (six, scheme-r4rs, etc) not broken…
I've added these options to the configure script:
--enable-interpreter-name=INTERP choose name for Gambit interpreter (default = gsi)
--enable-compiler-name=COMP choose name for Gambit compiler (default = gsc)
The options --enable-interpreter-name=INTERP and --enable-compiler-name=COMP are useful when names different from the defaults are needed (i.e. gsi and gsc respectively). These options should be used only when absolutely necessary because users will expect the defaults (from reading documentation, talking with users on a different OS, etc). We strongly suggest that the names start with gsi and gsc respectively, so that shell tab completion will help the user discover the correct name.
Also, as far as documentation is concerned, I wish for a little more (trivial?) GNUgt portability with rules "pdf", "html", "info" and
The rules pdf, html and info already exist.
correstponding "install-pdf", "install-html" and "install-info". http://www.gnu.org/software/hello/manual/automake/Texinfo.html gives pieces of information.
That documentation suggests that the targets install-pdf, install-html and install-info are deprecated. Can you explain why and when these are needed?
One more question: now that installation can be properly and easily done in several directories, isn't it time for gambit's path-expand to have shortcuts to the installation's libs, includes, and so on? Since basically gambit modifies only 5 or so paths (bin, include, lib, share, doc, info…), perhaps they could be pointed at by some hardcoded expansion, or a look at the environment.
This is already implemented! The syntax is ~~DIR where DIR is lib, bin, include, etc. For example:
% gsi Gambit v4.4.3
(load "~~lib/syntax-case.scm")
"/Users/feeley/my-gambit/lib/syntax-case.scm"
This is documented in the manual (in section 16.1).
Last but not least, when I tried a complete parallel "make -j 4 install" from scratch, I had errors. I'll copy/paste them here later to explicit them, but basically, when entering subdirectories, it had a bad precondition (such as "this tool already exists" or something like that).
Please submit some details. And please use Gambit's bugzilla bug tracking system (http://www.iro.umontreal.ca/~gambit/bugzilla/) so that the bugs and feature requests can be tracked.
Marc
2009/6/9 Marc Feeley feeley@iro.umontreal.ca:
I hope you will port the next release when it comes out (soon!). 4.4.3 has a few nasty bugs (such as leaving the terminal in non-blocking mode).
Next updates should now be piece of cake.
I've added these options to the configure script: --enable-interpreter-name=INTERP --enable-compiler-name=COMP a different OS, etc). We strongly suggest that the names start with gsi and gsc respectively, so that shell tab completion will help the user discover the correct name.
Great! I should do a poll, but I arbitrary chose gsi-gambit and gsc-gambit.
That documentation suggests that the targets install-pdf, install-html and install-info are deprecated. Can you explain why and when these are needed?
I had an issue with a BSD port makefile (on top of gambit's) which wanted to call those. A quick fix in this makefile did the job. Still, I don't have a linux to compare right now, but are "info gsi" and "info gsc" supposed to do something? Only "info gambit-c" displays an info page. I'll have to check with my ubuntu tonight (which has a quite old package too, afair)
(load "~~lib/syntax-case.scm")
"/Users/feeley/my-gambit/lib/syntax-case.scm"
My bad. I don't remember seeing this said to be already implemented on the ML.
Last but not least, when I tried a complete parallel "make -j 4 install" from scratch, I had errors.
Please submit some details. And please use Gambit's bugzilla bug tracking system (http://www.iro.umontreal.ca/~gambit/bugzilla/) so that the bugs and feature requests can be tracked.
It looks like the BSD makefile does not like manual "make -jN install". The -j option is actually supposed to be triggered by the port system itself. This thus looks like a BSD bug, a race condition in the port system −where parallel build is working but not perfect−, rather than gambit's fault (error attached anyway. See lines 112/118. This is a message by BSD's port makefile, not gambit's. So I'll just use the makefile properly (not pass the -j myself) and everything will be fine).
Sorry for the noise.
P!
On Jun 5, 2009, at 6:47 PM, Marc Feeley wrote:
To remove the confusion I'm going to rename the targets as follows:
new "clean" target = old "mostlyclean" target new "realclean" target = old "clean" target + old "realclean"
target
The mostlyclean target will be removed.
Moreover, a "make" will be equivalent to a "make bootstrap" unless the gsc-comp (Gambit compiler for bootstrapping) exists. This way, the user can get out of trouble if he does a "make realclean" after a "make".
Please let me know if you have suggestions.
Sounds good.
Brad