[comp.windows.interviews] GNU C++ and iv-3.0-beta, together again...

mrs@MX.SECS.CSUN.EDU (Mike Stump) (04/24/91)

Ok, It's here.  It's nearly done.  (I know, wishful thinking.)
One should now be able to compile all of interviews with g++.  I am
looking for people to try this out if you have the time and disk space.
I would like to know if it works for you.

Here is the top part of a file called:

	~ftp/pub/contrib/iv-3.0-g++-1.2.S@interviews.stanford.edu

Here are four sets of patches to help you get iv-3.0-beta working with
g++.  I am using iv-3.0-beta and libg++1.39.0 and gcc-1.92 on a sun4
SPARC to cross compile to a vax running Ultrix 4.1.  (It is faster
that way!)

Also, I manual do a:

	for i in *.c
	do
		mv $i ${i}c
	done

in the IV source directories on demand.  Also, I have "rcp -r"ed the
whole /usr/include over to my SPARC, and then "rcp -r"ed my gcc
fixincludes directory on top of my new directory, replacing any
unneeded system headers.  The script below was then run in the new include
directory:

#!/bin/sh

while read i
do
	echo "doing $i"
	if [ -d "$i.bak" -o -f "$i.bak" ]; then
		echo "$i: already exists" >&2
	else
		mv "$i" "$i.bak"
		sed 's/\(#[ 	]*include[ 	]*["<]\)/\1BASE\//' <"$i.bak" >"$i"
		if cmp -s "$i" "$i.bak"; then
			rm -f "$i"
			mv "$i.bak" "$i"
		fi
		rm -f "$i.bak"
	fi
done

The final step was to provide a symbolic link in the gcc-include directory
from BASE to . as in ln -s . BASE.  This hackery makes it impossible for a
system headerfile to escape back into the c++ include hierarchy.  Also, this
way, you can have many cross compilers install on your system and the g++
header files from libg++ will choose not the files in /usr/include, but
whatever files it should!


This file does not constitute a release, or a permanent migration
version of iv.  In the future, I will provide ONLY diffs against
virgin sources.

What you get with these patches is:

	ability to compile all of src/lib
	ability to compile all of src/bin/alert
	ability to compile all of src/bin/dclock
	ability to compile most (all but 7 files) of src/bin/doc
	ability to compile all of src/bin/ibuild
	ability to compile all of src/bin/iclass
	ability to compile all of src/bin/idraw
	ability to compile all of src/bin/ifb
	ability to compile all of src/bin/ifc
	ability to compile all of src/bin/logo
	ability to compile all of src/bin/mailbox


Note, I hand compiled src/lib/IV-X11/{xbitmap,xcanvas,xraster}.cc
without the -O flag, as it makes gcc-1.92 core dump.

After patching, keep this file around, because when you get the next one, you
will need to UNDO these patches, or re-extract virgin 3.0-beta.

Note, these patches should now enable you to compile any interviews
programs you have.  If you are a new user, these are not yet for you,
don't waste your time.  Also, don't expect to be able to get gcc-1.92,
use g++-1.37, or some such.  There is one patch needed for the
compiler, if you don't feel like patching, building and installing it,
don't bother trying to uses these diffs.  Note, I have not verified
the proper operation of ANY a.outs yet, but will be doing that
shortly.  You might not be able to run a single program, but at least
you can compile them.


Send any mods, additions or problems to Mike Stump <mrs@csun.edu>.

The vax-include.diffs file is a short file containing diffs against
some standard headerfiles on ultrix that needed fixing.