1. Building euphoria
- Posted by mattlewis (admin) Apr 08, 2013
- 1938 views
I've made some changes to the euphoria build system (in the 4.1 trunk, the "default" branch--the 4.0 system is the same). We have a lot of different configurations for building euphoria (different operating systems and architectures). I often am working on more than one at the same time, so I looked for a way to make this easier.
The changes I just pushed up make it possible to do all of your building outside of the source tree. The main change, from a user's point of view, is that you create your build directory first, then run the configure script from there. All of your configuration information goes into your build directory, and you run the make process from there.
The "old" way of configuring from the source directory should still work, though you'll still need to run make from the new build directory. This means that the eubins server will need to be updated.
To give an example:
$ hg clone https://scm.openeuphoria.org/hg/euphoria ... $ mkdir eu-build $ cd eu-build $ ../euphoria/source/configure ... $ make
That would have almost all of your activity occur outside of the mercurial repo. The exception is the dynamic library built for testing C calls, and any ex.err files generated during the automated testing process.
Matt
2. Re: Building euphoria
- Posted by andi49 Apr 10, 2013
- 1848 views
I've made some changes to the euphoria build system (in the 4.1 trunk, the "default" branch--the 4.0 system is the same). We have a lot of different configurations for building euphoria (different operating systems and architectures). I often am working on more than one at the same time, so I looked for a way to make this easier.
The changes I just pushed up make it possible to do all of your building outside of the source tree. The main change, from a user's point of view, is that you create your build directory first, then run the configure script from there. All of your configuration information goes into your build directory, and you run the make process from there.
The "old" way of configuring from the source directory should still work, though you'll still need to run make from the new build directory. This means that the eubins server will need to be updated.
To give an example:
$ hg clone https://scm.openeuphoria.org/hg/euphoria ... $ mkdir eu-build $ cd eu-build $ ../euphoria/source/configure ... $ make
That would have almost all of your activity occur outside of the mercurial repo. The exception is the dynamic library built for testing C calls, and any ex.err files generated during the automated testing process.
Matt
Thank you for this
it makes building different versions more easy. One thing for Windows, i had to copy all the *.rc , the *.ico ,and the eu.manifest manually to the builtdir.
This gives me all the needed binaries but it seems eudist fails
gcc -DEWINDOWS -fomit-frame-pointer -c -w -fsigned-char -O2 -m32 -Ic:/eutest/eup horia -ffast-math primes.c -o primes.o gcc -DEWINDOWS -fomit-frame-pointer -c -w -fsigned-char -O2 -m32 -Ic:/eutest/eup horia -ffast-math regex.c -o regex.o gcc -o c:/eutest/built/eudist init-.o eudist.o main-.o cmdline.o console.o get.o io.o machine.o memory.o dll.o types.o text.o search.o filesys.o datetime.o math .o sequence.o sort.o map.o eumem.o primes.o regex.o c:/eutest/built/eu.a -m32 make[2]: Leaving directory `/c/eutest/built/eudist-build' c:/e4/bin/eui -i c:/eutest/euphoria/include -d E32 c:/eutest/euphoria/source/eu c.ex -build-dir "c:/eutest/built/eudis-build" \ -c "c:/eutest/built/eu.cfg" \ -o "c:/eutest/built/eudis" \ -lib "c:/eutest/built/eu.a" \ -makefile -eudir c:/eutest/euphoria \ -gcc c:/eutest/euphoria/source/dis.ex C:\eutest\euphoria\source\syncolor.e:70 <0238>:: 'SyntaxColor' only needs 2 arguments line = syncolor:SyntaxColor(pline, synstate, multiline) ^ make[1]: *** [c:/eutest/built/eudis-build/main-.c] Error 1 make[1]: Leaving directory `/c/eutest/built' make: *** [all] Error 2 C:\eutest\built>I used gcc 4.7.1 (tdm-32bit) on Window8 64Bit
Thank you for your work
Andreas
3. Re: Building euphoria
- Posted by mattlewis (admin) Apr 10, 2013
- 1957 views
it makes building different versions more easy. One thing for Windows, i had to copy all the *.rc , the *.ico ,and the eu.manifest manually to the builtdir.
Yes, I found this a little while ago. I'm updating the Makefile, and I should be pushing the change up shortly.
Matt
4. Re: Building euphoria
- Posted by coconut Apr 10, 2013
- 1793 views
How should I proceed to had the following flags to euphoria build process?
-mcpu=arm9tdmi -mfloat-abi=softfp
jacques
5. Re: Building euphoria
- Posted by jimcbrown (admin) Apr 10, 2013
- 1964 views
How should I proceed to had the following flags to euphoria build process?
-mcpu=arm9tdmi -mfloat-abi=softfp
jacques
Quick&Dirty way:
Add them either to EFLAGS or MSIZE in config.gnu
6. Re: Building euphoria
- Posted by andi49 Apr 12, 2013
- 1730 views
Hallo i try to use the Eu4.1 branch
as i now understand that i need a Eu4.1 to create a working eudoc for working Eu4.1 docs. And i can only have a clean built with a 4.1 (not a 4.0.x) for builting a new 4.1 32bit. ( eudist will fail).
Maybe it should be documented that you can't create the docs without a new (built with Eu4.1) eudoc , becouse the eudoc itself does not report an Versionnumber (or anything like 'built for 4.1 or built for 4.0.x)
I now have another problem. The 64 bit built fails with this
c:\eutest\euphoria\source\scanner.e:1867 in function Scanner() type_check failure, i is 4294967295 ... called from c:\eutest\euphoria\source\parser.e:720 in function next_token() ... called from c:\eutest\euphoria\source\parser.e:3122 in procedure Ifdef_stat ment() ... called from c:\eutest\euphoria\source\parser.e:4972 in procedure real_parse () ... called from c:\eutest\euphoria\source\parser.e:5052 in procedure nested_par er() ... called from c:\eutest\euphoria\source\parser.e:3109 in procedure Ifdef_stat ment() ... called from c:\eutest\euphoria\source\parser.e:4972 in procedure real_parse ()
hopefully i'am not the only one that builts binaries for Win 6.x (Vista=6.0,win7=6.1,win8=6.2)
(Sorry for my bad english)
Maybe someone can help me here.
Andreas
7. Re: Building euphoria
- Posted by mattlewis (admin) Apr 13, 2013
- 1678 views
Hallo i try to use the Eu4.1 branch
as i now understand that i need a Eu4.1 to create a working eudoc for working Eu4.1 docs. And i can only have a clean built with a 4.1 (not a 4.0.x) for builting a new 4.1 32bit. ( eudist will fail).
Maybe it should be documented that you can't create the docs without a new (built with Eu4.1) eudoc , becouse the eudoc itself does not report an Versionnumber (or anything like 'built for 4.1 or built for 4.0.x)
I now have another problem. The 64 bit built fails with this
c:\eutest\euphoria\source\scanner.e:1867 in function Scanner() type_check failure, i is 4294967295 ... called from c:\eutest\euphoria\source\parser.e:720 in function next_token()
hopefully i'am not the only one that builts binaries for Win 6.x (Vista=6.0,win7=6.1,win8=6.2)
I'm getting this, too, when I use a 32-bit interpreter to translate for a 64-bit target. Looks like a bug in the scanner.
Thanks for reporting this.
Matt
8. Re: Building euphoria
- Posted by mattlewis (admin) Apr 13, 2013
- 1674 views
I now have another problem. The 64 bit built fails with this
c:\eutest\euphoria\source\scanner.e:1867 in function Scanner() type_check failure, i is 4294967295 ... called from c:\eutest\euphoria\source\parser.e:720 in function next_token()
hopefully i'am not the only one that builts binaries for Win 6.x (Vista=6.0,win7=6.1,win8=6.2)
I'm getting this, too, when I use a 32-bit interpreter to translate for a 64-bit target. Looks like a bug in the scanner.
Thanks for reporting this.
I just pushed up some changes. Please pull them down and try them out.
Matt
9. Re: Building euphoria
- Posted by andi49 Apr 13, 2013
- 1643 views
[...]
I just pushed up some changes. Please pull them down and try them out.
Matt
The default branch builts, without a problem.
Thank you for quick solution.
Andreas
10. Re: Building euphoria
- Posted by ghaberek (admin) May 04, 2013
- 1551 views
I'm having trouble building 4.1. Output follows...
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o: In function `_start': (.text+0x18): undefined reference to `main' /home/greg/Projects/euphoria/source/build/intobj/back/be_task.o: In function `ctask_create': be_task.c:(.text+0x4d8): undefined reference to `_00' /home/greg/Projects/euphoria/source/build/intobj/back/be_task.o: In function `start_task': be_task.c:(.text+0xf36): undefined reference to `_00' /home/greg/Projects/euphoria/source/build/intobj/back/be_runtime.o: In function `shift_args': be_runtime.c:(.text+0xbb9): undefined reference to `Argc' be_runtime.c:(.text+0xbd0): undefined reference to `Argv' /home/greg/Projects/euphoria/source/build/intobj/back/be_runtime.o: In function `Command_Line': be_runtime.c:(.text+0xe05): undefined reference to `Argv' be_runtime.c:(.text+0xe0d): undefined reference to `Argc' be_runtime.c:(.text+0xe32): undefined reference to `Argc' /home/greg/Projects/euphoria/source/build/intobj/back/be_runtime.o: In function `eu_startup': be_runtime.c:(.text+0x15e4): undefined reference to `Argc' /home/greg/Projects/euphoria/source/build/intobj/back/be_runtime.o: In function `ctrace': be_runtime.c:(.text+0x1749): undefined reference to `Argc' collect2: ld returned 1 exit status make[3]: *** [/home/greg/Projects/euphoria/source/build/eui] Error 1 make[3]: Leaving directory `/home/greg/Projects/euphoria/source/build' make[2]: *** [interpreter] Error 2 make[2]: Leaving directory `/home/greg/Projects/euphoria/source/build' make[1]: *** [interpreter] Error 2 make[1]: Leaving directory `/home/greg/Projects/euphoria/source/build' make: *** [all] Error 2
Help?
-Greg
11. Re: Building euphoria
- Posted by jimcbrown (admin) May 04, 2013
- 1527 views
I'm having trouble building 4.1. Output follows...
That almost looks like you are building without pretranslated sources, but also with the --without-euphoria option set (so the translated sources aren't being generated).
12. Re: Building euphoria
- Posted by ghaberek (admin) May 04, 2013
- 1530 views
That almost looks like you are building without pretranslated sources, but also with the --without-euphoria option set (so the translated sources aren't being generated).
I was just performing the steps Matt listed above, except I've put build in the source folder.
$ hg clone https://scm.openeuphoria.org/hg/euphoria $ mkdir euphoria/source/build $ cd euphoria/source/build $ ../configure $ make
I do not have Euphoria installed on this machine.
-Greg
13. Re: Building euphoria
- Posted by jimcbrown (admin) May 04, 2013
- 1530 views
- Last edited May 05, 2013
That almost looks like you are building without pretranslated sources, but also with the --without-euphoria option set (so the translated sources aren't being generated).
I was just performing the steps Matt listed above, except I've put build in the source folder.
$ hg clone https://scm.openeuphoria.org/hg/euphoria $ mkdir euphoria/source/build $ cd euphoria/source/build $ ../configure $ make
I do not have Euphoria installed on this machine.
-Greg
If you do not have Euphoria installed on the machine, then configure will default to --without-euphoria mode when it can not find a copy of the interpreter.
However, a fresh checkout from hg will not include any pretranslated sources.
I think you should be able to use a 4.0 binary to translate the 4.1 sources, however.