unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
@ 2009-11-26 14:15 Praveen A
  2009-11-27 16:42 ` Jan Djärv
  2009-11-30 11:05 ` bug#5047: marked as done (23.1; emacs is failing to build on Fedora 12 64 bit) Emacs bug Tracking System
  0 siblings, 2 replies; 10+ messages in thread
From: Praveen A @ 2009-11-26 14:15 UTC (permalink / raw)
  To: bug-gnu-emacs

Hi,

emacs build is failing on Fedora 12 GNU/Linux 64 bit due to what
appears to be missing end of line escape characters ('\') in the
Makefile.
I reported this to fedora bugzilla (
https://bugzilla.redhat.com/show_bug.cgi?id=540921 ), but I think it
is not specific to fedora packaging as
tarballs downloaded from gnu mirrors also fails to build.

Regards
Praveen

-- 
പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
Join The DRM Elimination Crew Now!
http://fci.wikia.com/wiki/Anti-DRM-Campaign






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-26 14:15 bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit Praveen A
@ 2009-11-27 16:42 ` Jan Djärv
  2009-11-28  7:12   ` Praveen A
  2009-11-30 11:05 ` bug#5047: marked as done (23.1; emacs is failing to build on Fedora 12 64 bit) Emacs bug Tracking System
  1 sibling, 1 reply; 10+ messages in thread
From: Jan Djärv @ 2009-11-27 16:42 UTC (permalink / raw)
  To: Praveen A, 5047; +Cc: bug-gnu-emacs

Praveen A skrev:
> Hi,
> 
> emacs build is failing on Fedora 12 GNU/Linux 64 bit due to what
> appears to be missing end of line escape characters ('\') in the
> Makefile.
> I reported this to fedora bugzilla (
> https://bugzilla.redhat.com/show_bug.cgi?id=540921 ), but I think it
> is not specific to fedora packaging as
> tarballs downloaded from gnu mirrors also fails to build.
> 

Can you send the Makefile here?  As it is generated it is not easy to know 
which line that fails.

	Jan D.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-27 16:42 ` Jan Djärv
@ 2009-11-28  7:12   ` Praveen A
  2009-11-28  8:22     ` Praveen A
  2009-11-28 11:39     ` Jan Djärv
  0 siblings, 2 replies; 10+ messages in thread
From: Praveen A @ 2009-11-28  7:12 UTC (permalink / raw)
  To: Jan Djärv; +Cc: 5047, bug-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 612 bytes --]

2009/11/27 Jan Djärv <jan.h.d@swipnet.se>:
> Can you send the Makefile here?  As it is generated it is not easy to know
> which line that fails.
>
>        Jan D.
>

Hi Jan,

Makefiles are attached. These were generated with a CVS version of
emacs, but same error is coming as 23.1.

- Praveen

-- 
പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
Join The DRM Elimination Crew Now!
http://fci.wikia.com/wiki/Anti-DRM-Campaign

[-- Attachment #2: lib-src.Makefile --]
[-- Type: application/octet-stream, Size: 11747 bytes --]

# Makefile for lib-src subdirectory in GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 2001, 2002, 2003, 2004,
#               2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.

# This file is part of GNU Emacs.

# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


# Avoid trouble on systems where the `SHELL' variable might be
# inherited from the environment.
SHELL = /bin/sh

# Following ../lisp/Makefile.in.
EMACS = ../src/emacs
EMACSOPT = -batch --no-site-file --multibyte

# ==================== Things `configure' will edit ====================

CC=gcc
CFLAGS=-g -O2 -Wno-pointer-sign  
version=23.1.50
configuration=x86_64-unknown-linux-gnu
EXEEXT=

# Program name transformation.
TRANSFORM = s,x,x,

# ==================== Where To Install Things ====================

# The default location for installation.  Everything is placed in
# subdirectories of this directory.  The default values for many of
# the variables below are expressed in terms of this one, so you may
# not need to change them.  This is set with the --prefix option to
# `../configure'.
prefix=/usr/local

# Like `prefix', but used for architecture-specific files.  This is
# set with the --exec-prefix option to `../configure'.
exec_prefix=${prefix}

# Where to install Emacs and other binaries that people will want to
# run directly (like etags).  This is set with the --bindir option
# to `../configure'.
bindir=${exec_prefix}/bin

# Where to install and expect executable files to be run by Emacs
# rather than directly by users, and other architecture-dependent
# data.  ${archlibdir} is usually below this.  This is set with the
# --libexecdir option to `../configure'.
libexecdir=${exec_prefix}/libexec

# Directory for local state files for all programs.
localstatedir=${prefix}/var

# Where to find the source code.  This is set by the configure
# script's `--srcdir' option.  However, the value of ${srcdir} in
# this makefile is not identical to what was specified with --srcdir,
# since the variable here has `/lib-src' added at the end.

# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir=/home/pravi/forge/emacs/emacs/lib-src
VPATH=/home/pravi/forge/emacs/emacs/lib-src

# The top-level source directory, also set by configure.
top_srcdir=/home/pravi/forge/emacs/emacs

# ==================== Emacs-specific directories ====================

# These variables hold the values Emacs will actually use.  They are
# based on the values of the standard Make variables above.

# Where to put executables to be run by Emacs rather than the user.
# This path usually includes the Emacs version and configuration name,
# so that multiple configurations for multiple versions of Emacs may
# be installed at once.  This can be set with the --archlibdir option
# to `../configure'.
archlibdir=${libexecdir}/emacs/${version}/${configuration}

gamedir=${localstatedir}/games/emacs
gameuser=games

# ==================== Utility Programs for the Build =================

# ../configure figures out the correct values for these.
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_SCRIPT = ${INSTALL}
# By default, we uphold the dignity of our programs.
INSTALL_STRIP =

# ========================== Lists of Files ===========================

# Things that a user might actually run,
# which should be installed in bindir.
INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} b2m${EXEEXT} ebrowse${EXEEXT} 
INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog

# Things that Emacs runs internally, or during the build process,
#  which should not be installed in bindir.
UTILITIES=  profile${EXEEXT} digest-doc${EXEEXT} sorted-doc${EXEEXT} movemail${EXEEXT} cvtmail${EXEEXT} fakemail${EXEEXT} \
            hexl${EXEEXT} update-game-score${EXEEXT}

DONT_INSTALL= test-distrib${EXEEXT} make-docfile${EXEEXT}

# Like UTILITIES, but they're not system-dependent, and should not be
#  deleted by the distclean target.
SCRIPTS= rcs2log vcdiff

EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}

# Additional -D flags for movemail (add to MOVE_FLAGS if desired):
# MAIL_USE_POP		Support mail retrieval from a POP mailbox.
# MAIL_USE_MMDF		Support MMDF mailboxes.
# MAIL_USE_FLOCK	Use flock for file locking (see the comments
#			about locking in movemail.c)
# MAIL_UNLINK_SPOOL	Unlink the user's spool mailbox after reading
#			it (instead of just emptying it).
# KERBEROS		Support Kerberized POP.
# KRB5			Support Kerberos Version 5 pop instead of
#			Version 4 (define this in addition to
#			KERBEROS).
# HESIOD		Support Hesiod lookups of user mailboxes.
# MAILHOST		A string, the host name of the default POP
#			mail host for the site.
MOVE_FLAGS=

# ========================== start of cpp stuff =======================
LIBS_MOVE=$(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) $(COM_ERRLIB) $(HESIODLIB)
LOADLIBES=
ALL_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H
	  -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
LINK_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H
	  -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CFLAGS}
CPP_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H
	  -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
BASE_CFLAGS = -D_BSD_SOURCE -DHAVE_CONFIG_H
	  -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
.SUFFIXES: .m
.c.o:
	${CC} -c ${CPP_CFLAGS} $<
.m.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
all: ${DONT_INSTALL} ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}
rcs2log: $(srcdir)/rcs2log
	-cp -p $(srcdir)/rcs2log rcs2log
rcs-checkin: $(srcdir)/rcs-checkin
	-cp -p $(srcdir)/rcs-checkin rcs-checkin
grep-changelog: $(srcdir)/grep-changelog
	-cp -p $(srcdir)/grep-changelog grep-changelog
vcdiff: $(srcdir)/vcdiff
	-cp -p $(srcdir)/vcdiff vcdiff
maybe-blessmail:
$(DESTDIR)${archlibdir}: all
	@echo
	@echo "Installing utilities run internally by Emacs."
	$(top_srcdir)/mkinstalldirs $(DESTDIR)${archlibdir}
	if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then
	  for file in ${UTILITIES}; do
	    $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ;
	  done ;
	       fi
	$(top_srcdir)/mkinstalldirs $(DESTDIR)${gamedir}
	touch $(DESTDIR)${gamedir}/snake-scores
	touch $(DESTDIR)${gamedir}/tetris-scores
	-if chown ${gameuser} $(DESTDIR)${archlibdir}/update-game-score && chmod u+s $(DESTDIR)${archlibdir}/update-game-score; then
	  chown ${gameuser} $(DESTDIR)${gamedir};
	  chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir};
	fi
	       if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)`
	            != `(cd ${srcdir} && /bin/pwd)` ]; then
	  for file in ${SCRIPTS}; do
	    $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file;
	  done ;
	fi
install: $(DESTDIR)${archlibdir}
	@echo
	@echo "Installing utilities for users to run."
	for file in ${INSTALLABLES} ; do
	  $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ;
	  chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`;
	done
	for file in ${INSTALLABLE_SCRIPTS} ; do
	  $(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ;
	  chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`;
	done
uninstall:
	(cd $(DESTDIR)${bindir};
	for file in ${INSTALLABLES} ${INSTALLABLE_SCRIPTS}; do
	  rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ;
	done)
	(cd $(DESTDIR)${archlibdir};
	 rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})
mostlyclean:
	-rm -f core *.o getopt.h getopt.h-t
clean: mostlyclean
	-rm -f ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL}
	-rm -f fns*.el *.tab.c *.tab.h
distclean: clean
	-rm -f TAGS
	-rm -f Makefile Makefile.c blessmail
maintainer-clean: distclean
	true
extraclean: maintainer-clean
	-rm -f *~ \#*
check:
	@echo "We don't have any tests for GNU Emacs yet."
tags: TAGS
TAGS: etags${EXEEXT}
	etags *.[ch]
test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
	$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
	./test-distrib ${srcdir}/testfile
GETOPT_H =
getopt.h: getopt_.h
	cp $(srcdir)/getopt_.h $@-t
	mv $@-t $@
GETOPTOBJS =
GETOPTDEPS = $(GETOPTOBJS) $(GETOPT_H)
getopt.o: ${srcdir}/getopt.c $(GETOPT_H) ${srcdir}/gettext.h
	${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt.c
getopt1.o: ${srcdir}/getopt1.c $(GETOPT_H)
	${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt1.c
REGEXPOBJ = regex.o
REGEXPDEPS = $(REGEXPOBJ) $(srcdir)/../src/regex.h
regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h ../src/config.h
	${CC} -c ${BASE_CFLAGS} -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER ${srcdir}/../src/regex.c
etags${EXEEXT}: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h
	$(CC) ${ALL_CFLAGS} -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o etags
ebrowse${EXEEXT}: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h
	$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/ebrowse.c $(GETOPTOBJS) $(LOADLIBES) -o ebrowse
ctags${EXEEXT}: etags${EXEEXT}
	$(CC) ${ALL_CFLAGS} -DCTAGS -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags
profile${EXEEXT}: ${srcdir}/profile.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile
make-docfile${EXEEXT}: ${srcdir}/make-docfile.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) -o make-docfile
digest-doc${EXEEXT}: ${srcdir}/digest-doc.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc
sorted-doc${EXEEXT}: ${srcdir}/sorted-doc.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c $(LOADLIBES) -o sorted-doc
b2m${EXEEXT}: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
	$(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c -DVERSION="\"${version}\""
	   $(GETOPTOBJS) $(LOADLIBES) -o b2m
movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS)
	$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail
movemail.o: ${srcdir}/movemail.c ../src/config.h $(GETOPT_H)
	$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/movemail.c
pop.o: ${srcdir}/pop.c ../src/config.h
	$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c
cvtmail${EXEEXT}: ${srcdir}/cvtmail.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/cvtmail.c $(LOADLIBES) -o cvtmail
fakemail${EXEEXT}: ${srcdir}/fakemail.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail
emacsclient${EXEEXT}: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS)
	$(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS)
	   -DVERSION="\"${version}\""
	   $(LOADLIBES) -o emacsclient
hexl${EXEEXT}: ${srcdir}/hexl.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/hexl.c $(LOADLIBES) -o hexl
update-game-score${EXEEXT}: update-game-score.o $(GETOPTDEPS)
	$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} update-game-score.o $(GETOPTOBJS) $(LOADLIBES) -o update-game-score
update-game-score.o: ${srcdir}/update-game-score.c ../src/config.h $(GETOPT_H)
	$(CC) -c ${CPP_CFLAGS} ${srcdir}/update-game-score.c
	  -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\""

[-- Attachment #3: src.Makefile --]
[-- Type: application/octet-stream, Size: 26576 bytes --]

# Makefile for GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
#               2003, 2004, 2005, 2006, 2007, 2008, 2009
#               Free Software Foundation, Inc.

# This file is part of GNU Emacs.

# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


# Note that this file is edited by msdos/sed1v2.inp for MSDOS.  That
# script may need modifying in sync with changes made here.  Try to
# avoid shell-ism because the DOS build has to use the DOS shell.

# Don't try to replace the cpp processing using autoconf facilities,
# says rms.
# Replacing a particular part of the conditionals to work via autoconf
# is OK.
# Some of the conditionals might be dead now.  Finding them and
# deleting them would be fine.


# Here are the things that we expect ../configure to edit.
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir=/home/pravi/forge/emacs/emacs/src
VPATH=/home/pravi/forge/emacs/emacs/src
CC=gcc
CPP=gcc -E
CFLAGS=-g -O2 -Wno-pointer-sign  
CPPFLAGS=-D_BSD_SOURCE  
LDFLAGS= -Wl,-znocombreloc  
LN_S=ln -s
EXEEXT=
version=23.1.50
# Substitute an assignment for the MAKE variable, because
# BSD doesn't have it as a default.

# Don't use LIBS.  configure puts stuff in it that either shouldn't be
# linked with Emacs or is duplicated by the cpp stuff below.
# LIBS = -lm -lSM -lICE -lXft -lXrender -lfontconfig -lfreetype -lX11   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -lX11  
LIBOBJS = 

lispsource = ${srcdir}/../lisp/
libsrc = ../lib-src/
etc = ../etc/
oldXMenudir = ../oldXMenu/
lwlibdir = ../lwlib/
lispdir = ../lisp/

# Configuration files for .o files to depend on.
M_FILE = ${srcdir}/m/amdx86-64.h
S_FILE = ${srcdir}/s/gnu-linux.h
config_h = config.h $(M_FILE) $(S_FILE)

# ========================== start of cpp stuff =======================
C_SWITCH_SYSTEM=
SHELL=/bin/sh
STARTFILES = pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
DBUS_CFLAGS = -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include
DBUS_LIBS = -L/lib64 -ldbus-1 -lpthread -lrt
DBUS_OBJ = dbusbind.o
ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} -D_BSD_SOURCE -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/freetype2 ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS}
ALL_OBJC_CFLAGS=$(ALL_CFLAGS)
.SUFFIXES: .m
.c.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
.m.o:
	$(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<
XMENU_OBJ = xmenu.o
XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o
GTK_OBJ= gtkutil.o
OLDXMENU= ${oldXMenudir}libXMenu11.a
LIBXMENU= $(OLDXMENU)
LIBW=-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 -lpthread
OLDXMENU=
LIBXMENU=
LIBXT=$(LIBW) -lSM -lICE
XFT_LIBS=-lXft -lXrender -lfontconfig -lfreetype -lX11
X11_LDFLAGS =
LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) -ltiff -ljpeg -lpng -lz -lm -lgif -lXpm -lX11 $(XFT_LIBS)
LIBSOUND= -lasound
CFLAGS_SOUND= -I/usr/include/alsa
RSVG_LIBS=
RSVG_CFLAGS=
GNULIB_VAR =
LD=$(CC) -nostdlib
TEMACS_LDFLAGS = -z nocombreloc
INTERVALS_H = dispextern.h intervals.h composite.h
GETLOADAVG_LIBS =
FONT_DRIVERS = xfont.o ftfont.o xftfont.o ftxfont.o
obj= dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o
	charset.o coding.o category.o ccl.o character.o chartab.o
	cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ)
	emacs.o keyboard.o macros.o keymap.o sysdep.o
	buffer.o filelock.o insdel.o marker.o
	minibuf.o fileio.o dired.o filemode.o
	cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o
	alloc.o data.o doc.o editfns.o callint.o
	eval.o floatfns.o fns.o font.o print.o lread.o
	syntax.o unexelf.o bytecode.o
	process.o callproc.o
	region-cache.o sound.o atimer.o
	doprnt.o strftime.o intervals.o textprop.o composite.o md5.o
	$(MSDOS_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_DRIVERS)
SOME_MACHINE_OBJECTS = dosfns.o msdos.o
	 xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o
	 fontset.o
	 nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o
	 w32.o w32console.o w32fns.o w32heap.o w32inevt.o
	 w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)
termcapobj = termcap.o tparam.o
mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o
widgetobj=
otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
lisp=
	${lispsource}loaddefs.el
	${lispsource}abbrev.elc
	${lispsource}buff-menu.elc
	${lispsource}button.elc
	${lispsource}emacs-lisp/byte-run.elc
	${lispsource}composite.elc
	${lispsource}cus-face.elc
	${lispsource}cus-start.elc
	${lispsource}custom.elc
	${lispsource}emacs-lisp/backquote.elc
	${lispsource}emacs-lisp/lisp-mode.elc
	${lispsource}emacs-lisp/lisp.elc
	${lispsource}env.elc
	${lispsource}faces.elc
	${lispsource}files.elc
	${lispsource}format.elc
	${lispsource}facemenu.elc
	${lispsource}mouse.elc ${lispsource}select.elc ${lispsource}scroll-bar.elc
	${lispsource}emacs-lisp/float-sup.elc
	${lispsource}frame.elc
	${lispsource}help.elc
	${lispsource}indent.elc
	${lispsource}isearch.elc
	${lispsource}rfn-eshadow.elc
	${lispsource}loadup.el
	${lispsource}bindings.elc
	${lispsource}emacs-lisp/map-ynp.elc
	${lispsource}menu-bar.elc
	${lispsource}international/mule.elc
	${lispsource}international/mule-conf.el
	${lispsource}international/mule-cmds.elc
	${lispsource}international/characters.elc
	${lispsource}international/charprop.el
	${lispsource}case-table.elc
	${lispsource}language/chinese.el
	${lispsource}language/cyrillic.el
	${lispsource}language/indian.el
	${lispsource}language/sinhala.el
	${lispsource}language/english.el
	${lispsource}language/ethiopic.elc
	${lispsource}language/european.elc
	${lispsource}language/czech.el
	${lispsource}language/slovak.el
	${lispsource}language/romanian.el
	${lispsource}language/greek.el
	${lispsource}language/hebrew.el
	${lispsource}language/japanese.el
	${lispsource}language/korean.el
	${lispsource}language/lao.el
	${lispsource}language/cham.el
	${lispsource}language/tai-viet.el
	${lispsource}language/thai.el
	${lispsource}language/tibetan.elc
	${lispsource}language/vietnamese.el
	${lispsource}language/misc-lang.el
	${lispsource}language/utf-8-lang.el
	${lispsource}language/georgian.el
	${lispsource}language/khmer.el
	${lispsource}language/burmese.el
	${lispsource}paths.el
	${lispsource}register.elc
	${lispsource}replace.elc
	${lispsource}simple.elc
	${lispsource}minibuffer.elc
	${lispsource}startup.elc
	${lispsource}subr.elc
	${lispsource}term/tty-colors.elc
	${lispsource}font-core.elc
	${lispsource}emacs-lisp/syntax.elc
	${lispsource}font-lock.elc
	${lispsource}jit-lock.elc
	${lispsource}textmodes/fill.elc
	${lispsource}textmodes/page.elc
	${lispsource}textmodes/paragraphs.elc
	${lispsource}textmodes/text-mode.elc
	${lispsource}emacs-lisp/timer.elc
	${lispsource}jka-cmpr-hook.elc
	${lispsource}vc-hooks.elc
	${lispsource}ediff-hook.elc
	${lispsource}epa-hook.elc
	${lispsource}tooltip.elc
	${lispsource}fringe.elc ${lispsource}image.elc ${lispsource}international/fontset.elc ${lispsource}dnd.elc ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
	${lispsource}widget.elc
	${lispsource}window.elc
	${lispsource}version.el
shortlisp=
	../lisp/loaddefs.el
	../lisp/abbrev.elc
	../lisp/buff-menu.elc
	../lisp/button.elc
	../lisp/emacs-lisp/byte-run.elc
	../lisp/composite.elc
	../lisp/cus-face.elc
	../lisp/cus-start.elc
	../lisp/custom.elc
	../lisp/emacs-lisp/backquote.elc
	../lisp/emacs-lisp/lisp-mode.elc
	../lisp/emacs-lisp/lisp.elc
	../lisp/facemenu.elc
	../lisp/faces.elc
	../lisp/files.elc
	../lisp/emacs-lisp/float-sup.elc
	../lisp/format.elc
	../lisp/frame.elc
	../lisp/help.elc
	../lisp/indent.elc
	../lisp/isearch.elc
	../lisp/rfn-eshadow.elc
	../lisp/loadup.el
	../lisp/bindings.elc
	../lisp/emacs-lisp/map-ynp.elc
	../lisp/env.elc
	../lisp/international/mule.elc
	../lisp/international/mule-conf.el
	../lisp/international/mule-cmds.elc
	../lisp/international/characters.elc
	../lisp/case-table.elc
	../lisp/language/chinese.el
	../lisp/language/cyrillic.el
	../lisp/language/indian.el
	../lisp/language/sinhala.el
	../lisp/language/english.el
	../lisp/language/ethiopic.elc
	../lisp/language/european.elc
	../lisp/language/czech.el
	../lisp/language/slovak.el
	../lisp/language/romanian.el
	../lisp/language/greek.el
	../lisp/language/hebrew.el
	../lisp/language/japanese.el
	../lisp/language/korean.el
	../lisp/language/lao.el
	../lisp/language/cham.el
	../lisp/language/tai-viet.el
	../lisp/language/thai.el
	../lisp/language/tibetan.elc
	../lisp/language/vietnamese.el
	../lisp/language/misc-lang.el
	../lisp/language/utf-8-lang.el
	../lisp/language/georgian.el
	../lisp/language/khmer.el
	../lisp/language/burmese.el
	../lisp/menu-bar.elc
	../lisp/paths.el
	../lisp/register.elc
	../lisp/replace.elc
	../lisp/simple.elc
	../lisp/minibuffer.elc
	../lisp/startup.elc
	../lisp/subr.elc
	../lisp/term/tty-colors.elc
	../lisp/font-core.elc
	../lisp/emacs-lisp/syntax.elc
	../lisp/font-lock.elc
	../lisp/jit-lock.elc
	../lisp/textmodes/fill.elc
	../lisp/textmodes/page.elc
	../lisp/textmodes/paragraphs.elc
	../lisp/textmodes/text-mode.elc
	../lisp/emacs-lisp/timer.elc
	../lisp/vc-hooks.elc
	../lisp/jka-cmpr-hook.elc
	../lisp/ediff-hook.elc
	../lisp/epa-hook.elc
	../lisp/widget.elc
	../lisp/window.elc
	../lisp/version.el
SOME_MACHINE_LISP = ../lisp/mouse.elc
	 ../lisp/select.elc ../lisp/scroll-bar.elc
	 ../lisp/ls-lisp.elc ../lisp/dos-fns.elc
	 ../lisp/w32-fns.elc ../lisp/dos-w32.elc
	 ../lisp/disp-table.elc ../lisp/dos-vars.elc
	 ../lisp/tooltip.elc ../lisp/image.elc
	 ../lisp/fringe.elc ../lisp/dnd.elc
	 ../lisp/mwheel.elc ../lisp/tool-bar.elc
	 ../lisp/x-dnd.elc
	 ../lisp/international/ccl.elc
	 ../lisp/international/fontset.elc
	 ../lisp/mouse.elc
	 ../lisp/term/common-win.elc
	 ../lisp/term/x-win.elc
	 ../lisp/term/pc-win.elc
	 ../lisp/term/ns-win.elc
LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS)
	             $(GETLOADAVG_LIBS)
	  $(GNULIB_VAR) -lm -lgcc -lc -lgcc /usr/lib64/crtn.o $(GNULIB_VAR)
RUN_TEMACS = `/bin/pwd`/temacs
all: emacs${EXEEXT}
emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} ${SOME_MACHINE_LISP}
	LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
	@: This new Emacs is as functional and more efficient then
	@: bootstrap-emacs, so let us replace it.
	-ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
	-./emacs -q -batch -f list-load-path-shadows
${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
	-rm -f ${etc}DOC
	${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
	${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}
${libsrc}make-docfile${EXEEXT}:
	cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}
temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} prefix-args${EXEEXT}
	echo "${obj} ${otherobj} " > buildobj.lst
	$(LD) `./prefix-args -Xlinker ${STARTFLAGS} ${TEMACS_LDFLAGS}` $(LDFLAGS)
	   -o temacs ${STARTFILES} ${obj} ${otherobj}
	                   ${LIBES}
prefix-args${EXEEXT}: prefix-args.c $(config_h)
	$(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args
stamp-oldxmenu:
	touch stamp-oldxmenu
../config.status:: epaths.in
	@echo "The file epaths.h needs to be set up from epaths.in."
	@echo "Please run the `configure' script again."
	exit 1
../config.status:: config.in
	@echo "The file config.h needs to be set up from config.in."
	@echo "Please run the `configure' script again."
	exit 1
atimer.o: atimer.c atimer.h syssignal.h systime.h $(config_h)
abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h character.h
	syntax.h $(config_h)
buffer.o: buffer.c buffer.h region-cache.h commands.h window.h
	  dispextern.h $(INTERVALS_H) blockinput.h atimer.h systime.h character.h
	  $(config_h)
callint.o: callint.c window.h commands.h buffer.h keymap.h
	  keyboard.h dispextern.h $(config_h)
callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h)
	process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h
	       composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h
	  composite.h
	charset.h keymap.h $(config_h)
casetab.o: casetab.c buffer.h $(config_h)
category.o: category.c category.h buffer.h charset.h keymap.h
	character.h $(config_h)
ccl.o: ccl.c ccl.h charset.h character.h coding.h $(config_h)
character.o: character.c character.h buffer.h charset.h composite.h disptab.h
	  $(config_h)
charset.o: charset.c charset.h character.h buffer.h coding.h composite.h
	  disptab.h $(config_h)
chartab.o: charset.h character.h $(config_h)
coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h $(INTERVALS_H) composite.h
	window.h dispextern.h frame.h termhooks.h $(config_h)
cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h $(config_h)
	msdos.h dispextern.h keyboard.h keymap.h
pre-crt0.o: pre-crt0.c
ecrt0.o: ecrt0.c $(config_h)
	$(CC) -c $(ALL_CFLAGS) ${srcdir}/ecrt0.c
dbusbind.o: dbusbind.c termhooks.h frame.h keyboard.h $(config_h)
dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h
	  coding.h regex.h systime.h blockinput.h atimer.h
dispnew.o: dispnew.c systime.h commands.h process.h frame.h
	  window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h
	  disptab.h indent.h $(INTERVALS_H)
	  xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h
	  syssignal.h $(config_h)
doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h
doprnt.o: doprnt.c character.h $(config_h)
dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h
	  msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h
	  $(config_h)
editfns.o: editfns.c window.h buffer.h systime.h $(INTERVALS_H) character.h
	  coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h
	  termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) $(config_h)
	  window.h dispextern.h keyboard.h keymap.h
fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h
	  coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h
	  epaths.h $(config_h)
filemode.o: filemode.c $(config_h)
frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h
	  blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h
	  msdos.h dosfns.h dispextern.h w32term.h termchar.h
	  $(config_h)
fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h
	  font.h $(config_h)
ftfont.o: dispextern.h frame.h character.h charset.h composite.h font.h
	  $(config_h)
fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h
	  charset.h frame.h keyboard.h termhooks.h font.h $(config_h)
getloadavg.o: getloadavg.c $(config_h)
gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h)
	 blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h
	 charset.h coding.h syssignal.h
image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h
	  systime.h xterm.h w32term.h w32gui.h font.h
	  nsterm.h nsgui.h $(config_h)
indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h
	  termopts.h disptab.h region-cache.h character.h category.h composite.h
	  dispextern.h keyboard.h
insdel.o: insdel.c window.h buffer.h $(INTERVALS_H) blockinput.h character.h
	  dispextern.h atimer.h systime.h region-cache.h $(config_h)
keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h
	  commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h
	  systime.h dispextern.h syntax.h $(INTERVALS_H) blockinput.h atimer.h
	  xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h
	  $(config_h)
keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h
	  atimer.h systime.h puresize.h character.h charset.h $(INTERVALS_H) keymap.h window.h
	  $(config_h)
lastfile.o: lastfile.c $(config_h)
macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h
	dispextern.h $(config_h)
malloc.o: malloc.c $(config_h)
gmalloc.o: gmalloc.c $(config_h)
ralloc.o: ralloc.c $(config_h)
vm-limit.o: vm-limit.c mem-limits.h $(config_h)
marker.o: marker.c buffer.h character.h $(config_h)
md5.o: md5.c md5.h $(config_h)
minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h
	  buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h
	  termhooks.h $(config_h)
mktime.o: mktime.c $(config_h)
msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h
	  termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h
	  keyboard.h $(INTERVALS_H) buffer.h commands.h blockinput.h atimer.h $(config_h)
nsfns.o: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h
	 dispextern.h nsgui.h fontset.h $(INTERVALS_H) keyboard.h blockinput.h
	 atimer.h systime.h epaths.h termhooks.h coding.h systime.h $(config_h)
nsfont.o: nsterm.h dispextern.h frame.h lisp.h $(config_h)
nsimage.o: nsimage.m nsterm.h $(config_h)
nsmenu.o: nsmenu.m termhooks.h frame.h window.h dispextern.h
	 nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h
	 nsterm.h $(config_h)
nsterm.o: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h
	 nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h
	 termopts.h termchar.h disptab.h buffer.h window.h keyboard.h
	 $(INTERVALS_H) process.h coding.h $(config_h)
nsselect.o: nsselect.m blockinput.h nsterm.h nsgui.h frame.h $(config_h)
process.o: process.c process.h buffer.h window.h termhooks.h termopts.h
	  commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h
	  blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h
	  keyboard.h $(config_h)
regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h character.h
	  charset.h
region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h
	  termhooks.h $(config_h)
search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h
	  blockinput.h atimer.h systime.h category.h character.h charset.h
	  composite.h $(INTERVALS_H)
	  $(config_h)
sound.o: sound.c dispextern.h syssignal.h $(config_h)
strftime.o: strftime.c $(config_h)
syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h
	  composite.h keymap.h regex.h $(INTERVALS_H) $(config_h)
sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h
	  process.h dispextern.h termhooks.h termchar.h termopts.h
	  frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h
	  disptab.h dispextern.h keyboard.h character.h charset.h coding.h ccl.h
	  msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h
	  syssignal.h $(INTERVALS_H)
termcap.o: termcap.c $(config_h)
terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h
	  keyboard.h $(config_h)
terminfo.o: terminfo.c $(config_h)
tparam.o: tparam.c $(config_h)
undo.o: undo.c buffer.h commands.h window.h $(config_h)
unexaix.o: unexaix.c $(config_h)
unexalpha.o: unexalpha.c $(config_h)
unexcw.o: unexcw.c $(config_h)
unexec.o: unexec.c $(config_h)
unexelf.o: unexelf.c $(config_h)
unexhp9k800.o: unexhp9k800.c $(config_h)
unexmacosx.o: unexmacosx.c $(config_h)
unexmips.o: unexmips.c $(config_h)
unexnext.o: unexnext.c $(config_h)
unexsol.o: unexsol.c $(config_h)
unexw32.o: unexw32.c $(config_h)
w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h
	  msdos.h buffer.h charset.h coding.h composite.h $(config_h)
widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h
	  $(srcdir)/../lwlib/lwlib.h $(config_h)
window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h
	  disptab.h keyboard.h dispextern.h msdos.h composite.h
	  keymap.h blockinput.h atimer.h systime.h $(INTERVALS_H)
	  xterm.h w32term.h nsterm.h $(config_h)
xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h
	  coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h
	  charset.h $(config_h) keyboard.h $(INTERVALS_H) region-cache.h xterm.h
	  w32term.h nsterm.h msdos.h composite.h fontset.h
	  blockinput.h atimer.h systime.h keymap.h font.h
xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h
	  window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h
	  systime.h keyboard.h fontset.h w32term.h nsterm.h
	  $(INTERVALS_H) termchar.h termhooks.h font.h $(config_h)
xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h
	  $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h
	  character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h
	  fontset.h termchar.h font.h
xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h
	  font.h $(config_h)
xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h
	  font.h $(config_h)
ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h
	  font.h $(config_h)
menu.o: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h
	  dispextern.h $(srcdir)/../lwlib/lwlib.h xterm.h gtkutil.h menu.h
	  $(config_h)
xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h
	  charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h
	  systime.h gtkutil.h msdos.h coding.h menu.h $(config_h)
xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h
	  dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h
	  keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h
	  coding.h process.h gtkutil.h font.h fontset.h $(config_h)
xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h
	 buffer.h atimer.h systime.h termhooks.h $(config_h)
xrdb.o: xrdb.c $(config_h) epaths.h
xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h
	 lisp.h termopts.h
alloc.o: alloc.c process.h frame.h window.h buffer.h puresize.h syssignal.h keyboard.h
	blockinput.h atimer.h systime.h character.h dispextern.h $(config_h)
	$(INTERVALS_H)
bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h
	 frame.h xterm.h $(config_h)
data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h
	  termhooks.h $(config_h)
eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h
	 dispextern.h $(config_h)
floatfns.o: floatfns.c syssignal.h $(config_h)
fns.o: fns.c commands.h $(config_h) frame.h buffer.h character.h keyboard.h
	keymap.h frame.h window.h dispextern.h $(INTERVALS_H) coding.h md5.h
	blockinput.h atimer.h systime.h xterm.h termhooks.h
print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h
	  $(config_h) dispextern.h termchar.h $(INTERVALS_H) msdos.h composite.h
	  blockinput.h atimer.h systime.h font.h charset.h
lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h
	charset.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h
composite.o: composite.c buffer.h character.h coding.h dispextern.h font.h
	 frame.h termhooks.h $(INTERVALS_H) window.h $(config_h)
intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h
	keymap.h $(config_h)
textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVALS_H)
	$(config_h)
mostlyclean:
	rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
	rm -f ../etc/DOC
	rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
	rm -f buildobj.lst
clean: mostlyclean
	rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
bootstrap-clean: clean
	rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
	if test -f ./.gdbinit; then
	  mv ./.gdbinit ./.gdbinit.save;
	  if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save;
	  else mv ./.gdbinit.save ./.gdbinit; fi;
	fi
distclean: bootstrap-clean
	rm -f Makefile
maintainer-clean: distclean
	@echo "This command is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."
	rm -f TAGS
versionclean:
	-rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC*
extraclean: distclean
	-rm -f *~ \#* m/?*~ s/?*~
ctagsfiles1 = [xyzXYZ]*.[hcm]
ctagsfiles2 = [a-wA-W]*.[hcm]
TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
	../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS
	  --regex='/[ 	]*DEFVAR_[A-Z_ 	(]+"\([^"]+\)"/'
	  $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
frc:
TAGS-LISP: frc
	$(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags
$(lwlibdir)TAGS:
	(cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)
tags: TAGS TAGS-LISP $(lwlibdir)TAGS
.PHONY: tags
.SUFFIXES: .elc .el
.el.elc:
	@cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile
	                     THEFILE=$< EMACS=../src/bootstrap-emacs${EXEEXT}
${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)
${lispsource}loaddefs.el: $(BOOTSTRAPEMACS)
	cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=../src/bootstrap-emacs${EXEEXT}
bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
	cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
	$(RUN_TEMACS) --batch --load loadup bootstrap
	mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
	@: Compile some files earlier to speed up further compilation.
	cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=../src/bootstrap-emacs${EXEEXT}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-28  7:12   ` Praveen A
@ 2009-11-28  8:22     ` Praveen A
  2009-11-28 11:39     ` Jan Djärv
  1 sibling, 0 replies; 10+ messages in thread
From: Praveen A @ 2009-11-28  8:22 UTC (permalink / raw)
  To: Jan Djärv; +Cc: 5047, bug-gnu-emacs

2009/11/28 Praveen A <pravi.a@gmail.com>:
> Makefiles are attached.

Refer to line number 103 in src.Makefile and line number 144 in
lib-src.Makefile. '\' end of line separator is missing.

- Praveen
-- 
പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
Join The DRM Elimination Crew Now!
http://fci.wikia.com/wiki/Anti-DRM-Campaign






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-28  7:12   ` Praveen A
  2009-11-28  8:22     ` Praveen A
@ 2009-11-28 11:39     ` Jan Djärv
  2009-11-28 14:15       ` Praveen Arimbrathodiyil
  1 sibling, 1 reply; 10+ messages in thread
From: Jan Djärv @ 2009-11-28 11:39 UTC (permalink / raw)
  To: Praveen A; +Cc: 5047, bug-gnu-emacs



Praveen A skrev 2009-11-28 08.12:
> 2009/11/27 Jan Djärv<jan.h.d@swipnet.se>:
>> Can you send the Makefile here?  As it is generated it is not easy to know
>> which line that fails.
>>
>>         Jan D.
>>
>
> Hi Jan,
>
> Makefiles are attached. These were generated with a CVS version of
> emacs, but same error is coming as 23.1.
>

It seems backslash is lost, either by configure or by the preprocessor.  Can 
you also send Makefile.c and Makefile.in?

Thanks,

	Jan D.






^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-28 11:39     ` Jan Djärv
@ 2009-11-28 14:15       ` Praveen Arimbrathodiyil
  2009-11-29 10:01         ` Jan Djärv
  0 siblings, 1 reply; 10+ messages in thread
From: Praveen Arimbrathodiyil @ 2009-11-28 14:15 UTC (permalink / raw)
  To: Jan Djärv; +Cc: 5047, bug-gnu-emacs

[-- Attachment #1: Type: text/plain, Size: 301 bytes --]

On ശനി 28 നവംബര്‍ 2009 05:09 വൈകു, Jan Djärv wrote:
> It seems backslash is lost, either by configure or by the 
> preprocessor.  Can you also send Makefile.c and Makefile.in?
>
Makefile.c and Makefile.in from lib-src and src directories attached.

Thanks
Praveen

[-- Attachment #2: lib-src.Makefile.c --]
[-- Type: text/x-csrc, Size: 15784 bytes --]

# Makefile for lib-src subdirectory in GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 2001, 2002, 2003, 2004,
#               2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.

# This file is part of GNU Emacs.

# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


# Avoid trouble on systems where the `SHELL' variable might be
# inherited from the environment.
SHELL = /bin/sh

# Following ../lisp/Makefile.in.
EMACS = ../src/emacs
EMACSOPT = -batch --no-site-file --multibyte

# ==================== Things `configure' will edit ====================

CC=gcc
CFLAGS=-g -O2 -Wno-pointer-sign  
version=23.1.50
configuration=x86_64-unknown-linux-gnu
EXEEXT=

# Program name transformation.
TRANSFORM = s,x,x,

# ==================== Where To Install Things ====================

# The default location for installation.  Everything is placed in
# subdirectories of this directory.  The default values for many of
# the variables below are expressed in terms of this one, so you may
# not need to change them.  This is set with the --prefix option to
# `../configure'.
prefix=/usr/local

# Like `prefix', but used for architecture-specific files.  This is
# set with the --exec-prefix option to `../configure'.
exec_prefix=${prefix}

# Where to install Emacs and other binaries that people will want to
# run directly (like etags).  This is set with the --bindir option
# to `../configure'.
bindir=${exec_prefix}/bin

# Where to install and expect executable files to be run by Emacs
# rather than directly by users, and other architecture-dependent
# data.  ${archlibdir} is usually below this.  This is set with the
# --libexecdir option to `../configure'.
libexecdir=${exec_prefix}/libexec

# Directory for local state files for all programs.
localstatedir=${prefix}/var

# Where to find the source code.  This is set by the configure
# script's `--srcdir' option.  However, the value of ${srcdir} in
# this makefile is not identical to what was specified with --srcdir,
# since the variable here has `/lib-src' added at the end.

# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir=/home/pravi/forge/emacs/emacs/lib-src
VPATH=/home/pravi/forge/emacs/emacs/lib-src

# The top-level source directory, also set by configure.
top_srcdir=/home/pravi/forge/emacs/emacs

# ==================== Emacs-specific directories ====================

# These variables hold the values Emacs will actually use.  They are
# based on the values of the standard Make variables above.

# Where to put executables to be run by Emacs rather than the user.
# This path usually includes the Emacs version and configuration name,
# so that multiple configurations for multiple versions of Emacs may
# be installed at once.  This can be set with the --archlibdir option
# to `../configure'.
archlibdir=${libexecdir}/emacs/${version}/${configuration}

gamedir=${localstatedir}/games/emacs
gameuser=games

# ==================== Utility Programs for the Build =================

# ../configure figures out the correct values for these.
INSTALL = /usr/bin/install -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL} -m 644
INSTALL_SCRIPT = ${INSTALL}
# By default, we uphold the dignity of our programs.
INSTALL_STRIP =

# ========================== Lists of Files ===========================

# Things that a user might actually run,
# which should be installed in bindir.
INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} b2m${EXEEXT} ebrowse${EXEEXT} 
INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog

# Things that Emacs runs internally, or during the build process,
#  which should not be installed in bindir.
UTILITIES=  profile${EXEEXT} digest-doc${EXEEXT} sorted-doc${EXEEXT} movemail${EXEEXT} cvtmail${EXEEXT} fakemail${EXEEXT} \
            hexl${EXEEXT} update-game-score${EXEEXT}

DONT_INSTALL= test-distrib${EXEEXT} make-docfile${EXEEXT}

# Like UTILITIES, but they're not system-dependent, and should not be
#  deleted by the distclean target.
SCRIPTS= rcs2log vcdiff

EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}

# Additional -D flags for movemail (add to MOVE_FLAGS if desired):
# MAIL_USE_POP		Support mail retrieval from a POP mailbox.
# MAIL_USE_MMDF		Support MMDF mailboxes.
# MAIL_USE_FLOCK	Use flock for file locking (see the comments
#			about locking in movemail.c)
# MAIL_UNLINK_SPOOL	Unlink the user's spool mailbox after reading
#			it (instead of just emptying it).
# KERBEROS		Support Kerberized POP.
# KRB5			Support Kerberos Version 5 pop instead of
#			Version 4 (define this in addition to
#			KERBEROS).
# HESIOD		Support Hesiod lookups of user mailboxes.
# MAILHOST		A string, the host name of the default POP
#			mail host for the site.
MOVE_FLAGS=

# ========================== start of cpp stuff =======================
/* From here on, comments must be done in C syntax.  */

#define THIS_IS_MAKEFILE
#define NOT_C_CODE
#include "../src/config.h"

/* Some s/SYSTEM.h files define this to request special libraries.  */
#ifndef LIBS_SYSTEM
#define LIBS_SYSTEM
#endif

/* Some m/MACHINE.h files define this to request special libraries.  */
#ifndef LIBS_MACHINE
#define LIBS_MACHINE
#endif

#ifndef C_SWITCH_SYSTEM
#define C_SWITCH_SYSTEM
#endif

#ifndef C_SWITCH_MACHINE
#define C_SWITCH_MACHINE
#endif

#undef MOVEMAIL_NEEDS_BLESSING
#ifndef MAIL_USE_FLOCK
#ifndef MAIL_USE_LOCKF
#define MOVEMAIL_NEEDS_BLESSING
#endif
#endif

#ifdef MOVEMAIL_NEEDS_BLESSING
#define BLESSMAIL blessmail
#else
#define BLESSMAIL
#endif

#ifdef KERBEROS
# ifdef HAVE_LIBKRB
    KRB4LIB = -lkrb
# else
#  ifdef HAVE_LIBKRB4
     KRB4LIB = -lkrb4
#  endif
# endif
# ifdef HAVE_LIBDES
    DESLIB = -ldes
# else
#  ifdef HAVE_LIBDES425
    DESLIB = -ldes425
#  endif
# endif
# ifdef HAVE_LIBKRB5
    KRB5LIB = -lkrb5
# endif
# ifdef HAVE_LIBK5CRYPTO
    CRYPTOLIB = -lk5crypto
# else
#  ifdef HAVE_LIBCRYPTO
    CRYPTOLIB = -lcrypto
#  endif
# endif
# ifdef HAVE_LIBCOM_ERR
    COM_ERRLIB = -lcom_err
# endif
#endif /* KERBEROS */

/* If HESIOD is defined, set this to "-lhesiod". */
#ifdef HAVE_LIBHESIOD
# ifdef HAVE_LIBRESOLV
    HESIODLIB= -lhesiod -lresolv
# else
    HESIODLIB= -lhesiod
# endif
#endif

LIBS_MOVE=$(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) $(COM_ERRLIB) $(HESIODLIB)

#ifdef HAVE_LIBLOCKFILE
LIBS_MAIL=-llockfile
#else
#ifdef HAVE_LIBMAIL
LIBS_MAIL=-lmail
#endif
#endif

LOADLIBES=LIBS_SYSTEM LIBS_MACHINE

/* We need to #define emacs to get the right versions of some files.
   Some other files - those shared with other GNU utilities - need
   HAVE_CONFIG_H #defined before they know they can take advantage of
   the information in ../src/config.h.  */
ALL_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
LINK_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CFLAGS}
CPP_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
/* This was all of CPP_CFLAGS except -Demacs.
   Now that -Demacs has been deleted from CPP_CFLAGS,
   this is actually the same as CPP_CFLAGS, but let\'s not delete it yet.  */
BASE_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
\f
.SUFFIXES: .m

/* This is the default compilation command.
   But we should never rely on it, because some make version
   failed to find it for getopt.o.
   Using an explicit command made it work.  */
.c.o:
	${CC} -c ${CPP_CFLAGS} $<

.m.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<

all: ${DONT_INSTALL} ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}

/* These targets copy the scripts into the build directory
so that they can be run from there in an uninstalled Emacs.
The "-" is prepended because some versions of cp barf when
srcdir is the current directory, and thus the file will be
copied into itself.  */
rcs2log: $(srcdir)/rcs2log
	-cp -p $(srcdir)/rcs2log rcs2log

rcs-checkin: $(srcdir)/rcs-checkin
	-cp -p $(srcdir)/rcs-checkin rcs-checkin

grep-changelog: $(srcdir)/grep-changelog
	-cp -p $(srcdir)/grep-changelog grep-changelog

vcdiff: $(srcdir)/vcdiff
	-cp -p $(srcdir)/vcdiff vcdiff

#ifdef MOVEMAIL_NEEDS_BLESSING
blessmail:
	$(EMACS) $(EMACSOPT) -l $(srcdir)/../lisp/mail/blessmail.el
	chmod +x blessmail
#endif

maybe-blessmail: BLESSMAIL
#ifdef MOVEMAIL_NEEDS_BLESSING
/* Don\'t charge ahead and do it!  Let the installer decide.
	  ./blessmail $(DESTDIR)${archlibdir}/movemail${EXEEXT}  */
	@if [ `wc -l <blessmail` != 2 ] ; then \
	  dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
	  echo Assuming $$dir is really the mail spool directory, you should; \
	  echo run  lib-src/blessmail $(DESTDIR)${archlibdir}/movemail${EXEEXT}; \
	  echo as root, to give  movemail${EXEEXT}  appropriate permissions.; \
	  echo Do that after running  make install.; \
	fi
#endif

/* Install the internal utilities.  Until they are installed, we can
   just run them directly from lib-src.  */
$(DESTDIR)${archlibdir}: all
	@echo
	@echo "Installing utilities run internally by Emacs."
	$(top_srcdir)/mkinstalldirs $(DESTDIR)${archlibdir}
	if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then \
	  for file in ${UTILITIES}; do \
	    $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \
	  done ; \
        fi
	$(top_srcdir)/mkinstalldirs $(DESTDIR)${gamedir}
	touch $(DESTDIR)${gamedir}/snake-scores
	touch $(DESTDIR)${gamedir}/tetris-scores
/* If the following commands fail, that is not a big deal.
   update-game-score will detect at runtime that it is not setuid,
   and handle things accordingly. */
	-if chown ${gameuser} $(DESTDIR)${archlibdir}/update-game-score && chmod u+s $(DESTDIR)${archlibdir}/update-game-score; then \
	  chown ${gameuser} $(DESTDIR)${gamedir}; \
	  chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \
	fi
        if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
             != `(cd ${srcdir} && /bin/pwd)` ]; then \
	  for file in ${SCRIPTS}; do \
	    $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
	  done ; \
	fi

install: $(DESTDIR)${archlibdir}
	@echo
	@echo "Installing utilities for users to run."
	for file in ${INSTALLABLES} ; do \
	  $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
	  chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
	done
	for file in ${INSTALLABLE_SCRIPTS} ; do \
	  $(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`  ; \
	  chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
	done

uninstall:
	(cd $(DESTDIR)${bindir}; \
	for file in ${INSTALLABLES} ${INSTALLABLE_SCRIPTS}; do \
	  rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
	done)
	(cd $(DESTDIR)${archlibdir}; \
	 rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})

mostlyclean:
	-rm -f core *.o getopt.h getopt.h-t

clean: mostlyclean
	-rm -f ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL}
	-rm -f fns*.el *.tab.c *.tab.h

distclean: clean
	-rm -f TAGS
	-rm -f Makefile Makefile.c blessmail

maintainer-clean: distclean
	true

extraclean: maintainer-clean
	-rm -f *~ \#*

/* Test the contents of the directory.  */
check:
	@echo "We don't have any tests for GNU Emacs yet."

tags: TAGS
TAGS: etags${EXEEXT}
	etags *.[ch]

/* This verifies that the non-ASCII characters in the file \`testfile\'
   have not been clobbered by whatever means were used to copy and
   distribute Emacs.  If they were clobbered, all the .elc files were
   clobbered too.  */
test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
	$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
	./test-distrib ${srcdir}/testfile

/* We need the following in order to create a <getopt.h> when the system
   does not have one that works with the given compiler.  */
GETOPT_H = 
getopt.h: getopt_.h
	cp $(srcdir)/getopt_.h $@-t
	mv $@-t $@

GETOPTOBJS = 
GETOPTDEPS = $(GETOPTOBJS) $(GETOPT_H)
getopt.o: ${srcdir}/getopt.c $(GETOPT_H) ${srcdir}/gettext.h
	${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt.c
getopt1.o: ${srcdir}/getopt1.c $(GETOPT_H)
	${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt1.c

REGEXPOBJ = regex.o
REGEXPDEPS = $(REGEXPOBJ) $(srcdir)/../src/regex.h

regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h ../src/config.h
	${CC} -c ${BASE_CFLAGS} -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER ${srcdir}/../src/regex.c

etags${EXEEXT}: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h
	$(CC) ${ALL_CFLAGS} -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o etags

ebrowse${EXEEXT}: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h
	$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/ebrowse.c $(GETOPTOBJS) $(LOADLIBES) -o ebrowse

/* We depend on etags to assure that parallel makes don\'t write two
   etags.o files on top of each other.  */
ctags${EXEEXT}: etags${EXEEXT}
	$(CC) ${ALL_CFLAGS} -DCTAGS -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags

profile${EXEEXT}: ${srcdir}/profile.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile

make-docfile${EXEEXT}: ${srcdir}/make-docfile.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) -o make-docfile

digest-doc${EXEEXT}: ${srcdir}/digest-doc.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc

sorted-doc${EXEEXT}: ${srcdir}/sorted-doc.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c $(LOADLIBES) -o sorted-doc

b2m${EXEEXT}: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
	$(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c  -DVERSION="\"${version}\"" \
	   $(GETOPTOBJS) $(LOADLIBES) -o b2m

movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS)
	$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail

movemail.o: ${srcdir}/movemail.c ../src/config.h $(GETOPT_H)
	$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/movemail.c

pop.o: ${srcdir}/pop.c  ../src/config.h
	$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c

cvtmail${EXEEXT}: ${srcdir}/cvtmail.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/cvtmail.c $(LOADLIBES) -o cvtmail

fakemail${EXEEXT}: ${srcdir}/fakemail.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail

emacsclient${EXEEXT}: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS)
	$(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS)  \
	   -DVERSION="\"${version}\"" \
	   $(LOADLIBES) -o emacsclient

hexl${EXEEXT}: ${srcdir}/hexl.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/hexl.c $(LOADLIBES) -o hexl

update-game-score${EXEEXT}: update-game-score.o $(GETOPTDEPS)
	$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} update-game-score.o $(GETOPTOBJS) $(LOADLIBES) -o update-game-score

update-game-score.o: ${srcdir}/update-game-score.c ../src/config.h $(GETOPT_H)
	$(CC) -c ${CPP_CFLAGS} ${srcdir}/update-game-score.c \
	  -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\""

[-- Attachment #3: lib-src.Makefile.in --]
[-- Type: text/plain, Size: 15696 bytes --]

# Makefile for lib-src subdirectory in GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 2001, 2002, 2003, 2004,
#               2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.

# This file is part of GNU Emacs.

# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


# Avoid trouble on systems where the `SHELL' variable might be
# inherited from the environment.
SHELL = /bin/sh

# Following ../lisp/Makefile.in.
EMACS = ../src/emacs
EMACSOPT = -batch --no-site-file --multibyte

# ==================== Things `configure' will edit ====================

CC=@CC@
CFLAGS=@CFLAGS@
version=@version@
configuration=@configuration@
EXEEXT=@EXEEXT@

# Program name transformation.
TRANSFORM = @program_transform_name@

# ==================== Where To Install Things ====================

# The default location for installation.  Everything is placed in
# subdirectories of this directory.  The default values for many of
# the variables below are expressed in terms of this one, so you may
# not need to change them.  This is set with the --prefix option to
# `../configure'.
prefix=@prefix@

# Like `prefix', but used for architecture-specific files.  This is
# set with the --exec-prefix option to `../configure'.
exec_prefix=@exec_prefix@

# Where to install Emacs and other binaries that people will want to
# run directly (like etags).  This is set with the --bindir option
# to `../configure'.
bindir=@bindir@

# Where to install and expect executable files to be run by Emacs
# rather than directly by users, and other architecture-dependent
# data.  ${archlibdir} is usually below this.  This is set with the
# --libexecdir option to `../configure'.
libexecdir=@libexecdir@

# Directory for local state files for all programs.
localstatedir=@localstatedir@

# Where to find the source code.  This is set by the configure
# script's `--srcdir' option.  However, the value of ${srcdir} in
# this makefile is not identical to what was specified with --srcdir,
# since the variable here has `/lib-src' added at the end.

# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir=@srcdir@
VPATH=@srcdir@

# The top-level source directory, also set by configure.
top_srcdir=@top_srcdir@

# ==================== Emacs-specific directories ====================

# These variables hold the values Emacs will actually use.  They are
# based on the values of the standard Make variables above.

# Where to put executables to be run by Emacs rather than the user.
# This path usually includes the Emacs version and configuration name,
# so that multiple configurations for multiple versions of Emacs may
# be installed at once.  This can be set with the --archlibdir option
# to `../configure'.
archlibdir=@archlibdir@

gamedir=@gamedir@
gameuser=@gameuser@

# ==================== Utility Programs for the Build =================

# ../configure figures out the correct values for these.
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
# By default, we uphold the dignity of our programs.
INSTALL_STRIP =

# ========================== Lists of Files ===========================

# Things that a user might actually run,
# which should be installed in bindir.
INSTALLABLES = etags${EXEEXT} ctags${EXEEXT} emacsclient${EXEEXT} b2m${EXEEXT} ebrowse${EXEEXT} @LIB_SRC_EXTRA_INSTALLABLES@
INSTALLABLE_SCRIPTS = rcs-checkin grep-changelog

# Things that Emacs runs internally, or during the build process,
#  which should not be installed in bindir.
UTILITIES=  profile${EXEEXT} digest-doc${EXEEXT} sorted-doc${EXEEXT} movemail${EXEEXT} cvtmail${EXEEXT} fakemail${EXEEXT} \
            hexl${EXEEXT} update-game-score${EXEEXT}

DONT_INSTALL= test-distrib${EXEEXT} make-docfile${EXEEXT}

# Like UTILITIES, but they're not system-dependent, and should not be
#  deleted by the distclean target.
SCRIPTS= rcs2log vcdiff

EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}

# Additional -D flags for movemail (add to MOVE_FLAGS if desired):
# MAIL_USE_POP		Support mail retrieval from a POP mailbox.
# MAIL_USE_MMDF		Support MMDF mailboxes.
# MAIL_USE_FLOCK	Use flock for file locking (see the comments
#			about locking in movemail.c)
# MAIL_UNLINK_SPOOL	Unlink the user's spool mailbox after reading
#			it (instead of just emptying it).
# KERBEROS		Support Kerberized POP.
# KRB5			Support Kerberos Version 5 pop instead of
#			Version 4 (define this in addition to
#			KERBEROS).
# HESIOD		Support Hesiod lookups of user mailboxes.
# MAILHOST		A string, the host name of the default POP
#			mail host for the site.
MOVE_FLAGS=

# ========================== start of cpp stuff =======================
/* From here on, comments must be done in C syntax.  */

#define THIS_IS_MAKEFILE
#define NOT_C_CODE
#include "../src/config.h"

/* Some s/SYSTEM.h files define this to request special libraries.  */
#ifndef LIBS_SYSTEM
#define LIBS_SYSTEM
#endif

/* Some m/MACHINE.h files define this to request special libraries.  */
#ifndef LIBS_MACHINE
#define LIBS_MACHINE
#endif

#ifndef C_SWITCH_SYSTEM
#define C_SWITCH_SYSTEM
#endif

#ifndef C_SWITCH_MACHINE
#define C_SWITCH_MACHINE
#endif

#undef MOVEMAIL_NEEDS_BLESSING
#ifndef MAIL_USE_FLOCK
#ifndef MAIL_USE_LOCKF
#define MOVEMAIL_NEEDS_BLESSING
#endif
#endif

#ifdef MOVEMAIL_NEEDS_BLESSING
#define BLESSMAIL blessmail
#else
#define BLESSMAIL
#endif

#ifdef KERBEROS
# ifdef HAVE_LIBKRB
    KRB4LIB = -lkrb
# else
#  ifdef HAVE_LIBKRB4
     KRB4LIB = -lkrb4
#  endif
# endif
# ifdef HAVE_LIBDES
    DESLIB = -ldes
# else
#  ifdef HAVE_LIBDES425
    DESLIB = -ldes425
#  endif
# endif
# ifdef HAVE_LIBKRB5
    KRB5LIB = -lkrb5
# endif
# ifdef HAVE_LIBK5CRYPTO
    CRYPTOLIB = -lk5crypto
# else
#  ifdef HAVE_LIBCRYPTO
    CRYPTOLIB = -lcrypto
#  endif
# endif
# ifdef HAVE_LIBCOM_ERR
    COM_ERRLIB = -lcom_err
# endif
#endif /* KERBEROS */

/* If HESIOD is defined, set this to "-lhesiod". */
#ifdef HAVE_LIBHESIOD
# ifdef HAVE_LIBRESOLV
    HESIODLIB= -lhesiod -lresolv
# else
    HESIODLIB= -lhesiod
# endif
#endif

LIBS_MOVE=$(KRB4LIB) $(DESLIB) $(KRB5LIB) $(CRYPTOLIB) $(COM_ERRLIB) $(HESIODLIB)

#ifdef HAVE_LIBLOCKFILE
LIBS_MAIL=-llockfile
#else
#ifdef HAVE_LIBMAIL
LIBS_MAIL=-lmail
#endif
#endif

LOADLIBES=LIBS_SYSTEM LIBS_MACHINE

/* We need to #define emacs to get the right versions of some files.
   Some other files - those shared with other GNU utilities - need
   HAVE_CONFIG_H #defined before they know they can take advantage of
   the information in ../src/config.h.  */
ALL_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CPPFLAGS} ${CFLAGS}
LINK_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${LDFLAGS} ${CFLAGS}
CPP_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
/* This was all of CPP_CFLAGS except -Demacs.
   Now that -Demacs has been deleted from CPP_CFLAGS,
   this is actually the same as CPP_CFLAGS, but let\'s not delete it yet.  */
BASE_CFLAGS = C_SWITCH_SYSTEM C_SWITCH_MACHINE -DHAVE_CONFIG_H \
   -I. -I../src -I${srcdir} -I${srcdir}/../src ${CPPFLAGS} ${CFLAGS}
\f
.SUFFIXES: .m

/* This is the default compilation command.
   But we should never rely on it, because some make version
   failed to find it for getopt.o.
   Using an explicit command made it work.  */
.c.o:
	${CC} -c ${CPP_CFLAGS} $<

.m.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<

all: ${DONT_INSTALL} ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS}

/* These targets copy the scripts into the build directory
so that they can be run from there in an uninstalled Emacs.
The "-" is prepended because some versions of cp barf when
srcdir is the current directory, and thus the file will be
copied into itself.  */
rcs2log: $(srcdir)/rcs2log
	-cp -p $(srcdir)/rcs2log rcs2log

rcs-checkin: $(srcdir)/rcs-checkin
	-cp -p $(srcdir)/rcs-checkin rcs-checkin

grep-changelog: $(srcdir)/grep-changelog
	-cp -p $(srcdir)/grep-changelog grep-changelog

vcdiff: $(srcdir)/vcdiff
	-cp -p $(srcdir)/vcdiff vcdiff

#ifdef MOVEMAIL_NEEDS_BLESSING
blessmail:
	$(EMACS) $(EMACSOPT) -l $(srcdir)/../lisp/mail/blessmail.el
	chmod +x blessmail
#endif

maybe-blessmail: BLESSMAIL
#ifdef MOVEMAIL_NEEDS_BLESSING
/* Don\'t charge ahead and do it!  Let the installer decide.
	  ./blessmail $(DESTDIR)${archlibdir}/movemail${EXEEXT}  */
	@if [ `wc -l <blessmail` != 2 ] ; then \
	  dir=`sed -n -e 's/echo mail directory = \(.*\)/\1/p' blessmail`; \
	  echo Assuming $$dir is really the mail spool directory, you should; \
	  echo run  lib-src/blessmail $(DESTDIR)${archlibdir}/movemail${EXEEXT}; \
	  echo as root, to give  movemail${EXEEXT}  appropriate permissions.; \
	  echo Do that after running  make install.; \
	fi
#endif

/* Install the internal utilities.  Until they are installed, we can
   just run them directly from lib-src.  */
$(DESTDIR)${archlibdir}: all
	@echo
	@echo "Installing utilities run internally by Emacs."
	$(top_srcdir)/mkinstalldirs $(DESTDIR)${archlibdir}
	if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` != `/bin/pwd` ]; then \
	  for file in ${UTILITIES}; do \
	    $(INSTALL_PROGRAM) $(INSTALL_STRIP) $$file $(DESTDIR)${archlibdir}/$$file ; \
	  done ; \
        fi
	$(top_srcdir)/mkinstalldirs $(DESTDIR)${gamedir}
	touch $(DESTDIR)${gamedir}/snake-scores
	touch $(DESTDIR)${gamedir}/tetris-scores
/* If the following commands fail, that is not a big deal.
   update-game-score will detect at runtime that it is not setuid,
   and handle things accordingly. */
	-if chown ${gameuser} $(DESTDIR)${archlibdir}/update-game-score && chmod u+s $(DESTDIR)${archlibdir}/update-game-score; then \
	  chown ${gameuser} $(DESTDIR)${gamedir}; \
	  chmod u=rwx,g=rwx,o=rx $(DESTDIR)${gamedir}; \
	fi
        if [ `(cd $(DESTDIR)${archlibdir} && /bin/pwd)` \
             != `(cd ${srcdir} && /bin/pwd)` ]; then \
	  for file in ${SCRIPTS}; do \
	    $(INSTALL_SCRIPT) ${srcdir}/$$file $(DESTDIR)${archlibdir}/$$file; \
	  done ; \
	fi

install: $(DESTDIR)${archlibdir}
	@echo
	@echo "Installing utilities for users to run."
	for file in ${INSTALLABLES} ; do \
	  $(INSTALL_PROGRAM) $(INSTALL_STRIP) $${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
	  chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
	done
	for file in ${INSTALLABLE_SCRIPTS} ; do \
	  $(INSTALL_SCRIPT) ${srcdir}/$${file} $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`  ; \
	  chmod a+rx $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'`; \
	done

uninstall:
	(cd $(DESTDIR)${bindir}; \
	for file in ${INSTALLABLES} ${INSTALLABLE_SCRIPTS}; do \
	  rm -f $(DESTDIR)${bindir}/`echo $${file} | sed '$(TRANSFORM)'` ; \
	done)
	(cd $(DESTDIR)${archlibdir}; \
	 rm -f ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} ${INSTALLABLE_SCRIPTS})

mostlyclean:
	-rm -f core *.o getopt.h getopt.h-t

clean: mostlyclean
	-rm -f ${INSTALLABLES} ${UTILITIES} ${DONT_INSTALL}
	-rm -f fns*.el *.tab.c *.tab.h

distclean: clean
	-rm -f TAGS
	-rm -f Makefile Makefile.c blessmail

maintainer-clean: distclean
	true

extraclean: maintainer-clean
	-rm -f *~ \#*

/* Test the contents of the directory.  */
check:
	@echo "We don't have any tests for GNU Emacs yet."

tags: TAGS
TAGS: etags${EXEEXT}
	etags *.[ch]

/* This verifies that the non-ASCII characters in the file \`testfile\'
   have not been clobbered by whatever means were used to copy and
   distribute Emacs.  If they were clobbered, all the .elc files were
   clobbered too.  */
test-distrib${EXEEXT}: ${srcdir}/test-distrib.c
	$(CC) ${ALL_CFLAGS} -o test-distrib ${srcdir}/test-distrib.c
	./test-distrib ${srcdir}/testfile

/* We need the following in order to create a <getopt.h> when the system
   does not have one that works with the given compiler.  */
GETOPT_H = @GETOPT_H@
getopt.h: getopt_.h
	cp $(srcdir)/getopt_.h $@-t
	mv $@-t $@

GETOPTOBJS = @GETOPTOBJS@
GETOPTDEPS = $(GETOPTOBJS) $(GETOPT_H)
getopt.o: ${srcdir}/getopt.c $(GETOPT_H) ${srcdir}/gettext.h
	${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt.c
getopt1.o: ${srcdir}/getopt1.c $(GETOPT_H)
	${CC} -c ${CPP_CFLAGS} ${srcdir}/getopt1.c

REGEXPOBJ = regex.o
REGEXPDEPS = $(REGEXPOBJ) $(srcdir)/../src/regex.h

regex.o: $(srcdir)/../src/regex.c $(srcdir)/../src/regex.h ../src/config.h
	${CC} -c ${BASE_CFLAGS} -DCONFIG_BROKETS -DINHIBIT_STRING_HEADER ${srcdir}/../src/regex.c

etags${EXEEXT}: ${srcdir}/etags.c $(GETOPTDEPS) $(REGEXPDEPS) ../src/config.h
	$(CC) ${ALL_CFLAGS} -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o etags

ebrowse${EXEEXT}: ${srcdir}/ebrowse.c $(GETOPTDEPS) ../src/config.h
	$(CC) ${ALL_CFLAGS} -DVERSION="\"${version}\"" ${srcdir}/ebrowse.c $(GETOPTOBJS) $(LOADLIBES) -o ebrowse

/* We depend on etags to assure that parallel makes don\'t write two
   etags.o files on top of each other.  */
ctags${EXEEXT}: etags${EXEEXT}
	$(CC) ${ALL_CFLAGS} -DCTAGS -DEMACS_NAME="\"GNU Emacs\"" -DVERSION="\"${version}\"" ${srcdir}/etags.c $(GETOPTOBJS) $(REGEXPOBJ) $(LOADLIBES) -o ctags

profile${EXEEXT}: ${srcdir}/profile.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/profile.c $(LOADLIBES) -o profile

make-docfile${EXEEXT}: ${srcdir}/make-docfile.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/make-docfile.c $(LOADLIBES) -o make-docfile

digest-doc${EXEEXT}: ${srcdir}/digest-doc.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/digest-doc.c $(LOADLIBES) -o digest-doc

sorted-doc${EXEEXT}: ${srcdir}/sorted-doc.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c $(LOADLIBES) -o sorted-doc

b2m${EXEEXT}: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS)
	$(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c  -DVERSION="\"${version}\"" \
	   $(GETOPTOBJS) $(LOADLIBES) -o b2m

movemail${EXEEXT}: movemail.o pop.o $(GETOPTDEPS)
	$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} movemail.o pop.o $(GETOPTOBJS) $(LOADLIBES) $(LIBS_MAIL) $(LIBS_MOVE) -o movemail

movemail.o: ${srcdir}/movemail.c ../src/config.h $(GETOPT_H)
	$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/movemail.c

pop.o: ${srcdir}/pop.c  ../src/config.h
	$(CC) -c ${CPP_CFLAGS} ${MOVE_FLAGS} ${srcdir}/pop.c

cvtmail${EXEEXT}: ${srcdir}/cvtmail.c
	$(CC) ${ALL_CFLAGS} ${srcdir}/cvtmail.c $(LOADLIBES) -o cvtmail

fakemail${EXEEXT}: ${srcdir}/fakemail.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/fakemail.c $(LOADLIBES) -o fakemail

emacsclient${EXEEXT}: ${srcdir}/emacsclient.c ../src/config.h $(GETOPTDEPS)
	$(CC) ${ALL_CFLAGS} ${srcdir}/emacsclient.c $(GETOPTOBJS)  \
	   -DVERSION="\"${version}\"" \
	   $(LOADLIBES) -o emacsclient

hexl${EXEEXT}: ${srcdir}/hexl.c ../src/config.h
	$(CC) ${ALL_CFLAGS} ${srcdir}/hexl.c $(LOADLIBES) -o hexl

update-game-score${EXEEXT}: update-game-score.o $(GETOPTDEPS)
	$(CC) ${LINK_CFLAGS} ${MOVE_FLAGS} update-game-score.o $(GETOPTOBJS) $(LOADLIBES) -o update-game-score

update-game-score.o: ${srcdir}/update-game-score.c ../src/config.h $(GETOPT_H)
	$(CC) -c ${CPP_CFLAGS} ${srcdir}/update-game-score.c \
	  -DHAVE_SHARED_GAME_DIR="\"$(gamedir)\""

[-- Attachment #4: src.Makefile.c --]
[-- Type: text/x-csrc, Size: 48054 bytes --]

# Makefile for GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
#               2003, 2004, 2005, 2006, 2007, 2008, 2009
#               Free Software Foundation, Inc.

# This file is part of GNU Emacs.

# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


# Note that this file is edited by msdos/sed1v2.inp for MSDOS.  That
# script may need modifying in sync with changes made here.  Try to
# avoid shell-ism because the DOS build has to use the DOS shell.

# Don't try to replace the cpp processing using autoconf facilities,
# says rms.
# Replacing a particular part of the conditionals to work via autoconf
# is OK.
# Some of the conditionals might be dead now.  Finding them and
# deleting them would be fine.


# Here are the things that we expect ../configure to edit.
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir=/home/pravi/forge/emacs/emacs/src
VPATH=/home/pravi/forge/emacs/emacs/src
CC=gcc
CPP=gcc -E
CFLAGS=-g -O2 -Wno-pointer-sign  
CPPFLAGS=-D_BSD_SOURCE  
LDFLAGS= -Wl,-znocombreloc  
LN_S=ln -s
EXEEXT=
version=23.1.50
# Substitute an assignment for the MAKE variable, because
# BSD doesn't have it as a default.

# Don't use LIBS.  configure puts stuff in it that either shouldn't be
# linked with Emacs or is duplicated by the cpp stuff below.
# LIBS = -lm -lSM -lICE -lXft -lXrender -lfontconfig -lfreetype -lX11   -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -lX11  
LIBOBJS = 

lispsource = ${srcdir}/../lisp/
libsrc = ../lib-src/
etc = ../etc/
oldXMenudir = ../oldXMenu/
lwlibdir = ../lwlib/
lispdir = ../lisp/

# Configuration files for .o files to depend on.
M_FILE = ${srcdir}/m/amdx86-64.h
S_FILE = ${srcdir}/s/gnu-linux.h
config_h = config.h $(M_FILE) $(S_FILE)

# ========================== start of cpp stuff =======================
/* From here on, comments must be done in C syntax.  */

C_SWITCH_SYSTEM=

/* just to be sure the sh is used */
SHELL=/bin/sh

#define THIS_IS_MAKEFILE
#define NOT_C_CODE
#include "config.h"

/* Do not let the file name mktime.c get messed up.  */
#ifdef mktime
#undef mktime
#endif

/* Use HAVE_X11 as an alias for X11 in this file
   to avoid problems with X11 as a subdirectory name
   in -I and other such options which pass through this file. */

#ifdef X11
#define HAVE_X11
#undef X11
#endif

/* On some machines #define register is done in config;
   do not let it interfere with this file.  */
#undef register

/* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
   GNU/Linux is an exception because it uses a funny variant of GNU libc.  */
#ifdef __GNU_LIBRARY__
#ifndef GNU_LINUX
#define ORDINARY_LINK
#endif
#endif

/* Some machines do not find the standard C libraries in the usual place.  */
#ifndef ORDINARY_LINK
#ifndef LIB_STANDARD
#define LIB_STANDARD -lc
#endif
#else
#ifndef LIB_STANDARD
#define LIB_STANDARD
#endif
#endif

/* Under GNUstep, putting libc on the link line causes problems. */
#ifdef NS_IMPL_GNUSTEP
#undef LIB_STANDARD
#define LIB_STANDARD
#endif

/* Unless inhibited or changed, use -lg to link for debugging.  */
#ifndef LIBS_DEBUG
#define LIBS_DEBUG -lg
#endif

/* Some s/SYSTEM.h files define this to request special libraries.  */
#ifndef LIBS_SYSTEM
#define LIBS_SYSTEM
#endif

/* Some m/MACHINE.h files define this to request special libraries.  */
#ifndef LIBS_MACHINE
#define LIBS_MACHINE
#endif

#ifndef LIB_MATH
#  define LIB_MATH -lm
#endif /* LIB_MATH */

/* Some s/SYSTEM.h files define this to request special switches in ld.  */
#ifndef LD_SWITCH_SYSTEM
#if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
#define LD_SWITCH_SYSTEM -X
#else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
#define LD_SWITCH_SYSTEM
#endif /* (defined (BSD_SYSTEM) && !defined (COFF)) */
#endif /* LD_SWITCH_SYSTEM */

/* This holds special options for linking temacs
   that should be used for linking anything else.  */
#ifndef LD_SWITCH_SYSTEM_TEMACS
#define LD_SWITCH_SYSTEM_TEMACS
#endif

/* Some s/SYSTEM.h files define this to request special switches
   for compiling temacs.  */
#ifndef C_SWITCH_SYSTEM_TEMACS
#define C_SWITCH_SYSTEM_TEMACS
#endif

/* Some m/MACHINE.h files define this to request special switches in ld.  */
#ifndef LD_SWITCH_MACHINE
#define LD_SWITCH_MACHINE
#endif

/* This holds special options for linking temacs
   that should be used for linking anything else.  */
#ifndef LD_SWITCH_MACHINE_TEMACS
#define LD_SWITCH_MACHINE_TEMACS
#endif

/* Some m/MACHINE.h files define this to request special switches in cc.  */
#ifndef C_SWITCH_MACHINE
#define C_SWITCH_MACHINE
#endif

/* Some s/SYSTEM.h files define this to request special switches in cc.  */
#ifndef C_SWITCH_SYSTEM
#define C_SWITCH_SYSTEM
#endif

/* These macros are for switches specifically related to X Windows.  */
#ifndef C_SWITCH_X_MACHINE
#define C_SWITCH_X_MACHINE
#endif

#ifndef C_SWITCH_X_SYSTEM
#define C_SWITCH_X_SYSTEM
#endif

#ifndef C_SWITCH_X_SITE
#define C_SWITCH_X_SITE
#endif

#ifndef LD_SWITCH_X_SITE
#define LD_SWITCH_X_SITE
#endif

#ifndef LD_SWITCH_X_DEFAULT
#define LD_SWITCH_X_DEFAULT
#endif

#ifndef ORDINARY_LINK

#ifndef CRT0_COMPILE
#define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS)
#endif

#ifndef START_FILES
#ifdef NO_REMAP
#define START_FILES pre-crt0.o /lib/crt0.o
#else /* ! defined (NO_REMAP) */
#define START_FILES ecrt0.o
#endif /* ! defined (NO_REMAP) */
#endif /* START_FILES */
STARTFILES = START_FILES

#else /* ORDINARY_LINK */

/* config.h might want to force START_FILES anyway */
#ifdef START_FILES
STARTFILES = START_FILES
#endif /* START_FILES */

#endif /* not ORDINARY_LINK */


#ifdef NS_IMPL_GNUSTEP
/* Pull in stuff from GNUstep-make. */
FOUNDATION_LIB=gnu
GUI_LIB=gnu
include /Additional/base.make
include /Additional/gui.make
shared=no
#endif

#ifdef HAVE_DBUS
DBUS_CFLAGS = -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include  
DBUS_LIBS = -L/lib64 -ldbus-1 -lpthread -lrt  
DBUS_OBJ = dbusbind.o
#endif

/* DO NOT use -R.  There is a special hack described in lastfile.c
   which is used instead.  Some initialized data areas are modified
   at initial startup, then labeled as part of the text area when
   Emacs is dumped for the first time, and never changed again. */

/* -Demacs is needed to make some files produce the correct version
   for use in Emacs.

   -DHAVE_CONFIG_H is needed for some other files to take advantage of
   the information in ``config.h''.  */

/* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
   since it may have -I options that should override those two.  */
ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS}    
ALL_OBJC_CFLAGS=$(ALL_CFLAGS) 

.SUFFIXES: .m
.c.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
.m.o:
	$(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<

#ifndef LIBX11_SYSTEM
#define LIBX11_SYSTEM
#endif

#ifndef LIB_X11_LIB
#define LIB_X11_LIB -lX11
#endif

#ifdef HAVE_X_WINDOWS
XMENU_OBJ = xmenu.o
XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o

#ifdef HAVE_MENUS

#ifdef USE_GTK
GTK_OBJ= gtkutil.o
#endif

/* The X Menu stuff is present in the X10 distribution, but missing
   from X11.  If we have X10, just use the installed library;
   otherwise, use our own copy.  */
#ifdef HAVE_X11
#ifdef USE_X_TOOLKIT
OLDXMENU=${lwlibdir}liblw.a
LIBXMENU= $(OLDXMENU)
#else /* not USE_X_TOOLKIT */
OLDXMENU= ${oldXMenudir}libXMenu11.a
LIBXMENU= $(OLDXMENU)
#endif /* not USE_X_TOOLKIT */
#else /* not HAVE_X11 */
LIBXMENU= -lXMenu
#endif /* not HAVE_X11 */

#else /* not HAVE_MENUS */

/* Otherwise, do not worry about the menu library at all.  */
LIBXMENU=
#endif /* not HAVE_MENUS */

#ifdef USE_X_TOOLKIT
# define none
# if HAVE_XAW3D
LUCID_LIBW= -lXaw3d
# else
LUCID_LIBW= -lXaw
# endif
# if defined (HAVE_MOTIF_2_1) && defined (HAVE_LIBXP)
#  define LIB_MOTIF_EXTRA -lXp
# else
#  define LIB_MOTIF_EXTRA
# endif
# ifdef LIB_MOTIF
MOTIF_LIBW= LIB_MOTIF LIB_MOTIF_EXTRA
# else
MOTIF_LIBW= -lXm LIB_MOTIF_EXTRA
# endif
LIBW=$(none_LIBW)

#ifdef HAVE_X11XTR6
#ifdef NEED_LIBW
LIBXTR6 = -lSM -lICE -lw
#else
LIBXTR6 = -lSM -lICE
#endif
#endif

#ifndef LIBXMU
#define LIBXMU -lXmu
#endif

LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext

#else /* not USE_X_TOOLKIT */

#ifdef USE_GTK
LIBW=-lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0   -lpthread
OLDXMENU=
LIBXMENU=
#endif /* USE_GTK */

#ifdef HAVE_X_SM
LIBXT=$(LIBW) -lSM -lICE
#else
LIBXT=$(LIBW)
#endif
#endif /* not USE_X_TOOLKIT */

#if HAVE_XFT
XFT_LIBS=-lXft -lXrender -lfontconfig -lfreetype -lX11  
#endif /* HAVE_XFT */

#if HAVE_XPM
#ifndef LIBXPM
#define LIBXPM -lXpm
#endif /* not defined LIBXPM */
#else /* not HAVE_XPM */
#define LIBXPM
#endif /* not HAVE_XPM */

#if HAVE_JPEG
#ifndef LIBJPEG
#define LIBJPEG -ljpeg
#endif /* not defined LIBJPEG */
#else /* not HAVE_JPEG */
#define LIBJPEG
#endif /* not HAVE_JPEG */

#if HAVE_PNG
#ifndef LIBPNG
#define LIBPNG -lpng -lz -lm
#endif /* not defined LIBPNG */
#else /* not HAVE_PNG */
#define LIBPNG
#endif /* not HAVE_PNG */

#if HAVE_TIFF
#ifndef LIBTIFF
#define LIBTIFF -ltiff
#endif /* not defined LIBTIFF */
#else /* not HAVE_TIFF */
#define LIBTIFF
#endif /* not HAVE_TIFF */

#if HAVE_GIF
#ifndef LIBGIF
#define LIBGIF -lgif
#endif /* not defined LIBGIF */
#else /* not HAVE_GIF */
#define LIBGIF
#endif /* not HAVE_GIF */

#ifdef HAVE_X11
/* LD_SWITCH_X_DEFAULT comes after everything else that specifies
   options for where to find X libraries, but before those libraries.  */
X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_SYSTEM $(XFT_LIBS)
#else /* not HAVE_X11 */
LIBX= $(LIBXMENU) LD_SWITCH_X_SITE
#endif /* not HAVE_X11 */
#endif /* not HAVE_X_WINDOWS */

#if HAVE_GPM
#ifndef LIBGPM
#define LIBGPM -lgpm
#endif /* not defined LIBGPM */
#else /* not HAVE_GPM */
#define LIBGPM
#endif /* not HAVE_GPM */

#if HAVE_LIBRESOLV
#ifndef LIBRESOLV
#define LIBRESOLV -lresolv
#endif /* not defined LIBRESOLV */
#else /* not HAVE_LIBRESOLV */
#define LIBRESOLV
#endif /* not HAVE_LIBRESOLV */

LIBSOUND=  -lasound  
CFLAGS_SOUND=  -I/usr/include/alsa  

RSVG_LIBS= 
RSVG_CFLAGS= 

#ifndef ORDINARY_LINK
/* Fix linking if compiled with GCC.  */
#ifdef __GNUC__

#ifdef LINKER
#define LINKER_WAS_SPECIFIED
#endif

/* 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.  */

#ifndef LINKER
#define LINKER $(CC) -nostdlib
#endif

#ifndef LIB_GCC
/* Ask GCC where to find libgcc.a.  */
#define LIB_GCC `$(CC) -print-libgcc-file-name`
#endif /* not LIB_GCC */

GNULIB_VAR = LIB_GCC

#ifndef LINKER_WAS_SPECIFIED
/* GCC passes any argument prefixed with -Xlinker directly to the
   linker.  See prefix-args.c for an explanation of why we do not do
   this with the shell''s ``for'' construct.
   Note that some people do not have '.'  in their paths, so we must
   use ./prefix-args.  */
#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
#else
#define YMF_PASS_LDFLAGS(flags) flags
#endif

#else /* not __GNUC__ */
GNULIB_VAR =

#endif /* not __GNUC__ */
#endif /* not ORDINARY_LINK */

#ifdef ORDINARY_LINK
LD = $(CC)
#else
#ifdef LINKER
LD=LINKER
#else /* not LINKER */
LD=ld
#endif /* not LINKER */
#endif /* not ORDINARY_LINK */

/* Flags to pass to LD only for temacs.  */
/* Do not split this line with a backslash.  That can cause trouble with
   some cpps.  */
TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS

/* A macro which other sections of Makefile can redefine to munge the
   flags before they are passed to LD.  This is helpful if you have
   redefined LD to something odd, like "gcc".
   (The YMF prefix is a holdover from the old name "ymakefile".)
  */
#ifndef YMF_PASS_LDFLAGS
#define YMF_PASS_LDFLAGS(flags) flags
#endif

/* Allow config.h to specify a replacement file for unexec.c.  */
#ifndef UNEXEC
#define UNEXEC unexec.o
#endif

INTERVALS_H = dispextern.h intervals.h composite.h

GETLOADAVG_LIBS = 

#ifdef MSDOS
#ifdef HAVE_X_WINDOWS
MSDOS_OBJ = dosfns.o msdos.o xmenu.o
#else
MSDOS_OBJ = dosfns.o msdos.o w16select.o xmenu.o
#endif
#endif

#ifdef CYGWIN
CYGWIN_OBJ = sheap.o
#endif

#ifdef HAVE_NS
ns_appdir=/
ns_appbindir=/
ns_appresdir=/
ns_appsrc=
/* Object files for NeXTstep */
NS_OBJ= nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
	fontset.o fringe.o image.o
#endif  /* HAVE_NS */

#ifdef HAVE_WINDOW_SYSTEM
#ifdef HAVE_X_WINDOWS
#if defined (HAVE_XFT)
FONT_DRIVERS = xfont.o ftfont.o xftfont.o ftxfont.o
#elif defined (HAVE_FREETYPE)
FONT_DRIVERS = xfont.o ftfont.o ftxfont.o
#else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
FONT_DRIVERS = xfont.o
#endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
#endif /* HAVE_X_WINDOWS */
#endif /* HAVE_WINDOW_SYSTEM */

/* lastfile must follow all files
   whose initialized data areas should be dumped as pure by dump-emacs.  */
obj=    dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
	charset.o coding.o category.o ccl.o character.o chartab.o \
	cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
	emacs.o keyboard.o macros.o keymap.o sysdep.o \
	buffer.o filelock.o insdel.o marker.o \
	minibuf.o fileio.o dired.o filemode.o \
	cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
	alloc.o data.o doc.o editfns.o callint.o \
	eval.o floatfns.o fns.o font.o print.o lread.o \
	syntax.o UNEXEC bytecode.o \
	process.o callproc.o \
	region-cache.o sound.o atimer.o \
	doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
	$(MSDOS_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_DRIVERS)

/* Object files used on some machine or other.
   These go in the DOC file on all machines
   in case they are needed there.  */
SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
  xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
  fontset.o \
  nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
  w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
  w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)


#ifdef TERMINFO
/* Used to be -ltermcap here.  If your machine needs that,
   define LIBS_TERMCAP in the m/MACHINE.h file.  */
#ifndef LIBS_TERMCAP
#define LIBS_TERMCAP -lcurses
#endif /* LIBS_TERMCAP */
termcapobj = terminfo.o
#else /* ! defined (TERMINFO) */
#ifndef LIBS_TERMCAP
#define LIBS_TERMCAP
termcapobj = termcap.o tparam.o
#else /* LIBS_TERMCAP */
termcapobj = tparam.o
#endif /* LIBS_TERMCAP */
#endif /* ! defined (TERMINFO) */


#ifndef SYSTEM_MALLOC

#ifndef DOUG_LEA_MALLOC
gmallocobj = gmalloc.o
#endif

#ifdef REL_ALLOC
rallocobj = ralloc.o
#endif

mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o

#endif /* SYSTEM_MALLOC */


#ifdef USE_X_TOOLKIT
widgetobj= widget.o
#else /* not USE_X_TOOLKIT */
widgetobj=
#endif /* not USE_X_TOOLKIT */


/* define otherobj as list of object files that make-docfile
   should not be told about.  */
#ifdef CYGWIN
/* Cygwin differs because of its unexec(). */
otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
#else
otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
#endif

#ifdef HAVE_MOUSE
#define MOUSE_SUPPORT ${lispsource}mouse.elc \
  ${lispsource}select.elc ${lispsource}scroll-bar.elc
#else
#ifdef HAVE_GPM
#define MOUSE_SUPPORT ${lispsource}mouse.elc
#else
#define MOUSE_SUPPORT
#endif
#endif

#ifdef MSDOS
#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc

#else
#define MSDOS_SUPPORT
#endif

#ifdef HAVE_WINDOW_SYSTEM
#ifdef HAVE_X_WINDOWS
#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
#else
#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
#endif
#else
#define WINDOW_SUPPORT
#endif

#ifdef WINDOWSNT
#define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
  ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
  ${lispsource}w32-fns.elc
#else
#define WINNT_SUPPORT
#endif

#ifdef HAVE_WINDOW_SYSTEM
#define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
#else
#define TOOLTIP_SUPPORT
#endif

/* List of Lisp files loaded into the dumped Emacs.  It is arranged
   like this because it is easier to generate it semi-mechanically from
   loadup.el this way.

   Note that this list should not include lisp files which might not
   be present, like site-load.el and site-init.el; this makefile
   expects them all to be either present or buildable.

   Files which are loaded unconditionally should be in shortlisp as well.
   Files included conditionally here should be included (unconditionally)
   in SOME_MACHINE_LISP.  */

/* Place loaddefs.el first, so it gets generated first, since it is on
   the critical path (relevant in parallel compilations).  */

lisp= \
	${lispsource}loaddefs.el \
	${lispsource}abbrev.elc \
	${lispsource}buff-menu.elc \
	${lispsource}button.elc \
	${lispsource}emacs-lisp/byte-run.elc \
	${lispsource}composite.elc \
	${lispsource}cus-face.elc \
	${lispsource}cus-start.elc \
	${lispsource}custom.elc \
	${lispsource}emacs-lisp/backquote.elc \
	${lispsource}emacs-lisp/lisp-mode.elc \
	${lispsource}emacs-lisp/lisp.elc \
	${lispsource}env.elc \
	${lispsource}faces.elc \
	${lispsource}files.elc \
	${lispsource}format.elc \
	${lispsource}facemenu.elc \
	MOUSE_SUPPORT \
	${lispsource}emacs-lisp/float-sup.elc \
	${lispsource}frame.elc \
	${lispsource}help.elc \
	${lispsource}indent.elc \
	${lispsource}isearch.elc \
	${lispsource}rfn-eshadow.elc \
	${lispsource}loadup.el \
	${lispsource}bindings.elc \
	${lispsource}emacs-lisp/map-ynp.elc \
	${lispsource}menu-bar.elc \
	${lispsource}international/mule.elc \
	${lispsource}international/mule-conf.el \
	${lispsource}international/mule-cmds.elc \
	${lispsource}international/characters.elc \
	${lispsource}international/charprop.el \
	${lispsource}case-table.elc \
	${lispsource}language/chinese.el \
	${lispsource}language/cyrillic.el \
	${lispsource}language/indian.el \
	${lispsource}language/sinhala.el \
	${lispsource}language/english.el \
	${lispsource}language/ethiopic.elc \
	${lispsource}language/european.elc \
	${lispsource}language/czech.el \
	${lispsource}language/slovak.el \
	${lispsource}language/romanian.el \
	${lispsource}language/greek.el \
	${lispsource}language/hebrew.el \
	${lispsource}language/japanese.el \
	${lispsource}language/korean.el \
	${lispsource}language/lao.el \
	${lispsource}language/cham.el \
	${lispsource}language/tai-viet.el \
	${lispsource}language/thai.el \
	${lispsource}language/tibetan.elc \
	${lispsource}language/vietnamese.el \
	${lispsource}language/misc-lang.el \
	${lispsource}language/utf-8-lang.el \
	${lispsource}language/georgian.el \
	${lispsource}language/khmer.el \
	${lispsource}language/burmese.el \
	${lispsource}paths.el \
	${lispsource}register.elc \
	${lispsource}replace.elc \
	${lispsource}simple.elc \
	${lispsource}minibuffer.elc \
	${lispsource}startup.elc \
	${lispsource}subr.elc \
	${lispsource}term/tty-colors.elc \
	${lispsource}font-core.elc \
	${lispsource}emacs-lisp/syntax.elc \
	${lispsource}font-lock.elc \
	${lispsource}jit-lock.elc \
	${lispsource}textmodes/fill.elc \
	${lispsource}textmodes/page.elc \
	${lispsource}textmodes/paragraphs.elc \
	${lispsource}textmodes/text-mode.elc \
	${lispsource}emacs-lisp/timer.elc \
	${lispsource}jka-cmpr-hook.elc \
	${lispsource}vc-hooks.elc \
	${lispsource}ediff-hook.elc \
	${lispsource}epa-hook.elc \
	TOOLTIP_SUPPORT \
	MSDOS_SUPPORT \
	WINNT_SUPPORT \
	WINDOW_SUPPORT \
	${lispsource}widget.elc \
	${lispsource}window.elc \
	${lispsource}version.el

/* These are relative file names for the Lisp files
   that are loaded unconditionally.  This is used in make-docfile.
   It need not contain the files that are loaded conditionally
   because SOME_MACHINE_LISP has those.  */
shortlisp= \
	../lisp/loaddefs.el \
	../lisp/abbrev.elc \
	../lisp/buff-menu.elc \
	../lisp/button.elc \
	../lisp/emacs-lisp/byte-run.elc \
	../lisp/composite.elc \
	../lisp/cus-face.elc \
	../lisp/cus-start.elc \
	../lisp/custom.elc \
	../lisp/emacs-lisp/backquote.elc \
	../lisp/emacs-lisp/lisp-mode.elc \
	../lisp/emacs-lisp/lisp.elc \
	../lisp/facemenu.elc \
	../lisp/faces.elc \
	../lisp/files.elc \
	../lisp/emacs-lisp/float-sup.elc \
	../lisp/format.elc \
	../lisp/frame.elc \
	../lisp/help.elc \
	../lisp/indent.elc \
	../lisp/isearch.elc \
	../lisp/rfn-eshadow.elc \
	../lisp/loadup.el \
	../lisp/bindings.elc \
	../lisp/emacs-lisp/map-ynp.elc \
	../lisp/env.elc \
	../lisp/international/mule.elc \
	../lisp/international/mule-conf.el \
	../lisp/international/mule-cmds.elc \
	../lisp/international/characters.elc \
	../lisp/case-table.elc \
	../lisp/language/chinese.el \
	../lisp/language/cyrillic.el \
	../lisp/language/indian.el \
	../lisp/language/sinhala.el \
	../lisp/language/english.el \
	../lisp/language/ethiopic.elc \
	../lisp/language/european.elc \
	../lisp/language/czech.el \
	../lisp/language/slovak.el \
	../lisp/language/romanian.el \
	../lisp/language/greek.el \
	../lisp/language/hebrew.el \
	../lisp/language/japanese.el \
	../lisp/language/korean.el \
	../lisp/language/lao.el \
	../lisp/language/cham.el \
	../lisp/language/tai-viet.el \
	../lisp/language/thai.el \
	../lisp/language/tibetan.elc \
	../lisp/language/vietnamese.el \
	../lisp/language/misc-lang.el \
	../lisp/language/utf-8-lang.el \
	../lisp/language/georgian.el \
	../lisp/language/khmer.el \
	../lisp/language/burmese.el \
	../lisp/menu-bar.elc \
	../lisp/paths.el \
	../lisp/register.elc \
	../lisp/replace.elc \
	../lisp/simple.elc \
	../lisp/minibuffer.elc \
	../lisp/startup.elc \
	../lisp/subr.elc \
	../lisp/term/tty-colors.elc \
	../lisp/font-core.elc \
	../lisp/emacs-lisp/syntax.elc \
	../lisp/font-lock.elc \
	../lisp/jit-lock.elc \
	../lisp/textmodes/fill.elc \
	../lisp/textmodes/page.elc \
	../lisp/textmodes/paragraphs.elc \
	../lisp/textmodes/text-mode.elc \
	../lisp/emacs-lisp/timer.elc \
	../lisp/vc-hooks.elc \
	../lisp/jka-cmpr-hook.elc \
	../lisp/ediff-hook.elc \
	../lisp/epa-hook.elc \
	../lisp/widget.elc \
	../lisp/window.elc \
	../lisp/version.el

/* Lisp files that may or may not be used.
   We must unconditionally put them in the DOC file.
   We use ../lisp/ to start the file names
   to reduce the size of the argument list for make-docfile
   for the sake of systems which can''t handle large ones.  */
SOME_MACHINE_LISP = ../lisp/mouse.elc \
  ../lisp/select.elc ../lisp/scroll-bar.elc \
  ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
  ../lisp/w32-fns.elc ../lisp/dos-w32.elc \
  ../lisp/disp-table.elc ../lisp/dos-vars.elc \
  ../lisp/tooltip.elc ../lisp/image.elc \
  ../lisp/fringe.elc ../lisp/dnd.elc \
  ../lisp/mwheel.elc ../lisp/tool-bar.elc \
  ../lisp/x-dnd.elc \
  ../lisp/international/ccl.elc \
  ../lisp/international/fontset.elc \
  ../lisp/mouse.elc \
  ../lisp/term/common-win.elc \
  ../lisp/term/x-win.elc \
  ../lisp/term/pc-win.elc \
  ../lisp/term/ns-win.elc

/* Construct full set of libraries to be linked.
   Note that SunOS needs -lm to come before -lc; otherwise, you get
   duplicated symbols.  If the standard libraries were compiled
   with GCC, we might need gnulib again after them.  */

LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
   LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
   LIBS_DEBUG $(GETLOADAVG_LIBS) \
       \
   $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)

/* Enable recompilation of certain other files depending on system type.  */

#ifndef OTHER_FILES
#define OTHER_FILES
#endif

#ifndef OBJECTS_MACHINE
#define OBJECTS_MACHINE
#endif

#ifdef HAVE_SHM
RUN_TEMACS = `/bin/pwd`/temacs -nl
#else
RUN_TEMACS = `/bin/pwd`/temacs
#endif

all: emacs${EXEEXT} OTHER_FILES

emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} ${SOME_MACHINE_LISP}
#ifdef CANNOT_DUMP
	rm -f emacs${EXEEXT}
	ln temacs${EXEEXT} emacs${EXEEXT}
#else
	LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
	@: This new Emacs is as functional and more efficient then
	@: bootstrap-emacs, so let us replace it.
	-ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
#endif /* ! defined (CANNOT_DUMP) */
	-./emacs -q -batch -f list-load-path-shadows

/* We run make-docfile twice because the command line may get too long
   on some systems.  */
/* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
   or may not be included in ${obj}, but they are always included in
   ${SOME_MACHINE_OBJECTS}.  Since a file is processed when it is mentioned
   for the first time, this prevents any variation between configurations
   in the contents of the DOC file.
   Likewise for ${SOME_MACHINE_LISP}.  */
/* Most of this Makefile refers to Lisp files via ${lispsource}, so
   we also use ${lisp} rather than ${shortlisp} for the dependency since
   the Makefile uses string equality to decide when we talk about identical
   files.  Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile
   only in order to reduce the command line length.  --Stef  */
${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
	-rm -f ${etc}DOC
	${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
	${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}

${libsrc}make-docfile${EXEEXT}:
	cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}

temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
	echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
#ifdef NS_IMPL_GNUSTEP
	$(CC) -rdynamic YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \
	-L -lgnustep-gui -lgnustep-base \
	-lobjc $(CONFIG_SYSTEM_LIBS) -lpthread ) -o temacs \
	${obj} ${otherobj} OBJECTS_MACHINE ${LIBES}
#else
	$(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
    -o temacs ${STARTFILES} ${obj} ${otherobj}  \
    OBJECTS_MACHINE ${LIBES}
#endif

/* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
   often contain options that have to do with using Emacs''s crt0,
   which are only good with temacs.  */
prefix-args${EXEEXT}: prefix-args.c $(config_h)
	$(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args

#if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)

/* We use stamp-xmenu with these two deps
   to both ensure that lwlib gets remade based on its dependencies
   in its own makefile,
   and remake temacs if lwlib gets changed by this.  */
stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
	touch stamp-oldxmenu
/* Supply an ordering for parallel make.  */
../src/$(OLDXMENU): ${OLDXMENU}

/* Encode the values of these two macros in Make variables,
   so we can use $(...) to substitute their values within "...".  */
C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM

#ifdef USE_X_TOOLKIT
$(OLDXMENU): really-lwlib

really-lwlib:
	cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
    CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
    "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
    "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
    "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
    "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
    "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
	@true  /* make -t should not create really-lwlib.  */
.PHONY: really-lwlib
#else /* not USE_X_TOOLKIT */
$(OLDXMENU): really-oldXMenu

really-oldXMenu:
	cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
    CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
    "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
    "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
    "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
    "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
    "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
	@true  /* make -t should not create really-oldXMenu.  */
.PHONY: really-oldXMenu
#endif /* not USE_X_TOOLKIT */
#else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */

/* We don''t really need this, but satisfy the dependency.  */
stamp-oldxmenu:
	touch stamp-oldxmenu
#endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */

../config.status:: epaths.in
	@echo "The file epaths.h needs to be set up from epaths.in."
	@echo "Please run the `configure' script again."
	exit 1

../config.status:: config.in
	@echo "The file config.h needs to be set up from config.in."
	@echo "Please run the `configure' script again."
	exit 1

/* Nearly all the following files depend on lisp.h,
   but it is not included as a dependency because
   it is so often changed in ways that do not require any recompilation
   and so rarely changed in ways that do require any.  */

atimer.o: atimer.c atimer.h syssignal.h systime.h $(config_h)
abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h character.h \
	syntax.h $(config_h)
buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
   dispextern.h $(INTERVALS_H) blockinput.h atimer.h systime.h character.h \
   $(config_h)
callint.o: callint.c window.h commands.h buffer.h keymap.h \
   keyboard.h dispextern.h $(config_h)
callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
	process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
        composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
   composite.h \
	charset.h keymap.h $(config_h)
casetab.o: casetab.c buffer.h $(config_h)
category.o: category.c category.h buffer.h charset.h keymap.h	\
	character.h $(config_h)
ccl.o: ccl.c ccl.h charset.h character.h coding.h $(config_h)
character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
   $(config_h)
charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
   disptab.h $(config_h)
chartab.o: charset.h character.h $(config_h)
coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h $(INTERVALS_H) composite.h \
	window.h dispextern.h frame.h termhooks.h $(config_h)
cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h $(config_h) \
	msdos.h dispextern.h keyboard.h keymap.h
pre-crt0.o: pre-crt0.c
ecrt0.o: ecrt0.c $(config_h)
	CRT0_COMPILE ${srcdir}/ecrt0.c
dbusbind.o: dbusbind.c termhooks.h frame.h keyboard.h $(config_h)
dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h \
   coding.h regex.h systime.h blockinput.h atimer.h
dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
   window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
   disptab.h indent.h $(INTERVALS_H) \
   xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h \
   syssignal.h $(config_h)
doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h
doprnt.o: doprnt.c character.h $(config_h)
dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
   msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
   $(config_h)
editfns.o: editfns.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
   coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
   termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) $(config_h) \
   window.h dispextern.h keyboard.h keymap.h
fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
   coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h \
   epaths.h $(config_h)
filemode.o: filemode.c  $(config_h)
frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
   blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h    \
   msdos.h dosfns.h dispextern.h w32term.h termchar.h    \
   $(config_h)
fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
   font.h $(config_h)
ftfont.o: dispextern.h frame.h character.h charset.h composite.h font.h \
   $(config_h)
fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h \
   charset.h frame.h keyboard.h termhooks.h font.h $(config_h)
getloadavg.o: getloadavg.c $(config_h)
gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
  blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
  charset.h coding.h syssignal.h
image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
   systime.h xterm.h w32term.h w32gui.h font.h \
   nsterm.h nsgui.h $(config_h)
indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
   termopts.h disptab.h region-cache.h character.h category.h composite.h \
   dispextern.h keyboard.h
insdel.o: insdel.c window.h buffer.h $(INTERVALS_H) blockinput.h character.h \
   dispextern.h atimer.h systime.h region-cache.h $(config_h)
keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
   commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
   systime.h dispextern.h syntax.h $(INTERVALS_H) blockinput.h atimer.h     \
   xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h \
   $(config_h)
keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
   atimer.h systime.h puresize.h character.h charset.h $(INTERVALS_H) keymap.h window.h \
   $(config_h)
lastfile.o: lastfile.c  $(config_h)
macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
	dispextern.h $(config_h)
malloc.o: malloc.c $(config_h)
gmalloc.o: gmalloc.c $(config_h)
ralloc.o: ralloc.c $(config_h)
vm-limit.o: vm-limit.c mem-limits.h $(config_h)
marker.o: marker.c buffer.h character.h $(config_h)
md5.o: md5.c md5.h $(config_h)
minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
   buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h \
   termhooks.h $(config_h)
mktime.o: mktime.c $(config_h)
msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
   termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
   keyboard.h $(INTERVALS_H) buffer.h commands.h blockinput.h atimer.h $(config_h)
nsfns.o: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
  dispextern.h nsgui.h fontset.h $(INTERVALS_H) keyboard.h blockinput.h \
  atimer.h systime.h epaths.h termhooks.h coding.h systime.h $(config_h)
nsfont.o: nsterm.h dispextern.h frame.h lisp.h $(config_h)
nsimage.o: nsimage.m nsterm.h $(config_h)
nsmenu.o: nsmenu.m termhooks.h frame.h window.h dispextern.h \
  nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
  nsterm.h $(config_h)
nsterm.o: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
  nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
  termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
  $(INTERVALS_H) process.h coding.h $(config_h)
nsselect.o: nsselect.m blockinput.h nsterm.h nsgui.h frame.h $(config_h)
process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
   commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
   blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
   keyboard.h $(config_h)
regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h character.h \
   charset.h
region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
   termhooks.h $(config_h)
search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
   blockinput.h atimer.h systime.h category.h character.h charset.h \
   composite.h $(INTERVALS_H) \
   $(config_h)
sound.o: sound.c dispextern.h syssignal.h $(config_h)
strftime.o: strftime.c $(config_h)
syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
   composite.h keymap.h regex.h $(INTERVALS_H) $(config_h)
sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
   process.h dispextern.h termhooks.h termchar.h termopts.h \
   frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
   disptab.h dispextern.h keyboard.h character.h charset.h coding.h ccl.h \
   msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
   syssignal.h  $(INTERVALS_H)
termcap.o: termcap.c $(config_h)
terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
   keyboard.h $(config_h)
terminfo.o: terminfo.c $(config_h)
tparam.o: tparam.c $(config_h)
undo.o: undo.c buffer.h commands.h window.h $(config_h)
unexaix.o: unexaix.c $(config_h)
unexalpha.o: unexalpha.c $(config_h)
unexcw.o: unexcw.c $(config_h)
unexec.o: unexec.c $(config_h)
unexelf.o: unexelf.c $(config_h)
unexhp9k800.o: unexhp9k800.c $(config_h)
unexmacosx.o: unexmacosx.c $(config_h)
unexmips.o: unexmips.c $(config_h)
unexnext.o: unexnext.c $(config_h)
unexsol.o: unexsol.c $(config_h)
unexw32.o: unexw32.c $(config_h)
w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
   msdos.h buffer.h charset.h coding.h composite.h $(config_h)
widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
   $(srcdir)/../lwlib/lwlib.h $(config_h)
window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
   disptab.h keyboard.h dispextern.h msdos.h composite.h \
   keymap.h blockinput.h atimer.h systime.h $(INTERVALS_H) \
   xterm.h w32term.h nsterm.h $(config_h)
xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
   coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h     \
   charset.h $(config_h) keyboard.h $(INTERVALS_H) region-cache.h xterm.h    \
   w32term.h nsterm.h msdos.h composite.h fontset.h	      \
   blockinput.h atimer.h systime.h keymap.h font.h
xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h	\
   window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h	\
   systime.h keyboard.h fontset.h w32term.h nsterm.h	\
   $(INTERVALS_H) termchar.h termhooks.h font.h $(config_h)
xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
   $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
   character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h \
   fontset.h termchar.h font.h
xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
   font.h $(config_h)
xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
   font.h $(config_h)
ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
   font.h $(config_h)
menu.o: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
   dispextern.h $(srcdir)/../lwlib/lwlib.h xterm.h gtkutil.h menu.h \
   $(config_h)
xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
   charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
   systime.h gtkutil.h msdos.h coding.h menu.h $(config_h)
xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
   dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
   keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
   coding.h process.h gtkutil.h font.h fontset.h $(config_h)
xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
  buffer.h atimer.h systime.h termhooks.h $(config_h)
xrdb.o: xrdb.c $(config_h) epaths.h
xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
  lisp.h termopts.h

/* The files of Lisp proper */

alloc.o: alloc.c process.h frame.h window.h buffer.h  puresize.h syssignal.h keyboard.h \
 blockinput.h atimer.h systime.h character.h dispextern.h $(config_h) \
 $(INTERVALS_H)
bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
  frame.h xterm.h $(config_h)
data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
   termhooks.h $(config_h)
eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
  dispextern.h $(config_h)
floatfns.o: floatfns.c syssignal.h $(config_h)
fns.o: fns.c commands.h $(config_h) frame.h buffer.h character.h keyboard.h \
 keymap.h frame.h window.h dispextern.h $(INTERVALS_H) coding.h md5.h \
 blockinput.h atimer.h systime.h xterm.h termhooks.h
print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
   $(config_h) dispextern.h termchar.h $(INTERVALS_H) msdos.h composite.h \
   blockinput.h atimer.h systime.h font.h charset.h
lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
 charset.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h

/* Text properties support */
composite.o: composite.c buffer.h character.h coding.h dispextern.h font.h \
	 frame.h termhooks.h $(INTERVALS_H) window.h $(config_h)
intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \
	keymap.h $(config_h)
textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVALS_H) \
	$(config_h)

/* System-specific programs to be made.
   OTHER_FILES and OBJECTS_MACHINE
   select which of these should be compiled.  */

#ifdef HAVE_NS
/* In fact, every .o file depends directly or indirectly on dispextern.h
   and hence nsgui.h under NS.  But the ones that actually use stuff there
   are more limited.  */
dispnew.o font.o fontset.o frame.o fringe.o image.o keyboard.o menu.o \
   window.o xdisp.o xfaces.o: nsgui.h

${ns_appdir}: ${ns_appsrc}
	rm -fr ${ns_appdir}
	mkdir -p ${ns_appdir}
	( cd ${ns_appsrc} ; tar cfh - . ) | ( cd ${ns_appdir} ; tar xf - )
	( cd ${ns_appdir} ; for subdir in `find . -type d ! -name CVS -print` ; do \
		chmod a+rx $${subdir} ; \
		rm -rf $${subdir}/CVS ; \
		rm -f  $${subdir}/.cvsignore ; done ; )

${ns_appbindir}Emacs: emacs${EXEEXT}
	mkdir -p ${ns_appbindir}
	cp -f emacs${EXEEXT} ${ns_appbindir}Emacs

ns-app: ${ns_appdir} ${ns_appbindir}Emacs

#endif /* HAVE_NS */

mostlyclean:
	rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
	rm -f ../etc/DOC
	rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
	rm -f buildobj.lst
clean: mostlyclean
	rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
#ifdef HAVE_NS
	rm -fr ${ns_appdir}
#endif
/* bootstrap-clean is used to clean up just before a bootstrap.
   It should remove all files generated during a compilation/bootstrap,
   but not things like config.status or TAGS.  */
bootstrap-clean: clean
	rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
	if test -f ./.gdbinit; then \
	  mv ./.gdbinit ./.gdbinit.save; \
	  if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
	  else mv ./.gdbinit.save ./.gdbinit; fi; \
	fi
/**/# This is used in making a distribution.
/**/# Do not use it on development directories!
distclean: bootstrap-clean
	rm -f Makefile
maintainer-clean: distclean
	@echo "This command is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."
	rm -f TAGS
versionclean:
	-rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC*
extraclean: distclean
	-rm -f *~ \#* m/?*~ s/?*~

/* Arrange to make a tags table TAGS-LISP for ../lisp,
   plus TAGS for the C files, which includes ../lisp/TAGS by reference.  */

ctagsfiles1 = [xyzXYZ]*.[hcm]
ctagsfiles2 = [a-wA-W]*.[hcm]

TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
	../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
	  --regex='/[ 	]*DEFVAR_[A-Z_ 	(]+"\([^"]+\)"/' \
	  $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
frc:
TAGS-LISP: frc
	$(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags

$(lwlibdir)TAGS:
	(cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)

tags: TAGS TAGS-LISP $(lwlibdir)TAGS
.PHONY: tags


/* Bootstrapping.  */
/* Bootstrapping right is difficult because of the circular dependencies.
   Furthermore, we have to deal with the fact that many compilation targets
   such as loaddefs.el or *.elc can typically be produced by any old
   Emacs executable, so we would like to avoid rebuilding them whenever
   we build a new Emacs executable.
   To solve the circularity, we use 2 different Emacs executables,
   "emacs" is the main target and "bootstrap-emacs" is the one used
   to build the *.elc and loaddefs.el files.
   To solve the freshness issue, we used to use a third file "witness-emacs"
   which was used to witness the fact that there is a bootstrap-emacs
   executable, and then have dependencies on witness-emacs rather than
   bootstrap-emacs, but that lead to problems in parallel builds (because
   witness-emacs needed to be free from dependencies (to avoid rebuilding
   it), so it was compiled in parallel, leading typically to having 2
   processes dumping bootstrap-emacs at the same time).
   So instead, we replace the witness-emacs dependencies by conditional
   bootstrap-dependencies (via ${BOOTSTRAPEMACS}).  Of course, since we do
   not want to rely on GNU Make features, we have to rely on an external
   script to do the conditional part of the dependency
   (i.e. see the ${SUBDIR} rule ../Makefile.in).  */

.SUFFIXES: .elc .el

/* These suffix rules do not allow additional dependencies, sadly, so
   instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
   separately below.
   With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)"  */
.el.elc:
	@cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
	                     THEFILE=$< EMACS=../src/bootstrap-emacs${EXEEXT}

/* Since the .el.elc rule cannot specify an extra dependency, we do it here.  */
${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)

${lispsource}loaddefs.el: $(BOOTSTRAPEMACS)
	cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=../src/bootstrap-emacs${EXEEXT}

/* Dump an Emacs executable named bootstrap-emacs containing the
   files from loadup.el in source form.  */

bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
	cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
#ifdef CANNOT_DUMP
	ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}
#else
	$(RUN_TEMACS) --batch --load loadup bootstrap
	mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
#endif /* ! defined (CANNOT_DUMP) */
	@: Compile some files earlier to speed up further compilation.
	cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=../src/bootstrap-emacs${EXEEXT}

[-- Attachment #5: src.Makefile.in --]
[-- Type: text/plain, Size: 47781 bytes --]

# Makefile for GNU Emacs.
# Copyright (C) 1985, 1987, 1988, 1993, 1994, 1995, 1999, 2000, 2001, 2002,
#               2003, 2004, 2005, 2006, 2007, 2008, 2009
#               Free Software Foundation, Inc.

# This file is part of GNU Emacs.

# GNU Emacs is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# GNU Emacs is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.


# Note that this file is edited by msdos/sed1v2.inp for MSDOS.  That
# script may need modifying in sync with changes made here.  Try to
# avoid shell-ism because the DOS build has to use the DOS shell.

# Don't try to replace the cpp processing using autoconf facilities,
# says rms.
# Replacing a particular part of the conditionals to work via autoconf
# is OK.
# Some of the conditionals might be dead now.  Finding them and
# deleting them would be fine.


# Here are the things that we expect ../configure to edit.
# We use $(srcdir) explicitly in dependencies so as not to depend on VPATH.
srcdir=@srcdir@
VPATH=@srcdir@
CC=@CC@
CPP=@CPP@
CFLAGS=@CFLAGS@
CPPFLAGS=@CPPFLAGS@
LDFLAGS=@LDFLAGS@
LN_S=@LN_S@
EXEEXT=@EXEEXT@
version=@version@
# Substitute an assignment for the MAKE variable, because
# BSD doesn't have it as a default.
@SET_MAKE@
# Don't use LIBS.  configure puts stuff in it that either shouldn't be
# linked with Emacs or is duplicated by the cpp stuff below.
# LIBS = @LIBS@
LIBOBJS = @LIBOBJS@

lispsource = ${srcdir}/../lisp/
libsrc = ../lib-src/
etc = ../etc/
oldXMenudir = ../oldXMenu/
lwlibdir = ../lwlib/
lispdir = ../lisp/

# Configuration files for .o files to depend on.
M_FILE = ${srcdir}/@machfile@
S_FILE = ${srcdir}/@opsysfile@
config_h = config.h $(M_FILE) $(S_FILE)

# ========================== start of cpp stuff =======================
/* From here on, comments must be done in C syntax.  */

C_SWITCH_SYSTEM=

/* just to be sure the sh is used */
SHELL=/bin/sh

#define THIS_IS_MAKEFILE
#define NOT_C_CODE
#include "config.h"

/* Do not let the file name mktime.c get messed up.  */
#ifdef mktime
#undef mktime
#endif

/* Use HAVE_X11 as an alias for X11 in this file
   to avoid problems with X11 as a subdirectory name
   in -I and other such options which pass through this file. */

#ifdef X11
#define HAVE_X11
#undef X11
#endif

/* On some machines #define register is done in config;
   do not let it interfere with this file.  */
#undef register

/* GNU libc requires ORDINARY_LINK so that its own crt0 is used.
   GNU/Linux is an exception because it uses a funny variant of GNU libc.  */
#ifdef __GNU_LIBRARY__
#ifndef GNU_LINUX
#define ORDINARY_LINK
#endif
#endif

/* Some machines do not find the standard C libraries in the usual place.  */
#ifndef ORDINARY_LINK
#ifndef LIB_STANDARD
#define LIB_STANDARD -lc
#endif
#else
#ifndef LIB_STANDARD
#define LIB_STANDARD
#endif
#endif

/* Under GNUstep, putting libc on the link line causes problems. */
#ifdef NS_IMPL_GNUSTEP
#undef LIB_STANDARD
#define LIB_STANDARD
#endif

/* Unless inhibited or changed, use -lg to link for debugging.  */
#ifndef LIBS_DEBUG
#define LIBS_DEBUG -lg
#endif

/* Some s/SYSTEM.h files define this to request special libraries.  */
#ifndef LIBS_SYSTEM
#define LIBS_SYSTEM
#endif

/* Some m/MACHINE.h files define this to request special libraries.  */
#ifndef LIBS_MACHINE
#define LIBS_MACHINE
#endif

#ifndef LIB_MATH
#  define LIB_MATH -lm
#endif /* LIB_MATH */

/* Some s/SYSTEM.h files define this to request special switches in ld.  */
#ifndef LD_SWITCH_SYSTEM
#if !defined (__GNUC__) && ((defined (BSD_SYSTEM) && !defined (COFF)))
#define LD_SWITCH_SYSTEM -X
#else /* (defined (BSD_SYSTEM) && !defined (COFF)) */
#define LD_SWITCH_SYSTEM
#endif /* (defined (BSD_SYSTEM) && !defined (COFF)) */
#endif /* LD_SWITCH_SYSTEM */

/* This holds special options for linking temacs
   that should be used for linking anything else.  */
#ifndef LD_SWITCH_SYSTEM_TEMACS
#define LD_SWITCH_SYSTEM_TEMACS
#endif

/* Some s/SYSTEM.h files define this to request special switches
   for compiling temacs.  */
#ifndef C_SWITCH_SYSTEM_TEMACS
#define C_SWITCH_SYSTEM_TEMACS
#endif

/* Some m/MACHINE.h files define this to request special switches in ld.  */
#ifndef LD_SWITCH_MACHINE
#define LD_SWITCH_MACHINE
#endif

/* This holds special options for linking temacs
   that should be used for linking anything else.  */
#ifndef LD_SWITCH_MACHINE_TEMACS
#define LD_SWITCH_MACHINE_TEMACS
#endif

/* Some m/MACHINE.h files define this to request special switches in cc.  */
#ifndef C_SWITCH_MACHINE
#define C_SWITCH_MACHINE
#endif

/* Some s/SYSTEM.h files define this to request special switches in cc.  */
#ifndef C_SWITCH_SYSTEM
#define C_SWITCH_SYSTEM
#endif

/* These macros are for switches specifically related to X Windows.  */
#ifndef C_SWITCH_X_MACHINE
#define C_SWITCH_X_MACHINE
#endif

#ifndef C_SWITCH_X_SYSTEM
#define C_SWITCH_X_SYSTEM
#endif

#ifndef C_SWITCH_X_SITE
#define C_SWITCH_X_SITE
#endif

#ifndef LD_SWITCH_X_SITE
#define LD_SWITCH_X_SITE
#endif

#ifndef LD_SWITCH_X_DEFAULT
#define LD_SWITCH_X_DEFAULT
#endif

#ifndef ORDINARY_LINK

#ifndef CRT0_COMPILE
#define CRT0_COMPILE $(CC) -c $(ALL_CFLAGS)
#endif

#ifndef START_FILES
#ifdef NO_REMAP
#define START_FILES pre-crt0.o /lib/crt0.o
#else /* ! defined (NO_REMAP) */
#define START_FILES ecrt0.o
#endif /* ! defined (NO_REMAP) */
#endif /* START_FILES */
STARTFILES = START_FILES

#else /* ORDINARY_LINK */

/* config.h might want to force START_FILES anyway */
#ifdef START_FILES
STARTFILES = START_FILES
#endif /* START_FILES */

#endif /* not ORDINARY_LINK */


#ifdef NS_IMPL_GNUSTEP
/* Pull in stuff from GNUstep-make. */
FOUNDATION_LIB=gnu
GUI_LIB=gnu
include @GNUSTEP_MAKEFILES@/Additional/base.make
include @GNUSTEP_MAKEFILES@/Additional/gui.make
shared=no
#endif

#ifdef HAVE_DBUS
DBUS_CFLAGS = @DBUS_CFLAGS@
DBUS_LIBS = @DBUS_LIBS@
DBUS_OBJ = dbusbind.o
#endif

/* DO NOT use -R.  There is a special hack described in lastfile.c
   which is used instead.  Some initialized data areas are modified
   at initial startup, then labeled as part of the text area when
   Emacs is dumped for the first time, and never changed again. */

/* -Demacs is needed to make some files produce the correct version
   for use in Emacs.

   -DHAVE_CONFIG_H is needed for some other files to take advantage of
   the information in ``config.h''.  */

/* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM
   since it may have -I options that should override those two.  */
ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I${srcdir} C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM C_SWITCH_SYSTEM_TEMACS ${CFLAGS_SOUND} ${RSVG_CFLAGS} ${DBUS_CFLAGS} ${CFLAGS} @FREETYPE_CFLAGS@ @FONTCONFIG_CFLAGS@ @LIBOTF_CFLAGS@ @M17N_FLT_CFLAGS@
ALL_OBJC_CFLAGS=$(ALL_CFLAGS) @GNU_OBJC_CFLAGS@

.SUFFIXES: .m
.c.o:
	$(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
.m.o:
	$(CC) -c $(CPPFLAGS) $(ALL_OBJC_CFLAGS) $<

#ifndef LIBX11_SYSTEM
#define LIBX11_SYSTEM
#endif

#ifndef LIB_X11_LIB
#define LIB_X11_LIB -lX11
#endif

#ifdef HAVE_X_WINDOWS
XMENU_OBJ = xmenu.o
XOBJ= xterm.o xfns.o xselect.o xrdb.o fontset.o xsmfns.o fringe.o image.o

#ifdef HAVE_MENUS

#ifdef USE_GTK
GTK_OBJ= gtkutil.o
#endif

/* The X Menu stuff is present in the X10 distribution, but missing
   from X11.  If we have X10, just use the installed library;
   otherwise, use our own copy.  */
#ifdef HAVE_X11
#ifdef USE_X_TOOLKIT
OLDXMENU=${lwlibdir}liblw.a
LIBXMENU= $(OLDXMENU)
#else /* not USE_X_TOOLKIT */
OLDXMENU= ${oldXMenudir}libXMenu11.a
LIBXMENU= $(OLDXMENU)
#endif /* not USE_X_TOOLKIT */
#else /* not HAVE_X11 */
LIBXMENU= -lXMenu
#endif /* not HAVE_X11 */

#else /* not HAVE_MENUS */

/* Otherwise, do not worry about the menu library at all.  */
LIBXMENU=
#endif /* not HAVE_MENUS */

#ifdef USE_X_TOOLKIT
# define @X_TOOLKIT_TYPE@
# if HAVE_XAW3D
LUCID_LIBW= -lXaw3d
# else
LUCID_LIBW= -lXaw
# endif
# if defined (HAVE_MOTIF_2_1) && defined (HAVE_LIBXP)
#  define LIB_MOTIF_EXTRA -lXp
# else
#  define LIB_MOTIF_EXTRA
# endif
# ifdef LIB_MOTIF
MOTIF_LIBW= LIB_MOTIF LIB_MOTIF_EXTRA
# else
MOTIF_LIBW= -lXm LIB_MOTIF_EXTRA
# endif
LIBW=$(@X_TOOLKIT_TYPE@_LIBW)

#ifdef HAVE_X11XTR6
#ifdef NEED_LIBW
LIBXTR6 = -lSM -lICE -lw
#else
LIBXTR6 = -lSM -lICE
#endif
#endif

#ifndef LIBXMU
#define LIBXMU -lXmu
#endif

LIBXT= $(LIBW) LIBXMU -lXt $(LIBXTR6) -lXext

#else /* not USE_X_TOOLKIT */

#ifdef USE_GTK
LIBW=@GTK_LIBS@
OLDXMENU=
LIBXMENU=
#endif /* USE_GTK */

#ifdef HAVE_X_SM
LIBXT=$(LIBW) -lSM -lICE
#else
LIBXT=$(LIBW)
#endif
#endif /* not USE_X_TOOLKIT */

#if HAVE_XFT
XFT_LIBS=@XFT_LIBS@
#endif /* HAVE_XFT */

#if HAVE_XPM
#ifndef LIBXPM
#define LIBXPM -lXpm
#endif /* not defined LIBXPM */
#else /* not HAVE_XPM */
#define LIBXPM
#endif /* not HAVE_XPM */

#if HAVE_JPEG
#ifndef LIBJPEG
#define LIBJPEG -ljpeg
#endif /* not defined LIBJPEG */
#else /* not HAVE_JPEG */
#define LIBJPEG
#endif /* not HAVE_JPEG */

#if HAVE_PNG
#ifndef LIBPNG
#define LIBPNG -lpng -lz -lm
#endif /* not defined LIBPNG */
#else /* not HAVE_PNG */
#define LIBPNG
#endif /* not HAVE_PNG */

#if HAVE_TIFF
#ifndef LIBTIFF
#define LIBTIFF -ltiff
#endif /* not defined LIBTIFF */
#else /* not HAVE_TIFF */
#define LIBTIFF
#endif /* not HAVE_TIFF */

#if HAVE_GIF
#ifndef LIBGIF
#define LIBGIF -lgif
#endif /* not defined LIBGIF */
#else /* not HAVE_GIF */
#define LIBGIF
#endif /* not HAVE_GIF */

#ifdef HAVE_X11
/* LD_SWITCH_X_DEFAULT comes after everything else that specifies
   options for where to find X libraries, but before those libraries.  */
X11_LDFLAGS = LD_SWITCH_X_SITE LD_SWITCH_X_DEFAULT
LIBX= $(LIBXMENU) $(X11_LDFLAGS) $(LIBXT) LIBTIFF LIBJPEG LIBPNG LIBGIF LIBXPM LIB_X11_LIB LIBX11_SYSTEM $(XFT_LIBS)
#else /* not HAVE_X11 */
LIBX= $(LIBXMENU) LD_SWITCH_X_SITE
#endif /* not HAVE_X11 */
#endif /* not HAVE_X_WINDOWS */

#if HAVE_GPM
#ifndef LIBGPM
#define LIBGPM -lgpm
#endif /* not defined LIBGPM */
#else /* not HAVE_GPM */
#define LIBGPM
#endif /* not HAVE_GPM */

#if HAVE_LIBRESOLV
#ifndef LIBRESOLV
#define LIBRESOLV -lresolv
#endif /* not defined LIBRESOLV */
#else /* not HAVE_LIBRESOLV */
#define LIBRESOLV
#endif /* not HAVE_LIBRESOLV */

LIBSOUND= @LIBSOUND@
CFLAGS_SOUND= @CFLAGS_SOUND@

RSVG_LIBS= @RSVG_LIBS@
RSVG_CFLAGS= @RSVG_CFLAGS@

#ifndef ORDINARY_LINK
/* Fix linking if compiled with GCC.  */
#ifdef __GNUC__

#ifdef LINKER
#define LINKER_WAS_SPECIFIED
#endif

/* 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.  */

#ifndef LINKER
#define LINKER $(CC) -nostdlib
#endif

#ifndef LIB_GCC
/* Ask GCC where to find libgcc.a.  */
#define LIB_GCC `$(CC) -print-libgcc-file-name`
#endif /* not LIB_GCC */

GNULIB_VAR = LIB_GCC

#ifndef LINKER_WAS_SPECIFIED
/* GCC passes any argument prefixed with -Xlinker directly to the
   linker.  See prefix-args.c for an explanation of why we do not do
   this with the shell''s ``for'' construct.
   Note that some people do not have '.'  in their paths, so we must
   use ./prefix-args.  */
#define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
#else
#define YMF_PASS_LDFLAGS(flags) flags
#endif

#else /* not __GNUC__ */
GNULIB_VAR =

#endif /* not __GNUC__ */
#endif /* not ORDINARY_LINK */

#ifdef ORDINARY_LINK
LD = $(CC)
#else
#ifdef LINKER
LD=LINKER
#else /* not LINKER */
LD=ld
#endif /* not LINKER */
#endif /* not ORDINARY_LINK */

/* Flags to pass to LD only for temacs.  */
/* Do not split this line with a backslash.  That can cause trouble with
   some cpps.  */
TEMACS_LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_TEMACS LD_SWITCH_MACHINE LD_SWITCH_MACHINE_TEMACS

/* A macro which other sections of Makefile can redefine to munge the
   flags before they are passed to LD.  This is helpful if you have
   redefined LD to something odd, like "gcc".
   (The YMF prefix is a holdover from the old name "ymakefile".)
  */
#ifndef YMF_PASS_LDFLAGS
#define YMF_PASS_LDFLAGS(flags) flags
#endif

/* Allow config.h to specify a replacement file for unexec.c.  */
#ifndef UNEXEC
#define UNEXEC unexec.o
#endif

INTERVALS_H = dispextern.h intervals.h composite.h

GETLOADAVG_LIBS = @GETLOADAVG_LIBS@

#ifdef MSDOS
#ifdef HAVE_X_WINDOWS
MSDOS_OBJ = dosfns.o msdos.o xmenu.o
#else
MSDOS_OBJ = dosfns.o msdos.o w16select.o xmenu.o
#endif
#endif

#ifdef CYGWIN
CYGWIN_OBJ = sheap.o
#endif

#ifdef HAVE_NS
ns_appdir=@ns_appdir@/
ns_appbindir=@ns_appbindir@/
ns_appresdir=@ns_appresdir@/
ns_appsrc=@ns_appsrc@
/* Object files for NeXTstep */
NS_OBJ= nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
	fontset.o fringe.o image.o
#endif  /* HAVE_NS */

#ifdef HAVE_WINDOW_SYSTEM
#ifdef HAVE_X_WINDOWS
#if defined (HAVE_XFT)
FONT_DRIVERS = xfont.o ftfont.o xftfont.o ftxfont.o
#elif defined (HAVE_FREETYPE)
FONT_DRIVERS = xfont.o ftfont.o ftxfont.o
#else /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
FONT_DRIVERS = xfont.o
#endif /* ! defined (HAVE_XFT) && ! defined (HAVE_FREETYPE) */
#endif /* HAVE_X_WINDOWS */
#endif /* HAVE_WINDOW_SYSTEM */

/* lastfile must follow all files
   whose initialized data areas should be dumped as pure by dump-emacs.  */
obj=    dispnew.o frame.o scroll.o xdisp.o menu.o $(XMENU_OBJ) window.o \
	charset.o coding.o category.o ccl.o character.o chartab.o \
	cm.o term.o terminal.o xfaces.o $(XOBJ) $(GTK_OBJ) $(DBUS_OBJ) \
	emacs.o keyboard.o macros.o keymap.o sysdep.o \
	buffer.o filelock.o insdel.o marker.o \
	minibuf.o fileio.o dired.o filemode.o \
	cmds.o casetab.o casefiddle.o indent.o search.o regex.o undo.o \
	alloc.o data.o doc.o editfns.o callint.o \
	eval.o floatfns.o fns.o font.o print.o lread.o \
	syntax.o UNEXEC bytecode.o \
	process.o callproc.o \
	region-cache.o sound.o atimer.o \
	doprnt.o strftime.o intervals.o textprop.o composite.o md5.o \
	$(MSDOS_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_DRIVERS)

/* Object files used on some machine or other.
   These go in the DOC file on all machines
   in case they are needed there.  */
SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
  xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
  fontset.o \
  nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
  w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
  w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)


#ifdef TERMINFO
/* Used to be -ltermcap here.  If your machine needs that,
   define LIBS_TERMCAP in the m/MACHINE.h file.  */
#ifndef LIBS_TERMCAP
#define LIBS_TERMCAP -lcurses
#endif /* LIBS_TERMCAP */
termcapobj = terminfo.o
#else /* ! defined (TERMINFO) */
#ifndef LIBS_TERMCAP
#define LIBS_TERMCAP
termcapobj = termcap.o tparam.o
#else /* LIBS_TERMCAP */
termcapobj = tparam.o
#endif /* LIBS_TERMCAP */
#endif /* ! defined (TERMINFO) */


#ifndef SYSTEM_MALLOC

#ifndef DOUG_LEA_MALLOC
gmallocobj = gmalloc.o
#endif

#ifdef REL_ALLOC
rallocobj = ralloc.o
#endif

mallocobj = $(gmallocobj) $(rallocobj) vm-limit.o

#endif /* SYSTEM_MALLOC */


#ifdef USE_X_TOOLKIT
widgetobj= widget.o
#else /* not USE_X_TOOLKIT */
widgetobj=
#endif /* not USE_X_TOOLKIT */


/* define otherobj as list of object files that make-docfile
   should not be told about.  */
#ifdef CYGWIN
/* Cygwin differs because of its unexec(). */
otherobj= $(termcapobj) $(gmallocobj) $(rallocobj) lastfile.o vm-limit.o $(widgetobj) $(LIBOBJS)
#else
otherobj= $(termcapobj) lastfile.o $(mallocobj) $(widgetobj) $(LIBOBJS)
#endif

#ifdef HAVE_MOUSE
#define MOUSE_SUPPORT ${lispsource}mouse.elc \
  ${lispsource}select.elc ${lispsource}scroll-bar.elc
#else
#ifdef HAVE_GPM
#define MOUSE_SUPPORT ${lispsource}mouse.elc
#else
#define MOUSE_SUPPORT
#endif
#endif

#ifdef MSDOS
#define MSDOS_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
 ${lispsource}dos-fns.elc ${lispsource}dos-w32.elc ${lispsource}dos-vars.elc

#else
#define MSDOS_SUPPORT
#endif

#ifdef HAVE_WINDOW_SYSTEM
#ifdef HAVE_X_WINDOWS
#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc ${lispsource}x-dnd.elc
#else
#define WINDOW_SUPPORT ${lispsource}fringe.elc ${lispsource}image.elc \
 ${lispsource}international/fontset.elc ${lispsource}dnd.elc \
 ${lispsource}tool-bar.elc ${lispsource}mwheel.elc
#endif
#else
#define WINDOW_SUPPORT
#endif

#ifdef WINDOWSNT
#define WINNT_SUPPORT ${lispsource}ls-lisp.elc ${lispsource}disp-table.elc \
  ${lispsource}dos-w32.elc ${lispsource}w32-vars.elc \
  ${lispsource}w32-fns.elc
#else
#define WINNT_SUPPORT
#endif

#ifdef HAVE_WINDOW_SYSTEM
#define TOOLTIP_SUPPORT ${lispsource}tooltip.elc
#else
#define TOOLTIP_SUPPORT
#endif

/* List of Lisp files loaded into the dumped Emacs.  It is arranged
   like this because it is easier to generate it semi-mechanically from
   loadup.el this way.

   Note that this list should not include lisp files which might not
   be present, like site-load.el and site-init.el; this makefile
   expects them all to be either present or buildable.

   Files which are loaded unconditionally should be in shortlisp as well.
   Files included conditionally here should be included (unconditionally)
   in SOME_MACHINE_LISP.  */

/* Place loaddefs.el first, so it gets generated first, since it is on
   the critical path (relevant in parallel compilations).  */

lisp= \
	${lispsource}loaddefs.el \
	${lispsource}abbrev.elc \
	${lispsource}buff-menu.elc \
	${lispsource}button.elc \
	${lispsource}emacs-lisp/byte-run.elc \
	${lispsource}composite.elc \
	${lispsource}cus-face.elc \
	${lispsource}cus-start.elc \
	${lispsource}custom.elc \
	${lispsource}emacs-lisp/backquote.elc \
	${lispsource}emacs-lisp/lisp-mode.elc \
	${lispsource}emacs-lisp/lisp.elc \
	${lispsource}env.elc \
	${lispsource}faces.elc \
	${lispsource}files.elc \
	${lispsource}format.elc \
	${lispsource}facemenu.elc \
	MOUSE_SUPPORT \
	${lispsource}emacs-lisp/float-sup.elc \
	${lispsource}frame.elc \
	${lispsource}help.elc \
	${lispsource}indent.elc \
	${lispsource}isearch.elc \
	${lispsource}rfn-eshadow.elc \
	${lispsource}loadup.el \
	${lispsource}bindings.elc \
	${lispsource}emacs-lisp/map-ynp.elc \
	${lispsource}menu-bar.elc \
	${lispsource}international/mule.elc \
	${lispsource}international/mule-conf.el \
	${lispsource}international/mule-cmds.elc \
	${lispsource}international/characters.elc \
	${lispsource}international/charprop.el \
	${lispsource}case-table.elc \
	${lispsource}language/chinese.el \
	${lispsource}language/cyrillic.el \
	${lispsource}language/indian.el \
	${lispsource}language/sinhala.el \
	${lispsource}language/english.el \
	${lispsource}language/ethiopic.elc \
	${lispsource}language/european.elc \
	${lispsource}language/czech.el \
	${lispsource}language/slovak.el \
	${lispsource}language/romanian.el \
	${lispsource}language/greek.el \
	${lispsource}language/hebrew.el \
	${lispsource}language/japanese.el \
	${lispsource}language/korean.el \
	${lispsource}language/lao.el \
	${lispsource}language/cham.el \
	${lispsource}language/tai-viet.el \
	${lispsource}language/thai.el \
	${lispsource}language/tibetan.elc \
	${lispsource}language/vietnamese.el \
	${lispsource}language/misc-lang.el \
	${lispsource}language/utf-8-lang.el \
	${lispsource}language/georgian.el \
	${lispsource}language/khmer.el \
	${lispsource}language/burmese.el \
	${lispsource}paths.el \
	${lispsource}register.elc \
	${lispsource}replace.elc \
	${lispsource}simple.elc \
	${lispsource}minibuffer.elc \
	${lispsource}startup.elc \
	${lispsource}subr.elc \
	${lispsource}term/tty-colors.elc \
	${lispsource}font-core.elc \
	${lispsource}emacs-lisp/syntax.elc \
	${lispsource}font-lock.elc \
	${lispsource}jit-lock.elc \
	${lispsource}textmodes/fill.elc \
	${lispsource}textmodes/page.elc \
	${lispsource}textmodes/paragraphs.elc \
	${lispsource}textmodes/text-mode.elc \
	${lispsource}emacs-lisp/timer.elc \
	${lispsource}jka-cmpr-hook.elc \
	${lispsource}vc-hooks.elc \
	${lispsource}ediff-hook.elc \
	${lispsource}epa-hook.elc \
	TOOLTIP_SUPPORT \
	MSDOS_SUPPORT \
	WINNT_SUPPORT \
	WINDOW_SUPPORT \
	${lispsource}widget.elc \
	${lispsource}window.elc \
	${lispsource}version.el

/* These are relative file names for the Lisp files
   that are loaded unconditionally.  This is used in make-docfile.
   It need not contain the files that are loaded conditionally
   because SOME_MACHINE_LISP has those.  */
shortlisp= \
	../lisp/loaddefs.el \
	../lisp/abbrev.elc \
	../lisp/buff-menu.elc \
	../lisp/button.elc \
	../lisp/emacs-lisp/byte-run.elc \
	../lisp/composite.elc \
	../lisp/cus-face.elc \
	../lisp/cus-start.elc \
	../lisp/custom.elc \
	../lisp/emacs-lisp/backquote.elc \
	../lisp/emacs-lisp/lisp-mode.elc \
	../lisp/emacs-lisp/lisp.elc \
	../lisp/facemenu.elc \
	../lisp/faces.elc \
	../lisp/files.elc \
	../lisp/emacs-lisp/float-sup.elc \
	../lisp/format.elc \
	../lisp/frame.elc \
	../lisp/help.elc \
	../lisp/indent.elc \
	../lisp/isearch.elc \
	../lisp/rfn-eshadow.elc \
	../lisp/loadup.el \
	../lisp/bindings.elc \
	../lisp/emacs-lisp/map-ynp.elc \
	../lisp/env.elc \
	../lisp/international/mule.elc \
	../lisp/international/mule-conf.el \
	../lisp/international/mule-cmds.elc \
	../lisp/international/characters.elc \
	../lisp/case-table.elc \
	../lisp/language/chinese.el \
	../lisp/language/cyrillic.el \
	../lisp/language/indian.el \
	../lisp/language/sinhala.el \
	../lisp/language/english.el \
	../lisp/language/ethiopic.elc \
	../lisp/language/european.elc \
	../lisp/language/czech.el \
	../lisp/language/slovak.el \
	../lisp/language/romanian.el \
	../lisp/language/greek.el \
	../lisp/language/hebrew.el \
	../lisp/language/japanese.el \
	../lisp/language/korean.el \
	../lisp/language/lao.el \
	../lisp/language/cham.el \
	../lisp/language/tai-viet.el \
	../lisp/language/thai.el \
	../lisp/language/tibetan.elc \
	../lisp/language/vietnamese.el \
	../lisp/language/misc-lang.el \
	../lisp/language/utf-8-lang.el \
	../lisp/language/georgian.el \
	../lisp/language/khmer.el \
	../lisp/language/burmese.el \
	../lisp/menu-bar.elc \
	../lisp/paths.el \
	../lisp/register.elc \
	../lisp/replace.elc \
	../lisp/simple.elc \
	../lisp/minibuffer.elc \
	../lisp/startup.elc \
	../lisp/subr.elc \
	../lisp/term/tty-colors.elc \
	../lisp/font-core.elc \
	../lisp/emacs-lisp/syntax.elc \
	../lisp/font-lock.elc \
	../lisp/jit-lock.elc \
	../lisp/textmodes/fill.elc \
	../lisp/textmodes/page.elc \
	../lisp/textmodes/paragraphs.elc \
	../lisp/textmodes/text-mode.elc \
	../lisp/emacs-lisp/timer.elc \
	../lisp/vc-hooks.elc \
	../lisp/jka-cmpr-hook.elc \
	../lisp/ediff-hook.elc \
	../lisp/epa-hook.elc \
	../lisp/widget.elc \
	../lisp/window.elc \
	../lisp/version.el

/* Lisp files that may or may not be used.
   We must unconditionally put them in the DOC file.
   We use ../lisp/ to start the file names
   to reduce the size of the argument list for make-docfile
   for the sake of systems which can''t handle large ones.  */
SOME_MACHINE_LISP = ../lisp/mouse.elc \
  ../lisp/select.elc ../lisp/scroll-bar.elc \
  ../lisp/ls-lisp.elc ../lisp/dos-fns.elc \
  ../lisp/w32-fns.elc ../lisp/dos-w32.elc \
  ../lisp/disp-table.elc ../lisp/dos-vars.elc \
  ../lisp/tooltip.elc ../lisp/image.elc \
  ../lisp/fringe.elc ../lisp/dnd.elc \
  ../lisp/mwheel.elc ../lisp/tool-bar.elc \
  ../lisp/x-dnd.elc \
  ../lisp/international/ccl.elc \
  ../lisp/international/fontset.elc \
  ../lisp/mouse.elc \
  ../lisp/term/common-win.elc \
  ../lisp/term/x-win.elc \
  ../lisp/term/pc-win.elc \
  ../lisp/term/ns-win.elc

/* Construct full set of libraries to be linked.
   Note that SunOS needs -lm to come before -lc; otherwise, you get
   duplicated symbols.  If the standard libraries were compiled
   with GCC, we might need gnulib again after them.  */

LIBES = $(LOADLIBES) $(LIBS) $(LIBX) $(LIBSOUND) $(RSVG_LIBS) $(DBUS_LIBS) \
   LIBGPM LIBRESOLV LIBS_SYSTEM LIBS_MACHINE LIBS_TERMCAP \
   LIBS_DEBUG $(GETLOADAVG_LIBS) \
   @FREETYPE_LIBS@ @FONTCONFIG_LIBS@ @LIBOTF_LIBS@ @M17N_FLT_LIBS@ \
   $(GNULIB_VAR) LIB_MATH LIB_STANDARD $(GNULIB_VAR)

/* Enable recompilation of certain other files depending on system type.  */

#ifndef OTHER_FILES
#define OTHER_FILES
#endif

#ifndef OBJECTS_MACHINE
#define OBJECTS_MACHINE
#endif

#ifdef HAVE_SHM
RUN_TEMACS = `/bin/pwd`/temacs -nl
#else
RUN_TEMACS = `/bin/pwd`/temacs
#endif

all: emacs${EXEEXT} OTHER_FILES

emacs${EXEEXT}: temacs${EXEEXT} ${etc}DOC ${lisp} ${SOME_MACHINE_LISP}
#ifdef CANNOT_DUMP
	rm -f emacs${EXEEXT}
	ln temacs${EXEEXT} emacs${EXEEXT}
#else
	LC_ALL=C $(RUN_TEMACS) -batch -l loadup dump
	@: This new Emacs is as functional and more efficient then
	@: bootstrap-emacs, so let us replace it.
	-ln -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
#endif /* ! defined (CANNOT_DUMP) */
	-./emacs -q -batch -f list-load-path-shadows

/* We run make-docfile twice because the command line may get too long
   on some systems.  */
/* ${SOME_MACHINE_OBJECTS} comes before ${obj} because some files may
   or may not be included in ${obj}, but they are always included in
   ${SOME_MACHINE_OBJECTS}.  Since a file is processed when it is mentioned
   for the first time, this prevents any variation between configurations
   in the contents of the DOC file.
   Likewise for ${SOME_MACHINE_LISP}.  */
/* Most of this Makefile refers to Lisp files via ${lispsource}, so
   we also use ${lisp} rather than ${shortlisp} for the dependency since
   the Makefile uses string equality to decide when we talk about identical
   files.  Apparently we pass ${shortlisp} rather than ${lisp} to make-docfile
   only in order to reduce the command line length.  --Stef  */
${etc}DOC: ${libsrc}make-docfile${EXEEXT} ${obj} ${lisp} ${SOME_MACHINE_LISP}
	-rm -f ${etc}DOC
	${libsrc}make-docfile -d ${srcdir} ${SOME_MACHINE_OBJECTS} ${obj} > ${etc}DOC
	${libsrc}make-docfile -a ${etc}DOC -d ${srcdir} ${SOME_MACHINE_LISP} ${shortlisp}

${libsrc}make-docfile${EXEEXT}:
	cd ${libsrc}; ${MAKE} ${MFLAGS} make-docfile${EXEEXT}

temacs${EXEEXT}: $(LOCALCPP) $(STARTFILES) stamp-oldxmenu ${obj} ${otherobj} OBJECTS_MACHINE prefix-args${EXEEXT}
	echo "${obj} ${otherobj} " OBJECTS_MACHINE > buildobj.lst
#ifdef NS_IMPL_GNUSTEP
	$(CC) -rdynamic YMF_PASS_LDFLAGS ( ${TEMACS_LDFLAGS} \
	-L@GNUSTEP_SYSTEM_LIBRARIES@ -lgnustep-gui -lgnustep-base \
	-lobjc $(CONFIG_SYSTEM_LIBS) -lpthread ) -o temacs \
	${obj} ${otherobj} OBJECTS_MACHINE ${LIBES}
#else
	$(LD) YMF_PASS_LDFLAGS (${STARTFLAGS} ${TEMACS_LDFLAGS}) $(LDFLAGS) \
    -o temacs ${STARTFILES} ${obj} ${otherobj}  \
    OBJECTS_MACHINE ${LIBES}
#endif

/* We do not use ALL_LDFLAGS because LD_SWITCH_SYSTEM and LD_SWITCH_MACHINE
   often contain options that have to do with using Emacs''s crt0,
   which are only good with temacs.  */
prefix-args${EXEEXT}: prefix-args.c $(config_h)
	$(CC) $(ALL_CFLAGS) $(LDFLAGS) ${srcdir}/prefix-args.c -o prefix-args

#if defined (HAVE_X_WINDOWS) && defined (HAVE_X11) && defined (HAVE_MENUS) && ! defined (USE_GTK)

/* We use stamp-xmenu with these two deps
   to both ensure that lwlib gets remade based on its dependencies
   in its own makefile,
   and remake temacs if lwlib gets changed by this.  */
stamp-oldxmenu: ${OLDXMENU} ../src/$(OLDXMENU)
	touch stamp-oldxmenu
/* Supply an ordering for parallel make.  */
../src/$(OLDXMENU): ${OLDXMENU}

/* Encode the values of these two macros in Make variables,
   so we can use $(...) to substitute their values within "...".  */
C_SWITCH_MACHINE_1 = C_SWITCH_MACHINE
C_SWITCH_SYSTEM_1 = C_SWITCH_SYSTEM
C_SWITCH_X_SITE_1 = C_SWITCH_X_SITE
C_SWITCH_X_MACHINE_1 = C_SWITCH_X_MACHINE
C_SWITCH_X_SYSTEM_1 = C_SWITCH_X_SYSTEM

#ifdef USE_X_TOOLKIT
$(OLDXMENU): really-lwlib

really-lwlib:
	cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
    CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
    "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
    "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
    "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
    "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
    "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
	@true  /* make -t should not create really-lwlib.  */
.PHONY: really-lwlib
#else /* not USE_X_TOOLKIT */
$(OLDXMENU): really-oldXMenu

really-oldXMenu:
	cd ${oldXMenudir}; ${MAKE} ${MFLAGS} \
    CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}' \
    "C_SWITCH_X_SITE=$(C_SWITCH_X_SITE_1)" \
    "C_SWITCH_X_MACHINE=$(C_SWITCH_X_MACHINE_1)" \
    "C_SWITCH_X_SYSTEM=$(C_SWITCH_X_SYSTEM_1)" \
    "C_SWITCH_MACHINE=$(C_SWITCH_MACHINE_1)" \
    "C_SWITCH_SYSTEM=$(C_SWITCH_SYSTEM_1)"
	@true  /* make -t should not create really-oldXMenu.  */
.PHONY: really-oldXMenu
#endif /* not USE_X_TOOLKIT */
#else /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */

/* We don''t really need this, but satisfy the dependency.  */
stamp-oldxmenu:
	touch stamp-oldxmenu
#endif /* not (HAVE_X_WINDOWS && HAVE_X11 && HAVE_MENUS && ! USE_GTK) */

../config.status:: epaths.in
	@echo "The file epaths.h needs to be set up from epaths.in."
	@echo "Please run the `configure' script again."
	exit 1

../config.status:: config.in
	@echo "The file config.h needs to be set up from config.in."
	@echo "Please run the `configure' script again."
	exit 1

/* Nearly all the following files depend on lisp.h,
   but it is not included as a dependency because
   it is so often changed in ways that do not require any recompilation
   and so rarely changed in ways that do require any.  */

atimer.o: atimer.c atimer.h syssignal.h systime.h $(config_h)
abbrev.o: abbrev.c buffer.h window.h dispextern.h commands.h character.h \
	syntax.h $(config_h)
buffer.o: buffer.c buffer.h region-cache.h commands.h window.h \
   dispextern.h $(INTERVALS_H) blockinput.h atimer.h systime.h character.h \
   $(config_h)
callint.o: callint.c window.h commands.h buffer.h keymap.h \
   keyboard.h dispextern.h $(config_h)
callproc.o: callproc.c epaths.h buffer.h commands.h $(config_h) \
	process.h systty.h syssignal.h character.h coding.h ccl.h msdos.h \
        composite.h w32.h blockinput.h atimer.h systime.h frame.h termhooks.h
casefiddle.o: casefiddle.c syntax.h commands.h buffer.h character.h \
   composite.h \
	charset.h keymap.h $(config_h)
casetab.o: casetab.c buffer.h $(config_h)
category.o: category.c category.h buffer.h charset.h keymap.h	\
	character.h $(config_h)
ccl.o: ccl.c ccl.h charset.h character.h coding.h $(config_h)
character.o: character.c character.h buffer.h charset.h composite.h disptab.h \
   $(config_h)
charset.o: charset.c charset.h character.h buffer.h coding.h composite.h \
   disptab.h $(config_h)
chartab.o: charset.h character.h $(config_h)
coding.o: coding.c coding.h ccl.h buffer.h character.h charset.h $(INTERVALS_H) composite.h \
	window.h dispextern.h frame.h termhooks.h $(config_h)
cm.o: cm.c frame.h cm.h termhooks.h termchar.h $(config_h)
cmds.o: cmds.c syntax.h buffer.h character.h commands.h window.h $(config_h) \
	msdos.h dispextern.h keyboard.h keymap.h
pre-crt0.o: pre-crt0.c
ecrt0.o: ecrt0.c $(config_h)
	CRT0_COMPILE ${srcdir}/ecrt0.c
dbusbind.o: dbusbind.c termhooks.h frame.h keyboard.h $(config_h)
dired.o: dired.c commands.h buffer.h $(config_h) character.h charset.h \
   coding.h regex.h systime.h blockinput.h atimer.h
dispnew.o: dispnew.c systime.h commands.h process.h frame.h \
   window.h buffer.h dispextern.h termchar.h termopts.h termhooks.h cm.h \
   disptab.h indent.h $(INTERVALS_H) \
   xterm.h blockinput.h atimer.h character.h msdos.h composite.h keyboard.h \
   syssignal.h $(config_h)
doc.o: doc.c $(config_h) epaths.h buffer.h keyboard.h keymap.h character.h
doprnt.o: doprnt.c character.h $(config_h)
dosfns.o: buffer.h termchar.h termhooks.h frame.h blockinput.h window.h \
   msdos.h dosfns.h dispextern.h charset.h coding.h atimer.h systime.h \
   $(config_h)
editfns.o: editfns.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
   coding.h dispextern.h frame.h blockinput.h atimer.h $(config_h)
emacs.o: emacs.c commands.h systty.h syssignal.h blockinput.h process.h \
   termhooks.h buffer.h atimer.h systime.h $(INTERVALS_H) $(config_h) \
   window.h dispextern.h keyboard.h keymap.h
fileio.o: fileio.c window.h buffer.h systime.h $(INTERVALS_H) character.h \
   coding.h msdos.h dispextern.h blockinput.h atimer.h $(config_h)
filelock.o: filelock.c buffer.h character.h charset.h coding.h systime.h \
   epaths.h $(config_h)
filemode.o: filemode.c  $(config_h)
frame.o: frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \
   blockinput.h atimer.h systime.h buffer.h character.h fontset.h font.h    \
   msdos.h dosfns.h dispextern.h w32term.h termchar.h    \
   $(config_h)
fringe.o: fringe.c dispextern.h frame.h window.h buffer.h termhooks.h $(config_h)
font.o: font.c dispextern.h frame.h window.h ccl.h character.h charset.h \
   font.h $(config_h)
ftfont.o: dispextern.h frame.h character.h charset.h composite.h font.h \
   $(config_h)
fontset.o: dispextern.h fontset.h fontset.c ccl.h buffer.h character.h \
   charset.h frame.h keyboard.h termhooks.h font.h $(config_h)
getloadavg.o: getloadavg.c $(config_h)
gtkutil.o: gtkutil.c gtkutil.h xterm.h lisp.h frame.h $(config_h) \
  blockinput.h window.h atimer.h systime.h termhooks.h keyboard.h \
  charset.h coding.h syssignal.h
image.o: image.c frame.h window.h dispextern.h blockinput.h atimer.h \
   systime.h xterm.h w32term.h w32gui.h font.h \
   nsterm.h nsgui.h $(config_h)
indent.o: indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \
   termopts.h disptab.h region-cache.h character.h category.h composite.h \
   dispextern.h keyboard.h
insdel.o: insdel.c window.h buffer.h $(INTERVALS_H) blockinput.h character.h \
   dispextern.h atimer.h systime.h region-cache.h $(config_h)
keyboard.o: keyboard.c termchar.h termhooks.h termopts.h buffer.h character.h \
   commands.h frame.h window.h macros.h disptab.h keyboard.h syssignal.h \
   systime.h dispextern.h syntax.h $(INTERVALS_H) blockinput.h atimer.h     \
   xterm.h puresize.h msdos.h keymap.h w32term.h nsterm.h \
   $(config_h)
keymap.o: keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \
   atimer.h systime.h puresize.h character.h charset.h $(INTERVALS_H) keymap.h window.h \
   $(config_h)
lastfile.o: lastfile.c  $(config_h)
macros.o: macros.c window.h buffer.h commands.h macros.h keyboard.h \
	dispextern.h $(config_h)
malloc.o: malloc.c $(config_h)
gmalloc.o: gmalloc.c $(config_h)
ralloc.o: ralloc.c $(config_h)
vm-limit.o: vm-limit.c mem-limits.h $(config_h)
marker.o: marker.c buffer.h character.h $(config_h)
md5.o: md5.c md5.h $(config_h)
minibuf.o: minibuf.c syntax.h dispextern.h frame.h window.h keyboard.h \
   buffer.h commands.h character.h msdos.h $(INTERVALS_H) keymap.h \
   termhooks.h $(config_h)
mktime.o: mktime.c $(config_h)
msdos.o: msdos.c msdos.h dosfns.h systime.h termhooks.h dispextern.h frame.h \
   termopts.h termchar.h character.h coding.h ccl.h disptab.h window.h \
   keyboard.h $(INTERVALS_H) buffer.h commands.h blockinput.h atimer.h $(config_h)
nsfns.o: nsfns.m charset.h nsterm.h nsgui.h frame.h window.h buffer.h \
  dispextern.h nsgui.h fontset.h $(INTERVALS_H) keyboard.h blockinput.h \
  atimer.h systime.h epaths.h termhooks.h coding.h systime.h $(config_h)
nsfont.o: nsterm.h dispextern.h frame.h lisp.h $(config_h)
nsimage.o: nsimage.m nsterm.h $(config_h)
nsmenu.o: nsmenu.m termhooks.h frame.h window.h dispextern.h \
  nsgui.h keyboard.h blockinput.h atimer.h systime.h buffer.h \
  nsterm.h $(config_h)
nsterm.o: nsterm.m blockinput.h atimer.h systime.h syssignal.h nsterm.h \
  nsgui.h frame.h charset.h ccl.h dispextern.h fontset.h termhooks.h \
  termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
  $(INTERVALS_H) process.h coding.h $(config_h)
nsselect.o: nsselect.m blockinput.h nsterm.h nsgui.h frame.h $(config_h)
process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
   commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
   blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
   keyboard.h $(config_h)
regex.o: regex.c syntax.h buffer.h $(config_h) regex.h category.h character.h \
   charset.h
region-cache.o: region-cache.c buffer.h region-cache.h $(config_h)
scroll.o: scroll.c termchar.h dispextern.h frame.h msdos.h keyboard.h \
   termhooks.h $(config_h)
search.o: search.c regex.h commands.h buffer.h region-cache.h syntax.h \
   blockinput.h atimer.h systime.h category.h character.h charset.h \
   composite.h $(INTERVALS_H) \
   $(config_h)
sound.o: sound.c dispextern.h syssignal.h $(config_h)
strftime.o: strftime.c $(config_h)
syntax.o: syntax.c syntax.h buffer.h commands.h category.h character.h \
   composite.h keymap.h regex.h $(INTERVALS_H) $(config_h)
sysdep.o: sysdep.c syssignal.h systty.h systime.h syswait.h blockinput.h \
   process.h dispextern.h termhooks.h termchar.h termopts.h \
   frame.h atimer.h window.h msdos.h dosfns.h keyboard.h cm.h $(config_h)
term.o: term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \
   disptab.h dispextern.h keyboard.h character.h charset.h coding.h ccl.h \
   msdos.h window.h keymap.h blockinput.h atimer.h systime.h systty.h \
   syssignal.h  $(INTERVALS_H)
termcap.o: termcap.c $(config_h)
terminal.o: terminal.c frame.h termchar.h termhooks.h charset.h coding.h \
   keyboard.h $(config_h)
terminfo.o: terminfo.c $(config_h)
tparam.o: tparam.c $(config_h)
undo.o: undo.c buffer.h commands.h window.h $(config_h)
unexaix.o: unexaix.c $(config_h)
unexalpha.o: unexalpha.c $(config_h)
unexcw.o: unexcw.c $(config_h)
unexec.o: unexec.c $(config_h)
unexelf.o: unexelf.c $(config_h)
unexhp9k800.o: unexhp9k800.c $(config_h)
unexmacosx.o: unexmacosx.c $(config_h)
unexmips.o: unexmips.c $(config_h)
unexnext.o: unexnext.c $(config_h)
unexsol.o: unexsol.c $(config_h)
unexw32.o: unexw32.c $(config_h)
w16select.o: w16select.c dispextern.h frame.h blockinput.h atimer.h systime.h \
   msdos.h buffer.h charset.h coding.h composite.h $(config_h)
widget.o: widget.c xterm.h frame.h dispextern.h widgetprv.h \
   $(srcdir)/../lwlib/lwlib.h $(config_h)
window.o: window.c indent.h commands.h frame.h window.h buffer.h termchar.h \
   disptab.h keyboard.h dispextern.h msdos.h composite.h \
   keymap.h blockinput.h atimer.h systime.h $(INTERVALS_H) \
   xterm.h w32term.h nsterm.h $(config_h)
xdisp.o: xdisp.c macros.h commands.h process.h indent.h buffer.h dispextern.h \
   coding.h termchar.h frame.h window.h disptab.h termhooks.h character.h     \
   charset.h $(config_h) keyboard.h $(INTERVALS_H) region-cache.h xterm.h    \
   w32term.h nsterm.h msdos.h composite.h fontset.h	      \
   blockinput.h atimer.h systime.h keymap.h font.h
xfaces.o: xfaces.c dispextern.h frame.h xterm.h buffer.h blockinput.h	\
   window.h character.h charset.h msdos.h dosfns.h composite.h atimer.h	\
   systime.h keyboard.h fontset.h w32term.h nsterm.h	\
   $(INTERVALS_H) termchar.h termhooks.h font.h $(config_h)
xfns.o: xfns.c buffer.h frame.h window.h keyboard.h xterm.h dispextern.h \
   $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h systime.h epaths.h \
   character.h charset.h coding.h gtkutil.h $(config_h) termhooks.h \
   fontset.h termchar.h font.h
xfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
   font.h $(config_h)
xftfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
   font.h $(config_h)
ftxfont.o: dispextern.h xterm.h frame.h blockinput.h character.h charset.h \
   font.h $(config_h)
menu.o: menu.c lisp.h keyboard.h keymap.h frame.h termhooks.h blockinput.h \
   dispextern.h $(srcdir)/../lwlib/lwlib.h xterm.h gtkutil.h menu.h \
   $(config_h)
xmenu.o: xmenu.c xterm.h termhooks.h window.h dispextern.h frame.h buffer.h \
   charset.h keyboard.h $(srcdir)/../lwlib/lwlib.h blockinput.h atimer.h \
   systime.h gtkutil.h msdos.h coding.h menu.h $(config_h)
xterm.o: xterm.c xterm.h termhooks.h termopts.h termchar.h window.h buffer.h \
   dispextern.h frame.h disptab.h blockinput.h atimer.h systime.h syssignal.h \
   keyboard.h emacs-icon.h character.h charset.h ccl.h fontset.h composite.h \
   coding.h process.h gtkutil.h font.h fontset.h $(config_h)
xselect.o: xselect.c process.h dispextern.h frame.h xterm.h blockinput.h \
  buffer.h atimer.h systime.h termhooks.h $(config_h)
xrdb.o: xrdb.c $(config_h) epaths.h
xsmfns.o: xsmfns.c $(config_h) systime.h sysselect.h termhooks.h xterm.h \
  lisp.h termopts.h

/* The files of Lisp proper */

alloc.o: alloc.c process.h frame.h window.h buffer.h  puresize.h syssignal.h keyboard.h \
 blockinput.h atimer.h systime.h character.h dispextern.h $(config_h) \
 $(INTERVALS_H)
bytecode.o: bytecode.c buffer.h syntax.h character.h window.h dispextern.h \
  frame.h xterm.h $(config_h)
data.o: data.c buffer.h puresize.h character.h syssignal.h keyboard.h frame.h \
   termhooks.h $(config_h)
eval.o: eval.c commands.h keyboard.h blockinput.h atimer.h systime.h \
  dispextern.h $(config_h)
floatfns.o: floatfns.c syssignal.h $(config_h)
fns.o: fns.c commands.h $(config_h) frame.h buffer.h character.h keyboard.h \
 keymap.h frame.h window.h dispextern.h $(INTERVALS_H) coding.h md5.h \
 blockinput.h atimer.h systime.h xterm.h termhooks.h
print.o: print.c process.h frame.h window.h buffer.h keyboard.h character.h \
   $(config_h) dispextern.h termchar.h $(INTERVALS_H) msdos.h composite.h \
   blockinput.h atimer.h systime.h font.h charset.h
lread.o: lread.c commands.h keyboard.h buffer.h epaths.h character.h \
 charset.h $(config_h) $(INTERVALS_H) termhooks.h coding.h msdos.h

/* Text properties support */
composite.o: composite.c buffer.h character.h coding.h dispextern.h font.h \
	 frame.h termhooks.h $(INTERVALS_H) window.h $(config_h)
intervals.o: intervals.c buffer.h $(INTERVALS_H) keyboard.h puresize.h \
	keymap.h $(config_h)
textprop.o: textprop.c buffer.h window.h dispextern.h $(INTERVALS_H) \
	$(config_h)

/* System-specific programs to be made.
   OTHER_FILES and OBJECTS_MACHINE
   select which of these should be compiled.  */

#ifdef HAVE_NS
/* In fact, every .o file depends directly or indirectly on dispextern.h
   and hence nsgui.h under NS.  But the ones that actually use stuff there
   are more limited.  */
dispnew.o font.o fontset.o frame.o fringe.o image.o keyboard.o menu.o \
   window.o xdisp.o xfaces.o: nsgui.h

${ns_appdir}: ${ns_appsrc}
	rm -fr ${ns_appdir}
	mkdir -p ${ns_appdir}
	( cd ${ns_appsrc} ; tar cfh - . ) | ( cd ${ns_appdir} ; tar xf - )
	( cd ${ns_appdir} ; for subdir in `find . -type d ! -name CVS -print` ; do \
		chmod a+rx $${subdir} ; \
		rm -rf $${subdir}/CVS ; \
		rm -f  $${subdir}/.cvsignore ; done ; )

${ns_appbindir}Emacs: emacs${EXEEXT}
	mkdir -p ${ns_appbindir}
	cp -f emacs${EXEEXT} ${ns_appbindir}Emacs

ns-app: ${ns_appdir} ${ns_appbindir}Emacs

#endif /* HAVE_NS */

mostlyclean:
	rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
	rm -f ../etc/DOC
	rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
	rm -f buildobj.lst
clean: mostlyclean
	rm -f emacs-*.*.*${EXEEXT} emacs${EXEEXT}
#ifdef HAVE_NS
	rm -fr ${ns_appdir}
#endif
/* bootstrap-clean is used to clean up just before a bootstrap.
   It should remove all files generated during a compilation/bootstrap,
   but not things like config.status or TAGS.  */
bootstrap-clean: clean
	rm -f epaths.h config.h Makefile.c config.stamp stamp-oldxmenu ../etc/DOC-*
	if test -f ./.gdbinit; then \
	  mv ./.gdbinit ./.gdbinit.save; \
	  if test -f "${srcdir}/.gdbinit"; then rm -f ./.gdbinit.save; \
	  else mv ./.gdbinit.save ./.gdbinit; fi; \
	fi
/**/# This is used in making a distribution.
/**/# Do not use it on development directories!
distclean: bootstrap-clean
	rm -f Makefile
maintainer-clean: distclean
	@echo "This command is intended for maintainers to use;"
	@echo "it deletes files that may require special tools to rebuild."
	rm -f TAGS
versionclean:
	-rm -f emacs${EXEEXT} emacs-*.*.*${EXEEXT} ../etc/DOC*
extraclean: distclean
	-rm -f *~ \#* m/?*~ s/?*~

/* Arrange to make a tags table TAGS-LISP for ../lisp,
   plus TAGS for the C files, which includes ../lisp/TAGS by reference.  */

ctagsfiles1 = [xyzXYZ]*.[hcm]
ctagsfiles2 = [a-wA-W]*.[hcm]

TAGS: $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
	../lib-src/etags --include=TAGS-LISP --include=${lwlibdir}/TAGS \
	  --regex='/[ 	]*DEFVAR_[A-Z_ 	(]+"\([^"]+\)"/' \
	  $(srcdir)/$(ctagsfiles1) $(srcdir)/$(ctagsfiles2)
frc:
TAGS-LISP: frc
	$(MAKE) -f ${lispdir}Makefile TAGS-LISP ETAGS=../lib-src/etags

$(lwlibdir)TAGS:
	(cd $(lwlibdir); $(MAKE) -f $(lwlibdir)Makefile tags ETAGS=../lib-src/etags)

tags: TAGS TAGS-LISP $(lwlibdir)TAGS
.PHONY: tags


/* Bootstrapping.  */
/* Bootstrapping right is difficult because of the circular dependencies.
   Furthermore, we have to deal with the fact that many compilation targets
   such as loaddefs.el or *.elc can typically be produced by any old
   Emacs executable, so we would like to avoid rebuilding them whenever
   we build a new Emacs executable.
   To solve the circularity, we use 2 different Emacs executables,
   "emacs" is the main target and "bootstrap-emacs" is the one used
   to build the *.elc and loaddefs.el files.
   To solve the freshness issue, we used to use a third file "witness-emacs"
   which was used to witness the fact that there is a bootstrap-emacs
   executable, and then have dependencies on witness-emacs rather than
   bootstrap-emacs, but that lead to problems in parallel builds (because
   witness-emacs needed to be free from dependencies (to avoid rebuilding
   it), so it was compiled in parallel, leading typically to having 2
   processes dumping bootstrap-emacs at the same time).
   So instead, we replace the witness-emacs dependencies by conditional
   bootstrap-dependencies (via ${BOOTSTRAPEMACS}).  Of course, since we do
   not want to rely on GNU Make features, we have to rely on an external
   script to do the conditional part of the dependency
   (i.e. see the ${SUBDIR} rule ../Makefile.in).  */

.SUFFIXES: .elc .el

/* These suffix rules do not allow additional dependencies, sadly, so
   instead of adding a $(BOOTSTRAPEMACS) dependency here, we add it
   separately below.
   With GNU Make, we would just say "%.el : %.elc $(BOOTSTRAPEMACS)"  */
.el.elc:
	@cd ../lisp; $(MAKE) $(MFLAGS) compile-onefile \
	                     THEFILE=$< EMACS=../src/bootstrap-emacs${EXEEXT}

/* Since the .el.elc rule cannot specify an extra dependency, we do it here.  */
${lisp} ${SOME_MACHINE_LISP}: $(BOOTSTRAPEMACS)

${lispsource}loaddefs.el: $(BOOTSTRAPEMACS)
	cd ../lisp; $(MAKE) $(MFLAGS) autoloads EMACS=../src/bootstrap-emacs${EXEEXT}

/* Dump an Emacs executable named bootstrap-emacs containing the
   files from loadup.el in source form.  */

bootstrap-emacs${EXEEXT}: temacs${EXEEXT}
	cd ../lisp; $(MAKE) $(MFLAGS) update-subdirs
#ifdef CANNOT_DUMP
	ln -f temacs${EXEEXT} bootstrap-emacs${EXEEXT}
#else
	$(RUN_TEMACS) --batch --load loadup bootstrap
	mv -f emacs${EXEEXT} bootstrap-emacs${EXEEXT}
#endif /* ! defined (CANNOT_DUMP) */
	@: Compile some files earlier to speed up further compilation.
	cd ../lisp; $(MAKE) $(MFLAGS) compile-first EMACS=../src/bootstrap-emacs${EXEEXT}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-28 14:15       ` Praveen Arimbrathodiyil
@ 2009-11-29 10:01         ` Jan Djärv
  2009-11-30  9:19           ` Praveen A
  0 siblings, 1 reply; 10+ messages in thread
From: Jan Djärv @ 2009-11-29 10:01 UTC (permalink / raw)
  To: Praveen Arimbrathodiyil; +Cc: 5047, bug-gnu-emacs



Praveen Arimbrathodiyil skrev 2009-11-28 15.15:
> On ശനി 28 നവംബര്‍ 2009 05:09 വൈകു, Jan Djärv wrote:
>> It seems backslash is lost, either by configure or by the
>> preprocessor. Can you also send Makefile.c and Makefile.in?
>>
> Makefile.c and Makefile.in from lib-src and src directories attached.
>

I've tried this on Fedora 12 and I do not get the error.
Please show us the exact commands you do, and the output from
gcc --version.

Also check if you have any environment variable that may have impact on 
configure, such as CFLAGS, CPPFLAGS, GCC.  To make sure environment isn't the 
cause, try something like:

% env -i HOME="$HOME" PATH="$PATH" SHELL="$SHELL" TERM="$TERM" ./configure ...

I haven't tried that, so you may have to add some variables if configure 
complains.

Thanks,

	Jan D.





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-29 10:01         ` Jan Djärv
@ 2009-11-30  9:19           ` Praveen A
  2009-11-30 10:59             ` Jan Djärv
  0 siblings, 1 reply; 10+ messages in thread
From: Praveen A @ 2009-11-30  9:19 UTC (permalink / raw)
  To: Jan Djärv; +Cc: 5047, bug-gnu-emacs

2009/11/29 Jan Djärv <jan.h.d@swipnet.se>:
> I've tried this on Fedora 12 and I do not get the error.
> Please show us the exact commands you do, and the output from
> gcc --version.
>
> Also check if you have any environment variable that may have impact on
> configure, such as CFLAGS, CPPFLAGS, GCC.  To make sure environment isn't
> the cause, try something like:
>
> % env -i HOME="$HOME" PATH="$PATH" SHELL="$SHELL" TERM="$TERM" ./configure
> ...
>
> I haven't tried that, so you may have to add some variables if configure
> complains.
>
> Thanks,
>
>        Jan D.
>

See https://bugzilla.redhat.com/show_bug.cgi?id=540921#c4

It is an issue with cpp 4.4.2, it does not happen with older version of cpp.

- Praveen

-- 
പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
Join The DRM Elimination Crew Now!
http://fci.wikia.com/wiki/Anti-DRM-Campaign





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
  2009-11-30  9:19           ` Praveen A
@ 2009-11-30 10:59             ` Jan Djärv
  0 siblings, 0 replies; 10+ messages in thread
From: Jan Djärv @ 2009-11-30 10:59 UTC (permalink / raw)
  To: Praveen A; +Cc: 5047, bug-gnu-emacs, 5047-done

Ah, I tested with Emacs from CVS head.  This has been fixed there:

2009-10-23  Jim Meyering  <meyering@redhat.com>

         * configure.in: Invoke $CPP with -P when creating Makefile and
         src/Makefile.  Without this, gcc 4.4.2 converts each
         backslash-newline pair in the input to a bare newline, yielding
         invalid Makefiles.

Running
% CPPFLAGS=-P ./configure ...

works. This is what you have to do until 23.2 comes out.

	Jan D.

Praveen A skrev 2009-11-30 10.19:
> 2009/11/29 Jan Djärv<jan.h.d@swipnet.se>:
>> I've tried this on Fedora 12 and I do not get the error.
>> Please show us the exact commands you do, and the output from
>> gcc --version.
>>
>> Also check if you have any environment variable that may have impact on
>> configure, such as CFLAGS, CPPFLAGS, GCC.  To make sure environment isn't
>> the cause, try something like:
>>
>> % env -i HOME="$HOME" PATH="$PATH" SHELL="$SHELL" TERM="$TERM" ./configure
>> ...
>>
>> I haven't tried that, so you may have to add some variables if configure
>> complains.
>>
>> Thanks,
>>
>>         Jan D.
>>
>
> See https://bugzilla.redhat.com/show_bug.cgi?id=540921#c4
>
> It is an issue with cpp 4.4.2, it does not happen with older version of cpp.
>
> - Praveen
>





^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#5047: marked as done (23.1; emacs is failing to build on Fedora 12 64 bit)
  2009-11-26 14:15 bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit Praveen A
  2009-11-27 16:42 ` Jan Djärv
@ 2009-11-30 11:05 ` Emacs bug Tracking System
  1 sibling, 0 replies; 10+ messages in thread
From: Emacs bug Tracking System @ 2009-11-30 11:05 UTC (permalink / raw)
  To: Jan Djärv

[-- Attachment #1: Type: text/plain, Size: 897 bytes --]

Your message dated Mon, 30 Nov 2009 11:59:25 +0100
with message-id <4B13A58D.2000104@swipnet.se>
and subject line Re: bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
has caused the Emacs bug report #5047,
regarding 23.1; emacs is failing to build on Fedora 12 64 bit
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@emacsbugs.donarmstrong.com
immediately.)


-- 
5047: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=5047
Emacs Bug Tracking System
Contact owner@emacsbugs.donarmstrong.com with problems

[-- Attachment #2: Type: message/rfc822, Size: 3685 bytes --]

From: Praveen A <pravi.a@gmail.com>
To: bug-gnu-emacs@gnu.org
Subject: 23.1; emacs is failing to build on Fedora 12 64 bit
Date: Thu, 26 Nov 2009 19:45:59 +0530
Message-ID: <3f2beab60911260615m7d265b39ya9dc67e2fd35ce25@mail.gmail.com>

Hi,

emacs build is failing on Fedora 12 GNU/Linux 64 bit due to what
appears to be missing end of line escape characters ('\') in the
Makefile.
I reported this to fedora bugzilla (
https://bugzilla.redhat.com/show_bug.cgi?id=540921 ), but I think it
is not specific to fedora packaging as
tarballs downloaded from gnu mirrors also fails to build.

Regards
Praveen

-- 
പ്രവീണ്‍ അരിമ്പ്രത്തൊടിയില്‍
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)
Join The DRM Elimination Crew Now!
http://fci.wikia.com/wiki/Anti-DRM-Campaign



[-- Attachment #3: Type: message/rfc822, Size: 3663 bytes --]

From: "Jan Djärv" <jan.h.d@swipnet.se>
To: Praveen A <pravi.a@gmail.com>
Cc: 5047@emacsbugs.donarmstrong.com, bug-gnu-emacs@gnu.org, 5047-done@emacsbugs.donarmstrong.com
Subject: Re: bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit
Date: Mon, 30 Nov 2009 11:59:25 +0100
Message-ID: <4B13A58D.2000104@swipnet.se>

Ah, I tested with Emacs from CVS head.  This has been fixed there:

2009-10-23  Jim Meyering  <meyering@redhat.com>

         * configure.in: Invoke $CPP with -P when creating Makefile and
         src/Makefile.  Without this, gcc 4.4.2 converts each
         backslash-newline pair in the input to a bare newline, yielding
         invalid Makefiles.

Running
% CPPFLAGS=-P ./configure ...

works. This is what you have to do until 23.2 comes out.

	Jan D.

Praveen A skrev 2009-11-30 10.19:
> 2009/11/29 Jan Djärv<jan.h.d@swipnet.se>:
>> I've tried this on Fedora 12 and I do not get the error.
>> Please show us the exact commands you do, and the output from
>> gcc --version.
>>
>> Also check if you have any environment variable that may have impact on
>> configure, such as CFLAGS, CPPFLAGS, GCC.  To make sure environment isn't
>> the cause, try something like:
>>
>> % env -i HOME="$HOME" PATH="$PATH" SHELL="$SHELL" TERM="$TERM" ./configure
>> ...
>>
>> I haven't tried that, so you may have to add some variables if configure
>> complains.
>>
>> Thanks,
>>
>>         Jan D.
>>
>
> See https://bugzilla.redhat.com/show_bug.cgi?id=540921#c4
>
> It is an issue with cpp 4.4.2, it does not happen with older version of cpp.
>
> - Praveen
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-11-30 11:05 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-26 14:15 bug#5047: 23.1; emacs is failing to build on Fedora 12 64 bit Praveen A
2009-11-27 16:42 ` Jan Djärv
2009-11-28  7:12   ` Praveen A
2009-11-28  8:22     ` Praveen A
2009-11-28 11:39     ` Jan Djärv
2009-11-28 14:15       ` Praveen Arimbrathodiyil
2009-11-29 10:01         ` Jan Djärv
2009-11-30  9:19           ` Praveen A
2009-11-30 10:59             ` Jan Djärv
2009-11-30 11:05 ` bug#5047: marked as done (23.1; emacs is failing to build on Fedora 12 64 bit) Emacs bug Tracking System

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).