[AWS] Building AWS 1.4 on Windows XP Pro

watkinam@aston.ac.uk watkinam@aston.ac.uk
Tue, 18 Nov 2003 18:08:57 -0000 (GMT)


Hello

I have a query about building AWS 1.4.

I have successfully built AWS 1.3, but am unable to build AWS 1.4.

Platform: Windows XP Pro
Shell: Cygwin/Msys (I tried both)
Compiler: Gnat 3.15p

The only change I made to makefile.conf was the install directory:
INSTALL = c:
This is ok with AWS 1.3

When I do 'make gnat_oslib' I get a load of echoed text:

$ make gnat_oslib
c:/GNAT/bin/make.exe -C src gnat_oslib -s GFLAGS="-q -O2 -gnatn
-gnatwcfipru -gn
aty3abcefhiklmnoprst" INCLUDES="" LIBS="" LFLAGS="-s" MODE="ssl" XMLADA=""
EXEEX
T=".exe" LDAP="1" DEBUG="" RM="rm" CP="cp -p" MV="mv" MKDIR="mkdir"
AR="ar" GREP
="grep" SED="sed" DIFF="diff" CHMOD="chmod" GZIP="gzip" TAR="tar"
GNATMAKE="gnat
make" DLLTOOL="dlltool" DLL2DEF="dll2def" WINDRES="windres"
GNATMAKE_FOR_HOST="g
natmake"

This is, I believe, due to an error in the makefile (though I don't know
much about Unix!). The line that I believe contains the error reads:

ALL_OPTIONS	= $(MAKE_OPT) GFLAGS="$(GFLAGS)" INCLUDES="$(INCLUDES)"
LIBS="$(LIBS)" LFLAGS="$(LFLAGS)" MODE="$(MODE)" XMLADA="$(XMLADA)"
EXEEXT="$(EXEEXT)" LDAP="$(LDAP)" DEBUG="$(DEBUG)" RM="$(RM)" CP="$(CP)"
MV="$(MV)" MKDIR="$(MKDIR)" AR="$(AR)" GREP="$(GREP)" SED="$(SED)"
DIFF="$(DIFF)" CHMOD="$(CHMOD)" GZIP="$(GZIP)" TAR="$(TAR)"
GNATMAKE="$(GNATMAKE)" DLLTOOL="$(DLLTOOL)" DLL2DEF="$(DLL2DEF)"
WINDRES="$(WINDRES)" GNATMAKE_FOR_HOST="$(GNATMAKE_FOR_HOST)"

I think the carriage returns are missing between each environment variable
declaration. This might I suppose only be an issue on a Windows/DOS
machine, due to different end-of-line characters. Once corrected it looks
like this:

ALL_OPTIONS	= $(MAKE_OPT)
GFLAGS="$(GFLAGS)"
INCLUDES="$(INCLUDES)"
LIBS="$(LIBS)"
LFLAGS="$(LFLAGS)"
MODE="$(MODE)"
XMLADA="$(XMLADA)"
EXEEXT="$(EXEEXT)"
LDAP="$(LDAP)"
DEBUG="$(DEBUG)"
RM="$(RM)"
CP="$(CP)"
MV="$(MV)"
MKDIR="$(MKDIR)"
AR="$(AR)"
GREP="$(GREP)"
SED="$(SED)"
DIFF="$(DIFF)"
CHMOD="$(CHMOD)"
GZIP="$(GZIP)"
TAR="$(TAR)"
GNATMAKE="$(GNATMAKE)"
DLLTOOL="$(DLLTOOL)"
DLL2DEF="$(DLL2DEF)"
WINDRES="$(WINDRES)"
GNATMAKE_FOR_HOST="$(GNATMAKE_FOR_HOST)"

However, this only changes the error I get:

$ make gnat_oslib
c:/GNAT/bin/make.exe -C src gnat_oslib -s
process_begin: CreateProcess(c:\aws-1.4\config\aws-os_lib__gnat.adb,
../config/a
ws-os_lib__gnat.adb aws-os_lib.adb, ...) failed.
make (e=193): Error 193make.exe[1]: *** [gnat_oslib] Error 193
c:\GNAT\bin\make.exe: *** [gnat_oslib] Error 2

I think this is because the unix commands (cp, rm etc) are referred to in
the makefiles using variables (to allow for different operating systems,
presumably) but these variables aren't being understood by the command
line. It looks to me like there should be commands before each filename in
the error message above - a suspicion borne out when I look at the
makefiles and see environment variables in front of the filenames
(quelquechose.adb etc). I have previously tried replacing these variables
with the actual command name, which seems to result in fewer error
messages, but doesn't totally fix the problem. This is because I don't
understand Unix scripts! Also, some variables seem to work ok (the ones in
curly brackets/braces: '{}') whereas the ones that don't seem
predominantly (entirely?) to be enclosed in parentheses ('()'). This is
obviously a Unix thing.

Does anyone have any suggestions? I'm going to try this on a proper Unix
box, which may well work ok, but won't really help with using it on
Windows, because the AWS library is built differently.

Many thanks
Alex