Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
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.