]> code.delx.au - gnu-emacs/blobdiff - src/Makefile.in
* make-dist: Distribute some VMS files we got from Richard Levitte.
[gnu-emacs] / src / Makefile.in
index a95e01e6a5963521ba6b3bfca813684a84331579..b6d56977738fa488669e24623ce10712d90bb251 100644 (file)
@@ -5,51 +5,93 @@
 MAKE = make
 # BSD doesn't have it as a default.
 
-CC =gcc
+# ==================== Things `configure' might edit ====================
+
+CC=cc
+CFLAGS=-g
+srcdir=@srcdir@/src
+VPATH=@srcdir@/src
+LN_S=ln -s
+
+# ============================= Targets ==============================
+
 CPP = $(CC) -E -Is -Im
 #Note: an alternative is  CPP = /lib/cpp
 
 # Just to avoid uncertainty.
 SHELL = /bin/sh
 
+SUBMAKEFLAGS = CC='${CC}' LN_S='${LN_S}'
+
 all: doall
 
 doall: xmakefile
-       $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} all
+       $(MAKE) ${SUBMAKEFLAGS} -f xmakefile ${MFLAGS} all
 
 #This is used in making a distribution.
 #Do not use it on development directories!
 distclean:
-       -rm -f paths.h config.h machine.h system.h emacs-* temacs xemacs xmakefile core *~ m/*~ s/*~ \#* *.o
+       -rm -f paths.h config.h emacs-* temacs emacs xmakefile core *.o
 
 clean:
-       -rm -f temacs xemacs xmakefile* core \#* *.o
+       -rm -f temacs emacs prefix-args xmakefile* core \#* *.o
+
+versionclean:
+       -rm -f emacs emacs-* ../etc/DOC*
 
-xemacs: doxemacs
+extraclean: distclean
+       -rm -f *~ \#* m/*~ s/*~
 
-doxemacs: xmakefile
-       $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} xemacs
+emacs: doemacs
+       @true
+
+doemacs: xmakefile
+       $(MAKE) ${SUBMAKEFLAGS} -f xmakefile ${MFLAGS} emacs
 
 temacs: dotemacs
+       @true
 
 dotemacs: xmakefile
-       $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} temacs
+       $(MAKE) ${SUBMAKEFLAGS} -f xmakefile ${MFLAGS} temacs
+
+SOURCES = *.[ch] [sm]/* COPYING Makefile.in ymakefile \
+       config.h.in README COPYING ChangeLog vms.pp-trans
+unlock:
+       chmod u+w $(SOURCES)
+
+relock:
+       chmod -w $(SOURCES)
+       chmod +w paths.h
+
+### Some makes, like Ultrix's make, complain if you put a comment in
+### the middle of a rule's command list!  Dummies.
 
-# If you have a problem with cc -E here, changing
-# the definition of CPP above may fix it.
+### The flags for optimization and debugging depend on the
+### system, so take an ordinary CFLAGS value and choose the
+### appropriate CPP symbols to use in ymakefile.
+### If you have a problem with cc -E here, changing
+### the definition of CPP above may fix it.
 xmakefile: ymakefile config.h
        -rm -f xmakefile xmakefile.new junk.c junk.cpp
-       cp ymakefile junk.c
-       $(CPP) junk.c > junk.cpp
+       cp ${srcdir}/ymakefile junk.c
+       ${CPP} -I${srcdir} ${CFLAGS} junk.c > junk.cpp \
+       -DC_SWITCH_SITE="`echo ${CFLAGS}' ' \
+                         | sed -e 's/-g /C_DEBUG_SWITCH /' \
+                               -e 's/-O[0-9]* /C_OPTIMIZE_SWITCH /'`"
        < junk.cpp                                      \
        sed     -e 's/^#.*//'                           \
                -e 's/^[ \f\t][ \f\t]*$$//'             \
                -e 's/^ /       /'                      \
+               -e 's|^\(srcdir *=\).*$$|\1'"${srcdir}"'|'      \
+               -e 's|^\(VPATH *=\).*$$|\1'"${srcdir}"'|'       \
        | sed -n -e '/^..*$$/p'                         \
        > xmakefile.new
        mv -f xmakefile.new xmakefile
-       rm -f junk.c
+       chmod 444 xmakefile
+       rm -f junk.c junk.cpp
 
-tags TAGS:
-       etags [a-z]*.h [a-z]*.c ../lisp/[a-z]*.el ../lisp/term/[a-z]*.el \
-             ../external-lisp/*.el
+tagsfiles = [a-z]*.h [a-z]*.c ../lisp/[a-z]*.el ../lisp/term/[a-z]*.el
+TAGS: $(tagsfiles)
+       etags $(tagsfiles)
+tags: TAGS
+.PHONY: tags