Subject: Re: i586-linux-pc -> i386-mingw32 [One man's porting experience]
From: [email-masked] (Peter Dalgaard BSA)

1 Aug 1998 22:01:54 -0700
Message-ID: <[email-masked]>
References: <[email-masked]>
To: Marcus Brown <[email-masked]>
Cc: [email-masked]

Marcus Brown <[email-masked]> writes:

> said that it found some garbage characters in an assembler file.  Trying
> to make the best of a situation, I then resorted to just "make install"
> and believe it or not the whole thing worked perfectly.  Even the test
> programs compiled and ran on NT without a hitch...Has anyone else ever
> encountered anything strange when trying to do this?

Yes, exactly that. The process is completely bewitched. There's some
kind of mess with the egcs Makefiles that essentially makes the make
work if you have a cross-compiler installed already. So you mess
around, try something and it dies, try something else and it dies in
another place, at some point you try "make install", and some key bit
falls into place and everything works from then on -- unless you try
and delete *everything* and start over in order to find a clean way of
building it.

Below is a Makefile that I finally persuaded to do a clean build for
me. I've sent it to Mumit and he's probably able to improve it
considerably, but till then, here it is:

# Preliminaries: 
#	Unpack binutils-2.9.1 somewhere
#	Unpack egcs somewhere and PATCH IT with Mumit's patches
#	 if (and only if) it's version 1.0.2 
#	 [ cd to egcs dir and
#		gzip -dc egcs-1.0.2-mingw32.diff.gz | patch -p2
#	 ]
#	Get the zipped files for the *native* egcs-mingw32 from Mumits
#       site 

prefix=$(shell pwd)# ... or e.g. /usr/local
wkdir=$(shell pwd)

# This name got a bit mangled by the Joliet CD "standard"
# Note that I'm not asking you to unpack it.
native=/mnt/cdrom/egcs-1~1.zip

binutils=~/binutils-2.9.1
egcs=~/egcs-1.0.2

all: egcs-final

egcs-final: egcs
	export PATH=$(PATH):$(prefix)/bin ;\
	cd $(wkdir)/EGCS ;\
	$(egcs)/configure --srcdir=$(egcs)\
		--prefix=$(prefix) --target=i386-mingw32 ; \
	make &&\
	make install
	touch egcs-final
egcs: inc-install binutils-install
	mkdir -p $(wkdir)/EGCS
	cd $(wkdir)/EGCS ; \
	export PATH=$(PATH):$(prefix)/bin ;\
	$(egcs)/configure --srcdir=$(egcs)\
		--prefix=$(prefix) --target=i386-mingw32 ; \
	make info &&\
	make install LANGUAGES="c c++"
	touch egcs
binutils-install: binutils
	cd $(wkdir)/BINU ; make install
	touch binutils-install
binutils: inc-install 
	mkdir -p $(wkdir)/BINU
	cd $(wkdir)/BINU ; \
	$(binutils)/configure --srcdir=$(binutils) \
		--prefix=$(prefix) --target=i386-mingw32 ; \
	make
	touch binutils
inc-install:
	unzip -o $(native) 'i386-mingw32/*' -d $(prefix) 
	touch inc-install

# This doesn't quite cut it, but I'm not going to  rm $(prefix)/bin/*, etc.
clean:
	rm -rf $(wkdir)/EGCS $(wkdir)/BINU
	rm egcs-final egcs binutils binutils-install inc-install

-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - ([email-masked])             FAX: (+45) 35327907
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".