This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
Re: problems with libX11.a
Harold,
Sorry I forgot about that part. The 'nbreaker' demo seemed to be the only
demo causing problems and we were under some pressure to get the project
built, so we moved the 'nbreaker' demo out of the demo directory so it
wouldn't try to be built with the rest of the project.
I did some looking before removing the demo and found that 'GR_PIXMAP_ID'
is NOT defined in any header. I found a reference to 'GR_PIXMAP_ID' in the
file 'original_mini-x.txt' which discussed all of the TYPEDEFS in the
project. This led me to the 'nano-X.h' header, which defines all of the
other defines listed in 'oringal_mini-x.txt.' I noticed that the comment
on the typedef for 'GR_WINDOW_ID' mentioned that it was a "window or pixmap
id." I am assuming that if you were to define 'GR_PIXMAP_ID' in the same
fashion as 'GR_WINDOW_ID' that you might be able to get the project to
build...we just didn't have time to explore that option.
Mark
At 07:26 PM 12/31/2003 -0500, you wrote:
Mark,
Thanks, those instructions work until it gets to the 'nbreaker' demo:
Linking /home/harold/x-devel/ports/MicroWindows/build/src/bin/launcher ...
Updating dependencies in
/home/harold/x-devel/ports/MicroWindows/build/src/demos
/nbreaker ...
Compiling animate.c ...
In file included from animate.c:41:
nbreaker.h:160: error: syntax error before "GR_PIXMAP_ID"
nbreaker.h:160: warning: no semicolon at end of struct or union
nbreaker.h:161: warning: type defaults to `int' in declaration of `a'
nbreaker.h:161: warning: data definition has no type or storage class
nbreaker.h:171: error: syntax error before '}' token
Seems that GR_PIXMAP_ID is not defined in the included headers. Can you
describe how you worked through this?
Harold
Mark Mussetter wrote:
Hi Harold,
Thanks for your help. We were able to get MicroWindows running after you
pointed us in the right direction. We already had the Xfree86-prog
package but you comments about trying to link explicitly to libX11.a led
us to the problem. The following is a clip from Makefile.rules:
ifeq ($(X11), Y)
DEFINES += -DX11=1
ifneq ($(ARCH),CYGWIN)
# Cygwin can't use this - the -lX11 needs to be specified
# *after* the object files that use it, but this inserts
# it at the start. For Cygwin, we will add libX11.a to the
# library list instead.
LDFLAGS += -L/usr/X11R6/lib -lX11
else
MW_CORE_LIBS += /usr/X11R6/lib/libX11.dll.a
endif
ifeq ($(ARCH),FREEBSD-X86)
INCLUDEDIRS += -I/usr/X11R6/include
endif
ifeq ($(ARCH),CYGWIN)
INCLUDEDIRS += -I/usr/X11R6/include
endif
endif
We changed the 10th line to its current state. It used to say
"MW_CORE_LIBS += /usr/X11R6/lib/libX11.a"
Once we made that change everything else fell into place and we were able
to run the demos.
My steps were:
1. cd microwin/src
2. Typed "cp Configs/config.cygwin config" for the cygwin configuration.
See CONTENTS and Configs/README for more information.
3. Typed "make"
4. Change the Makefile.rules file to link against libX11.dll.a instead of
libX11.a
5. Typed "make"
4. Ran ./demo.sh
Thanks again for your help,