-# links to script programs: we sometimes install a script as
-# <name>-<version> with a link from <name> to the real script.
-
-ifneq "$(SCRIPT_LINK)" ""
-all :: $(SCRIPT_LINK)
-
-#
-# Don't want to overwrite $(SCRIPT_LINK)s that aren't symbolic
-# links. Testing for symbolic links is problematic to do in
-# a portable fashion using a /bin/sh test, so we simply rely
-# on perl.
-#
-$(SCRIPT_LINK) : $(SCRIPT_PROG)
- @if ( $(PERL) -e '$$fn="$(SCRIPT_LINK)"; exit ((! -f $$fn || -l $$fn) ? 0 : 1);' ); then \
- echo "Creating a symbolic link from $(SCRIPT_PROG) to $(SCRIPT_LINK)"; \
- $(RM) $(SCRIPT_LINK); \
- $(LN_S) $(SCRIPT_PROG) $(SCRIPT_LINK); \
- else \
- echo "Creating a symbolic link from $(SCRIPT_PROG) to $(SCRIPT_LINK) failed: \`$(SCRIPT_LINK)' already exists"; \
- echo "Perhaps remove \`$(SCRIPT_LINK)' manually?"; \
- exit 1; \
- fi;
-endif
-
-
-
-###########################################
-#
-# Targets: install install-strip uninstall
-#
-###########################################
-
-# For each of these variables that is defined, you
-# get one install rule
-#
-# INSTALL_PROGS executable programs in $(bindir)
-# INSTALL_SCRIPTS executable scripts in $(bindir)
-# INSTALL_LIBS platform-dependent libraries in $(libdir) (ranlib'ed)
-# INSTALL_LIB_SCRIPTS platform-dependent scripts in $(libdir)
-# INSTALL_LIBEXECS platform-dependent execs in $(libdir)
-# INSTALL_DATAS platform-independent files in $(datadir)
-#
-# If the installation directory variable is undefined, the install rule simply
-# emits a suitable error message.
-#
-# Remember, too, that the installation directory variables ($(bindir) and
-# friends can be overridden from their original settings in mk/config.mk.in
-# || mk/build.mk
-#
-.PHONY: install installdirs install-strip install-dirs uninstall install-docs show-install
-
-show-install :
- @echo "bindir = $(bindir)"
- @echo "libdir = $(libdir)"
- @echo "libexecdir = $(libexecdir) # by default, same as libdir"
- @echo "datadir = $(datadir) # unused for ghc project"
-
-#
-# Sometimes useful to separate out the creation of install directories
-# from the installation itself.
-#
-install-dirs ::
- @$(INSTALL_DIR) $(bindir)
- @$(INSTALL_DIR) $(libdir)
- @$(INSTALL_DIR) $(libexecdir)
- @$(INSTALL_DIR) $(datadir)
-
-# Better do this first...
-# but we won't for the moment, do it on-demand from
-# within the various install targets instead.
-#install:: install-dirs
-
-ifneq "$(INSTALL_PROGS)" ""
-
-#
-# Here's an interesting one - when using the win32 version
-# of install (provided via the cygwin toolkit), we have to
-# supply the .exe suffix, *if* there's no other suffix.
-#
-# The rule below does this by ferreting out the suffix of each
-# entry in the INSTALL_PROGS list. If there's no suffix, use
-# $(exeext).
-#
-# This is bit of a pain to express since GNU make doesn't have
-# something like $(if ...), but possible using $(subst ..)
-# [Aside: I added support for $(if ..) to my local copy of GNU
-# make at one stage, perhaps I should propagate the patch to
-# the GNU make maintainers..]
-#
-INSTALL_PROGS := $(foreach p, $(INSTALL_PROGS), $(addsuffix $(subst _,,$(subst __,$(exeext),_$(suffix $(p))_)), $(basename $(p))))
-
-install:: $(INSTALL_PROGS)
- @$(INSTALL_DIR) $(bindir)
- @for i in $(INSTALL_PROGS); do \
- echo $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(bindir); \
- $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(bindir) ; \
- done
-endif
-
-#
-# Just like INSTALL_PROGS, but prefix with install sites bin/lib/data and
-# install without stripping.
-#
-ifneq "$(INSTALL_SCRIPTS)" ""
-install:: $(INSTALL_SCRIPTS)
- @$(INSTALL_DIR) $(bindir)
- for i in $(INSTALL_SCRIPTS); do \
- $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i $(bindir); \
- done
-endif
-
-ifneq "$(INSTALL_LIB_SCRIPTS)" ""
-install:: $(INSTALL_LIB_SCRIPTS)
- @$(INSTALL_DIR) $(libdir)
- for i in $(INSTALL_LIB_SCRIPTS); do \
- $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i $(libdir); \
- done
-endif
-
-ifneq "$(INSTALL_LIBEXEC_SCRIPTS)" ""
-install:: $(INSTALL_LIBEXEC_SCRIPTS)
- @$(INSTALL_DIR) $(libexecdir)
- for i in $(INSTALL_LIBEXEC_SCRIPTS); do \
- $(INSTALL_SCRIPT) $(INSTALL_OPTS) $$i $(libexecdir); \
- done
-endif
-
-ifneq "$(INSTALL_LIBS)" ""
-install:: $(INSTALL_LIBS)
- @$(INSTALL_DIR) $(libdir)
- for i in $(INSTALL_LIBS); do \
- case $$i in \
- *.a) \
- $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(libdir); \
- $(RANLIB) $(libdir)/`basename $$i` ;; \
- *.dll) \
- $(INSTALL_DATA) -s $(INSTALL_OPTS) $$i $(libdir) ;; \
- *) \
- $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(libdir); \
- esac; \
- done
-endif
-
-ifneq "$(INSTALL_LIBEXECS)" ""
-#
-# See above comment next to defn of INSTALL_PROGS for what
-# the purpose of this one-liner is.
-#
-INSTALL_LIBEXECS := $(foreach p, $(INSTALL_LIBEXECS), $(addsuffix $(subst _,,$(subst __,$(exeext),_$(suffix $(p))_)), $(basename $(p))))
-
-install:: $(INSTALL_LIBEXECS)
- @$(INSTALL_DIR) $(libexecdir)
- -for i in $(INSTALL_LIBEXECS); do \
- $(INSTALL_PROGRAM) $(INSTALL_BIN_OPTS) $$i $(libexecdir); \
- done
-endif
-
-ifneq "$(INSTALL_DATAS)" ""
-install:: $(INSTALL_DATAS)
- @$(INSTALL_DIR) $(datadir)
- for i in $(INSTALL_DATAS); do \
- $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir); \
- done
-endif
-
-ifneq "$(INSTALL_INCLUDES)" ""
-install:: $(INSTALL_INCLUDES)
- @$(INSTALL_DIR) $(includedir)
- for i in $(INSTALL_INCLUDES); do \
- $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(includedir); \
- done
-endif
-
-#
-# Use with care..
-#
-uninstall::
- @for i in $(INSTALL_PROGS) "" ; do \
- if test "$$i"; then \
- echo rm -f $(bindir)/`basename $$i`; \
- rm -f $(bindir)/`basename $$i`; \
- fi; \
- done
- @for i in $(INSTALL_LIBS) ""; do \
- if test "$$i"; then \
- echo rm -f $(libdir)/`basename $$i`; \
- rm -f $(libdir)/`basename $$i`; \
- fi; \
- done
- @for i in $(INSTALL_LIBEXECS) ""; do \
- if test "$$i"; then \
- echo rm -f $(libexecdir)/`basename $$i`; \
- rm -f $(libexecdir)/`basename $$i`; \
- fi; \
- done
- @for i in $(INSTALL_DATAS) ""; do \
- if test "$$i"; then \
- echo rm -f $(datadir)/`basename $$i`; \
- rm -f $(datadir)/`basename $$i`; \
- fi; \
- done
-
-#
-# install-strip is from the GNU Makefile standard.
-#
-ifneq "$(way)" ""
-install-strip::
- @$(MAKE) EXTRA_INSTALL_OPTS='-s' install
-endif
-
-#
-# install links to script drivers.
-#
-ifneq "$(SCRIPT_LINK)" ""
-install ::
- @if ( $(PERL) -e '$$fn="$(bindir)/$(SCRIPT_LINK)"; exit ((! -f $$fn || -l $$fn) ? 0 : 1);' ); then \
- echo "Creating a symbol link from $(SCRIPT_PROG) to $(SCRIPT_LINK) in $(bindir)"; \
- $(RM) $(bindir)/$(SCRIPT_LINK); \
- $(LN_S) $(SCRIPT_PROG) $(bindir)/$(SCRIPT_LINK); \
- else \
- echo "Creating a symbol link from $(SCRIPT_PROG) to $(SCRIPT_LINK) in $(bindir) failed: \`$(bindir)/$(SCRIPT_LINK)' already exists"; \
- echo "Perhaps remove \`$(bindir)/$(SCRIPT_LINK)' manually?"; \
- exit 1; \
- fi;
-
-endif
-
-###########################################
-#
-# Targets: dist binary-dist
-#
-###########################################
-
-
-#
-# dist-pre is a canned rule the toplevel of your source tree
-# would use as follows,
-#
-# dist :: dist-pre
-#
-# it performs two tasks, first creating the distribution directory
-# tree and it then decorates the new tree with symbolic links pointing
-# to the symbolic links in the build tree.
-#
-# The dist-pre relies on (at least) the `find' in GNU findutils
-# (only tested with version 4.1). All non-GNU `find's I have
-# laid on my hands locally, has a restrictive treatment of {} in
-# -exec commands, i.e.,
-#
-# find . -print echo a{} \;
-#
-# does not expand the {}, it has to be a separate argument (i.e. `a {}').
-# GNU find is (IMHO) more sensible here, expanding any {} it comes across
-# inside an -exec, whether it is a separate arg or part of a word:
-#
-# $ touch yes
-# $ find --version
-# GNU find version 4.1
-# $ find yes -exec echo oh,{}! \;
-# oh,yes!
-#
-# Of course, the above is not impossible to achieve with other finds,
-# just that GNU find does the Patently Right Thing here :)
-#
-# ====> if you're using these dist rules, get hold of GNU findutils.
-#
-# --SOF 2/97
-#
-.PHONY: dist dist-pre dist-post
-
-#
-# The dist rules leaves out CVS, SRC (from mkshadowdir) and tests
-# directories when creating shadow source distrib tree
-#
-dist-pre::
- -rm -rf $(SRC_DIST_DIR)
- -rm -f $(SRC_DIST_NAME).tar.gz
- (cd $(FPTOOLS_TOP_ABS); $(FIND) $(SRC_DIST_DIRS) -type d \( -name CVS -prune -o -name SRC -prune -o -name tests -prune -o -exec $(MKDIRHIER) $(SRC_DIST_DIR)/{} \; \) ; )
- (cd $(FPTOOLS_TOP_ABS); $(FIND) $(SRC_DIST_DIRS) -name CVS -prune -o -name SRC -prune -o -name tests -prune -o -name "*~" -prune -o -name ".cvsignore" -prune -o -name "\#*" -prune -o -name ".\#*" -prune -o -type l -exec $(LN_S) $(FPTOOLS_TOP_ABS)/{} $(SRC_DIST_DIR)/{} \; )
-
-#
-# After having created a shadow distribution tree and copied/linked
-# all the necessary files to it, `dist-post' makes sure the permissions
-# are set right and then package up the tree. Empty directories are also removed.
-#
-# For now, we make the packaging a separate rule, so as to allow
-# the inspection of the dist tree before eventually packaging it up.
-#
-dist-post::
- @echo Deleting the following empty directories..
- ( cd $(SRC_DIST_DIR) ; cd .. ; $(FIND) $(SRC_DIST_NAME) -type d -exec sh -c 'test x`ls $$0 | wc -l | sed -e "s/ //g"` = x0' {} \; -print -exec rm -rf {} \; -prune )
- ( cd $(SRC_DIST_DIR) ; cd .. ; chmod -R a+rw $(SRC_DIST_NAME) )
-
-# Automatic generation of a MANIFEST file for a source distribution
-# tree that is ready to go.
-dist-manifest ::
- cd $(SRC_DIST_DIR); $(FIND) . \( -type l -o -type f \) -exec ls -lLG {} \; | sed -e 's/\.\///' > /tmp/MANIFEST ; mv /tmp/MANIFEST MANIFEST
-
-dist-package:: dist-package-tar-gz
-
-dist-package-tar-gz ::
- cd $(SRC_DIST_DIR); cd ..; $(TAR) chzf $(SRC_DIST_NAME).tar.gz $(SRC_DIST_NAME)
-
-dist-package-zip ::
- cd $(SRC_DIST_DIR); cd ..; $(ZIP) $(ZIP_OPTS) -r $(SRC_DIST_NAME).zip $(SRC_DIST_NAME)
-
-###########################################