Skip to content
Makefile.in 6.37 KiB
Newer Older
#  DIST: This is the distribution Makefile for MKCL.  configure can
#  DIST: make most of the changes to this file you might want, so try
#  DIST: that first.
#
#
#  Copyright (c) 2010, Jean-Claude Beaudoin.
#  Copyright by a number of previous anonymous authors
#            presumed to be the same as for the rest of MKCL.
#
#  MKCL is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 3 of the License, or (at your option) any later version.
#
#  See file './Copyright' for full details.
#
#


# make all	to compile and build Emacs.
# make install	to install it.
# make TAGS	to update tags tables.
#
# make clean  or  make mostlyclean
#      Delete all files from the current directory that are normally
#      created by building the program.	 Don't delete the files that
#      record the configuration.  Also preserve files that could be made
#      by building, but normally aren't because the distribution comes
#      with them.
#
#      Delete `.dvi' files here if they are not part of the distribution.
# 
# make distclean
#      Delete all files from the current directory that are created by
#      configuring or building the program.  If you have unpacked the
#      source and built the program without creating any other files,
#      `make distclean' should leave only the files that were in the
#      distribution.
# 
# make realclean
#      Delete everything from the current directory that can be
#      reconstructed with this Makefile.  This typically includes
#      everything deleted by distclean.

SHELL = /bin/sh
MACHINE = @MACHINE_VERSION@

# ========================= Last release ================================

VERSION=@PACKAGE_VERSION@
WWW=
ADDRESS=

# ==================== Things `configure' Might Edit ====================

#  Where to find the source code.
#  This is set by the configure script's `--srcdir' option.
srcdir=@srcdir@

prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
infodir=@infodir@
mandir=@mandir@
libdir=@libdir@
datarootdir=@datarootdir@

#  What to release
TAR_CONTENTS=Makefile.in README.1st LGPL ANNOUNCEMENT Copyright doc \
	configure src/c src/cmp src/clos src/CHANGELOG src/lsp src/doc \
	src/mkcl  src/gmp src/config* src/install.sh src/Makefile.in \
	src/util contrib/ src/clx src/gc src/*.in src/*.m4 src/gabriel \
	src/tests/Makefile.in src/ansi-tests/Makefile.in msvc examples

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

#  Allow the user to specify the install program.
@SET_MAKE@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@

# ============================= Build ==============================

.PHONY:	all

Makefile: Makefile.in src/config.status
	(cd src; ./config.status)

depend:
	cd src; $(MAKE) depend


# ==================== Installation ====================

INSTALL_TARGET = @INSTALL_TARGET@

install: src/Makefile
	cd src; $(MAKE) $(INSTALL_TARGET)

uninstall:
	cd src; $(MAKE) uninstall

# ==================== Cleaning up and miscellanea ====================

#   `clean'
#        Delete all files from the current directory that are normally
#        created by building the program.  Don't delete the files that
#        record the configuration.  Also preserve files that could be made
#        by building, but normally aren't because the distribution comes
#        with them.
#
clean:
	cd src; $(MAKE) clean

#   `distclean'
#        Delete all files from the current directory that are created by
#        configuring or building the program.  If you have unpacked the
#        source and built the program without creating any other files,
#        `make distclean' should leave only the files that were in the
#        distribution.

distclean: clean
	cd src; $(MAKE) distclean
	rm -f Makefile

#   `realclean'
#        Delete everything from the current directory that can be
#        reconstructed with 'configure' and this Makefile.in.
#        One exception, however: `make realclean' should not delete
#        `configure' even if `configure' can be remade using a rule in the
#        Makefile.  More generally, `make realclean' should not delete
#        anything that needs to exist in order to run `configure' and then
#        begin to build the program.
realclean: distclean
	rm -f *~
	cd src; $(MAKE) realclean

# ==================== Various means of distribution ====================

TAR_DIR=mkcl-$(VERSION)

doc: src/doc/index.html
	-mkdir doc
	(cd src/doc; make html); cp src/doc/*.html doc
src/doc/index.html:
	cd src/doc; $(MAKE)

source-dist: $(TAR_DIR).tgz

rpmdir=$(shell rpm --showrc | grep '^-[0-9]*:.*[^{]_topdir' | sed 's,^.*topdir[ 	]*\(.*\)[ 	]*,\1,')
rpmbuild=$(shell if [ -z `which rpmbuild` ]; then echo "rpm"; else echo "rpmbuild"; fi)

# OBSOLETE!!!
# rpm: doc
# 	-rm -rf $(TAR_DIR)
# 	mkdir $(TAR_DIR) $(TAR_DIR)/src \
# 	$(TAR_DIR)/src/tests $(TAR_DIR)/src/ansi-tests && \
# 	for i in $(TAR_CONTENTS); do cp -rf $$i $(TAR_DIR)/$$i; done && \
# 	tar -cz --exclude '*~' --exclude '#*' --exclude 'CVS' -f $(rpmdir)/SOURCES/$(TAR_DIR).tgz $(TAR_DIR)
# 	if [ -f /etc/SuSE-release ]; then HOST=SUSE; else HOST=REDHAT; fi; \
# 	cat src/util/mkcl.spec |\
# 	sed 's,MKCL_VERSION,$(VERSION),;s,^#% '$${HOST}' ,,g;'|\
# 	grep -v '^#% ' > $(rpmdir)/SPECS/mkcl.spec;
# 	rpm -ba $(rpmdir)/SPECS/mkcl.spec

$(TAR_DIR):
	git clone .git $(TAR_DIR)
$(TAR_DIR).tgz: $(TAR_DIR)
	cd $(TAR_DIR) && git pull && git reset --hard
	tar -cz --exclude .git -f $(TAR_DIR).tgz $(TAR_DIR)

binary-dist: all
	su -c "rm -rf tmp"
	mkdir tmp
	for i in tmp$(bindir) tmp$(infodir) tmp$(mandir) tmp$(libdir); do \
	(echo $$i; IFS="/"; \for k in $$i; do echo $$k; (test -d $$k || mkdir $$k); chmod 755 $$k; cd $$k; done); \
	done
	prefix=`pwd`/tmp; cd src; $(MAKE) install prefix=$(prefix)
	su -c "chown -R root.root tmp && cd tmp; tar czf ../mkcl-$(VERSION)-$(MACHINE).tgz * && cd .. && rm -rf tmp"

# This creates a ZIP file with a flattened directory structure
windows-dist: all
	cd src; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \
	$(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR); \
	zip -r $(TAR_DIR).zip $(TAR_DIR)
windows-nsi: all
	cd src; rm -rf $(TAR_DIR); mkdir $(TAR_DIR); \
	$(MAKE) flatinstall prefix=`pwd`/$(TAR_DIR)
	`pwd`/src/util/mkcl_nsi.sh `pwd`/src/util/mkcl.nsi src/$(TAR_DIR)
	makensis.exe src/$(TAR_DIR)/mkcl.nsi
	mv src/$(TAR_DIR)/Setup.exe mkcl-$(VERSION).exe