# 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))' EXCLUDEDFILES=autogen.sh .cvsignore .gitignore doc/.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/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/jurabib.el style/csquotes.el style/jsarticle.el \ style/jsbook.el style/babel.el style/dk-bib.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 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= COMMITTER= # Tag the release. # Pass `COMMITTER=' argument only if it is different from # your git name and email. `' should be in the form # "John Doe " # # 3) dist TAG= # Create the tar ball and other release files and put them into $FTPDIR. # # 4) xemacs-package TAG= # Create the precompiled XEmacs package. # # 5) windows-package WEMACSVER= 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= # 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= # Create documentation for AUCTeX home page. # # 9) preview-ball 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 .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