Blame configure.make

Packit 9ee409
# This file serve as a ./configure file, written as a GNU Makefile.
Packit 9ee409
# It generates a local Makefile.config file that will be included by
Packit 9ee409
# the main Makefile.
Packit 9ee409
Packit 9ee409
# Note: we initially included `ocamlc -where`/Makefile.config directly
Packit 9ee409
# from the main Makefile, but this made it not robust to addition of
Packit 9ee409
# new variables to this ocaml/Makefile.config that we do not control.
Packit 9ee409
Packit 9ee409
include $(shell ocamlc -where)/Makefile.config
Packit 9ee409
Packit 9ee409
OCAML_PREFIX = $(PREFIX)
Packit 9ee409
OCAML_BINDIR = $(BINDIR)
Packit 9ee409
OCAML_LIBDIR = $(LIBDIR)
Packit 9ee409
OCAML_MANDIR = $(MANDIR)
Packit 9ee409
Packit 9ee409
# If you want to affect ocamlbuild's configuration by passing variable
Packit 9ee409
# assignments to this Makefile, you probably want to define those
Packit 9ee409
# OCAMLBUILD_* variables.
Packit 9ee409
Packit 9ee409
OCAMLBUILD_PREFIX ?= $(PREFIX)
Packit 9ee409
OCAMLBUILD_BINDIR ?= \
Packit 9ee409
  $(or $(shell opam config var bin 2>/dev/null),\
Packit 9ee409
       $(PREFIX)/bin)
Packit 9ee409
OCAMLBUILD_LIBDIR ?= \
Packit 9ee409
  $(or $(shell opam config var lib 2>/dev/null),\
Packit 9ee409
       $(shell ocamlfind printconf destdir 2>/dev/null),\
Packit 9ee409
       $(OCAML_LIBDIR))
Packit 9ee409
OCAMLBUILD_MANDIR ?= \
Packit 9ee409
  $(or $(shell opam config var man 2>/dev/null),\
Packit 9ee409
       $(OCAML_MANDIR))
Packit 9ee409
Packit 9ee409
# It is important to distinguish OCAML_LIBDIR, which points to the
Packit 9ee409
# directory of the ocaml compiler distribution, and OCAMLBUILD_LIBDIR,
Packit 9ee409
# which should be the general library directory of OCaml projects on
Packit 9ee409
# the user machine.
Packit 9ee409
#
Packit 9ee409
# When ocamlbuild was distributed as part of the OCaml compiler
Packit 9ee409
# distribution, there was only one LIBDIR variable, which now
Packit 9ee409
# corresponds to OCAML_LIBDIR.
Packit 9ee409
#
Packit 9ee409
# In particular, plugin compilation would link
Packit 9ee409
# LIBDIR/ocamlbuild/ocamlbuild.cma. For an ocamlbuild distributed as
Packit 9ee409
# part of the compiler distribution, this LIBDIR occurence must be
Packit 9ee409
# interpreted as OCAML_LIBDIR; but with a separate ocamlbuild, it must
Packit 9ee409
# be interpreted as OCAMLBUILD_LIBDIR, as this is where ocamlbuild
Packit 9ee409
# libraries will be installed.
Packit 9ee409
#
Packit 9ee409
# In the generated configuration files, we export
Packit 9ee409
# OCAMLBUILD_{PREFIX,{BIN,LIB,MAN}DIR}, which are the ones that should
Packit 9ee409
# generally be used, as the shorter names PREFIX,{BIN,LIB,MAN}DIR.
Packit 9ee409
Packit 9ee409
ifeq ($(ARCH), none)
Packit 9ee409
OCAML_NATIVE ?= false
Packit 9ee409
else
Packit 9ee409
OCAML_NATIVE ?= true
Packit 9ee409
endif
Packit 9ee409
Packit 9ee409
OCAML_NATIVE_TOOLS ?= $(OCAML_NATIVE)
Packit 9ee409
Packit 9ee409
all: Makefile.config src/ocamlbuild_config.ml
Packit 9ee409
Packit 9ee409
clean:
Packit 9ee409
Packit 9ee409
distclean:
Packit 9ee409
	rm -f Makefile.config src/ocamlbuild_config.ml
Packit 9ee409
Packit 9ee409
Makefile.config:
Packit 9ee409
	(echo "# This file was generated from configure.make"; \
Packit 9ee409
	echo ;\
Packit 9ee409
	echo "OCAML_PREFIX=$(OCAML_PREFIX)"; \
Packit 9ee409
	echo "OCAML_BINDIR=$(OCAML_BINDIR)"; \
Packit 9ee409
	echo "OCAML_LIBDIR=$(OCAML_LIBDIR)"; \
Packit 9ee409
	echo "OCAML_MANDIR=$(OCAML_MANDIR)"; \
Packit 9ee409
	echo ;\
Packit 9ee409
	echo "EXT_OBJ=$(EXT_OBJ)"; \
Packit 9ee409
	echo "EXT_ASM=$(EXT_ASM)"; \
Packit 9ee409
	echo "EXT_LIB=$(EXT_LIB)"; \
Packit 9ee409
	echo "EXT_DLL=$(EXT_DLL)"; \
Packit 9ee409
	echo "EXE=$(EXE)"; \
Packit 9ee409
	echo ;\
Packit 9ee409
	echo "OCAML_NATIVE=$(OCAML_NATIVE)"; \
Packit 9ee409
	echo "OCAML_NATIVE_TOOLS=$(OCAML_NATIVE_TOOLS)"; \
Packit 9ee409
	echo "NATDYNLINK=$(NATDYNLINK)"; \
Packit 9ee409
	echo "SUPPORT_SHARED_LIBRARIES=$(SUPPORTS_SHARED_LIBRARIES)"; \
Packit 9ee409
	echo ;\
Packit 9ee409
	echo "PREFIX=$(OCAMLBUILD_PREFIX)"; \
Packit 9ee409
	echo "BINDIR=$(OCAMLBUILD_BINDIR)"; \
Packit 9ee409
	echo "LIBDIR=$(OCAMLBUILD_LIBDIR)"; \
Packit 9ee409
	echo "MANDIR=$(OCAMLBUILD_MANDIR)"; \
Packit 9ee409
	) > $@
Packit 9ee409
Packit 9ee409
src/ocamlbuild_config.ml:
Packit 9ee409
	(echo "(* This file was generated from ../configure.make *)"; \
Packit 9ee409
	echo ;\
Packit 9ee409
	echo 'let bindir = "$(OCAMLBUILD_BINDIR)"'; \
Packit 9ee409
	echo 'let libdir = "$(OCAMLBUILD_LIBDIR)"'; \
Packit 9ee409
	echo 'let ocaml_libdir = "$(abspath $(OCAML_LIBDIR))"'; \
Packit 9ee409
	echo 'let libdir_abs = "$(abspath $(OCAMLBUILD_LIBDIR))"'; \
Packit 9ee409
	echo 'let ocaml_native = $(OCAML_NATIVE)'; \
Packit 9ee409
	echo 'let ocaml_native_tools = $(OCAML_NATIVE_TOOLS)'; \
Packit 9ee409
	echo 'let supports_shared_libraries = $(SUPPORTS_SHARED_LIBRARIES)';\
Packit 9ee409
	echo 'let a = "$(A)"'; \
Packit 9ee409
	echo 'let o = "$(O)"'; \
Packit 9ee409
	echo 'let so = "$(SO)"'; \
Packit 9ee409
	echo 'let ext_dll = "$(EXT_DLL)"'; \
Packit 9ee409
	echo 'let exe = "$(EXE)"'; \
Packit 9ee409
	echo 'let version = "$(shell ocaml scripts/cat.ml VERSION)"'; \
Packit 9ee409
	) > $@