+
+ test "$system_malloc" != "yes" && RALLOC_OBJ=ralloc.o
+fi
+AC_SUBST(RALLOC_OBJ)
+
+if test "$opsys" = "cygwin"; then
+ CYGWIN_OBJ="sheap.o"
+ ## Cygwin differs because of its unexec().
+ PRE_ALLOC_OBJ=
+ POST_ALLOC_OBJ=lastfile.o
+else
+ CYGWIN_OBJ=
+ PRE_ALLOC_OBJ=lastfile.o
+ POST_ALLOC_OBJ=
+fi
+AC_SUBST(CYGWIN_OBJ)
+AC_SUBST(PRE_ALLOC_OBJ)
+AC_SUBST(POST_ALLOC_OBJ)
+
+
+case "$opsys" in
+ aix4-2) LD_SWITCH_SYSTEM_TEMACS="-Wl,-bnodelcsect" ;;
+
+ darwin)
+ ## The -headerpad option tells ld (see man page) to leave room at the
+ ## end of the header for adding load commands. Needed for dumping.
+ ## 0x690 is the total size of 30 segment load commands (at 56
+ ## each); under Cocoa 31 commands are required.
+ if test "$HAVE_NS" = "yes"; then
+ libs_nsgui="-framework AppKit"
+ headerpad_extra=6C8
+ else
+ libs_nsgui=
+ headerpad_extra=690
+ fi
+ LD_SWITCH_SYSTEM_TEMACS="-prebind $libs_nsgui -Xlinker -headerpad -Xlinker $headerpad_extra"
+
+ ## This is here because src/Makefile.in did some extra fiddling around
+ ## with LD_SWITCH_SYSTEM. The cpp logic was:
+ ## #ifndef LD_SWITCH_SYSTEM
+ ## #if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
+ ## Since all the *bsds define LD_SWITCH_SYSTEM, this simplifies to:
+ ## not using gcc, darwin system not on an alpha (ie darwin, since
+ ## darwin + alpha does not occur).
+ ## Because this was done in src/Makefile.in, the resulting part of
+ ## LD_SWITCH_SYSTEM was not used in configure (ie, in ac_link).
+ ## It therefore seems cleaner to put this in LD_SWITCH_SYSTEM_TEMACS,
+ ## rather than LD_SWITCH_SYSTEM.
+ test "x$LD_SWITCH_SYSTEM" = "x" && test "x$GCC" != "xyes" && \
+ LD_SWITCH_SYSTEM_TEMACS="-X $LD_SWITCH_SYSTEM_TEMACS"
+ ;;
+
+ ## LD_SWITCH_X_SITE_AUX is a -R option saying where to find X at run-time.
+ ## When handled by cpp, this was in LD_SWITCH_SYSTEM. However, at
+ ## the point where configure sourced the s/*.h file, LD_SWITCH_X_SITE_AUX
+ ## had not yet been defined and was expanded to null. Hence LD_SWITCH_SYSTEM
+ ## had different values in configure (in ac_link) and src/Makefile.in.
+ ## It seems clearer therefore to put this piece in LD_SWITCH_SYSTEM_TEMACS.
+ gnu-linux) LD_SWITCH_SYSTEM_TEMACS="\$(LD_SWITCH_X_SITE_AUX)" ;;
+
+ *) LD_SWITCH_SYSTEM_TEMACS= ;;
+esac
+
+if test "$NS_IMPL_GNUSTEP" = "yes"; then
+ LD_SWITCH_SYSTEM_TEMACS="${LD_SWITCH_SYSTEM_TEMACS} -L${GNUSTEP_SYSTEM_LIBRARIES} ${GNUSTEP_LOCAL_LIBRARIES} -lgnustep-gui -lgnustep-base -lobjc -lpthread"
+fi
+
+AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
+
+
+LINKER=
+ORDINARY_LINK=
+case "$opsys" in
+ ## gnu: GNU needs its own crt0.
+ aix4-2|darwin|gnu|usg5-4|irix6-5|sol2*|unixware) ORDINARY_LINK=yes ;;
+
+ cygwin) LINKER="\$(CC)" ;;
+
+ ## On post 1.3 releases of NetBSD, gcc -nostdlib also clears the
+ ## library search parth, i.e. it won't search /usr/lib for libc and
+ ## friends. Using -nostartfiles instead avoids this problem, and
+ ## will also work on earlier NetBSD releases.
+ netbsd|openbsd) LINKER="\$(CC) -nostartfiles" ;;
+
+ ## macpcc: NAKAJI Hiroyuki <nakaji@tutrp.tut.ac.jp> says
+ ## MkLinux/LinuxPPC needs this.
+ ## ibms390x only supports opsys = gnu-linux so it can be added here.
+ gnu-*)
+ case "$machine" in
+ macppc|ibms390x) LINKER="\$(CC) -nostdlib" ;;
+ esac
+ ;;
+esac
+
+
+if test "x$ORDINARY_LINK" = "xyes"; then
+
+ LINKER="\$(CC)"
+ AC_DEFINE(ORDINARY_LINK, 1, [Define if the C compiler is the linker.])
+
+## The system files defining neither ORDINARY_LINK nor LINKER are:
+## (bsd-common), freebsd, gnu-* not on macppc|ibms390x, hpux*.
+elif test "x$GCC" = "xyes" && test "x$LINKER" = "x"; then
+
+ ## Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
+ ## places that are difficult to figure out at make time. Fortunately,
+ ## these same versions allow you to pass arbitrary flags on to the
+ ## linker, so there is no reason not to use it as a linker.
+ ##
+ ## Well, it is not quite perfect. The "-nostdlib" keeps GCC from
+ ## searching for libraries in its internal directories, so we have to
+ ## ask GCC explicitly where to find libgcc.a (LIB_GCC below).
+ LINKER="\$(CC) -nostdlib"
+fi
+
+test "x$LINKER" = "x" && LINKER=ld
+## FIXME? What setting of EDIT_LDFLAGS should this have?
+test "$NS_IMPL_GNUSTEP" = "yes" && LINKER="\$(CC) -rdynamic"
+
+AC_SUBST(LINKER)
+
+
+## FIXME? The logic here is not precisely the same as that above.
+## There is no check here for a pre-defined LINKER.
+## Should we only be setting LIB_GCC if LD ~ -nostdlib?
+LIB_GCC=
+if test "x$GCC" = "xyes" && test "x$ORDINARY_LINK" != "xyes"; then
+
+ case "$opsys" in
+ ## cygwin: don't link against static libgcc.
+ cygwin|freebsd|netbsd|openbsd) LIB_GCC= ;;
+
+ gnu-*)
+ ## armin76@gentoo.org reported that the lgcc_s flag is necessary to
+ ## build on ARM EABI under GNU/Linux. (Bug#5518)
+ ## Note that m/arm.h never bothered to undefine LIB_GCC first.
+ if test "$machine" = "arm"; then
+ LIB_GCC="-lgcc_s"
+ else
+ ## FIXME? s/gnu-linux.h used to define LIB_GCC as below, then
+ ## immediately undefine it again and redefine it to empty.
+ ## Was the C_SWITCH_X_SITE part really necessary?
+## LIB_GCC=`$CC $C_SWITCH_X_SITE -print-libgcc-file-name`
+ LIB_GCC=
+ fi
+ ;;
+
+ ## Ask GCC where to find libgcc.a.
+ *) LIB_GCC=`$CC -print-libgcc-file-name 2> /dev/null` ;;
+ esac
+fi dnl if $GCC
+AC_SUBST(LIB_GCC)
+
+
+TOOLTIP_SUPPORT=
+WINDOW_SUPPORT=
+## If we're using X11/GNUstep, define some consequences.
+if test "$HAVE_X_WINDOWS" = "yes" || test "$HAVE_NS" = "yes"; then
+ AC_DEFINE(HAVE_WINDOW_SYSTEM, 1, [Define if you have a window system.])
+ AC_DEFINE(HAVE_MOUSE, 1, [Define if you have mouse support.])
+ MOUSE_SUPPORT="\$(REAL_MOUSE_SUPPORT)"
+ TOOLTIP_SUPPORT="\${lispsource}mouse.elc"
+
+ WINDOW_SUPPORT="\$(BASE_WINDOW_SUPPORT)"
+ test "$HAVE_X_WINDOWS" = "yes" && \
+ WINDOW_SUPPORT="$WINDOW_SUPPORT \$(X_WINDOW_SUPPORT)"
+