1. Building eu40.4 question

I downloaded Windows installer (with OW) where are the specific instructions for building
source code using OpenWatcom located ?? What are the commands for wmake etc.

new topic     » topic index » view message » categorize

2. Re: Building eu40.4 question

BRyan said...

I downloaded Windows installer (with OW) where are the specific instructions for building
source code using OpenWatcom located ?? What are the commands for wmake etc.

Take a look at the top of the source/Makefile.wat file. Assuming that OpenWatcom is installed correctly (PATH, etc, which I think the installer does for you), and assuming you have a 4.0 version of euphoria installed (which the installer did for you), it should be as simple as:

> configure 
> wmake 

There are other things that the makefile does (again, read the beginning of it), but that should get a build going.

Matt

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

3. Re: Building eu40.4 question

mattlewis said...
BRyan said...

I downloaded Windows installer (with OW) where are the specific instructions for building
source code using OpenWatcom located ?? What are the commands for wmake etc.

Take a look at the top of the source/Makefile.wat file. Assuming that OpenWatcom is installed correctly (PATH, etc, which I think the installer does for you), and assuming you have a 4.0 version of euphoria installed (which the installer did for you), it should be as simple as:

> configure 
> wmake 

There are other things that the makefile does (again, read the beginning of it), but that should get a build going.

Matt

I made the mistake of allowing the installer to set up the environment variables
automatically and it did not set up watcom bin paths so I will delete and setup
and edit by hand.

Thanks Matt

Bernie

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

4. Re: Building eu40.4 question

The config.wat file has platform set to: 
PLAT=WINDOWS 
 
These Header files are expecting EWINDOWS to be defined : 
be_pcre.h 
config.h 
 
So the following include files will be used to compile : 
config.h.windows 
pcre.h.windows 
 
Generating the error file : pcre_chartables.err 
 
config.h(7): Error! E1091: ** 
config.h(8): Error! E1091: ** No OS set!                               
config.h(9): Error! E1091: ** Please run configure and make utilities  
config.h(10): Error! E1091: ** from this directory s parent 
config.h(11): Error! E1091: **  
pcre.h(7): Error! E1091: ** 
pcre.h(8): Error! E1091: ** No OS set!                               
pcre.h(9): Error! E1091: ** Please run configure and make utilities  
pcre.h(10): Error! E1091: ** from this directory s parent 
pcre.h(11): Error! E1091: **  
pcre_internal.h(386): Error! E1091: LINK_SIZE must be either 2, 3, or 4 
 

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

5. Re: Building eu40.4 question

Hallo

configure --eubin c:\euphoria40\bin --plat WINDOWS 
wmake 

This mostly works for me.

I never got something without setting eubin (maybe, becouse of my setup here)

Andreas

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

6. Re: Building eu40.4 question

andi49 said...

Hallo

configure --eubin c:\euphoria40\bin --plat WINDOWS 
wmake 

This mostly works for me.

I never got something without setting eubin (maybe, becouse of my setup here)

Andreas

Thanks Andreas

That does not make any difference in my setup, I get the same error.

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

7. Re: Building eu40.4 question

andi49 said...

Hallo

configure --eubin c:\euphoria40\bin --plat WINDOWS 
wmake 

This mostly works for me.

I never got something without setting eubin (maybe, becouse of my setup here)

I didn't use the installer, but from my local mercurial repo, I did:

> hg up 4.0.4 
> wmake clean 
> configure 
> wmake 

...and everything seems to have built for me. (NB: the hg up 4.0.4 updated my working copy to the 4.0.4 tag, so it should all be the same as what you got with a 4.0.4 install.) Here is what my config.wat looks like:

# Configuration for Watcom  
ASSERT=1  
SCP=pscp -C  
SSH=plink -C  
HG=hg  
ARCH=ix86  
EUPHORIA=1  
MANAGED_MEM=1  
DELTREE=del /Q /S  
RM=del /Q  
RMDIR=rmdir /Q/S  
EUDOC=eudoc.exe  
CREOLE=creole.exe  
TRUNKDIR=C:\euphoria\dev\oe  
BUILDDIR=C:\euphoria\dev\oe\source\build  

When building the pcre stuff, my console shows:

------- REG EXP ----------- 
cd pcre 
wmake -h -f makefile.wat CONFIG=..\config.wat EOSTYPE=-DEWINDOWS 
wcc386 -DEWINDOWS /zp4 /w0 /5r /ol  -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE pcre_chartables.c -fo=C:\euphoria\dev\oe\sour 
ce\build\pcre\pcre_chartables.obj 
wcc386 -DEWINDOWS /zp4 /w0 /5r /ol  -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE pcre_compile.c -fo=C:\euphoria\dev\oe\source\ 
build\pcre\pcre_compile.obj 
wcc386 -DEWINDOWS /zp4 /w0 /5r /ol  -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE pcre_config.c -fo=C:\euphoria\dev\oe\source\b 
uild\pcre\pcre_config.obj 
wcc386 -DEWINDOWS /zp4 /w0 /5r /ol  -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE pcre_dfa_exec.c -fo=C:\euphoria\dev\oe\source 
\build\pcre\pcre_dfa_exec.obj 
... 

Matt

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

8. Re: Building eu40.4 question

Matt:

Do you know who wrote this makefile.wat. 
Maybe they could write some instructions ? 
There are no comments or explanation of what parameters to pass if any. 
This is the only comment in the file. 
# I wanted to put $(BASEPATH) here as a dependency for .c files but 
# watcom doesn't provide that functionality in inplicit rules... (sigh) 
I give up I'am not familiar enough with how all the pieces pass parameters back and forth. 
The config.wat does not have the same parameters that are in your config.wat. 
The makefile.wat has only single line and is autodepend 
 
.c.obj : .AUTODEPEND 
	wcc386 $(EOSTYPE) /zp4 /w0 /5r /ol $(PCREDEBUG) -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE $< -fo=$@ 
 
$(BASEPATH) : .EXISTSONLY $(BUILDDIR) 
	mkdir $(BASEPATH) 

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

9. Re: Building eu40.4 question

BRyan said...

Matt:

Do you know who wrote this makefile.wat. 
Maybe they could write some instructions ? 
There are no comments or explanation of what parameters to pass if any. 
This is the only comment in the file. 
# I wanted to put $(BASEPATH) here as a dependency for .c files but 
# watcom doesn't provide that functionality in inplicit rules... (sigh) 
I give up I'am not familiar enough with how all the pieces pass parameters back and forth. 
The config.wat does not have the same parameters that are in your config.wat. 
The makefile.wat has only single line and is autodepend 
 
.c.obj : .AUTODEPEND 
	wcc386 $(EOSTYPE) /zp4 /w0 /5r /ol $(PCREDEBUG) -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE $< -fo=$@ 
 
$(BASEPATH) : .EXISTSONLY $(BUILDDIR) 
	mkdir $(BASEPATH) 

That Makefile is meant to be called by the makefile in the source directory. You shouldn't need to mess with it (unless you're doing something with the PCRE stuff).

From my earlier post, this was all output from the build process:

------- REG EXP -----------  
cd pcre  
wmake -h -f makefile.wat CONFIG=..\config.wat EOSTYPE=-DEWINDOWS 

Those are commands from source/Makefile.wat, starting at line 813. You should never need to manually call the makefile in the pcre directory:

    @echo ------- REG EXP ----------- 
	cd pcre 
	wmake -h -f makefile.wat CONFIG=..\$(CONFIG) EOSTYPE=-D$(OSFLAG) 

Matt

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

10. Re: Building eu40.4 question

Matt:

 
I don't understand how these are ever being set by running wmake 
without passing parameters makefile has to be missing something ? 
 
$(CONFIG) 
$(EOSTYPE) 
 
Where are they initialized ?????? 
 
This is what makefile.wat contains 
 
 
---------------------------------------- 
 
 
# Makefile for PCRE to be included into Euphoria 
# 
 
CC = wcc386 
 
BASEPATH=$(BUILDDIR)\pcre 
 
!include $(CONFIG) 
!include objects.wat 
!ifeq DEBUG 1 
PCREDEBUG=/d2 
!endif 
 
all: $(BASEPATH) $(PCRE_OBJECTS)  
 
# I wanted to put $(BASEPATH) here as a dependency for .c files but 
# watcom doesn't provide that functionality in inplicit rules... (sigh) 
.c.obj : .AUTODEPEND 
	wcc386 $(EOSTYPE) /zp4 /w0 /5r /ol $(PCREDEBUG) -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE $< -fo=$@ 
 
$(BASEPATH) : .EXISTSONLY $(BUILDDIR) 
	mkdir $(BASEPATH) 
 : 
 
---------------------------------------- 
 

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

11. Re: Building eu40.4 question

BRyan said...

I don't understand how these are ever being set by running wmake without passing parameters makefile has to be missing something ?

$(CONFIG) $(EOSTYPE)

Where are they initialized ??????

This is what makefile.wat contains

---------------------------------------- 
 
 
# Makefile for PCRE to be included into Euphoria 
# 
 
CC = wcc386 
 
BASEPATH=$(BUILDDIR)\pcre 
 
!include $(CONFIG) 
!include objects.wat 
!ifeq DEBUG 1 
PCREDEBUG=/d2 
!endif 
 
all: $(BASEPATH) $(PCRE_OBJECTS)  

What file are you looking at? You're describing the contents of source/pcre/Makefile.wat. You should not be doing anything with this file manually. As I already told you, that stuff gets initialized when wmake is called for this makefile by the makefile in the source directory.

BRyan said...
  1. I wanted to put $(BASEPATH) here as a dependency for .c files but

Why? What are you trying to do? I've told you how that makefile works, but since you keep asking the same questions over and over, I suspect that we need to back up a step or two to figure out what problem you are trying to solve.

Matt

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

12. Re: Building eu40.4 question

Matt:

That BASEPATH NOTE was written by the developer that wrote the makefile.wat not me. 
 
Beside the makefile.wat there is another makefile with no extent that contains only this : 
---------------------------------------------------------- 
!include Makefile.wat  
 
---------------------------------------------------------- 
 
There is NO pcre directory all the files are all installed in source directory. 

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

13. Re: Building eu40.4 question

BRyan said...

That BASEPATH NOTE was written by the developer that wrote the makefile.wat not me.

Beside the makefile.wat there is another makefile with no extent that contains only this :

---------------------------------------------------------- 
!include Makefile.wat  
 
---------------------------------------------------------- 
There is NO pcre directory all the files are all installed in source directory.

Aha! Thanks for the clarification. This looks like a bug in the installer:

Source: "..\..\source\pcre\*.*"; DestDir: {app}\source\; Flags: ignoreversion; Components: comp_source 

So...the pcre directory contents are overwriting the source directory. The best place to get the source is really from the mercurial repo. Take a look at the Mercurial wiki page. Or, you can follow the SCM menu item on the right and download a snapshot of a particular changeset.

Matt

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

14. Re: Building eu40.4 question

Thanks Matt for all your help I will wait until the installer is fixed and then try again. Mean while I got other things that I can do to keep busy.

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

15. Re: Building eu40.4 question

This was my first attempt at building eu4.0.5
I downloaded and installed euphoria-4.0.5-ow.exe. I have Windows XP SP2.
I installed it in c:euphoria I installed Watcom 1.9 at c:watcom In System\advanced\enviromental variables, I can see the path set correctly to the two Watcom direcotries.

-- I did  
SET EUINC=C:\EUPHORIA\include 
--I can see the EUINC properly initialised. 
-- I did  
cd source 
configure  --prefix  \EUPHORIA 
 
-- wmake is Watcom compiler command in the c:\watcom\binw directory 
-- Then I tried 
wmake  -f  makefile.wat 

It errored out, because it did not find config.wat at line 9 of Makefile.wat. I checked by putting an extra line of comment in Makefile.wat and it errored our at line 10. I tried the full paths to everything, but it did not work

c:\watcom\binw\wmake  -f  c:\euphoria\source\Makefile.wat 

Finally I commented out line 9 pf Makefile.wat

# !include $(CONFIG) 
-- adding instead 
!include config.wat 
 

and lo and behold, it work up to a point.
It created c:\euphoria\source\build and .....\pcre
It put in some files there

But it came with an error.

By now I have created a composite batch file

and this is the message.

Build directory is build 
Open Watcom Make Version 1.9 
Portions Copyright (c) 1988-2002 Sybase, Inc. All Rights Reserved. 
Source code is available under the Sybase Open Watcom Public License. 
See http://www.openwatcom.org/ for details. 
	wcc386  /zp4 /w0 /5r /ol  -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE pcre_chartables.c -fo=C:\euphoria\source\build\pcre\pcre_chartables.obj 
config.h(7): Error! E1091: ** 
config.h(8): Error! E1091: ** No OS set!                               
config.h(9): Error! E1091: ** Please run configure and make utilities  
config.h(10): Error! E1091: ** from this directory s parent 
config.h(11): Error! E1091: **  
pcre.h(7): Error! E1091: ** 
pcre.h(8): Error! E1091: ** No OS set!                               
pcre.h(9): Error! E1091: ** Please run configure and make utilities  
pcre.h(10): Error! E1091: ** from this directory s parent 
pcre.h(11): Error! E1091: **  
pcre_internal.h(386): Error! E1091: LINK_SIZE must be either 2, 3, or 4 
 

Note that in the line
wcc386 ...... the word $(EOSTYPE) is missing.

I therefore tried:
PLAT=WINDOWS in the config.wat FILE - no success
PLAT=WINDOWS in the Makefile.wat FILE - no success
I tried several other statements but no success
Substitution with whatever I assign to EOSTYPE occurs in the erro message display but no success

## 
# Makefile for PCRE to be included into Euphoria 
## 
<\eucode> 
 
<eucode> 
CC = wcc386 
# 
 #PLAT = WINDOWS 
 #EOSTYPE = 3 
 #EOSTYPE = OS_WIN 
 #EOSTYPE = "OS_WIN" 
 #EOSTYPE = WINDOWS 
# 
EOSTYPE = "WINDOWS" 
 
BASEPATH=$(BUILDDIR)\pcre 
# 
# !include $(CONFIG) 
# 
!include config.wat 
!include objects.wat 
!ifeq DEBUG 1 
PCREDEBUG=/d2 
!endif 
all: $(BASEPATH) $(PCRE_OBJECTS)  
.c.obj : .AUTODEPEND 
	wcc386 $(EOSTYPE) /zp4 /w0 /5r /ol $(PCREDEBUG) -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE $< -fo=$@ 
$(BASEPATH) : .EXISTSONLY $(BUILDDIR) 
	mkdir $(BASEPATH) 
 
 
Is there any write up anywhere, where I can look it up?
new topic     » goto parent     » topic index » view message » categorize

16. Re: Building eu40.4 question

EUWX said...

This was my first attempt at building eu4.0.5
I downloaded and installed euphoria-4.0.5-ow.exe. I have Windows XP SP2.
I installed it in c:euphoria I installed Watcom 1.9 at c:watcom In System\advanced\enviromental variables, I can see the path set correctly to the two Watcom direcotries.

-- I did  
SET EUINC=C:\EUPHORIA\include 
--I can see the EUINC properly initialised. 
-- I did  
cd source 
configure  --prefix  \EUPHORIA 
 
-- wmake is Watcom compiler command in the c:\watcom\binw directory 
-- Then I tried 
wmake  -f  makefile.wat 
It errored out, because it did not find config.wat at line 9 of Makefile.wat.

the problem seems to be config.wat is not created. I think Makefile. and eu.cfg are also created by configure. so you can then just run wmake

was there an error message at that point or lack of error message? try configure with no options.

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

17. Re: Building eu40.4 question

ne1uno said...

the problem seems to be config.wat is not created. I think Makefile. and eu.cfg are also created by configure. so you can then just run wmake

was there an error message at that point or lack of error message? try configure with no options.

Config .wat is being created and in fact, I fiddled with it by trying to add PLAT=WINDOWS

 # Configuration for Watcom  
PLAT=WINDOWS 
ASSERT=1  
PREFIX=\EUPHORIA  
SCP=pscp -C  
SSH=plink -C  
HG=hg  
ARCH=ix86  
EUPHORIA=1  
MANAGED_MEM=1  
DELTREE=del /Q /S  
RM=del /Q  
RMDIR=rmdir /Q/S  
EUDOC=eudoc.exe  
CREOLE=creole.exe  
TRUNKDIR=C:\euphoria  
BUILDDIR=C:\euphoria\source\build  
 

I have gone about line at a time and confirmed what is working and what is not working. Definitely, the current Makefile.wat in the euphoria-4.0.5-ow version after installation into C:euphoria is a small fileand the wmake command of Watcom does not recognize

!include $(CONFIG)  

and I had to change it manually to

!include config.wat 

Then it recognized the line and proceeded to

wcc386 $(EOSTYPE) /zp4 /w0 /5r /ol $(PCREDEBUG) -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE $< -fo=$@ 

where it did not find OS defined and came with the error message

 
	wcc386  /zp4 /w0 /5r /ol  -zq -oaxt -DHAVE_CONFIG_H -DNO_RECURSE pcre_chartables.c -fo=C:\euphoria\source\build\pcre\pcre_chartables.obj 
config.h(7): Error! E1091: ** 
config.h(8): Error! E1091: ** No OS set!                               
config.h(9): Error! E1091: ** Please run configure and make utilities  
config.h(10): Error! E1091: ** from this directory s parent 

Notice the absence of
$(EOSTYPE) or its substitution in the error message.

So far what I have discovered is that the Makefile.wat in the OW distribution version of 4.0.5 for Windows is vastly different from the one same in the Linux version. I also have euphoria-4.0.4-WINDOWS.zip which I either downloaded with that name or I gave that name to a Windows version of 4.0.4. In there, the Makefile.wat is a very similar long file to the Linux version of 4.0.4.
Additionally the source file in this version has about 20-30 .cpp files.

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

18. Re: Building eu40.4 question

EUWX said...

So far what I have discovered is that the Makefile.wat in the OW distribution version of 4.0.5 for Windows is vastly different from the one same in the Linux version. I also have euphoria-4.0.4-WINDOWS.zip which I either downloaded with that name or I gave that name to a Windows version of 4.0.4. In there, the Makefile.wat is a very similar long file to the Linux version of 4.0.4.
Additionally the source file in this version has about 20-30 .cpp files.

The problem is that the PCRE files are being installed to the source directory instead of into the pcre subdirectory of the source directory. This was discovered in the 4.0.4 installer, and it looks like it was fixed in the euphoria installer that does not install watcom, but not the watcom-bundled installer.

I've opened ticket:824.

Matt

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

19. Re: Building eu40.4 question

mattlewis said...
EUWX said...

So far what I have discovered is that the Makefile.wat in the OW distribution version of 4.0.5 for Windows is vastly different from the one same in the Linux version. I also have euphoria-4.0.4-WINDOWS.zip which I either downloaded with that name or I gave that name to a Windows version of 4.0.4. In there, the Makefile.wat is a very similar long file to the Linux version of 4.0.4.
Additionally the source file in this version has about 20-30 .cpp files.

The problem is that the PCRE files are being installed to the source directory instead of into the pcre subdirectory of the source directory. This was discovered in the 4.0.4 installer, and it looks like it was fixed in the euphoria installer that does not install watcom, but not the watcom-bundled installer.

I've opened ticket:824.

Matt

I don't mind using the "normal" Windows Installer .exe file and try to compile from that. I hope it works. I will try it tomorrow, to give you people a chance to stop me if it won't work.

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

20. Re: Building eu40.4 question

EUWX said...

I don't mind using the "normal" Windows Installer .exe file and try to compile from that. I hope it works. I will try it tomorrow, to give you people a chance to stop me if it won't work.

I haven't tried it, though it should work (famous last words). For best results, you should clone the mercurial repository. If you'd rather not have that installed, you can download updated source code from our online repository browser.

Matt

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

21. Re: Building eu40.4 question

mattlewis said...
EUWX said...

I don't mind using the "normal" Windows Installer .exe file and try to compile from that. I hope it works. I will try it tomorrow, to give you people a chance to stop me if it won't work.

I haven't tried it, though it should work (famous last words). For best results, you should clone the mercurial repository. If you'd rather not have that installed, you can download updated source code from our online repository browser.

Matt

Thanks for your suggestions. I am a persistent bee, and will try and get going based on the Makefile.wat in the "normal" exe distribution, in the repository, in the 4.0.4 final distribution, in the repository, etc, and make changes in the the .wat file as appropriate.
Earlier in this thread I read your caution about altering the Makefile. Usually I am not deterred by having to manipulate different "batch file" type of scripts. So, if I have to, I will alter the script to get the desired results.
I will remain alert to any other advice here, but otherwise, I will post my result (success or failure). In any case, I will go ahead with the MinGW compilation. I should be done in the next 36 hours (software writer's time scale!)

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

22. Re: Building eu40.4 question

For various things to work EUDIR must be set appropriately. Although there is a eudir switch in configure to work around this problem. This is a kind of 'wont fix' bug in the Installer. This is the way the admins wanted it. I say, set your EUDIR variable post install. It will solve [edit] a lot of problems.
Forked into: Obsolete EUDIR!

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

23. Re: Building eu40.4 question

SDPringle said...

For various things to work EUDIR must be set appropriately. Although there is a eudir switch in configure to work around this problem. This is a kind of 'wont fix' bug in the Installer. This is the way the admins wanted it. I say, set your EUDIR variable post install. It will solve [edit] a lot of problems.
Forked into: Obsolete EUDIR!

I am quite used to going into (in Win XP) Start/Control Panel/System/Advanced/Environment variables and checking changing various parameters manually.

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

24. Re: Building eu40.4 question

I got the 4.0.5 source to compile under Watcom.
In a few I few places, it did not find
c:\euphoria\source\main-.h
c:\euphoria\source\main-.c
c:\euphoria\source\init-.c

wmake -f makefile.wat test went though with a very few failures.
These are messages like
You may now run t_memory-bound.exe
You may now run t_msgbox-bound.exe

but I did not find the exe files anywhere.
I matter of some concern is that the generated file sizes are much bigger than the downloaded files.

generated eui.exe is 1867 KB, where as the actual one supplied by the installed version is 505 KB
generated euiw.exe is also 1867 KB, where as the actual one supplied by the installed version is 505 KB
and so on.

euphoria\source\build library is fill on object files in 3-4 folders.

I looked at another download I have of a eubin, and that also showed larger files. Is that due to difference of compilers?

Next I tried to execute
wmake -f makefile.wat install
It refused to proceed because there was overwriting involved over existing files in euphoria

I still do not know exactly how to proceed with the GCC compile, but I will have a go tomorrow, after I clear my headache generated by Watcom.

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

Search



Quick Links

User menu

Not signed in.

Misc Menu