Codebase list coq / lintian-fixes/main Makefile.install
lintian-fixes/main

Tree @lintian-fixes/main (Download .tar.gz)

Makefile.install @lintian-fixes/mainraw · history · blame

##########################################################################
##         #   The Coq Proof Assistant / The Coq Development Team       ##
##  v      #         Copyright INRIA, CNRS and contributors             ##
## <O___,, # (see version control and CREDITS file for authors & dates) ##
##   \VV/  ###############################################################
##    //   #    This file is distributed under the terms of the         ##
##         #     GNU Lesser General Public License Version 2.1          ##
##         #     (see LICENSE file for the text of the license)         ##
##########################################################################

# This makefile regroups installation rules
# It is included by Makefile.build

# NOTA: currently, the install rules below assume that everything needed
# has already been correctly built. In particular, this is *not* enforced
# by dependencies between rules, so do *not* try overly clever things like
# 'make world install' in one unique command

ifeq ($(COQ_INSTALL_ENABLED),false)
install:
	@echo "Working on devel mode, nothing to install."
else
install: install-coq install-coqide install-doc-$(WITHDOC)
endif

# NOTA: for install-coqide, see Makefile.ide

install-doc-all: install-doc
install-doc-no:

.PHONY: install install-coqide install-doc-all install-doc-no

INSTALLLIB:=install -m 644

.PHONY: install-coq install-dune install-library

# Due to Windows paths not starting with / we can't just set the
# default to / and always use --destdir
ifeq ($(DESTDIR),)
DESTDIRARG=
else
DESTDIRARG=--destdir="$(DESTDIR)"
endif

# --display quiet should not produce output, dune bug:
# https://github.com/ocaml/dune/issues/4573

# Note that dune install paths are setup at dune's build time, thus
# for example a Debian-built dune will install stuff following
# Debian's FHS, an opam-built dune will differ and follow OPAM's layout.
#
# We ought to improve this, as of today the case of an opam-built dune
# installing to a global prefix such as /usr/local/ may not follow the FHS.
# For now, we respect the values given at configure's time.
ifdef DUNE_29_PLUS
install-dune: $(BCONTEXT)/coq-core.install $(BCONTEXT)/coqide-server.install
	dune install $(_DOPT) $(DESTDIRARG) --mandir="$(MANDIR)" --prefix="$(COQPREFIX)" --etcdir="$(CONFIGDIR)" --docdir="$(DOCDIR)" coq-core
	dune install $(_DOPT) $(DESTDIRARG) --mandir="$(MANDIR)" --prefix="$(COQPREFIX)" --etcdir="$(CONFIGDIR)" --docdir="$(DOCDIR)" coqide-server
else
install-dune: $(BCONTEXT)/coq-core.install $(BCONTEXT)/coqide-server.install
	dune install $(_DOPT) $(DESTDIRARG) --mandir="$(MANDIR)" --prefix="$(COQPREFIX)" coq-core
	dune install $(_DOPT) $(DESTDIRARG) --mandir="$(MANDIR)" --prefix="$(COQPREFIX)" coqide-server
endif

# IMPORTANT NOTE: before Dune 2.9, the --docdir and --etcdir options
# were not supported, if using Dune >= 2.9, Coq's configure will set
# the DUNE_29_PLUS=yes` variable to use the call with the right options.
#
# Additionally, you can also add --libdir=$(COQLIBINSTALL) if required
# by your distribution, but we recommend using the default configured
# with Dune.

install-coq: install-dune install-library

# This used to be overriden to fix very old bugs with install
INSTALLSH=./install.sh

ifeq ($(DESTDIR),)
COQLIBINSTALLDEST=$(COQLIBINSTALL)
else
COQLIBINSTALLDEST=$(DESTDIR)/$(COQLIBINSTALL)
endif

# NB: some files don't produce native files (eg Ltac2 files) as they
# don't have any Coq definitions. Makefile can't predict that so we
# use || true vos build is bugged in -quick mode, see #11195
install-library:
	$(SHOW)'INSTALL   VOFILES'
	$(HIDE)$(MKDIR) $(COQLIBINSTALLDEST)
	$(HIDE)$(INSTALLSH) $(VO_OUT_DIR) $(COQLIBINSTALLDEST) $(ALLVO:.$(VO)=.vo)
	$(HIDE)$(INSTALLSH) $(VO_OUT_DIR) $(COQLIBINSTALLDEST) $(ALLVO:.$(VO)=.vos) || true
ifneq ($(NATIVECOMPUTE),)
	$(HIDE)$(INSTALLSH) $(VO_OUT_DIR) $(COQLIBINSTALLDEST) $(NATIVEFILES) || true
endif
	$(HIDE)$(INSTALLSH) $(VO_OUT_DIR) $(COQLIBINSTALLDEST) $(VFILES)
	$(HIDE)$(INSTALLSH) $(VO_OUT_DIR) $(COQLIBINSTALLDEST) $(GLOBFILES)
	$(HIDE)$(MKDIR) $(COQLIBINSTALLDEST)/user-contrib

# TODO
ifeq ($(HASCOQIDE),no)
install-coqide:
else
ifdef DUNE_29_PLUS
install-coqide: $(BCONTEXT)/coqide.install
	dune install $(_DOPT) $(DESTDIRARG) --mandir="$(MANDIR)" --prefix="$(COQPREFIX)" --etcdir="$(CONFIGDIR)" --docdir="$(DOCDIR)" coqide
else
	dune install $(_DOPT) $(DESTDIRARG) --mandir="$(MANDIR)" --prefix="$(COQPREFIX)" coqide
endif
endif



# For emacs:
# Local Variables:
# mode: makefile
# End: