summaryrefslogtreecommitdiff
path: root/src/ymakefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/ymakefile')
-rw-r--r--src/ymakefile535
1 files changed, 535 insertions, 0 deletions
diff --git a/src/ymakefile b/src/ymakefile
new file mode 100644
index 00000000000..fa1f171af3c
--- /dev/null
+++ b/src/ymakefile
@@ -0,0 +1,535 @@
+/* Makefile for GNU Emacs.
+ Copyright (C) 1985, 1987, 1988, 1990 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 1, 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; see the file COPYING. If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+
+dot = .
+/* on Xenix, replace double-dot below with $(dot)$(dot) */
+lispdir = $(dot)$(dot)/lisp/
+etcdir = $(dot)$(dot)/etc/
+shortnamesdir = $(dot)$(dot)/shortnames/
+cppdir = $(dot)$(dot)/cpp/
+oldXMenudir = $(dot)$(dot)/oldXMenu/
+
+/* Just to avoid uncertainty. */
+SHELL = /bin/sh
+
+#define NO_SHORTNAMES
+#include "config.h"
+
+/* 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;
+ don't let it interfere with this file. */
+#undef register
+
+/* On some systems we may not to use the system make command. */
+#ifdef MAKE_COMMAND
+MAKE = MAKE_COMMAND
+#else
+MAKE=make
+#endif
+
+#ifdef C_COMPILER
+CC = C_COMPILER
+#endif
+
+/* Some machines don't 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
+
+/* Unless inhibited or changed, use -lg to link for debugging. */
+#ifndef LIBS_DEBUG
+#define LIBS_DEBUG -lg
+#endif
+
+/* Some s- files define this to request special libraries. */
+#ifndef LIBS_SYSTEM
+#define LIBS_SYSTEM
+#endif
+
+/* Some m- files define this to request special libraries. */
+#ifndef LIBS_MACHINE
+#define LIBS_MACHINE
+#endif
+
+/* Some s- files define this to request special switches in ld. */
+#ifndef LD_SWITCH_SYSTEM
+#if defined (BSD) && !defined (COFF) && !defined (__GNUC__)
+#define LD_SWITCH_SYSTEM -X
+#else
+#define LD_SWITCH_SYSTEM
+#endif /* COFF, or not BSD */
+#endif
+
+/* Some m- files define this to request special switches in ld. */
+#ifndef LD_SWITCH_MACHINE
+#define LD_SWITCH_MACHINE
+#endif
+
+/* Some m- files define this to request special switches in cc. */
+#ifndef C_SWITCH_MACHINE
+#define C_SWITCH_MACHINE
+#endif
+
+#ifndef C_SWITCH_SYSTEM
+#define C_SWITCH_SYSTEM
+#endif
+
+#ifndef C_SWITCH_X_MACHINE
+#define C_SWITCH_X_MACHINE
+#endif
+
+#ifndef C_SWITCH_X_SYSTEM
+#define C_SWITCH_X_SYSTEM
+#endif
+
+#ifndef ORDINARY_LINK
+#ifndef START_FILES
+#ifdef NO_REMAP
+#define START_FILES pre-crt0.o /lib/crt0.o
+#else
+#define START_FILES crt0.o
+#endif
+#endif /* have START_FILES */
+STARTFILES = START_FILES
+#else /* ORDINARY_LINK */
+STARTFILES = pre-crt0.o
+#endif /* ORDINARY_LINK */
+
+/* This macro says how to compile for debugging.
+ If you want to optimize, DON'T change this macro.
+ Instead, replace C_DEBUG_SWITCH with C_OPTIMIZE_SWITCH
+ where CFLAGS is set. */
+#ifndef C_DEBUG_SWITCH
+#define C_DEBUG_SWITCH -g
+#endif
+
+/* If user wants to optimize, this is how. */
+#ifndef C_OPTIMIZE_SWITCH
+#define C_OPTIMIZE_SWITCH -O
+#endif
+
+/* cc switches needed to make `asm' keyword work.
+ Nothing special needed on most machines. */
+#ifndef C_SWITCH_ASM
+#define C_SWITCH_ASM
+#endif
+
+/* Specify address for ld to start loading at,
+ if requested by configuration. */
+
+#ifdef LD_TEXT_START_ADDR
+STARTFLAGS = -T LD_TEXT_START_ADDR -e __start
+#endif
+
+#ifndef LINKER
+#ifdef ORDINARY_LINK
+LD = $(CC)
+#else /* not ORDINARY_LINK */
+#if __GNUC__ > 1
+/* Search the proper places so that we can find -lgcc. */
+#define LINKER gcc -nostdlib
+#else
+#define LINKER ld
+#endif
+#endif /* not ORDINARY_LINK */
+#endif /* no LINKER */
+
+#ifdef LINKER
+LD = LINKER
+#endif
+LDFLAGS = LD_SWITCH_SYSTEM LD_SWITCH_MACHINE
+
+/* Figure out whether the system cpp can handle long names.
+ Do it by testing it right now.
+ If it loses, arrange to use the GNU cpp. */
+
+#define LONGNAMEBBBFOOX
+#ifdef LONGNAMEBBBARFOOX
+/* Installed cpp fails to distinguish those names! */
+/* Arrange to compile the GNU cpp later on */
+#define NEED_CPP
+/* Cause cc to invoke the cpp that comes with Emacs,
+ which will be in a file named localcpp. */
+MYCPPFLAG= -Blocal
+/* LOCALCPP is the local one or nothing.
+ CPP is the local one or the standardone. */
+LOCALCPP= localcpp
+#endif /* NEED_CPP */
+
+#ifdef SHORTNAMES
+SHORT= shortnames
+#endif /* SHORTNAMES */
+
+CFLAGS= C_DEBUG_SWITCH -Demacs $(MYCPPFLAG) C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM
+/* 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. */
+
+/* You may replace C_DEBUG_SWITCH with C_OPTIMIZE_SWITCH
+ if you don't believe in debugging. */
+
+/* -Demacs is needed to make some files produce the
+ correct version for use in Emacs. */
+
+#ifndef LIBX10_MACHINE
+#define LIBX10_MACHINE
+#endif
+
+#ifndef LIBX11_MACHINE
+#define LIBX11_MACHINE
+#endif
+
+#ifndef LIBX10_SYSTEM
+#define LIBX10_SYSTEM
+#endif
+
+#ifndef LIBX11_SYSTEM
+#define LIBX11_SYSTEM
+#endif
+
+#ifndef LIB_X11_LIB
+#define LIB_X11_LIB -lX11
+#endif
+
+#ifdef HAVE_X_WINDOWS
+#ifdef HAVE_X11
+#ifdef HAVE_X_MENU
+OLDXMENU = libXMenu11.a
+XOBJ = x11term.o x11fns.o xmenu.o
+LIBX = $(OLDXMENU) LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
+#else
+XOBJ = x11term.o x11fns.o
+LIBX = LIB_X11_LIB LIBX11_MACHINE LIBX11_SYSTEM
+#endif
+#else /* not HAVE_X11 */
+#ifdef HAVE_X_MENU
+XOBJ= xterm.o xfns.o xmenu.o
+LIBX= -lXMenu -lX LIBX10_MACHINE LIBX10_SYSTEM
+#else
+XOBJ= xterm.o xfns.o
+LIBX= -lX LIBX10_MACHINE LIBX10_SYSTEM
+#endif /* not HAVE_X_MENU */
+#endif /* not HAVE_X11 */
+#endif /* HAVE_X_WINDOWS */
+
+/* Fix linking if compiled with GCC. */
+#ifdef __GNUC__
+#if __GNUC__ > 1
+#ifndef LIB_GCC
+#define LIB_GCC -lgcc
+#endif
+GNULIB_VAR = LIB_GCC
+#else /* __GNUC__ <= 1 */
+#ifndef LIB_GCC
+#define LIB_GCC /usr/local/lib/gcc-gnulib
+#endif
+GNULIB_VAR = `if [ -f LIB_GCC ] ; then echo LIB_GCC; else echo; fi`
+#endif /* __GNUC__ <= 1 */
+#else
+GNULIB_VAR =
+#endif
+
+#ifdef MAINTAIN_ENVIRONMENT
+environobj = environ.o
+#endif /* MAINTAIN_ENVIRONMENT */
+
+/* Allow config.h to specify a replacement file for unexec.c. */
+#ifndef UNEXEC
+#define UNEXEC unexec.o
+#endif
+
+/* lastfile must follow all files
+ whose initialized data areas should be dumped as pure by dump-emacs. */
+obj= dispnew.o scroll.o xdisp.o window.o \
+ term.o cm.o $(XOBJ) \
+ 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 casefiddle.o indent.o search.o regex.o undo.o \
+ alloc.o data.o doc.o editfns.o callint.o \
+ eval.o fns.o print.o lread.o \
+ abbrev.o syntax.o UNEXEC mocklisp.o bytecode.o \
+ process.o callproc.o $(environobj) \
+ doprnt.o
+
+#ifdef TERMINFO
+/* Used to be -ltermcap here. If your machine needs that,
+ define LIBS_TERMCAP in the m- file. */
+#ifndef LIBS_TERMCAP
+#define LIBS_TERMCAP -lcurses
+#endif
+termcapobj = terminfo.o
+#else
+#ifndef LIBS_TERMCAP
+#define LIBS_TERMCAP
+termcapobj = termcap.o tparam.o
+#else
+termcapobj = tparam.o
+#endif
+#endif
+
+#ifndef SYSTEM_MALLOC
+#ifdef HAVE_ALLOCA
+mallocobj = malloc.o
+#else
+mallocobj = alloca.o malloc.o
+#endif
+#else /* SYSTEM_MALLOC */
+#ifndef HAVE_ALLOCA
+mallocobj = alloca.o
+#endif
+#endif
+
+/* define otherobj as list of object files that make-docfile
+ should not be told about. */
+otherobj= $(termcapobj) lastfile.o $(mallocobj)
+
+/* List of Lisp files loaded into the dumped Emacs. */
+lisp= ${lispdir}simple.elc ${lispdir}help.elc \
+ ${lispdir}files.elc ${lispdir}window.elc \
+ ${lispdir}indent.elc ${lispdir}loaddefs.el ${lispdir}paths.el \
+ ${lispdir}startup.elc ${lispdir}lisp.elc \
+ ${lispdir}page.elc ${lispdir}register.elc \
+ ${lispdir}paragraphs.elc ${lispdir}lisp-mode.elc \
+ ${lispdir}text-mode.elc ${lispdir}fill.elc \
+ ${lispdir}c-mode.elc ${lispdir}isearch.elc \
+ ${lispdir}replace.elc ${lispdir}abbrev.elc \
+ ${lispdir}buff-menu.elc ${lispdir}subr.elc
+
+/* just to be sure the sh is used */
+SHELL=/bin/sh
+
+/* Construct full set of libraries to be linked. */
+LIBES = LIBS_TERMCAP $(LIBX) LIBS_SYSTEM LIBS_MACHINE LIBS_DEBUG $(GNULIB_VAR) LIB_STANDARD
+
+/* Enable recompilation of certain other files depending on system type. */
+
+#ifndef OTHER_FILES
+#define OTHER_FILES
+#endif
+
+/* Enable inclusion of object files in temacs depending on system type. */
+#ifndef OBJECTS_SYSTEM
+#define OBJECTS_SYSTEM
+#endif
+
+#ifndef OBJECTS_MACHINE
+#define OBJECTS_MACHINE
+#endif
+
+all: xemacs OTHER_FILES
+
+xemacs: temacs ${etcdir}DOC ${lisp}
+#ifdef HAVE_SHM
+ ./temacs -nl -batch -l inc-vers
+ ./temacs -nl -batch -l loadup dump
+ ln temacs xemacs
+#else
+#ifdef CANNOT_DUMP
+ mv temacs xemacs
+#else
+ ./temacs -batch -l inc-vers
+ ./temacs -batch -l loadup.el dump
+#endif /* not CANNOT_DUMP */
+#endif /* not HAVE_SHM */
+
+${etcdir}DOC: ${etcdir}make-docfile ${obj} ${lisp}
+ rm -f ${etcdir}DOC
+ ${etcdir}make-docfile ${obj} ${lisp} ${lispdir}version.el > ${etcdir}DOC
+
+${etcdir}make-docfile:
+ cd ${etcdir}; ${MAKE} ${MFLAGS} make-docfile
+
+/* Some systems define this to cause parallel Make-ing. */
+#ifndef MAKE_PARALLEL
+#define MAKE_PARALLEL
+#endif
+
+temacs: MAKE_PARALLEL $(LOCALCPP) $(SHORT) $(STARTFILES) $(OLDXMENU) ${obj} ${otherobj} OBJECTS_SYSTEM OBJECTS_MACHINE
+ $(LD) ${STARTFLAGS} ${LDFLAGS} -o temacs ${STARTFILES} ${obj} ${otherobj} OBJECTS_SYSTEM OBJECTS_MACHINE ${LIBES}
+
+/* These are needed for C compilation, on the systems that need them */
+#ifdef NEED_CPP
+CPP = ./localcpp
+localcpp:
+ cd ${cppdir}; ${MAKE} ${MFLAGS} EMACS=-DEMACS
+ ln ${cppdir}cpp localcpp /* Name where CFLAGS will refer to it */
+/* cc appears to be cretinous and require all of these to exist
+ if -B is specified -- we can't use one local pass and let the
+ others be the standard ones. What a loser.
+ We can't even use ln, since they are probably
+ on different disks. */
+ cp /lib/ccom localccom
+ -cp /lib/optim localoptim
+ -cp /lib/c2 localc2
+ cp /bin/as localas
+#else /* not NEED_CPP */
+CPP = $(CC) -E
+#endif /* need NEED_CPP */
+
+#ifdef SHORTNAMES
+shortnames:
+ cd ${shortnamesdir}; ${MAKE} ${MFLAGS}
+#endif /* SHORTNAMES */
+
+/* Don't lose if this was not defined. */
+#ifndef OLDXMENU_OPTIONS
+#define OLDXMENU_OPTIONS
+#endif
+
+#ifdef HAVE_X_WINDOWS
+#ifdef HAVE_X_MENU
+#ifdef HAVE_X11
+$(OLDXMENU):
+ cd ${oldXMenudir}; ${MAKE} ${MFLAGS} OLDXMENU_OPTIONS
+ ln ${oldXMenudir}libXMenu11.a $(OLDXMENU) || cp ${oldXMenudir}libXMenu11.a $(OLDXMENU)
+#endif /* HAVE_X11 */
+#endif /* HAVE_X_MENU */
+#endif /* HAVE_X_WINDOWS */
+
+paths.h: paths.h-dist
+ echo paths.h needs to be set up from paths.h-dist
+ exit 1
+
+config.h: config.h-dist
+ echo config.h needs to be set up from config.h-dist
+ exit 1
+
+/* Some machines have alloca built-in.
+ They should define HAVE_ALLOCA, or may just let alloca.s
+ be used but generate no code.
+ Some have it written in assembler in alloca.s.
+ Some use the C version in alloca.c (these define C_ALLOCA in config.h).
+ */
+
+#ifdef C_ALLOCA
+alloca.o : alloca.c
+#else
+#ifndef HAVE_ALLOCA
+alloca.o : alloca.s config.h
+/* $(CPP) is cc -E, which may get confused by filenames
+ that do not end in .c. So copy file to a safe name. */
+ cp alloca.s allocatem.c
+/* remove any ^L, blank lines, and preprocessor comments,
+ since some assemblers barf on them */
+ $(CPP) allocatem.c | \
+ sed -e 's/ //' -e 's/^#.*//' | \
+ sed -n -e '/^..*$$/p' > allocatem.s
+ -rm -f alloca.o
+/* Xenix, in particular, needs to run assembler via cc. */
+ cc -c allocatem.s
+ mv allocatem.o alloca.o
+ rm allocatem.s allocatem.c
+#endif /* HAVE_ALLOCA */
+#endif /* not C_ALLOCA */
+
+/* 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. */
+
+abbrev.o : abbrev.c buffer.h commands.h config.h
+buffer.o : buffer.c syntax.h buffer.h commands.h window.h config.h
+callint.o : callint.c window.h commands.h buffer.h config.h
+callproc.o : callproc.c paths.h buffer.h commands.h config.h
+casefiddle.o : casefiddle.c syntax.h commands.h buffer.h config.h
+cm.o : cm.c cm.h termhooks.h config.h
+cmds.o : cmds.c syntax.h buffer.h commands.h config.h
+crt0.o : crt0.c config.h
+ $(CC) -c $(CFLAGS) C_SWITCH_ASM crt0.c
+dired.o : dired.c commands.h buffer.h config.h regex.h
+dispnew.o : dispnew.c commands.h window.h buffer.h dispextern.h termchar.h termopts.h cm.h config.h lisp.h
+doc.o : doc.c buffer.h config.h paths.h
+doprnt.o : doprnt.c
+editfns.o : editfns.c window.h buffer.h config.h
+emacs.o : emacs.c commands.h config.h
+#ifdef MAINTAIN_ENVIRONMENT
+environ.o : environ.c buffer.h commands.h config.h
+#endif /* MAINTAIN_ENVIRONMENT */
+fileio.o : fileio.c window.h buffer.h config.h
+filelock.o : filelock.c buffer.h paths.h config.h
+filemode.o : filemode.c
+indent.o : indent.c window.h indent.h buffer.h config.h termchar.h termopts.h
+insdel.o : insdel.c window.h buffer.h config.h
+keyboard.o : keyboard.c termchar.h termhooks.h termopts.h buffer.h commands.h window.h macros.h config.h
+keymap.o : keymap.c buffer.h commands.h config.h
+lastfile.o : lastfile.c
+macros.o : macros.c window.h buffer.h commands.h macros.h config.h
+malloc.o : malloc.c config.h
+marker.o : marker.c buffer.h config.h
+minibuf.o : minibuf.c syntax.h window.h buffer.h commands.h config.h
+mocklisp.o : mocklisp.c buffer.h config.h
+process.o : process.c process.h buffer.h window.h termhooks.h termopts.h commands.h dispextern.h config.h
+regex.o : regex.c syntax.h buffer.h config.h regex.h
+scroll.o : scroll.c termchar.h config.h dispextern.h termhooks.h
+search.o : search.c regex.h commands.h buffer.h syntax.h config.h
+syntax.o : syntax.c syntax.h buffer.h commands.h config.h
+sysdep.o : sysdep.c config.h dispextern.h termhooks.h termchar.h termopts.h window.h
+term.o : term.c termchar.h termhooks.h termopts.h config.h cm.h
+termcap.o : termcap.c config.h
+terminfo.o : terminfo.c config.h
+tparam.o : tparam.c config.h
+undo.o : undo.c buffer.h commands.h config.h
+UNEXEC : config.h getpagesize.h
+window.o : window.c indent.h commands.h window.h buffer.h config.h termchar.h
+xdisp.o : xdisp.c macros.h commands.h indent.h buffer.h dispextern.h termchar.h window.h config.h
+xfns.o : xfns.c xterm.h window.h config.h
+xmenu.o : xmenu.c xterm.h window.h config.h
+xterm.o : xterm.c xterm.h termhooks.h termopts.h termchar.h \
+ dispextern.h config.h sink.h sinkmask.h
+
+x11fns.o : x11fns.c window.h x11term.h dispextern.h termchar.h config.h
+x11term.o : x11term.c x11term.h termhooks.h termopts.h termchar.h \
+ dispextern.h config.h sink11.h sink11mask.h lisp.h gettime.h emacssignal.h \
+ xkeys-aix.h
+
+/* The files of Lisp proper */
+
+alloc.o : alloc.c window.h buffer.h config.h
+bytecode.o : bytecode.c buffer.h config.h
+data.o : data.c buffer.h config.h
+eval.o : eval.c commands.h config.h
+fns.o : fns.c buffer.h commands.h config.h
+print.o : print.c process.h window.h buffer.h dispextern.h termchar.h config.h
+lread.o : lread.c buffer.h paths.h config.h
+
+/* System-specific programs to be made.
+ OTHER_FILES, OBJECTS_SYSTEM and OBJECTS_MACHINE
+ select which of these should be compiled. */
+
+sunfns.o : sunfns.c buffer.h config.h
+
+${etcdir}emacstool: ${etcdir}emacstool.c
+ cd ${etcdir}; ${MAKE} ${MFLAGS} emacstool