# Makefile generator for EPL. # Usage: perl Makefile.PL # Copyright (C) 2001 by John Tobey, # jtobey@john-edwin-tobey.org. All rights reserved. # # This program 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 2 of the License, or # (at your option) any later version. # # This program 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 this program; see the file COPYING. If not, write to the # Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, # MA 02111-1307 USA use ExtUtils::MakeMaker; my $version = get_version_from_el (); my $doc_edition = 0.2; if ($ARGV[0] eq 'print_package_version') { print $version; exit; } if ($ARGV[0] eq 'write_version_texi') { open (VERSION, ">doc/version.texi") || die ("Can't write doc/version.texi: $!"); print VERSION "\@c !!! THIS IS A GENERATED FILE !!!\n"; print VERSION "\@c !!! DO NOT UPDATE THIS FILE !!!\n"; print VERSION "\@c !!! UPDATE $0 INSTEAD !!!\n"; my ($day, $mon, $year) = ((localtime ((stat "doc/epl.texi")[9]))[3, 4, 5]); printf VERSION "\@set UPDATED %d %s %d\n", $day, (qw(January February March April May June July August September October November December))[$month], $year + 1900; print VERSION "\@set EDITION $doc_edition\n"; print VERSION "\@set VERSION $version\n"; close (VERSION); exit; } WriteMakefile ( 'NAME' => 'Emacs::EPL', 'VERSION' => $version, ); warn ("Note: You need GNU Emacs 20 to run the test suite.\n"); exit; sub get_version_from_el { open (EL, "lisp/epl.el") || die ("Can't read lisp/epl.el: $!"); while () { return $1 if /^\(defconst epl-version "(.*?)"/; } die ("epl-version not defined in lisp/epl.el"); } sub MY::postamble { return q( TEXI_FILES = doc/epl.texi doc/fdl.texi doc/version.texi doc/epl.info: $(TEXI_FILES) makeinfo -I doc -o $@ doc/epl.texi doc/epl.html: $(TEXI_FILES) makeinfo -I doc --html -o $@ doc/epl.texi # For this job, any perl will do. doc/version.texi: Makefile.PL lisp/epl.el perl Makefile.PL write_version_texi all:: doc/epl.info doc/epl.html clean:: cd doc; rm -f *.aux *.cp *.dvi *.fn *.ky *.log *.pg *.toc *.tp *.vr maintainer-clean:: realclean rm -f doc/version.texi rm -f doc/*.html doc/*.info* # Building XEmacs packages. This has to happen in the xemacs-packages # CVS tree. See xemacs/Makefile. IN_XEMACS_TREE = test -f ../../XEmacs.rules srckit: dist binkit: $(IN_XEMACS_TREE) $(MAKE) -f xemacs/Makefile $@ clean:: if $(IN_XEMACS_TREE); then $(MAKE) -f xemacs/Makefile $@; fi realclean:: if $(IN_XEMACS_TREE); then $(MAKE) -f xemacs/Makefile distclean; fi ) }