make -f Makefile.sunpro
...
cc -I/usr/openwin/include -DOW_I18N_L3 -DSHAPE -DIDENT -target sun4 -c error.c
cc -I/usr/openwin/include -DOW_I18N_L3 -DSHAPE -DIDENT -target sun4 -c evbind.c
"/usr/openwin/include/olgx/olgx.h", line 356: illegal type combination
*** Error code 1
make: Fatal error: Command failed for target `evbind.o'
I dug and found that there are two definitions of Boolean in the
include files. Also, there is a fix for this in one of the other
files, but not this one.
Thanks
|Bryan M. Kramer, Ph.D. 416-978-7330, fax 416-978-1455|
|Department of Computer Science, University of Toronto |
|6 King's College Road, Room 283E |
|Toronto, Ontario, Canada M5S 1A4 |
Ben
---
===============================================================================
Ben Dorman, Dept of Astronomy bd...@borealis.astro.virginia.edu
University of Virginia, P.O. Box 3818 University Station Tel: (804)-924-4888
Charlottesville, Virginia U.S.A. 22903-0818 FAX: -3104
Bryan> Has anybody done this successfully? I get the following: make
Bryan> -f Makefile.sunpro ... cc -I/usr/openwin/include -DOW_I18N_L3
Bryan> -DSHAPE -DIDENT -target sun4 -c error.c cc
Bryan> -I/usr/openwin/include -DOW_I18N_L3 -DSHAPE -DIDENT -target
Bryan> sun4 -c evbind.c "/usr/openwin/include/olgx/olgx.h", line 356:
Bryan> illegal type combination *** Error code 1 make: Fatal error:
Bryan> Command failed for target `evbind.o'
I went and grabbed xview3.2 off ftp.x.org. Pointed cpp to look the
new olgx.h file with -Iour_local_site/xview3.2/lib/libolgx. Since the
include files use the annoying <olgx/olgx.h> convention, this required
a symlink. Seems to work fine.
--
Mike Bolotski MIT Artificial Intelligence Laboratory
mi...@ai.mit.edu Cambridge, MA 02139 (617) 253-8170
cc -I/usr/openwin/include -DOW_I18N_L3 -DSHAPE -DIDENT -c images.c -o images.o
"images.c", line 54: operands of = have incompatible types
"images.c", line 70: operands of = have incompatible types
"images.c", line 86: operands of = have incompatible types
........
(This image stuff is new to olvwm, right?) Here are problem lines
from images.c
Button openButton = {
{ { StringLabel, NULL, NULL }, { StringLabel, NULL, NULL } },
{"window:Open", "window:Close"},
0,
False,
True,
True,
WindowOpenCloseAction,
NULL, <=== Shouldn't this be { NULL } ???
ACTION_OPEN_CLOSE,
NULL,
NULL
};
and from menu.h
/*
* Button: describes a single button in a menu.
*/
typedef struct _button {
ButtonLabel label[2]; /* displayed label, alternate label */
char *helpstring[2]; /* help for that button, alternate help */
int which; /* which label to display */
Bool has_submenu; /* tells whether this button has a submenu */
Bool enabled; /* Enabled/Disabled */
Bool visible; /* is this item visible at all? */
FuncPtr callback; /* function to call when item hit */
/* NULL if button has pullright */
union {
struct _menu *submenu; /* pointer to the submenu, if has_submenu */
char *command; /* command, if callback is AppMenuFunc */
void *other; /* unspecified */
} action;
SemanticAction semantic; /* semantic action for window menu items */
FuncPtr generate_func; /* If !NULL, called when this button is
* hilighted to re-initialize action.submenu */
char *generate_args; /* args for generate function */
} Button;
Out of desperation (I'm no C-programmer), I tried gcc, and it made it thru.
But, the gcc-made olvwm* does not recognize short-cut keys. What gives? Tx.
Once you get past that error you will run into another problem. If you have
gcc, run the following Makefile:
***** Cut here for Makefile *****
.KEEP_STATE:
#
# Makefile for olvwm
#
# To make olvwm, simply type make
# To install olvwm, type make install
# Set this to the directory to place the olvwm executable
INSTALLDIR = /usr/local/bin
# If you want to use the OPENWINDOWS help facility, then set HELPDIR
# to the directory where those files are kept. If you cannot write
# to that directory but still want to install the helpfile, set HELPDIR
# to some other directory and add that directory to your HELPPATH.
# If you don't want to install the help file at all, set HELPDIR to /dev/null.
HELPDIR = ${OPENWINHOME}/lib/help
# Where to install the man pages: man1 dir is where olvwm.man will go;
# and man5 dir is where olvwmrc.man will go; you may want to set these
# to a local directory somewhere.
# If you don't want to install the man pages, set these to /dev/null.
MAN1DIR = /usr/local/man/man1
MAN5DIR = /usr/local/man/man5
# If you don't have olwm installed anywhere and want to install the olwm
# man page (which discusses most of the olvwm functionality too) uncomment
# out the following line
#OLWMMAN = olwm.man
#
# Set MORECCFLAGS to any options you want to pass to the compiler. These
# include and defines, and debugging and/or optimization flags, and the like.
# Also, if you have headers for things like the XPM library in a non-standard
# place, include the appropriate -I flag here.
#
# There are a bunch of defines, and I can't honestly say I've used or even
# tested all of them (since much of this code came from the xview 3.2 release)
# and certainly I haven't used all combinations of them. See below for
# suggested settings:
#
# Here's a set of possible defines:
# -DALLPLANES Support the AllPlanes extension (valid in SunOs/Solaris)
# -DDEBUG Include some debugging code
# -DIDENT Include ident directives for the compiler
# -DMAXPID=32768 For 386BSD
# -DMEMDEBUG To debug the memory allocation
# -DOW_I18N_L3 Include support for Level 3 internationalization
# (Note: I haven't tested without this, and I can't
# test it in any locale but C, so include it, but
# take it with a grain of salt -- the original olwm
# code will work, but the olvwm extensions may not
# support the correctinternationalization)
# -DOW_I18N_L4 Include support for Level 4 internationalization
# (Note: This is not yet supported, but it may work)
# -DREGEXP Support for the 386 BSD regular expression library
# -DRLIMIT_NOFILE Support for the 386BSD/Ultrix RLIMIT calls
# -DSHAPE Support the shapes extension (valid in SunOS/Solaris)
# -DSYSV Support for System V (Release 3 or 4)
# -DSVR4 Support for System V Release 4 (you must also include
# -DSYSV)
# -DXPM Support the XPM color pixmaps -- requires that you
# have the xpm library somewhere
#
# I haven't tested this on Solaris 1.x, but I'd suggest
MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DIDENT
# For a generic Solaris 2.x system, I'd suggest
#MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DSVR4 -DSYSV -DIDENT -x O4
#
# Set LDFLAGS to any link options you want. For a generic Solaris 1.x
# system, I'd suggest
#LDFLAGS=-L${OPENWINHOME}/lib /auto/X11R5/lib/libXpm.a
LDFLAGS=-L${OPENWINHOME}/lib
#
# For Solaris 2.x, I'd suggest
#LDFLAGS=-L${OPENWINHOME}/lib -R ${OPENWINHOME}/lib -lintl
#
# Which compiler to use
CC = gcc
#
# You shouldn't need to change anything below this line
INC = -I${OPENWINHOME}/include
CFLAGS = ${INC} ${MORECCFLAGS}
HEADERS = cmdstream.h cursors.h debug.h defaults.h dsdm.h environ.h error.h \
events.h gettext.h globals.h group.h helpcmd.h i18n.h iconimage.h \
iconmask.h kbdfuncs.h list.h mem.h menu.h notice.h olcursor.h \
olgx_impl.h ollocale.h olwm.h patchlevel.h properties.h resources.h \
screen.h selection.h slots.h st.h virtual.h win.h
SRCS = atom.c client.c cmdstream.c cursors.c debug.c defaults.c dsdm.c \
environ.c error.c evbind.c events.c fontset.c gettext.c gif.c group.c \
helpsend.c i18n.c images.c info.c kbdfuncs.c list.c mem.c menu.c \
moveresize.c notice.c ol_button.413.c ol_button.svr4.c olvwmrc.c \
olwm.c pixmap.c properties.c reduce.c resources.c screen.c \
selection.c services.c slave.c slots.c st.c states.c usermenu.c \
usleep.c virtual.c win.c winbusy.c winbutton.c wincolor.c winframe.c \
wingframe.c winicon.c winipane.c winmenu.c winnofoc.c winpane.c \
winpinmenu.c winpush.c winresize.c winroot.c
LIBS = ${LDFLAGS} -lXpm -lolgx -lXext -lX11 -ll -lm
OBJS = ${SRCS:.c=.o}
olvwm : ${OBJS}
${CC} -o olvwm ${OBJS} ${LIBS}
lint:
lint ${CFLAGS} ${SRCS}
parse.c : parse.l
lex -t parse.l > parse.c
olvwmrc.c : olvwmrc.y
yacc olvwmrc.y
mv y.tab.c olvwmrc.c
olvwmrc.o : parse.c olvwmrc.c
clean :
/bin/rm -f olvwm .make.state .nse_depinfo parse.c olvwmrc.c *.o core errs ,* .emacs_* tags TAGS make.log MakeOut "#"*
install:
@echo "Installing olvwm in $(INSTALLDIR)"
@/bin/cp olvwm $(INSTALLDIR)
@echo "Installing help file in $(HELPDIR)"
@/bin/cp olvwm.info $(HELPDIR)
@echo "Installing olvwm man page in $(MAN1DIR)"
@/bin/cp olvwm.man olvwm.1
@/bin/cp olvwm.1 $(MAN1DIR)
@/bin/rm -f olvwm.1
@echo "Installing olvwmrc man page in $(MAN5DIR)"
@/bin/cp olvwmrc.man olvwmrc.5
@/bin/cp olvwmrc.5 $(MAN5DIR)
@/bin/rm -f olvwmrc.5
-@/bin/cp ${OLWMMAN} ${MAN1DIR}/olwm.1 >/dev/null 2>&1
***** cut here for end of Makefile *****
Read the file carefully. I use /usr/local as the place to put the programs
and stuff (/usr/local/{bin,lib,man}). I never write this kind of stuff into
the OpenWindows directory.
If you don't have gcc or acc, let me know and I can send the patch file.
Warning: not only is CC changed to gcc, the LDFLAGS and LIBS are changed as
well. There was a leftover error in the distributed Makefile.sunpro.
In any event, if you use the above Makefile file, it will compile and it
does run. I'm using it as I type.
--
harvard\
ucbvax!uwvax!astroatc!ftms!brown or uu2.psi.com!ftms!brown
rutgers/
INTERNET: br...@wi.extrel.com or ftms!brown%astroa...@cs.wisc.edu
It's not nice, but if you have root acces you can just (temporarily)
delete the
typedef char Boolean;
line in /usr/openwin/include/olgx/olgx.h. xpaint then compiles
fine. (Remember to put the line back afterwards :-)
---
_________________
Gareth J. Barker, Institute of Neurology, Queen Square,
London WC1N 3BG, UK.
JANET : g.ba...@uk.ac.bpmf.ion.nmr
INTERNET : g.ba...@nmr.ion.bpmf.ac.uk