Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

471 lines (370 sloc) 14.342 kb
# makefile for Gambit-C system.
# Copyright (c) 1994-2012 by Marc Feeley, All Rights Reserved.
PACKAGE_SHORTNAME = @PACKAGE_SHORTNAME@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
@SET_MAKE@
srcdir = @srcdir@
VPATH = @srcdir@
srcdirpfx = @srcdirpfx@
C_COMPILER = @C_COMPILER_MF@
C_PREPROC = @C_PREPROC_MF@
FLAGS_OBJ = @FLAGS_OBJ_MF@
FLAGS_DYN = @FLAGS_DYN_MF@
FLAGS_LIB = @FLAGS_LIB_MF@
FLAGS_EXE = @FLAGS_EXE_MF@
DEFS = @DEFS@
LIBS = @LIBS@
GAMBCLIB_DEFS = @GAMBCLIB_DEFS_MF@
LIB_PREFIX = @LIB_PREFIX@
LIB_EXTENSION = @LIB_EXTENSION@
GAMBCLIB = @GAMBCLIB@
GAMBCGSCLIB = @GAMBCGSCLIB@
GAMBCGSILIB = @GAMBCGSILIB@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_LIB = @INSTALL_LIB@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
LN_S = @LN_S@
RANLIB = @RANLIB@
RC = @RC@
GIT = @GIT@
HG = @HG@
prefix = @prefix@
exec_prefix = @exec_prefix@
includedir = @includedir@
libdir = @libdir@
bindir = @bindir@
docdir = @docdir@
infodir = @infodir@
emacsdir = @emacsdir@
libexecdir = @libexecdir@
datarootdir = @datarootdir@
datadir = @datadir@
htmldir = @htmldir@
dvidir = @dvidir@
pdfdir = @pdfdir@
psdir = @psdir@
localedir = @localedir@
mandir = @mandir@
# This directory's subdirectories are mostly independent; you can cd
# into them and run `make' without going through this makefile.
# To change the values of `make' variables: instead of editing makefiles,
# (1) if the variable is set in `config.status', edit `config.status'
# (which will cause the makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line.
MDEFINES = prefix=$(prefix) exec_prefix=$(exec_prefix) \
includedir=$(includedir) libdir=$(libdir) \
bindir=$(bindir) docdir=$(docdir) \
infodir=$(infodir) emacsdir=$(emacsdir)
SUBDIRS = include lib gsi gsc bin misc doc tests examples prebuilt
RCFILES = README INSTALL.txt LICENSE-2.0.txt LGPL.txt \
makefile.in configure configure.ac config.guess config.sub install-sh mkidirs \
relpath
GITRCFILES = .gitignore .gitattributes
HGRCFILES = .hgignore .hgtags
GENDISTFILES =
DISTFILES = $(RCFILES) $(GENDISTFILES)
GITDISTFILES = $(GITRCFILES)
HGDISTFILES = $(HGRCFILES)
#BUILD_FARM = farm
BUILD_FARM = localhost
#BUILD_HOST = baro.iro.umontreal.ca
BUILD_HOST = localhost
.SUFFIXES:
all:
all-pre:
all-post:
test -f "gsc-comp@exe@" || cp gsc/gsc@exe@ gsc-comp@exe@
fake_target:
doc info pdf html txt: fake_target
cd doc && $(MAKE) $(MDEFINES) $@
bootstrap: fake_target all
cp gsc/gsc@exe@ gsc-comp@exe@
check: fake_target all
cd tests && $(MAKE) $(MDEFINES) $@
examples: fake_target all
cd examples && $(MAKE) $(MDEFINES) $@
prebuilt: dist dist-devel
PATH="gsi:$$PATH" prebuilt/remote-connect $(BUILD_FARM) "" "(define tmpdir \"gambtmp0\")(define gambc-dist \"$(PACKAGE_TARNAME)\")(define timeout 600)(ssh timeout (string-append \"rm -rf \" tmpdir \";mkdir \" tmpdir \";echo 'logged in on:';hostname\"))(scp-to timeout (string-append gambc-dist \".tgz\") (string-append tmpdir \"/.\"))(ssh timeout (string-append \"ssh $(BUILD_HOST) 'cd \" tmpdir \";tar zxf \" gambc-dist \".tgz;cd \" gambc-dist \";./configure;make -j 4;mv ../\" gambc-dist \".tgz .;cd prebuilt;make prebuilt'\"))(scp-from timeout (string-append tmpdir \"/\" gambc-dist \"/$(PACKAGE_TARNAME)-*\") \".\")"
@# cd prebuilt && $(MAKE) $(MDEFINES) $@
stamp: fake_target
cd include && $(MAKE) $(MDEFINES) $@
commit: fake_target stamp
@if test "$(RC)" = "$(GIT)"; then \
$(GIT) commit -a; \
else \
$(HG) commit; \
fi
diff: fake_target
@$(RC) diff | cat
log: fake_target
@$(RC) log | cat
status: fake_target
@$(RC) status || :
push: fake_target
@if test "$(RC)" = "$(GIT)"; then \
$(GIT) push git@github.com:feeley/gambit.git; \
else \
$(HG) push; \
fi
pull: fake_target
@if test "$(RC)" = "$(GIT)"; then \
$(GIT) pull; \
$(GIT) fetch --tags; \
else \
$(HG) pull; \
fi
update-nopull: fake_target
@if test "$(RC)" = "$(GIT)"; then \
next_version=`$(GIT) tag | fgrep -e '-bootstrap' | sed -e 's/v//g' -e 's/-bootstrap.*//g' | sort -r -s -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n | sed 's/^/v/g' | sed -n '/^$(PACKAGE_VERSION)/{n;p;}'`; \
else \
next_version=`$(HG) tags | fgrep -e '-bootstrap' | sed -e 's/v//g' -e 's/-bootstrap.*//g' | sort -r -s -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n | sed 's/^/v/g' | sed -n '/^$(PACKAGE_VERSION)/{n;p;}'`; \
fi; \
if test "$$next_version" = ""; then \
if test "$(RC)" = "$(GIT)"; then \
$(GIT) checkout master; \
else \
$(HG) checkout; \
fi; \
else \
$(RC) checkout $$next_version-bootstrap; \
$(MAKE) bootstrap; \
$(RC) checkout $$next_version; \
$(MAKE) bootclean bootstrap update; \
fi
update: pull update-nopull
$(MAKE)
new-major: fake_target
major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
next_major=`eval expr 1 + $$major`; \
next_version=v$$next_major.0.0; \
$(MAKE) NEW_VERSION=$$next_version change-version
new-minor: fake_target
major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
minor=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
next_minor=`eval expr 1 + $$minor`; \
next_version=v$$major.$$next_minor.0; \
$(MAKE) NEW_VERSION=$$next_version change-version
new-revision: fake_target
major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
minor=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
revision=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.[^.]*\.//g" -e "s///g"`; \
next_revision=`eval expr 1 + $$revision`; \
next_version=v$$major.$$minor.$$next_revision; \
$(MAKE) NEW_VERSION=$$next_version change-version
change-version: fake_target
major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
minor=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
revision=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.[^.]*\.//g" -e "s///g"`; \
next_major=`echo $(NEW_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
next_minor=`echo $(NEW_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
next_revision=`echo $(NEW_VERSION) | sed -e "s/v[^.]*\.[^.]*\.//g" -e "s///g"`; \
version_num=`eval expr "\( 100000 \\* $$major \) + \( 1000 \\* $$minor \) + $$revision"`; \
new_version_num=`eval expr "\( 100000 \\* $$next_major \) + \( 1000 \\* $$next_minor \) + $$next_revision"`; \
sed -e "/(define (compiler-version) $$version_num)/s/$$version_num/$$new_version_num/" gsc/_parms.scm > gsc/_parms.scm-new; \
if ! diff gsc/_parms.scm gsc/_parms.scm-new > /dev/null; then \
mv gsc/_parms.scm-new gsc/_parms.scm; \
if test "$(RC)" = "$(GIT)"; then \
$(GIT) commit -a -m "[COMPILER CHANGES NEEDED FOR $(NEW_VERSION)] Changed version in compiler"; \
else \
$(HG) commit -m "[COMPILER CHANGES NEEDED FOR $(NEW_VERSION)] Changed version in compiler"; \
fi; \
$(RC) tag $(NEW_VERSION)-bootstrap; \
if $(MAKE) bootstrap; then \
misc/changev $$version_num $$new_version_num; \
touch doc/gambit-c.txi; \
cd tests; @SETDLPATH@ ../gsc/gsc -:~~bin=../bin,~~lib=../lib,~~include=../include -f -c mix.scm; mv mix.c test5.ok; cd ..; \
if $(MAKE) bootclean && $(MAKE) -j 2 && $(MAKE) check && $(MAKE) doc; then \
if test "$(RC)" = "$(GIT)"; then \
$(GIT) commit -a -m "[RUNTIME CHANGES NEEDED FOR $(NEW_VERSION)] Changed version of runtime using misc/changev"; \
else \
$(HG) commit -m "[RUNTIME CHANGES NEEDED FOR $(NEW_VERSION)] Changed version of runtime using misc/changev"; \
fi; \
$(RC) tag $(NEW_VERSION); \
fi; \
fi; \
else \
echo Compiler version in gsc/_parms.scm is inconsistent with PACKAGE_VERSION; \
fi
release: fake_target
$(MAKE) bootstrap
$(MAKE) clean
$(MAKE) all
$(MAKE) check
$(MAKE) doc
rm -f $(PACKAGE_TARNAME).tgz $(PACKAGE_TARNAME)-*.*
$(MAKE) prebuilt
publish-release: fake_target
misc/publish-release $(PACKAGE_VERSION) $(PACKAGE_TARNAME).tgz $(PACKAGE_TARNAME)-*.*
install-pre:
@if test "@ENABLE_SHARED@" = "yes" -a "@ENABLE_ABSOLUTE_SHARED_LIBS@" = "yes" -a "$(DESTDIR)" != ""; then \
echo "*** The use of --enable-shared and --enable-absolute-shared-libs is"; \
echo "*** incompatible with the use of DESTDIR. You can either specify an"; \
echo "*** empty DESTDIR or reconfigure with --disable-absolute-shared-libs."; \
exit 1; \
fi
install-post: all
if test "@ENABLE_MULTIPLE_VERSIONS@" = "yes"; then \
if test "@bat@" = ""; then \
$(srcdirpfx)./mkidirs $(DESTDIR)$(prefix); \
rm -f $(DESTDIR)$(prefix)/../current \
$(DESTDIR)$(prefix)/../current.lnk; \
(cd $(DESTDIR)$(prefix)/.. && $(LN_S) $(PACKAGE_VERSION) current); \
fi; \
fi
uninstall-pre:
uninstall-post:
if test "@ENABLE_MULTIPLE_VERSIONS@" = "yes"; then \
if test "@bat@" = ""; then \
(cd $(DESTDIR)$(prefix)/.. && \
rm -f current && \
rmdir $(PACKAGE_VERSION)); \
fi; \
fi
mostlyclean-pre:
mostlyclean-post:
clean-pre: mostlyclean-pre
clean-post: mostlyclean-post
distclean-pre: clean-pre
distclean-post: clean-post
bootclean-pre: distclean-pre
bootclean-post: distclean-post
realclean-pre: bootclean-pre
realclean-post: bootclean-post
rm -f config.log config.status makefile
rc-setup-pre:
$(RC) init
@if test "$(RC)" = "$(GIT)"; then \
$(GIT) add $(RCFILES) $(GITRCFILES); \
rm -f .git/config; \
echo '[core]' >> .git/config; \
echo ' repositoryformatversion = 0' >> .git/config; \
echo ' fileMode = false' >> .git/config; \
echo ' bare = false' >> .git/config; \
echo ' logallrefupdates = true' >> .git/config; \
echo ' ignorecase = true' >> .git/config; \
echo ' autocrlf = false' >> .git/config; \
echo '[remote "origin"]' >> .git/config; \
echo ' url = git@github.com:feeley/gambit.git' >> .git/config; \
echo ' fetch = +refs/heads/*:refs/remotes/origin/*' >> .git/config; \
echo '[branch "master"]' >> .git/config; \
echo ' remote = origin' >> .git/config; \
echo ' merge = refs/heads/master' >> .git/config; \
else \
$(HG) add $(RCFILES) $(HGRCFILES); \
rm -f .hg/hgrc; \
echo "[paths]" > .hg/hgrc; \
echo "default-push = ssh://gambit@frontal07.iro.umontreal.ca/HTML/repo/gambit" >> .hg/hgrc; \
echo "default = http://www.iro.umontreal.ca/~gambit/repo/gambit/" >> .hg/hgrc; \
fi
rc-setup-post:
@if test "$(RC)" = "$(GIT)"; then \
$(GIT) commit -a -m "Initial commit of $(PACKAGE_STRING)"; \
else \
$(HG) commit -m "Initial commit of $(PACKAGE_STRING)"; \
fi
dist-pre:
rm -rf $(PACKAGE_TARNAME)
mkdir $(PACKAGE_TARNAME)
chmod 777 $(PACKAGE_TARNAME)
@echo " Copying distribution files:"
@for file in $(DISTFILES); do \
echo " $$file"; \
ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
|| cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
done
dist-post:
tar chof $(PACKAGE_TARNAME).tar $(PACKAGE_TARNAME)
gzip -9 $(PACKAGE_TARNAME).tar
mv $(PACKAGE_TARNAME).tar.gz $(PACKAGE_TARNAME).tgz
rm -rf $(PACKAGE_TARNAME)
dist-devel-pre:
rm -rf $(PACKAGE_TARNAME)
mkdir $(PACKAGE_TARNAME)
chmod 777 $(PACKAGE_TARNAME)
@echo " Copying distribution files:"
@for file in $(DISTFILES); do \
echo " $$file"; \
ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
|| cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
done
@if test "$(RC)" = "$(GIT)"; then \
for file in $(GITDISTFILES); do \
echo " $$file"; \
ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
|| cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
done; \
echo " .git"; \
ln $(srcdirpfx).git $(PACKAGE_TARNAME) 2> /dev/null \
|| cp -p -R $(srcdirpfx).git $(PACKAGE_TARNAME); \
else \
for file in $(HGDISTFILES); do \
echo " $$file"; \
ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
|| cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
done; \
echo " .hg"; \
ln $(srcdirpfx).hg $(PACKAGE_TARNAME) 2> /dev/null \
|| cp -p -R $(srcdirpfx).hg $(PACKAGE_TARNAME); \
fi
dist-devel-post:
rm -rf $(PACKAGE_TARNAME)-devel
mv $(PACKAGE_TARNAME) $(PACKAGE_TARNAME)-devel
tar chof $(PACKAGE_TARNAME)-devel.tar $(PACKAGE_TARNAME)-devel
gzip -9 $(PACKAGE_TARNAME)-devel.tar
mv $(PACKAGE_TARNAME)-devel.tar.gz $(PACKAGE_TARNAME)-devel.tgz
rm -rf $(PACKAGE_TARNAME)-devel
all-recursive install-recursive uninstall-recursive mostlyclean-recursive clean-recursive distclean-recursive bootclean-recursive realclean-recursive rc-setup-recursive dist-recursive dist-devel-recursive:
@for subdir in $(SUBDIRS); do \
target=`echo $@ | sed 's/-recursive//'`; \
echo making $$target in $$subdir; \
(cd $$subdir && $(MAKE) $$target) || exit 1; \
done
all: all-post
all-post: all-recursive
all-recursive: all-pre
install: install-post
install-post: install-recursive
install-recursive: install-pre
uninstall: uninstall-post
uninstall-post: uninstall-recursive
uninstall-recursive: uninstall-pre
mostlyclean: mostlyclean-post
mostlyclean-post: mostlyclean-recursive
mostlyclean-recursive: mostlyclean-pre
clean: clean-post
clean-post: clean-recursive
clean-recursive: clean-pre
distclean: distclean-post
distclean-post: distclean-recursive
distclean-recursive: distclean-pre
bootclean: bootclean-post
bootclean-post: bootclean-recursive
bootclean-recursive: bootclean-pre
realclean: realclean-post
realclean-post: realclean-recursive
realclean-recursive: realclean-pre
rc-setup: rc-setup-post
rc-setup-post: rc-setup-recursive
rc-setup-recursive: rc-setup-pre
dist: dist-post
dist-post: dist-recursive
dist-recursive: dist-pre
dist-devel: dist-devel-post
dist-devel-post: dist-devel-recursive
dist-devel-recursive: dist-devel-pre
# For an explanation of the following makefile rules, see node
# `Automatic Remaking' in GNU Autoconf documentation.
makefile: makefile.in config.status
CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
config.status: configure
./config.status --recheck
configure: configure.ac
cd $(srcdir) && autoconf configure.ac > configure && chmod 755 configure
# Tell versions [3.59,3.63) of GNU make not to export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
Jump to Line
Something went wrong with that request. Please try again.