Solution to make kaffe-1.0.b3 problems on NT4 / CYGWIN32

Jim Flowers flowers at aligninc.com
Thu Dec 17 15:11:33 PST 1998


Hi,

I'm new to kaffe, CYGWIN--and this list--so please comment if
I'm going about this wrong.

kaffe-1.0.b3 doesn't make as installed on NT (4 w/service
pack 3) & CYGWIN32 (b20). Previous messages have pointed
this out on kaffe-1.0.b2, but a search of the archives
uncovers no fixes that I could see.

There seems to be 4 bugs, which I'll describe below. I don't have
access to a linux system, so I can't confirm these fixes don't
cause other problems. I still am having run errors, but that's
the subject of another message.

1. compile error on libraries/clib/io/AudioPlayer.c:
======================================================================
=======
bash-2.02$ make
gcc -g -O2 -Wall -Wstrict-prototypes -DNO_SHARED_LIBRARIES -DNO_SHARED
_VMLIBRARY
 -I. -I../../../include -I./../../../include -I../../../config -I./../
../../conf
ig  -c  AudioPlayer.c -o AudioPlayer.o
In file included from ..\..\..\config\config-std.h:15,
                 from ..\..\..\include\files.h:15,
                 from AudioPlayer.c:12:
e:\tools\CYGWIN~1\H-I586~1\bin\..\lib\gcc-lib\i586-cygwin32\egcs-2.91.
57\..\..\.
.\..\i586-cygwin32\include\stdlib.h:59: parse error before `('
make: *** [AudioPlayer.o] Error 1
======================================================================
========

Seems to be an include error in config-std.h. I stubbed out the code
to
get around the problem for now. Can someone else post a fix?

2. make install error on libraries/management:
===================================================================
bash-2.02$ make install
test -d /usr/local/lib/kaffe || mkdir -p /usr/local/lib/kaffe
rm -f /usr/local/lib/kaffe/libmanagement.a
/usr/local/lib/kaffe/libmanagement.a.
1.00
/tools/CYGWIN~1/H-I586~1/bin/install -c -m 644 libmanagement.a
/usr/local/lib/ka
ffe/libmanagement.a.1.00
cp libmanagement.a.1.00 /usr/local/lib/kaffe/libmanagement.a
cp: libmanagement.a.1.00: No such file or directory
make: *** [install] Error 1
bash-2.02$ ls /usr/local/lib/kaffe
======================================================================
=======

The error is in the Makefile.in, which swaps the values for the LIB &
LIBV
variables (among other things). I changed it to parallel the other
library Makefile.in files.

Here are the diffs:

bash-2.02$ diff Makefile.in Makefile.in.jrf
38,39c38,42
< LIB=          $(LIBNAME)$(LIBEXT)
< LIBV=         $(LIBNAME)$(LIBEXT).$(KVER)
---
> #JRF981215: corrected LIB & LIBV defn to match other libraries
> #LIB=         $(LIBNAME)$(LIBEXT)
> #LIBV=                $(LIBNAME)$(LIBEXT).$(KVER)
> LIB=          $(LIBNAME)$(LIBEXT).$(KVER)
> LLIB=         $(LIBNAME)$(LIBEXT)
51c54,61
< all:          $(LIB)
---
> #JRF981215
> #all:         $(LIB)
> all:          $(LLIB)
>
> #JRF981215: added to handle LLIB defn
> $(LLIB):      $(LIB)
>               rm -f $(LLIB)
>               $(LN) $(LIB) $(LLIB)
68c78,79
<               rm -f $(LIB) $(OBJECT) lib.exp external_wrappers.h
---
> #JRF981215    rm -f $(LIB) $(OBJECT) lib.exp external_wrappers.h
>               rm -f $(LLIB) $(LIB) $(OBJECT) lib.exp
external_wrappers.h
77,79c88,93
<               rm -f $(INSTROOT)$(nativedir)/$(LIB)
$(INSTROOT)$(nativedir)/$(L
IBV)
<               $(INSTALL_DATA) $(LIB) $(INSTROOT)$(nativedir)/$(LIBV)
<               $(LN) $(LIBV) $(INSTROOT)$(nativedir)/$(LIB)
---
> #JRF981215    rm -f $(INSTROOT)$(nativedir)/$(LIB)
$(INSTROOT)$(nativedir)/$(L
IBV)
> #             $(INSTALL_DATA) $(LIB) $(INSTROOT)$(nativedir)/$(LIBV)
> #             $(LN) $(LIBV) $(INSTROOT)$(nativedir)/$(LIB)
>               rm -f $(INSTROOT)$(nativedir)/$(LIB)
$(INSTROOT)$(nativedir)/$(L
LIB)
>               $(INSTALL_DATA) $(LIB) $(INSTROOT)$(nativedir)/$(LIB)
>               $(LN) $(LLIB) $(INSTROOT)$(nativedir)/$(LIB)
91a106
>

3. make install error on libraries/net:
====================================================================
bash-2.02$ make install
test -d /usr/local/lib/kaffe || mkdir -p /usr/local/lib/kaffe
rm -f /usr/local/lib/kaffe/libnet.a /usr/local/lib/kaffe/libnet.a.1.00
/tools/CYGWIN~1/H-I586~1/bin/install -c -m 644 libnet.a
/usr/local/lib/kaffe/lib
net.a.1.00
cp libnet.a.1.00 /usr/local/lib/kaffe/libnet.a
cp: libnet.a.1.00: No such file or directory
make: *** [install] Error 1
====================================================================

Same as above. Here are the diffs:

bash-2.02$ diff Makefile.in Makefile.in.jrf
37,38c37,41
< LIB=          $(LIBNAME)$(LIBEXT)
< LIBV=         $(LIBNAME)$(LIBEXT).$(KVER)
---
> #JRF981215: corrected LIB & LIBV defn to match other libraries
> #LIB=         $(LIBNAME)$(LIBEXT)
> #LIBV=                $(LIBNAME)$(LIBEXT).$(KVER)
> LIB=          $(LIBNAME)$(LIBEXT).$(KVER)
> LLIB=         $(LIBNAME)$(LIBEXT)
52c55,62
< all:          $(LIB)
---
> #JRF981215
> #all:         $(LIB)
> all:          $(LLIB)
>
> #JRF981215: added to handle LLIB defn
> $(LLIB):      $(LIB)
>               rm -f $(LLIB)
>               $(LN) $(LIB) $(LLIB)
69c79,80
<               rm -f $(LIB) $(OBJECT) lib.exp
---
> #JRF981215    rm -f $(LIB) $(OBJECT) lib.exp
>               rm -f $(LLIB) $(LIB) $(OBJECT) lib.exp
78,80c89,94
<               rm -f $(INSTROOT)$(nativedir)/$(LIB)
$(INSTROOT)$(nativedir)/$(L
IBV)
<               $(INSTALL_DATA) $(LIB) $(INSTROOT)$(nativedir)/$(LIBV)
<               $(LN) $(LIBV) $(INSTROOT)$(nativedir)/$(LIB)
---
> #JRF981215    rm -f $(INSTROOT)$(nativedir)/$(LIB)
$(INSTROOT)$(nativedir)/$(L
IBV)
> #             $(INSTALL_DATA) $(LIB) $(INSTROOT)$(nativedir)/$(LIBV)
> #             $(LN) $(LIBV) $(INSTROOT)$(nativedir)/$(LIB)
>               rm -f $(INSTROOT)$(nativedir)/$(LIB)
$(INSTROOT)$(nativedir)/$(L
IB)
>               $(INSTALL_DATA) $(LIB) $(INSTROOT)$(nativedir)/$(LIB)
>               $(LN) $(LLIB) $(INSTROOT)$(nativedir)/$(LIB)


4. make install error on kaffe/scripts:
==============================================================
bash-2.02$ make install
for i in pizza pizzadoc ;\
        do \
                /tools/CYGWIN~1/H-I586~1/bin/install -c -m 755
./.bat/$i /usr/lo
cal/bin/$i.bat  ;\
        done
/tools/CYGWIN~1/H-I586~1/bin/install: ./.bat/pizza: No such file or
directory
/tools/CYGWIN~1/H-I586~1/bin/install: ./.bat/pizzadoc: No such file or
directory

make: *** [install-pizza] Error 1
==============================================================

Couple of problems here:
- test for bin directory is done in install-sun, but install-pizza is
run first
- SCREXT is set to .bat, which causes install to barf (I think it
should be
  "" under CYGWIN)
- INSTALL_SCRIPT uses SCREXT

Here are the diffs:

bash-2.02$ diff Makefile.in Makefile.in.jrf
17c17,19
< SCREXT=               @SCREXT@
---
> #JRF981215: script extension under CYGWIN is null
> #SCREXT=              @SCREXT@
> SCREXT=
41c43,45
< install:      install-pizza install-sun install-jars @suncompatible@
---
> #JRF981215: do install-sun first to create bin dir if needed
> #install:     install-pizza install-sun install-jars @suncompatible@
> install:      install-sun install-pizza install-jars @suncompatible@


Jim Flowers / Align Inc.
flowers at aligninc.com






More information about the kaffe mailing list