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

188 lines (164 sloc) 6.233 kb
# -*-makefile-*-
# @configure_input@
#
################################################################################
#
# install.mk.in
#
# This file sets up the installation directories.
#
# DO NOT EDIT THIS FILE!
#
# - install.mk is auto-generated from install.mk.in by configure.
# If you edit install.mk your changes will be spammed.
#
# - Settings in this file may be overriden by giving replacement
# definitions in build.mk.
# Definition of installation directories, we don't use half of these, but since
# the configure script has them on offer while passing through, we might as well
# set them. Note that we have to be careful, because the GNU coding standards
# have changed a bit over the course of time, and autoconf development reflects
# this.
#
# A little bit of history regarding autoconf and GNU coding standards, use this
# as a cheat-sheet for the stuff below:
#
# variable | default < 2.60 | default >= 2.60
# ------------+--------------------+--------------------------------------
# exec_prefix | ${prefix} | ${prefix}
# libdir | ${exec_prefix}/lib | ${exec_prefix}/lib
# datarootdir | NONE! | ${prefix}/share
# datadir | ${prefix}/share | ${datarootdir}
# infodir | ${prefix}/info | ${datarootdir}/info
# mandir | ${prefix}/man | ${datarootdir}/man
# docdir | NONE! | ${datarootdir}/doc/${PACKAGE_TARNAME}
# htmldir | NONE! | ${docdir}
# dvidir | NONE! | ${docdir}
# pdfdir | NONE! | ${docdir}
# psdir | NONE! | ${docdir}
#
# NOTE: The default e.g. ${docdir} above means that autoconf substitutes the
# string "${docdir}", not the value of docdir! This is crucial for the GNU
# coding standards.
define set_default
# $1 = variable to set
# $2 = default value to use, if configure didn't expand it
# If $1 starts with an @ then configure didn't set it (because a version
# of autoconf that is too old was used), so set it to a sensible value
ifneq "$$(filter @%,$$($1))" ""
$1 = $2
endif
endef
# This gets used in the default docdir when autoconf >= 2.60 is used
PACKAGE_TARNAME = @PACKAGE_TARNAME@
prefix = @prefix@
datarootdir = @datarootdir@
$(eval $(call set_default,datarootdir,$${prefix}/share))
exec_prefix = @exec_prefix@
bindir = @bindir@
datadir = @datadir@
libdir = @libdir@
includedir = @includedir@
mandir = @mandir@
docdir = @docdir@
$(eval $(call set_default,docdir,$${datarootdir}/doc/ghc))
htmldir = @htmldir@
dvidir = @dvidir@
pdfdir = @pdfdir@
psdir = @psdir@
$(eval $(call set_default,htmldir,$${docdir}))
$(eval $(call set_default,dvidir,$${docdir}))
$(eval $(call set_default,pdfdir,$${docdir}))
$(eval $(call set_default,psdir,$${docdir}))
ifeq "$(RelocatableBuild)" "YES"
# Hack: our directory layouts tend to be different on Windows, so
# hack around configure's bogus assumptions here.
datarootdir = $(prefix)
datadir = $(prefix)/lib
libdir = $(prefix)/lib
docdir = $(prefix)/doc
htmldir = $(docdir)
dvidir = $(docdir)
pdfdir = $(docdir)
psdir = $(docdir)
ghclibdir = $(libdir)
ghcdocdir = $(datarootdir)/doc
else
# Unix: override libdir and datadir to put ghc-specific stuff in
# a subdirectory with the version number included.
#
# datadir is set to libdir here as GHC needs package.conf and unlit
# to be in the same place (and things like ghc-pkg need to agree on
# where package.conf is, so we just set it globally).
#
ghclibdir = $(libdir)/ghc-$(ProjectVersion)
ghcdocdir = $(datarootdir)/doc/ghc
endif
ghclibexecdir = $(ghclibdir)
topdir = $(ghclibdir)
ghcheaderdir = $(ghclibdir)/include
#-----------------------------------------------------------------------------
# install configuration
#
# Set this to have files installed with a specific owner
#
INSTALL_OWNER =
#
# Set this to have files installed with a specific group
#
INSTALL_GROUP =
#
# Invocations of `install' for the four different classes
# of targets:
#
CREATE_SCRIPT = create () { touch "$$1" && chmod 755 "$$1" ; } && create
CREATE_DATA = create () { touch "$$1" && chmod 644 "$$1" ; } && create
# These takes 3 arguments:
# $1 = flags
# $2 = files
# $3 = dest
INSTALL_PROGRAM = $(INSTALL) -m 755 $1 $2 $(call MK_INSTALL_DEST,$3)
INSTALL_SCRIPT = $(INSTALL) -m 755 $1 $2 $(call MK_INSTALL_DEST,$3)
INSTALL_SHLIB = $(INSTALL) -m 755 $1 $2 $(call MK_INSTALL_DEST,$3)
INSTALL_DATA = $(INSTALL) -m 644 $1 $2 $(call MK_INSTALL_DEST,$3)
INSTALL_HEADER = $(INSTALL) -m 644 $1 $2 $(call MK_INSTALL_DEST,$3)
INSTALL_MAN = $(INSTALL) -m 644 $1 $2 $(call MK_INSTALL_DEST,$3)
INSTALL_DOC = $(INSTALL) -m 644 $1 $2 $(call MK_INSTALL_DEST,$3)
# Only 1 argument, the directory to create:
INSTALL_DIR = $(INSTALL) -m 755 -d $(call MK_INSTALL_DEST,$1)
# cygwin's /bin/install doesn't set file modes correctly if the
# destination path is a C: style path:
#
# $ /bin/install -c -m 644 foo /cygdrive/c/cygwin/home/ian/foo2
# $ /bin/install -c -m 644 foo c:/cygwin/home/ian/foo3
# $ ls -l foo*
# -rw-r--r-- 1 ian None 0 2011-01-06 18:28 foo
# -rw-r--r-- 1 ian None 0 2011-01-06 18:29 foo2
# -rwxrwxrwx 1 ian None 0 2011-01-06 18:29 foo3
#
# This causes problems for bindisttest/checkBinaries.sh which then
# thinks that e.g. the userguide HTML files are binaries.
#
# We therefore use a /cygdrive path if we are on cygwin (only)
# (This will make a Cygwin build run slowly
# because of all those shell invocations.)
ifeq "$(OSTYPE)" "cygwin"
MK_INSTALL_DEST = $$(cygpath $1)
else
MK_INSTALL_DEST = $1
endif
#
# runhaskell and hsc2hs are special, in that other compilers besides
# GHC might provide them. Systems with a package manager often come
# with tools to manage this kind of clash, e.g. RPM's
# update-alternatives. When building a distribution for such a system,
# we recommend setting both of the following to 'YES'.
#
# NO_INSTALL_RUNHASKELL = YES
# NO_INSTALL_HSC2HS = YES
#
# NB. we use negative tests here because for binary-distributions we cannot
# test build-time variables at install-time, so they must default to on.
ifneq "$(DESTDIR)" ""
override DESTDIR := $(abspath $(DESTDIR))
endif
Jump to Line
Something went wrong with that request. Please try again.