1. Building euphoria

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

new topic     » topic index » view message » categorize

2. Re: Building euphoria

mattlewis said...

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

new topic     » goto parent     » topic index » view message » categorize

3. Re: Building euphoria

andi49 said...

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

new topic     » goto parent     » topic index » view message » categorize

4. Re: Building euphoria

How should I proceed to had the following flags to euphoria build process?

-mcpu=arm9tdmi -mfloat-abi=softfp

jacques

new topic     » goto parent     » topic index » view message » categorize

5. Re: Building euphoria

coconut said...

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

new topic     » goto parent     » topic index » view message » categorize

6. Re: Building euphoria

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

new topic     » goto parent     » topic index » view message » categorize

7. Re: Building euphoria

andi49 said...

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

new topic     » goto parent     » topic index » view message » categorize

8. Re: Building euphoria

mattlewis said...
andi49 said...

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

new topic     » goto parent     » topic index » view message » categorize

9. Re: Building euphoria

mattlewis said...

[...]
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

new topic     » goto parent     » topic index » view message » categorize

10. Re: Building euphoria

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? getlost

-Greg

new topic     » goto parent     » topic index » view message » categorize

11. Re: Building euphoria

ghaberek said...

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).

new topic     » goto parent     » topic index » view message » categorize

12. Re: Building euphoria

jimcbrown said...

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

new topic     » goto parent     » topic index » view message » categorize

13. Re: Building euphoria

ghaberek said...
jimcbrown said...

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.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu