diff --git a/ChangeLog b/ChangeLog
index fe3c676bc13..9669d13fb7d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon Dec  4 12:05:40 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Add support for exec-prefix.
+
 Mon Dec  4 10:22:50 1995  Jeffrey A. Law  <law@rtl.cygnus.com>
 
 	* config.guess: Recognize HP model 816 machines as having
diff --git a/mpw-configure b/mpw-configure
index 9caee1948a9..01e0c8b00e6 100644
--- a/mpw-configure
+++ b/mpw-configure
@@ -34,7 +34,9 @@ Set srcdir ":"
 
 Set objdir ":"
 
-Set prefix ":"
+Set prefix "{MPW}":GNUTools:
+
+Set exec_prefix ""
 
 Set host_alias "m68k-apple-mpw"
 
@@ -42,7 +44,7 @@ Set target_alias {host_alias}
 
 Set host_cc "mpwc"
 
-Set prefix "{MPW}":Cygnus:latest:
+Set with_gnu_ld 0
 
 Set verify 0
 Set verifystr ""
@@ -54,6 +56,12 @@ Loop
 	If "{1}" =~ /--cc/
 		Set host_cc "{2}"
 		Shift 1
+	Else If "{1}" =~ /--enable/
+		Set "{2}" 1
+		Shift 1
+	Else If "{1}" =~ /--exec-prefix/
+		Set exec_prefix "{2}"
+		Shift 1
 	Else If "{1}" =~ /--host/
 		Set host_alias "{2}"
 		Shift 1
@@ -72,7 +80,8 @@ Loop
 	Else If "{1}" =~ /-v/
 		Set verify 1
 		Set verifystr "-v"
-		Shift 1
+	Else If "{1}" =~ /--with-gnu-ld/
+		Set with_gnu_ld 1
 	Else
 		Echo "{1}" is not a valid argument
 		Exit 1
@@ -82,15 +91,16 @@ End Loop
 
 Set Exit 0
 
-# (should interpret aliases if not in canonical form)
+# Default exec_prefix from prefix.
 
-Set host_canonical "{host_alias}"
-
-Set target_canonical "{target_alias}"
+If "{exec_prefix}" == ""
+	Set exec_prefix "{prefix}"
+End If
 
 # Point to the correct set of tools to use with the chosen compiler.
 
 If "{host_cc}" =~ /mpwc/
+	Set host_alias "m68k-apple-mpw"
 	Set cc_name '{CC_MPW_C}'
 	Set segment_flag '-s {Default}'
 	Set ar_name '{AR_LIB}'
@@ -101,6 +111,7 @@ If "{host_cc}" =~ /mpwc/
 	Set makepef_name '{MAKEPEF_NULL}'
 	Set rez_name '{REZ_68K}'
 Else If "{host_cc}" =~ /sc68k/
+	Set host_alias "m68k-apple-mpw"
 	Set cc_name '{CC_SC}'
 	Set segment_flag '-s {Default}'
 	Set ar_name '{AR_LIB}'
@@ -111,6 +122,7 @@ Else If "{host_cc}" =~ /sc68k/
 	Set makepef_name '{MAKEPEF_NULL}'
 	Set rez_name '{REZ_68K}'
 Else If "{host_cc}" =~ /mwc68k/
+	Set host_alias "m68k-apple-mpw"
 	Set cc_name '{CC_MWC68K}'
 	Set segment_flag '-s {Default}'
 	Set ar_name '{AR_MWLINK68K}'
@@ -121,6 +133,7 @@ Else If "{host_cc}" =~ /mwc68k/
 	Set makepef_name '{MAKEPEF_NULL}'
 	Set rez_name '{REZ_PPC}'
 Else If "{host_cc}" =~ /gcc68k/
+	Set host_alias "m68k-apple-mpw"
 	Set cc_name '{CC_68K_GCC}'
 	Set segment_flag '-s {Default}'
 	Set ar_name '{AR_68K_AR}'
@@ -131,6 +144,7 @@ Else If "{host_cc}" =~ /gcc68k/
 	Set makepef_name '{MAKEPEF_NULL}'
 	Set rez_name '{REZ_68K}'
 Else If "{host_cc}" =~ /ppcc/
+	Set host_alias "powerpc-apple-mpw"
 	Set cc_name '{CC_PPCC}'
 	Set segment_flag ''
 	Set ar_name '{AR_PPCLINK}'
@@ -141,6 +155,7 @@ Else If "{host_cc}" =~ /ppcc/
 	Set makepef_name '{MAKEPEF_PPC}'
 	Set rez_name '{REZ_PPC}'
 Else If "{host_cc}" =~ /mrc/
+	Set host_alias "powerpc-apple-mpw"
 	Set cc_name '{CC_MRC}'
 	Set segment_flag ''
 	Set ar_name '{AR_PPCLINK}'
@@ -151,6 +166,7 @@ Else If "{host_cc}" =~ /mrc/
 	Set makepef_name '{MAKEPEF_PPC}'
 	Set rez_name '{REZ_PPC}'
 Else If "{host_cc}" =~ /scppc/
+	Set host_alias "powerpc-apple-mpw"
 	Set cc_name '{CC_SC}'
 	Set segment_flag ''
 	Set ar_name '{AR_PPCLINK}'
@@ -161,6 +177,7 @@ Else If "{host_cc}" =~ /scppc/
 	Set makepef_name '{MAKEPEF_PPC}'
 	Set rez_name '{REZ_PPC}'
 Else If "{host_cc}" =~ /mwcppc/
+	Set host_alias "powerpc-apple-mpw"
 	Set cc_name '{CC_MWCPPC}'
 	Set segment_flag ''
 	Set ar_name '{AR_MWLINKPPC}'
@@ -172,19 +189,30 @@ Else If "{host_cc}" =~ /mwcppc/
 	Set makepef_name '{MAKEPEF_NULL}'
 	Set rez_name '{REZ_PPC}'
 Else If "{host_cc}" =~ /gccppc/
+	Set host_alias "powerpc-apple-mpw"
 	Set cc_name '{CC_PPC_GCC}'
 	Set segment_flag ''
 	Set ar_name '{AR_PPCLINK}'
 	Set ranlib_name '{RANLIB_RANLIB}'
-	Set cc_ld_name '{CC_LD_PPCLINK}'
+	If {with_gnu_ld} == 1
+		Set cc_ld_name '{CC_LD_GLD}'
+	Else
+		Set cc_ld_name '{CC_LD_PPCLINK}'
+	End If
 	Set prog_ext_name '{PROG_EXT_XCOFF}'
 	Set extralibs_name '{EXTRALIBS_PPC}'
 	Set makepef_name '{MAKEPEF_PPC}'
 	Set rez_name '{REZ_PPC}'
 Else
-	Echo "{host_cc}" is not a known MPW C compiler type
+	Echo "{host_cc}" is not a known MPW compiler type
 End If
 
+# (should interpret aliases if not in canonical form)
+
+Set host_canonical "{host_alias}"
+
+Set target_canonical "{target_alias}"
+
 Set configdirs ""
 
 If "{srcroot}" =~ /--------/
@@ -229,6 +257,7 @@ Echo "srcroot = " {srcroot}			>> "{objdir}"Makefile.tem
 Echo "topsrcdir = " {srcroot}			>> "{objdir}"Makefile.tem
 Echo "srcdir = " {srcdir}			>> "{objdir}"Makefile.tem
 Echo "mpw_prefix = " {prefix}			>> "{objdir}"Makefile.tem
+Echo "mpw_exec_prefix = " {exec_prefix}		>> "{objdir}"Makefile.tem
 Echo "host_alias = " {host_alias}		>> "{objdir}"Makefile.tem
 Echo "target_alias = " {target_alias}		>> "{objdir}"Makefile.tem
 Echo "target_cpu = " {target_cpu}		>> "{objdir}"Makefile.tem
@@ -266,13 +295,23 @@ If "`Exists "{objdir}"mk.tmp`" != ""
 	Delete -i -y "{objdir}"mk.tmp
 End If
 
-# If there is a sed script to edit the Unix Makefile.in, use it; otherwise
+# If there are sed scripts to edit the Unix Makefile.in, use them; otherwise
 # use an mpw-make.in if present.
 
 If "`Exists "{srcdir}"mpw-make.sed`" != ""
-	sed -f "{srcroot}"utils:mpw:u2mpw-mf.sed "{srcdir}"Makefile.in >"{objdir}"Makefile.tem1
+	If "`Exists "{objdir}"hacked_Makefile.in`" != ""
+		Set MakefileIn "{objdir}"hacked_Makefile.in
+	Else
+		Set MakefileIn "{srcdir}"Makefile.in
+	End If
+	If "`Exists "{srcroot}"utils:mpw:g-mpw-make.sed`" != ""
+		sed -f "{srcroot}"utils:mpw:g-mpw-make.sed "{MakefileIn}" >"{objdir}"Makefile.tem1
+	Else
+		Catenate "{MakefileIn}" >"{objdir}"Makefile.tem1
+	End If
 	sed -f "{srcdir}"mpw-make.sed "{objdir}"Makefile.tem1 >"{objdir}"Makefile.tem2
-	sed -e "s/@SEGMENT_FLAG@/{segment_flag}/" "{objdir}"Makefile.tem2 >"{objdir}"mpw-make.in
+	sed -e 's/^prefix = .*$/prefix = {mpw_prefix}/g' -e 's/^exec_prefix = .*$/exec_prefix = {mpw_exec_prefix}/g' "{objdir}"Makefile.tem2 >"{objdir}"Makefile.tem3
+	sed -e "s/@SEGMENT_FLAG@/{segment_flag}/" "{objdir}"Makefile.tem3 >"{objdir}"mpw-make.in
 	tr-7to8 "{objdir}"mpw-make.in >>"{objdir}"Makefile.tem
 	MoveIfChange "{objdir}"Makefile.tem "{objdir}"Makefile
 	Delete -i -y "{objdir}"Makefile.tem[12]