# Makefile for AUCTeX
# Maintainer: auctex-devel@gnu.org
# Copyright (C) 2003-2008, 2010, 2013-2015 Free Software
# Foundation, Inc.
# This file is part of AUCTeX.
# AUCTeX 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, or (at your option)
# any later version.
# AUCTeX 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 AUCTeX; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
@SET_MAKE@
prefix = @prefix@$(null)
exec_prefix = @exec_prefix@$(null)
libdir = @libdir@$(null)
packagedatadir = @packagedatadir@$(null)
datarootdir = @datarootdir@$(null)
datadir = @datadir@$(null)
localstatedir = @localstatedir@$(null)
infodir = @infodir@$(null)
lispdir = @lispdir@$(null)
auctexstartfile=@auctexstartfile@
previewstartfile = @previewstartfile@
packagelispdir = @packagelispdir@$(null)
packagedatadir = @packagedatadir@$(null)
packagedir = @packagedir@$(null)
autodir = @autodir@$(null)
preview_enabled=@preview_enabled@
styledir = $(packagedatadir)/style
AUCTEXDATE = @AUCTEXDATE@
AUCTEXVERSION = @AUCTEXVERSION@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
MKINSTALLDIRS = ./mkinstalldirs
DESTDIR=
PACKAGE=auctex
PACKAGE_INFO=auctex preview-latex
EMACS=@EMACS@
ELCC=$(EMACS) -batch -q -no-site-file -no-init-file -l lpath.el
AUTOLOAD=--eval '(let ((generated-autoload-file (expand-file-name "$@"))) \
(mapcar (function update-file-autoloads) command-line-args-left) \
(save-buffers-kill-emacs t))'
PREVIEW_AUTOLOAD=--eval '(let ((generated-autoload-file (expand-file-name "$@"))) \
(update-file-autoloads "preview.el")(save-buffers-kill-emacs t))'
# Files and directories excluded from distributed tar ball.
EXCLUDEDFILES=autogen.sh .gitignore doc/.gitignore doc/tex-ref.log \
latex/.gitignore README.GIT tests build-aux
.SUFFIXES: .el .elc .texi
SHELL = /bin/sh
CP = cp -p
CP_A = $(CP) -R
DIST_PREFIX=$(PWD)/auctex-dist
FTPDIR = $(DIST_PREFIX)/ftp
WWWDIR = $(DIST_PREFIX)/www
CTANDIR = $(DIST_PREFIX)/ctan
XEMACS_BUILD_DIR = xemacs-build
PREVIEW_BUILD_DIR = preview-build
COMMITTER="`git config --get user.name`\ \ \<`git config --get user.email`\>"
RPMROOT = /usr/src/redhat
RPM_SIGN = --sign
MULESRC = @MULESRC@
MULEELC = @MULEELC@
AUCSRC = tex.el tex-buf.el tex-style.el plain-tex.el latex.el tex-info.el \
texmathp.el multi-prompt.el tex-mik.el font-latex.el tex-font.el \
context.el context-en.el context-nl.el tex-fold.el \
toolbar-x.el tex-bar.el bib-cite.el tex-ispell.el
AUCELC = $(AUCSRC:.el=.elc)
STYLESRC = style/prosper.el \
style/slides.el style/foils.el style/amstex.el \
style/article.el style/book.el style/letter.el \
style/report.el style/amsart.el style/amsbook.el \
style/epsf.el style/psfig.el style/latexinfo.el \
style/dutch.el style/german.el style/dk.el \
style/j-article.el style/j-book.el style/j-report.el \
style/jarticle.el style/jbook.el style/jreport.el \
style/tarticle.el style/tbook.el style/treport.el \
style/jsarticle.el style/jsbook.el style/jsreport.el \
style/dinbrief.el style/virtex.el style/plfonts.el \
style/plhb.el style/harvard.el style/swedish.el \
style/danish.el style/slovak.el style/czech.el \
style/amsmath.el style/amstext.el style/amsbsy.el \
style/amsopn.el style/amsthm.el style/natbib.el \
style/index.el style/makeidx.el style/multind.el \
style/varioref.el style/fancyref.el style/mdwlist.el \
style/ngerman.el style/graphicx.el style/graphics.el \
style/verbatim.el style/scrbase.el style/scrartcl.el \
style/scrbook.el style/scrreprt.el style/scrlttr2.el \
style/scrpage2.el style/captcont.el style/subfigure.el \
style/paralist.el style/booktabs.el style/emp.el \
style/jura.el style/alphanum.el style/beamer.el \
style/alltt.el style/italian.el style/doc.el \
style/ltxdoc.el style/ltx-base.el style/units.el \
style/nicefrac.el style/url.el style/listings.el \
style/inputenc.el style/frenchb.el style/francais.el \
style/MinionPro.el style/pdfsync.el style/polish.el \
style/polski.el style/icelandic.el style/comment.el \
style/flashcards.el style/pstricks.el style/nomencl.el \
style/hyperref.el style/bulgarian.el style/CJK.el \
style/ruby.el style/CJKutf8.el style/tabularx.el \
style/multido.el style/pst-grad.el style/pst-node.el \
style/pst-plot.el style/pst-slpe.el style/shortvrb.el \
style/austrian.el style/naustrian.el style/french.el \
style/lettrine.el style/multicol.el style/xspace.el \
style/setspace.el style/biblatex.el style/siunitx.el \
style/bm.el style/footmisc.el style/ulem.el \
style/bigdelim.el style/bigstrut.el style/everysel.el \
style/mathtools.el style/ragged2e.el style/amssymb.el \
style/lscape.el style/epigraph.el style/mflogo.el \
style/multirow.el style/imakeidx.el style/afterpage.el \
style/longtable.el style/lipsum.el style/kantlipsum.el \
style/memoir.el style/placeins.el style/nameref.el \
style/fancynum.el style/fancyhdr.el style/filecontents.el \
style/array.el style/kpfonts.el style/acro.el \
style/acronym.el style/xparse.el style/fancyvrb.el \
style/tabulary.el style/fontspec.el style/unicode-math.el \
style/luacode.el style/metalogo.el style/english.el \
style/exercise.el style/plext.el style/cleveref.el \
style/eso-pic.el style/fontaxes.el style/AnonymousPro.el \
style/mdsymbol.el style/MyriadPro.el style/textcomp.el \
style/XCharter.el style/zlmtt.el style/ifluatex.el \
style/luatextra.el style/erewhon.el style/baskervaldx.el \
style/fbb.el style/newtxmath.el style/newtxsf.el \
style/newtxtext.el style/newtxttt.el style/minted.el \
style/wrapfig.el style/relsize.el style/currvita.el \
style/tcolorbox.el style/color.el style/expl3.el \
style/bidibeamer.el style/enumitem.el style/caption.el \
style/geometry.el style/ltablex.el style/ltxtable.el \
style/mn2e.el style/colortbl.el style/attachfile.el \
style/newpxtext.el style/newpxmath.el style/pdfpages.el \
style/mnras.el style/environ.el style/polyglossia.el \
style/vwcol.el style/textpos.el style/transparent.el \
style/fontenc.el style/Alegreya.el style/gloss-italian.el \
style/newfloat.el style/subcaption.el style/AlegreyaSans.el \
style/hologo.el style/theorem.el style/ntheorem.el \
style/splitidx.el style/tikz.el style/xcolor.el \
style/pdflscape.el style/commath.el style/empheq.el \
style/framed.el style/paracol.el style/menukeys.el \
style/bidi.el style/FiraMono.el style/FiraSans.el \
style/bicaption.el style/amsfonts.el style/subfiles.el \
style/dcolumn.el style/mdframed.el style/tcolorboxlib-raster.el \
style/titleps.el style/titlesec.el style/titletoc.el \
style/exam.el style/breqn.el style/sourcecodepro.el \
style/preview.el style/fvextra.el style/jurabib.el \
style/csquotes.el style/babel.el style/dk-bib.el \
style/floatrow.el style/moodle.el style/canadian.el \
style/arabxetex.el style/australian.el style/newzealand.el \
style/xltabular.el
STYLEELC = $(STYLESRC:.el=.elc)
ifeq (@preview_enabled@,yes)
PREVIEWSRC = @PLAT_LISP@ preview.el
PREVIEWELC = $(PREVIEWSRC:.el=.elc)
PREVIEWLATEX = test "x$(packagedir)" != xno || $(MAKE) preview-latex.el
TEXMF = (cd latex ; $(MAKE) all)
# Install actions
INS_TEXMF = (cd latex ; $(MAKE) DESTDIR=$(DESTDIR) install)
PREVIEW_INS_STARTUP = test $(packagedir) != no || \
$(INSTALL_DATA) preview-latex.el $(DESTDIR)$(previewstartfile)
else
# Don't do anything with preview if the user doesn't want the
# preview component.
PREVIEWSRC =
PREVIEWELC =
PREVIEWLATEX =
TEXMF =
INS_TEXMF =
PREVIEW_INS_STARTUP =
endif
CLEANFILES = $(AUCELC) $(STYLEELC) $(MULEELC) $(PREVIEWELC) preview-latex.el
DISTCLEANFILES = Makefile tex-site.el tex-site.el.out auctex.el \
auto-loads.el config.* preview.el
DISTTEXTS = FAQ INSTALL INSTALL.windows README TODO PROBLEMS.preview
NOSEARCH = style/.nosearch
all: texmf lisp docs
.PHONY: all lisp info dvi some install install-el install-lisp docs \
install-docs install-auto install-metadata install-startup \
install-man clean distclean maintainer-clean extraclean \
tar-ball-clean check-tag check release-commit dist snapshot \
patch tar-ball rpm-packages wc xemacs-package windows-package \
release-sign release-upload preview-ball uninstall
texmf: latex/Makefile
$(TEXMF)
lisp: tex-site.el $(AUCSRC) $(STYLESRC) $(MULESRC) $(PREVIEWSRC)
$(ELCC) -f batch-byte-compile $(AUCSRC) $(STYLESRC) $(MULESRC) $(PREVIEWSRC)
$(PREVIEWLATEX)
preview-latex.el: preview.el
rm -f preview-latex.el
-$(EMACS) -batch -no-site-file -no-init-file $(PREVIEW_AUTOLOAD) ; \
test -r $@ || { \
echo ";; Auto-generated preview-latex.el" > $@ ; \
echo "" >> $@ ; \
$(EMACS) -batch -no-site-file -no-init-file $(PREVIEW_AUTOLOAD) ; \
}
docs:
cd doc ; $(MAKE) all
info:
cd doc ; $(MAKE) info
dvi:
cd doc ; $(MAKE) dvi
tex-site.el: tex-site.el.out auto-loads.el Makefile
cat tex-site.el.out >$@
test X$(packagedir) != Xno || cat auto-loads.el >>$@
echo "(provide 'tex-site)" >>$@ ; \
test X$(packagedir) != Xno || echo ";;; tex-site.el ends here" >>$@
tex-site.el.out: tex-site.el.in Makefile config.status
./config.status
auctex.el: auctex.el.in config.status
./config.status
latex/Makefile: latex/Makefile.in Makefile config.status
./config.status
configure: configure.ac aclocal.m4
autoconf
Makefile: Makefile.in config.status
./config.status
doc/Makefile: doc/Makefile.in config.status ChangeLog.1
./config.status
config.status: configure
./config.status --recheck
auto-loads.el: $(AUCSRC) $(MULESRC) Makefile
test X$(packagedir) != Xno || { \
rm -f $@ ; \
$(ELCC) $(AUTOLOAD) $(AUCSRC) $(MULESRC) || : ; \
test -r $@ || { \
echo ";; Auto-generated part of tex-site.el" > $@ ; \
echo "" >> $@ ; \
$(ELCC) $(AUTOLOAD) $(AUCSRC) $(MULESRC) ; \
} ; \
}
some: $(AUCELC) $(STYLEELC)
install: install-texmf install-lisp install-docs install-images \
install-startup
$(MAKE) 'DESTDIR=$(DESTDIR)' install-metadata
install-man: doc/Makefile
cd doc && $(MAKE) 'DESTDIR=$(DESTDIR)' install-man
$(INSTALL_DATA) RELEASE $(DESTDIR)$(packagedir)/man/auctex
install-startup:
$(PREVIEWLATEX)
$(PREVIEW_INS_STARTUP)
test $(packagedir) != no || \
$(INSTALL_DATA) auctex.el $(DESTDIR)$(auctexstartfile)
install-texmf:
$(INS_TEXMF)
install-el:
-$(MKINSTALLDIRS) $(DESTDIR)$(lispdir)
rm -f $(DESTDIR)$(packagelispdir)/tex-site.el # Remove old (Git-version) mistakes
test ! -f $(DESTDIR)$(lispdir)/tex-site.el || { \
if grep -q "tex-site.*Don't edit." $(DESTDIR)$(lispdir)/tex-site.el; then \
echo "Overwriting old tex-site.el" ; \
else \
echo "Renaming old tex-site.el to tex-site.el.save" ; \
mv $(DESTDIR)$(lispdir)/tex-site.el $(DESTDIR)$(lispdir)/tex-site.el.save ; \
fi; \
}
if test X$(packagedir) = Xno; \
then $(INSTALL_DATA) tex-site.el $(DESTDIR)$(lispdir) ; \
else rm -f $(DESTDIR)$(lispdir)/tex-site.el ; \
fi
-$(MKINSTALLDIRS) $(DESTDIR)$(packagelispdir)
@: $(MAKE) ; for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \
echo '$(INSTALL_DATA)' $$x '$(DESTDIR)$(packagelispdir)' ; \
done
@for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \
$(INSTALL_DATA) $$x $(DESTDIR)$(packagelispdir) ; \
done;
-$(MKINSTALLDIRS) $(DESTDIR)$(styledir)
$(INSTALL_DATA) $(NOSEARCH) $(DESTDIR)$(styledir)
@: $(MAKE) ; for x in $(STYLESRC) ; do \
echo '$(INSTALL_DATA)' $$x '$(DESTDIR)$(styledir)' ; \
done;
@for x in $(STYLESRC) ; do \
$(INSTALL_DATA) $$x $(DESTDIR)$(styledir) ; \
done;
-$(MKINSTALLDIRS) $(DESTDIR)$(autodir)
-$(INSTALL_DATA) $(NOSEARCH) $(DESTDIR)$(autodir)
install-lisp: some install-el
@: $(MAKE) ; for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \
echo '$(INSTALL_DATA)' $${x}c '$(DESTDIR)$(packagelispdir)' ; \
done
@for x in $(AUCSRC) $(MULESRC) $(PREVIEWSRC); do \
$(INSTALL_DATA) $${x}c $(DESTDIR)$(packagelispdir) ; \
done
@: $(MAKE) ; for x in $(STYLESRC) ; do \
echo '$(INSTALL_DATA)' $${x}c '$(DESTDIR)$(styledir)' ; \
done
@for x in $(STYLESRC) ; do \
$(INSTALL_DATA) $${x}c $(DESTDIR)$(styledir) ; \
done
install-images:
-$(MKINSTALLDIRS) $(DESTDIR)$(packagedatadir)/images
@: $(MAKE) ; for x in images/*.xpm ; do \
echo '$(INSTALL_DATA)' $${x} '$(DESTDIR)$(packagedatadir)/images' ; \
done
@for x in images/*.xpm ; do \
$(INSTALL_DATA) $${x} $(DESTDIR)$(packagedatadir)/images ; \
done
install-docs: doc/Makefile
cd doc ; $(MAKE) DESTDIR=$(DESTDIR) install-auctex
test "x$(preview_enabled)" != xyes || { \
cd doc ; $(MAKE) DESTDIR=$(DESTDIR) install-preview; }
install-auto:
@echo "Use \"M-x TeX-auto-generate-global RET\" instead."
install-metadata:
test "x$(packagedir)" = xno || { \
$(MKINSTALLDIRS) $(DESTDIR)$(packagedir)/pkginfo || : ; \
$(ELCC) -l prv-install -f preview-make-package $(DESTDIR)$(packagedir) "$(PACKAGE)" \"`echo $(AUCTEXDATE)|sed 's/\(.*\)-\(.*\)-\(.*\)/\1.\2\3/'`\" \"$(AUCTEXVERSION)\" tex-site.el && \
cd $(DESTDIR)$(packagedir) && \
find "etc/$(PACKAGE)" "lisp/$(PACKAGE)" -print >"pkginfo/MANIFEST.$(PACKAGE)" && \
for i in $(PACKAGE_INFO); do \
test -r "info/$$i.info" && echo "info/$$i.info" >> "pkginfo/MANIFEST.$(PACKAGE)" ; \
done && \
echo "pkginfo/MANIFEST.$(PACKAGE)" >> "pkginfo/MANIFEST.$(PACKAGE)" ; \
}
uninstall:
rm -rf $(DESTDIR)$(packagelispdir) $(DESTDIR)$(packagedatadir) \
$(DESTDIR)$(autodir)
if test X$(packagedir) = Xno ; then \
rm -f $(DESTDIR)$(lispdir)/tex-site.el \
$(DESTDIR)$(auctexstartfile) ; \
else \
rm -f $(DESTDIR)$(packagedir)/man/auctex/RELEASE \
$(DESTDIR)$(packagedir)/pkginfo/MANIFEST.$(PACKAGE); \
fi
cd doc ; $(MAKE) DESTDIR=$(DESTDIR) uninstall
rm -f $(DESTDIR)$(previewstartfile)
rm -rf $(DESTDIR)$(packagelispdir)
(cd latex ; $(MAKE) DESTDIR=$(DESTDIR) uninstall)
.el.elc:
$(ELCC) -f batch-byte-compile $<
clean: doc/Makefile
rm -f $(CLEANFILES)
cd doc && $(MAKE) clean
distclean: doc/Makefile
rm -f $(CLEANFILES) $(DISTCLEANFILES)
cd doc && $(MAKE) distclean
maintainer-clean: doc/Makefile
rm -f $(DISTTEXTS)
rm -rf autom4te.cache
rm -f $(CLEANFILES) $(DISTCLEANFILES)
cd doc && $(MAKE) maintainer-clean
extraclean: maintainer-clean
rm -f *~ \#*\#
tar-ball-clean: check-tag
rm -rf auctex-$(TAG)/
rm -rf $(XEMACS_BUILD_DIR)/
wc:
wc $(AUCSRC) $(STYLESRC)
# ----------------------------------------------------------------------
# The targets below update the ChangeLog from git log
# and are intended to be used only by the maintainers.
# These rules are adapted from GNU Emacs Makefile.
.PHONY: ChangeLog change-history change-history-commit change-history-nocommit
.PHONY: preferred-branch-is-current unchanged-history-files
CHANGELOG = ChangeLog
auctexlog = build-aux/gitlog-to-auctexlog
# The ChangeLog history files are called ChangeLog.1, ChangeLog.2, ...,
# ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX). $(CHANGELOG_N) stands for
# the newest (highest-numbered) ChangeLog history file.
CHANGELOG_HISTORY_INDEX_MAX = 1
CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX)
# Check that we are in a good state for changing history.
PREFERRED_BRANCH = master
preferred-branch-is-current:
git branch | grep -q '^\* $(PREFERRED_BRANCH)$$'
unchanged-history-files:
x=$$(git diff-files --name-only $(CHANGELOG_N) $(auctexlog)) && \
test -z "$$x"
# Convert git commit log to ChangeLog file. make-dist uses this.
# I guess this is PHONY so it always updates?
ChangeLog:
./$(auctexlog) -o $(CHANGELOG) -n $(CHANGELOG_HISTORY_INDEX_MAX)
# Regular expression that matches the newest commit covered by a ChangeLog.
new_commit_regexp = ^commit [0123456789abcdef]* (inclusive)
# Copy newer commit messages to the start of the ChangeLog history file,
# and consider them to be older.
change-history-nocommit: #preferred-branch-is-current unchanged-history-files
-rm -f ChangeLog.tmp
$(MAKE) ChangeLog CHANGELOG=ChangeLog.tmp
sed '/^This file records repository revisions/,$$d' \
ChangeLog.tmp > $(CHANGELOG_N).tmp
new_commit_line=`grep --text '$(new_commit_regexp)' ChangeLog.tmp` && \
sed 's/$(new_commit_regexp).*/'"$$new_commit_line/" \
$(CHANGELOG_N) >>$(CHANGELOG_N).tmp
rm ChangeLog.tmp
mv $(CHANGELOG_N).tmp $(CHANGELOG_N)
change-history: change-history-nocommit
$(MAKE) $@-commit
# If 'make change-history' fails because the newest ChangeLog history
# file contains invalid text, fix the file by hand and then run
# 'make change-history-commit'.
change-history-commit:
git commit -m'; make $@' $(CHANGELOG_N) $(auctexlog)
# ----------------------------------------------------------------------
# The targets below are concerned with the release process and
# intended to be used only by the maintainers.
# Steps for making a release:
#
# 0) check
# Run tests using ERT tool. Not necessary but strongly suggested before a
# release.
#
# 1) change-history
# Update the ChangeLog file.
#
# 2) release-commit TAG=<tag> COMMITTER=<committer>
# Tag the release.
# Pass `COMMITTER=<committer>' argument only if it is different from
# your git name and email. `<committer>' should be in the form
# "John Doe <john.doe@example.com>"
#
# 3) dist TAG=<tag>
# Create the tar ball and other release files and put them into $FTPDIR.
#
# 4) xemacs-package TAG=<tag>
# Create the precompiled XEmacs package.
#
# 5) windows-package WEMACSVER=<emacs-version> TAG=<tag>
# Create the precompiled AUCTeX package for Windows.
# This requires a compiled Emacs of the same version at location $WEMACS.
# NOTA BENE: you may need to use bash shell for this recipe to work.
#
# 6) release-sign TAG=<tag>
# Sign the tar ball and create directive files for upload. NOTA BENE: you
# may need to use bash shell for this recipe to work.
#
# 7) release-upload
# Upload files to GNU FTP server.
#
# 8) www-doc TAG=<tag>
# Create documentation for AUCTeX home page.
#
# 9) preview-ball TAG=<tag>
# Create preview package. (Not for GNU FTP server but for CTAN.)
dist: check-tag tar-ball
snapshot: dist
check-tag:
@if [ "X$(TAG)" = "X" ]; then echo "*** Error: No TAG ***"; exit 1; fi
check:
cd tests && $(MAKE) check
release-commit: check-tag
@echo "Tagging release $(TAG) in Git ..."
sleep 5
mv $(CHANGELOG_N) ChangeLog.old
mv ChangeLog-preview ChangeLog-preview.old
# Make sure the release ChangeLog entry is encoded with UTF-8.
# This requires the `iconv' program.
echo `date "+%Y-%m-%d "`" ${COMMITTER}" | iconv -t UTF-8 - > $(CHANGELOG_N)
echo >> $(CHANGELOG_N)
echo " * Version" $(TAG) released. >> $(CHANGELOG_N)
echo >> $(CHANGELOG_N)
cp $(CHANGELOG_N) ChangeLog-preview
cat ChangeLog.old >> $(CHANGELOG_N)
cat ChangeLog-preview.old >> ChangeLog-preview
git commit -m '; Release_$(TAG)' -- $(CHANGELOG_N) ChangeLog-preview
git tag release_`echo $(TAG) | sed -e 's/[.]/_/g'`
@echo
@echo "Congratulations! Release $(TAG) of AUCTeX is ready."
@echo "Please, remember to run"
@echo " git push --tags origin master"
@echo "to propagate release commit and tag to the remote repository."
tar-ball: doc/Makefile
test ! -d auctex-$(TAG) || rm -r auctex-$(TAG)
mkdir auctex-$(TAG)
# Use TAG_EXPORT if set (for snapshots)
git archive $${TAG_EXPORT:=`echo release_$(TAG) | sed 's/[.]/_/g'`} | tar -xC auctex-$(TAG)
cd auctex-$(TAG) && AUCTEXVERSION=$(TAG) AUCTEXDATE=$(AUCTEXDATE) ./autogen.sh && rm -rf $(EXCLUDEDFILES)
chmod -R go-w+rX auctex-$(TAG)
rm -rf $(FTPDIR)
mkdir -p $(FTPDIR)
tar -cf - --owner=root --group=root auctex-$(TAG) | gzip --best > $(FTPDIR)/auctex-$(TAG).tar.gz
-zip -r $(FTPDIR)/auctex-$(TAG).zip auctex-$(TAG)
$(CP) auctex-$(TAG)/CHANGES $(FTPDIR)/CHANGES
$(CP) auctex-$(TAG)/RELEASE $(FTPDIR)/RELEASE-$(TAG)
# The following files aren't produced in auctex-$(TAG) since they
# are not in the tarball and should not become part of the patch target.
$(CP) auctex-$(TAG)/doc/version.texi doc/version.texi
cd doc && $(MAKE) extradist
rm -f doc/version.texi
$(CP) doc/auctex.ps doc/auctex.pdf doc/tex-ref.ps doc/tex-ref.pdf $(FTPDIR)
$(CP) $(CHANGELOG_N) $(FTPDIR)
rpm-packages:
rpmbuild -ta $(RPM_SIGN) $(FTPDIR)/auctex-$(TAG).tar.gz
$(CP) $(RPMROOT)/{RPMS/noarch/{auctex-emacs,preview-tetex},SRPMS/auctex}-$(TAG)[.-]* $(FTPDIR)
@echo "If you need to prepare RPM on some other system, you need to add"
@echo "them in $(FTPDIR) before 'make release-sign'."
sleep 2
patch:
diff -u auctex-$(OLD) auctex-$(TAG) | gzip --best \
>$(FTPDIR)/auctex-$(OLD)-to-$(TAG).patch.gz
xemacs-package: check-tag
rm -rf $(XEMACS_BUILD_DIR)
$(CP_A) auctex-$(TAG) $(XEMACS_BUILD_DIR)
cd $(XEMACS_BUILD_DIR) \
&& ./configure INSTALL_INFO=: TEXHASH=: --with-xemacs --with-packagedir=`pwd`/xemacs-package --without-texmf-dir --with-auto-dir=etc/auctex/auto \
&& $(MAKE) all install-man install && cd xemacs-package && tar -cf - --owner=root --group=root . | gzip --best > $(FTPDIR)/auctex-$(TAG)-pkg.tar.gz
# Pre-compiled AUCTeX package for Emacs on Windows
WBUILDDIR=$(PWD)/windows-package
WEMACS=/usr/src/emacs-$(WEMACSVER)/src/emacs
WPACKAGE=auctex-$(TAG)-e$(WEMACSVER)-msw.zip
# Starting from Emacs 24.4, the name of the Windows package and the tree
# structure of the package have been changed. The following variables cater for
# these differences.
ifeq ($(shell echo "$(WEMACSVER)" | grep '\(2[2-3].[1-4]\|24.[1-3]\)' -),$(WEMACSVER))
WEMACSDATAROOTDIR=""
WEMACSEXTRACTDIR=""
WEMACSPACKAGE="emacs-$(WEMACSVER)-bin-i386.zip"
WEMACSSITELISP="site-lisp"
else
WEMACSDATAROOTDIR="share/"
WEMACSEXTRACTDIR="emacs-$(WEMACSVER)"
# And just to add more complexity, the package name changed again with Emacs
# 24.5. Actually, we don't really need to keep track of all these changes as we
# should support only the latest Emacs version, but unless something else
# changes again again in the near future we can keep them (and it's useful to
# reproduce old AUCTeX packages!).
ifeq (24.4,$(WEMACSVER))
WEMACSPACKAGE="emacs-$(WEMACSVER)-bin-i686-pc-mingw32.zip"
else
WEMACSPACKAGE="emacs-$(WEMACSVER)-bin-i686-mingw32.zip"
endif
WEMACSSITELISP="$(WEMACSDATAROOTDIR)/emacs/site-lisp"
endif
WPACKAGEFILES=$(WEMACSSITELISP)/auctex $(WEMACSSITELISP)/site-start.d \
$(WEMACSSITELISP)/site-start.el $(WEMACSSITELISP)/tex-site.el \
var/auctex $(WEMACSDOC) $(WEMACSDATAROOTDIR)doc $(WEMACSDATAROOTDIR)info/dir \
$(WEMACSDATAROOTDIR)info/auctex.info* $(WEMACSDATAROOTDIR)info/preview-latex.info*
windows-package: check-tag
@if [ "X$(WEMACSVER)" = "X" ]; then \
echo "*** Error: No Emacs version (WEMACSVER) ***"; \
exit 1; \
fi
# Make sure the prerequisites are available
test -d $(WBUILDDIR) || mkdir $(WBUILDDIR)
test -f $(WBUILDDIR)/$(WEMACSPACKAGE) \
|| { cd $(WBUILDDIR) \
&& wget http://ftp.gnu.org/gnu/emacs/windows/$(WEMACSPACKAGE); }
test -f $(WBUILDDIR)/auctex-$(TAG).zip \
|| { test -f $(FTPDIR)/auctex-$(TAG).zip \
&& $(CP) $(FTPDIR)/auctex-$(TAG).zip $(WBUILDDIR); } \
|| { cd $(WBUILDDIR) \
&& wget http://ftp.gnu.org/gnu/auctex/auctex-$(TAG).zip; }
# Reset to clean state
cd $(WBUILDDIR) \
&& rm -rf emacs-$(WEMACSVER) \
&& rm -rf auctex-$(TAG) \
&& unzip -d "$(WEMACSEXTRACTDIR)" $(WEMACSPACKAGE) \
&& unzip auctex-$(TAG).zip
rm -f $(WPACKAGE)
# Create site-start.el and site-start.d
cd $(WBUILDDIR)/emacs-$(WEMACSVER)/$(WEMACSSITELISP) \
&& echo -e ";; Load files in \`site-start.d' directory.\
\n(dolist (file (directory-files\
\n (concat (file-name-directory load-file-name) \"site-start.d\")\
\n t \"\\\\\\\\.el\\\\\\\\'\"))\
\n (load file nil t t))" > site-start.el \
&& mkdir site-start.d
# Build and install AUCTeX
cd $(WBUILDDIR)/auctex-$(TAG) \
&& ./configure --prefix=$(WBUILDDIR)/emacs-$(WEMACSVER) \
--without-texmf-dir --with-emacs=$(WEMACS) \
--with-lispdir=$(WBUILDDIR)/emacs-$(WEMACSVER)/$(WEMACSSITELISP) \
--datarootdir=$(WBUILDDIR)/emacs-$(WEMACSVER)/$(WEMACSDATAROOTDIR) \
&& $(MAKE) \
&& sed -i -e 's/"\/[^\n]\+/(expand-file-name "..\/var\/auctex" (file-name-directory load-file-name))/' tex-site.el \
&& $(MAKE) install
# Create the package
test -d $(FTPDIR) || mkdir -p $(FTPDIR)
rm -f $(FTPDIR)/$(WPACKAGE)
cd $(WBUILDDIR)/emacs-$(WEMACSVER) \
&& zip -r $(FTPDIR)/$(WPACKAGE) $(WPACKAGEFILES)
release-sign: check-tag
rm -f $(FTPDIR)/*.{directive,asc,sig}
if [ "x$$GPG_AGENT_INFO" = "x" ]; then \
read -sp "Enter pass phrase: " phrase ; \
gpg_opt="--passphrase-fd 0"; \
else \
gpg_opt=""; phrase=""; \
fi; \
for i in $(FTPDIR)/*; do \
echo "$$phrase" | gpg --detach-sign $$gpg_opt $$i ; \
echo "version: 1.1" >$$i.directive; \
case $$i in *-$(TAG)*) echo "directory: auctex" >>$$i.directive;; \
*) echo "directory: auctex/$(TAG)-extra" >>$$i.directive ;; \
esac ; \
echo "filename: "`basename $$i` >>$$i.directive ; \
echo "$$phrase" | gpg $$gpg_opt --clearsign $$i.directive ; \
done
rm $(FTPDIR)/*.directive
release-upload:
@echo "Uploading everything in FTPDIR to GNU FTP server ..."
@sleep 5
ncftpput ftp-upload.gnu.org /incoming/ftp $(FTPDIR)/*
# AUCTeX and preview-latex manuals for the home page
www-doc: check-tag
rm -rf $(WWWDIR)
mkdir -p $(WWWDIR)/manual
$(CP) auctex-$(TAG)/doc/*.texi $(WWWDIR)/manual
cd $(WWWDIR)/manual \
&& wget -O gendocs.sh 'http://cvs.savannah.gnu.org/viewvc/%2acheckout%2a/texinfo/texinfo/util/gendocs.sh' \
&& wget -O gendocs.sh.patch 'http://git.savannah.gnu.org/gitweb/?p=auctex.git;a=blob_plain;f=gendocs.sh.patch;hb=gendocspatch' \
&& patch <gendocs.sh.patch \
&& chmod u+x gendocs.sh \
&& wget -O gendocs_template 'http://cvs.savannah.gnu.org/viewvc/%2acheckout%2a/texinfo/texinfo/util/gendocs_template' \
&& sed -i -e 's/html_node\/index\.html/%%PACKAGE%%\/index.html/' gendocs_template \
&& mkdir .texinfo \
&& echo -e "emacs split http://www.gnu.org/software/emacs/manual/html_node/emacs/\nemacs mono http://www.gnu.org/software/emacs/manual/html_mono/emacs.html\nreftex split http://www.gnu.org/software/auctex/manual/reftex/\nreftex mono http://www.gnu.org/software/auctex/manual/reftex.html\n" > .texinfo/htmlxref.cnf \
&& ./gendocs.sh --email bug-auctex@gnu.org --texi2html \
--html --use-nodes auctex "AUCTeX Manual" \
&& ./gendocs.sh --email bug-auctex@gnu.org --texi2html \
--html --use-nodes preview-latex "preview-latex Manual"
preview-ball: check-tag
test ! -d $(PREVIEW_BUILD_DIR) || rm -r $(PREVIEW_BUILD_DIR)
mkdir $(PREVIEW_BUILD_DIR)
# Use TAG_EXPORT if set (for snapshots)
git archive $${TAG_EXPORT:=`echo release_$(TAG) | sed 's/[.]/_/g'`} \
latex/ | tar -xC $(PREVIEW_BUILD_DIR) --strip-components=1
cd $(PREVIEW_BUILD_DIR) && $(MAKE) -f ../latex/Makefile preview.ins preview.pdf
chmod -R go-w+rX $(PREVIEW_BUILD_DIR)
test -d $(CTANDIR) || mkdir -p $(CTANDIR)
# CTAN requires a top level directory "preview/" for the archive.
cd $(PREVIEW_BUILD_DIR) && mkdir -p preview && \
cp README preview.dtx preview.ins preview.pdf preview/ && \
tar -cf - --owner=root --group=root preview/ | gzip --best > $(CTANDIR)/preview-$(TAG).tar.gz