|
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 |
) > $@
|