view Makefile.in @ 1167:a9aeeaa9da8f

(scan_lists): When searching back for comment: if comment-end is 2 chars, assume it does end a comment. Otherwise, scan back to previous comment-end to see if there's a comment starter between. Also record whether the string quotes between the start and the end are paired and uniform. If so, skip to comment starter. If not, scan from start of defun to find comment starter if any. (find_defun_start): New function.
author Richard M. Stallman <rms@gnu.org>
date Sat, 19 Sep 1992 17:52:07 +0000
parents 95f094fdd81e
children bd3afc204773
line wrap: on
line source

# DIST: This is the distribution Makefile for Emacs.  configure can
# DIST: make most of the changes to this file you might want, so try
# DIST: that first.

# make all	to compile and build Emacs.
# make install	to install it.
# make install.sysv to install on system V.  Note that on system V you
#		must change mandir to /usr/local/man/man1.
# make install.xenix  to install on Xenix.
# make install.aix    to install on AIX.
# make tags	to update tags tables.
#
# make distclean	to delete everything that wasn't in the distribution.
#	This is a very dangerous thing to do!  It removes backup files,
#	among other things.
# make clean
#	This is a little less dangerous.
# make dist
#	This produces a tar file from the current source tree suitable
#	for redistribution.

SHELL = /bin/sh

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

# The default location for installation.  Everything is placed in
# subdirectories of this directory.  This directory must exist when
# you start installation.  The default values for many of the
# variables below are expressed in terms of this one, so you may not
# need to change them.
prefix=/usr/local

# Where to install Emacs and other binaries that people will want to
# run directly (like etags).
bindir=${prefix}/bin

# A directory under which we will install many of Emacs's files.  The
# default values for many of the variables below are expressed in
# terms of this one, so you may not need to change them.
emacsdir=${prefix}/emacs-19.0

# Where to install and expect the architecture-independent data files
# (like the tutorial and the Zippy database).
datadir=${emacsdir}/etc

# Where to install the elisp files distributed with Emacs.  Strictly
# speaking, all the elisp files should go under datadir (above), since
# both elisp source and compiled elisp are completely portable, but
# it's traditional to give the lisp files their own subdirectory.
lispdir=${emacsdir}/lisp

# Directories Emacs should search for elisp files specific to this
# site (i.e. customizations), before consulting ${lispdir}.  This
# should be a colon-separated list of directories.
locallisppath=${emacsdir}/local-lisp

# Where Emacs will search to find its elisp files.  Before changing
# this, check to see if your purpose wouldn't better be served by
# changing locallisppath.  This should be a colon-separated list of
# directories.
lisppath=${locallisppath}:${lispdir}

# Where Emacs will search for its elisp files while building.  This is
# only used during the process of compiling Emacs, to help Emacs find
# its lisp files before they've been installed in their final
# location.  It's usually identical to lisppath, except that the entry
# for the directory containing the installed lisp files has been
# replaced with ../lisp.  This should be a colon-separated list of
# directories.
buildlisppath=../lisp

# Where to install and expect the files that Emacs modifies as it
# runs.	 These files are all architecture-independent.	Right now,
# the only such data is the locking directory.
statedir=${emacsdir}

# Where to create and expect the locking directory, where the Emacs
# locking code keeps track of which files are currently being edited.
lockdir=${statedir}/lock

# Where to install and expect executable files to be run by Emacs
# rather than directly by users, and other architecture-dependent
# data.
libdir=${emacsdir}/arch-lib

# Where to install Emacs's man pages.
mandir=/usr/man/man1

# Where to install and expect the info files describing Emacs.	In the
# past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
# since there are now many packages documented with the texinfo
# system, it is inappropriate to imply that it is part of Emacs.
infodir=${prefix}/info


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

# Allow the user to specify the install program.
INSTALL = install
INSTALLFLAGS = -c
INSTALL_PROGRAM = ${INSTALL}
INSTALL_DATA = ${INSTALL}


# ============================= Targets ==============================

# Flags passed down to subdirectory makefiles.
MFLAGS =

# Subdirectories to make recursively.  `lisp' is not included
# because the compiled lisp files are part of the distribution
# and you cannot remake them without installing Emacs first.
SUBDIR = lib-src src

# Subdirectories to install, and where they'll go.
COPYDIR = arch-lib etc info lisp
COPYDESTS = ${libdir} ${datadir} ${infodir} ${lispdir}

all:	src/paths.h ${SUBDIR}

removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/'

# Note that sed is not in /bin on 386bsd.
src/paths.h: Makefile src/paths.h.in
	lisppath=`echo ${lisppath} | ${removenullpaths}` ;		\
	buildlisppath=`echo ${buildlisppath} | ${removenullpaths}` ;	\
	sed < src/paths.h.in > src/paths.h.tmp				\
	-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";'		\
	-e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${buildlisppath}'";'	\
	-e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";'			\
	-e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";'			\
	-e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";'
	./move-if-change src/paths.h.tmp src/paths.h

src:	lib-src

.RECURSIVE: ${SUBDIR}

${SUBDIR}: FRC
	cd $@; make ${MFLAGS} all

install: all mkdir lockdir
	-set ${COPYDESTS} ; \
	 for dir in ${COPYDIR} ; do \
	   dest=$$1 ; shift ; \
	   if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
	     (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xf - ) ; \
	     for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
	       rm -rf $${subdir}/RCS ; \
	       rm -f  $${subdir}/\#* ; \
	       rm -f  $${subdir}/*~ ; \
	     done ; \
	   fi ; \
	 done
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/emacsclient ${bindir}/emacsclient
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/etags ${bindir}/etags
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/ctags ${bindir}/ctags
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -c -m 1755 src/xemacs ${bindir}/xemacs
	${INSTALL_DATA} ${INSTALLFLAGS} -c -m 444 etc/emacs.1 ${mandir}/emacs.1
	-rm -f ${bindir}/emacs
	mv ${bindir}/xemacs ${bindir}/emacs

install.sysv: all mkdir lockdir
	-set ${COPYDESTS} ; \
	 for dir in ${COPYDIR} ; do \
	   dest=$$1 ; shift ; \
	   if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
	     (cd $${dir}; find . -print | cpio -pdum ${dest} ) ; \
	     for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
	       rm -rf $${subdir}/RCS ; \
	       rm -f  $${subdir}/\#* ; \
	       rm -f  $${subdir}/*~ ; \
	     done ; \
	   fi ; \
	 done
	-cpset arch-lib/emacsclient ${bindir}/emacsclient 755 bin bin
	-cpset arch-lib/etags ${bindir}/etags 755 bin bin
	-cpset arch-lib/ctags ${bindir}/ctags 755 bin bin
	-cpset etc/emacs.1 ${mandir}/emacs.1 444 bin bin
	-/bin/rm -f ${bindir}/emacs
	-cpset src/xemacs ${bindir}/emacs 1755 bin bin
  
install.xenix: all mkdir lockdir
	-set ${COPYDESTS} ; \
	 for dir in ${COPYDIR} ; do \
	   dest=$$1 ; shift ; \
	   if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
	     (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xpf - ) ; \
	     for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
	       rm -rf $${subdir}/RCS ; \
	       rm -f  $${subdir}/\#* ; \
	       rm -f  $${subdir}/*~ ; \
	     done ; \
	   fi ; \
	 done
	cp arch-lib/etags arch-lib/ctags arch-lib/emacsclient ${bindir}
	chmod 755 ${bindir}/etags ${bindir}/ctags ${bindir}/emacsclient
	cp etc/emacs.1 ${mandir}/emacs.1
	chmod 444 ${mandir}/emacs.1
	-mv -f ${bindir}/emacs ${bindir}/emacs.old
	cp src/xemacs ${bindir}/emacs
	chmod 1755 ${bindir}/emacs
	-rm -f ${bindir}/emacs.old

install.aix: all mkdir lockdir
	-set ${COPYDESTS} ; \
	 for dir in ${COPYDIR} ; do \
	   dest=$$1 ; shift ; \
	   if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
	     (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xBf - ) ; \
	     for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
	       rm -rf $${subdir}/RCS ; \
	       rm -f  $${subdir}/\#* ; \
	       rm -f  $${subdir}/*~ ; \
	     done ; \
	   fi ; \
	 done
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/emacsclient
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/etags
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/ctags
	${INSTALL_PROGRAM} ${INSTALLFLAGS} -M 1755 -f ${bindir} src/xemacs
	${INSTALL_DATA} ${INSTALLFLAGS} -M 444 -f ${mandir} etc/emacs.1
	-rm -f ${bindir}/emacs
	mv ${bindir}/xemacs ${bindir}/emacs

# Build all the directories
mkdir: FRC
	# If any of the directories are below ${emacsdir}, create it.
	-for dir in ${COPYDESTS}; do \
	   case "$${dir}" in \
	     ${emacsdir}/* ) \
	       if [ ! -d ${emacsdir} ]; then \
		 mkdir ${emacsdir} ; \
		 chmod 777 ${emacsdir} ; \
	       fi ; \
	       break\
	     ;; \
	   esac ; \
	 done
	-mkdir ${COPYDESTS}
	-chmod 777 ${COPYDESTS}

lockdir:
	# If the lockdir needs ${emacsdir}, create it.
	-case "${lockdir}" in \
	   ${statedir}/* ) \
	     if [ ! -d ${emacsdir} ]; then \
	       mkdir ${emacsdir} ; \
	       chmod 777 ${emacsdir} ; \
	     fi \
	   ;; \
	 esac
	-mkdir ${LOCKDIR}
	-chmod 777 ${LOCKDIR}

FRC:

clean mostlyclean:
	cd src; make clean
	if [ `/bin/pwd` != `(cd ${emacsdir}; /bin/pwd)` ] ; then \
		(cd etc; make clean); \
		(cd lib-src; make clean); \
	else true; \
	fi
	cd oldXMenu; make clean

distclean:
	for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} distclean); done
	-(cd lock; rm *)
	-rm config.status config-tmp-*
	-rm #*# *~

realclean:
	for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} realclean); done
	(cd lock; rm *)
	rm config.status

TAGS tags:	lib-src
	cd src; ../arch-lib/etags *.[ch] ../lisp/*.el ../lisp/term/*.el

check:
	@echo "We don't have any tests for GNU Emacs yet."

dist:
	make-dist