30.03.2011 01:47, Marc Feeley пишет:
The sources in the git repo are sufficient to build Gambit from scratch. I think the problem you are experiencing is that when you do a "git pull" the modification date of the .scm files is more recent than the corresponding .c file. So "make" thinks the .scm files have been modified since the last compilation by gsc-comp (to compile .scm -> .c).
Could you check if a
touch */*.c make
works?
No. It results in the following:
[builder@altair gambit-4.6.0]$ touch */*.c [builder@altair gambit-4.6.0]$ make making all in include ... make[1]: Leaving directory `/usr/src/RPM/BUILD/gambit-4.6.0/include' making all in lib make[1]: Entering directory `/usr/src/RPM/BUILD/gambit-4.6.0/lib' LD_LIBRARY_PATH=../lib:../gsi:../gsc: ../gsc-comp -:~~bin=../bin,~~lib=../lib,~~include=../include -f -c -check _io.scm /bin/sh: ../gsc-comp: No such file or directory make[1]: *** [_io.c] Error 127 make[1]: Leaving directory `/usr/src/RPM/BUILD/gambit-4.6.0/lib' make: *** [all-recursive] Error 1
Same with `make bootstrap'. It looks for gsc-comp in the source root. So I've tried to use /usr/bin/gambit (v4.5.3) for that purpose, copying it to gsc-comp. It results in the following:
[builder@altair gambit-4.6.0]$ touch */*.c [builder@altair gambit-4.6.0]$ make making all in include make[1]: Entering directory `/usr/src/RPM/BUILD/gambit-4.6.0/include' ... make[1]: Leaving directory `/usr/src/RPM/BUILD/gambit-4.6.0/include' making all in lib make[1]: Entering directory `/usr/src/RPM/BUILD/gambit-4.6.0/lib' LD_LIBRARY_PATH=../lib:../gsi:../gsc: ../gsc-comp -:~~bin=../bin,~~lib=../lib,~~include=../include -f -c -check _io.scm ... In file included from ../include/gambit.h:12:0, from _io.c:1342: ../include/gambit-not406000.h:1:2: error: #error "The version indicated in ___VERSION is not supported by gambit.h" ../include/gambit-not406000.h:2:2: error: #error "You are probably compiling C code generated by a Gambit compiler earlier or later than v4.6.0" ../include/gambit-not406000.h:3:2: error: #error "___VERSION will be set to 406000 to reduce other errors" make[1]: *** [_io.o] Error 1 make[1]: Leaving directory `/usr/src/RPM/BUILD/gambit-4.6.0/lib' make: *** [all-recursive] Error 1
Same with `make bootstrap'.
May be the bootstrap compiler for v4.6.0 should be built from the v4.5.3 sources using /usr/bin/gsc v4.5.3?
By the way, it would be really nice to have an automatic build of Gambit on different systems (RPM, MacPorts, CYGWIN, etc). Is that something you want to do, or just for your own purposes?
Yes, it would be nice. I do it for the ALT Linux community purposes :) The central thing is building gambit-*.rpm directly from the git repo. When that is configured and works the repo updates and builds can be handled automatically (up to a build/packaging error). Our RPM packages have a lot of metadata: libraries/symbols provided/required by a package are automatically calculated during the build process. Having that rich set of metatada the ALTLinux RPM can be converted to a package for any other distro. When the build from a git repo process for x86 (32-64bit) would be set up, I'll try to port it to the ARM (Marvell) platform.
The Gear/Hasher build system:
is mostly a set of portable shell scripts. Potentially these tools can be ported to any system, including Mac. But as far as I know, some features of the Linux kernel are used to provide the necessary isolation for the build process.
Paul.
Marc
On 2011-03-29, at 3:30 PM, Paul Wolneykien wrote:
Hi,
I'm thinking of a semi-automatic system for building new releases of Gambit tracking the main Git repository at http://www.iro.umontreal.ca/~gambit/repo/gambit.git . I suppose the process as follows: when a new release tag is published, the procedure updates the local branch and build a new version of the Gambit, possibly with the help of a previously built one. The main problem with that is that I can't see a way to provide a consequently updated build environment as stated in http://dynamo.iro.umontreal.ca/~gambit/wiki/index.php/Contributing_Patches_t.... The only thing that can be consequently updated is the clean local source tree (with no generated files) as it published at the main Git repository. That's because each build is handled in a separate environment constructing from scratch. However, the result of a previous build is available in the form of RPM package. So I've tried to use a previous version of Gambit (4.5.3) to build the fresh release (4.6.0) linking /usr/bin/gsc to gsc-comp in the source tree root: both `make bootstrap' and `make' finished with an error message about gsc version incompatibility.
Dear community, is it generally possible to build Gambit:
a) having only the sources published at the main Git repository?
b) having only a) and a previous version of Gambit installed?
If not, is the *-devel tarball is absolutely necessary to build Gambit? And if so, can it be prepared from the main Git repository?
Best regards,
Paul.
Gambit-list mailing list Gambit-list@iro.umontreal.ca https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list