| ############################################################################### |
| # BRLTTY - A background process providing access to the console screen (when in |
| # text mode) for a blind person using a refreshable braille display. |
| # |
| # Copyright (C) 1995-2023 by The BRLTTY Developers. |
| # |
| # BRLTTY comes with ABSOLUTELY NO WARRANTY. |
| # |
| # This is free software, placed under the terms of the |
| # GNU Lesser General Public License, as published by the Free Software |
| # Foundation; either version 2.1 of the License, or (at your option) any |
| # later version. Please see the file LICENSE-LGPL for details. |
| # |
| # Web Page: http://brltty.app/ |
| # |
| # This software is maintained by Dave Mielke <dave@mielke.cc>. |
| ############################################################################### |
| |
| include $(SRC_TOP)bindings.mk |
| |
| OCAML_OK = @OCAML_OK@ |
| OCAMLC = @OCAMLC@ |
| OCAMLOPT = @OCAMLOPT@ |
| OCAMLMKLIB = @OCAMLMKLIB@ |
| OCAMLMKLIB_FLAGS = -dllib dll$(API_NAME)_stubs.so -cclib -l$(API_NAME)_stubs -cclib -l$(API_NAME) |
| OCAMLMKLIBOPT_FLAGS = -cclib -l$(API_NAME)_stubs -cclib -l$(API_NAME) |
| OCAMLBEST = @OCAMLBEST@ |
| OCAMLVERSION = @OCAMLVERSION@ |
| OCAMLLIB = @OCAMLLIB@ |
| OCAMLWIN32 = @OCAMLWIN32@ |
| OCAMLFIND = @OCAMLFIND@ |
| OCAML_INSTALL_TARGET = @OCAML_INSTALL_TARGET@ |
| OCAML_UNINSTALL_TARGET = @OCAML_UNINSTALL_TARGET@ |
| |
| OCAML_LIB = $(API_NAME) |
| OCAML_BCLIB = $(OCAML_LIB).cma |
| OCAML_NCLIB = @OCAML_NCLIB@ |
| |
| OCAML_MISC = $(SRC_DIR)/META brlapi.mli brlapi.cmi |
| |
| OCAML_CLIBS = @OCAML_CLIBS@ |
| |
| OCAML_DESTDIR = $(INSTALL_ROOT)$(OCAMLLIB) |
| OCAML_PKGDIR = $(OCAML_DESTDIR)/$(OCAML_LIB) |
| OCAML_STUBDIR = $(OCAML_DESTDIR)/stublibs |
| OCAML_STUB = dll$(OCAML_LIB)_stubs.so |
| OCAML_OWNER = $(OCAML_STUB).owner |
| |
| OCAML_FILES = $(OCAML_MISC) $(OCAML_CLIBS) $(OCAML_BCLIB) $(OCAML_NCLIB) |
| |
| .PHONY: all clean |
| .PHONY: install install-with-findlib install-without-findlib |
| .PHONY: uninstall uninstall-with-findlib uninstall-without-findlib |
| |
| all: $(OCAML_FILES) |
| |
| $(OCAML_CLIBS): brlapi_stubs.$O | brlapi |
| $(OCAMLMKLIB) -ldopt "$(LDFLAGS)" $(API_LDFLAGS) -oc $(OCAML_LIB)_stubs brlapi_stubs.$O |
| |
| $(OCAML_BCLIB): $(OCAML_CLIBS) brlapi.cmo |
| $(OCAMLC) -a $(OCAMLMKLIB_FLAGS) -o $(OCAML_LIB).cma brlapi.cmo |
| |
| $(OCAML_NCLIB): $(OCAML_CLIBS) brlapi.cmx |
| $(OCAMLMKLIB) -ldopt "$(LDFLAGS)" $(OCAMLMKLIBOPT_FLAGS) -o $(OCAML_LIB) brlapi.cmx |
| |
| brlapi.cmi: brlapi.mli |
| $(OCAMLC) -cc $(CC) -ccopt "$(LIBCFLAGS)" -o $@ -c brlapi.mli |
| |
| brlapi.cmo: brlapi.ml brlapi.cmi |
| $(OCAMLC) -cc $(CC) -ccopt "$(LIBCFLAGS)" -o $@ -c brlapi.ml |
| |
| brlapi.cmx: brlapi.ml brlapi.cmi |
| $(OCAMLOPT) -cc $(CC) -ccopt "$(LIBCFLAGS)" -o $@ -c brlapi.cmx brlapi.ml |
| |
| brlapi_stubs.$O: $(SRC_DIR)/brlapi_stubs.c |
| $(OCAMLC) -cc $(CC) -ccopt "$(LIBCFLAGS)" -I $(BLD_TOP)$(PGM_DIR) -I $(SRC_TOP)$(PGM_DIR) -c $(SRC_DIR)/brlapi_stubs.c |
| |
| brlapi.mli: $(SRC_DIR)/main.mli constants.mli |
| cat $(SRC_DIR)/main.mli constants.mli > $@ |
| |
| brlapi.ml: $(SRC_DIR)/main.ml constants.ml |
| cat $(SRC_DIR)/main.ml constants.ml > $@ |
| |
| constants.mli: constants.ml |
| $(OCAMLC) -o /dev/null -c -i constants.ml > $@ |
| |
| constants.ml: $(CONSTANTS_DEPENDENCIES) |
| $(AWK) $(CONSTANTS_ARGUMENTS) >$@ |
| |
| clean:: |
| -rm -f -- *.cm* *.a *.so constants.ml* brlapi.ml* |
| |
| install: all $(OCAML_INSTALL_TARGET) |
| |
| install-without-findlib: |
| $(INSTALL_DIRECTORY) $(OCAML_PKGDIR) |
| for file in $(OCAML_FILES); do $(INSTALL) $$file $(OCAML_PKGDIR); done |
| $(INSTALL_DIRECTORY) $(OCAML_STUBDIR) |
| [ ! -f "$(OCAML_PKGDIR)/$(OCAML_STUB)" ] || mv $(OCAML_PKGDIR)/$(OCAML_STUB) $(OCAML_STUBDIR) |
| echo >$(OCAML_STUBDIR)/$(OCAML_OWNER) $(OCAML_LIB) |
| |
| OCAML_LDCONF = $(OCAML_DESTDIR)/ld.conf |
| install-with-findlib: |
| $(INSTALL_DIRECTORY) $(OCAML_DESTDIR) |
| [ ! -d "$(OCAML_DESTDIR)/$(OCAML_LIB)" ] || \ |
| $(OCAMLFIND) remove -destdir "$(OCAML_DESTDIR)" $(OCAML_LIB) |
| set -- -destdir "$(OCAML_DESTDIR)"; \ |
| [ -f "$(OCAML_LDCONF)" ] && set -- "$${@}" -ldconf "$(OCAML_LDCONF)" || set -- "$${@}" -ldconf ignore; \ |
| $(OCAMLFIND) install "$${@}" $(OCAML_LIB) $(OCAML_FILES) |
| |
| uninstall: $(OCAML_UNINSTALL_TARGET) |
| |
| uninstall-without-findlib: |
| -rm -f -r -- $(OCAML_PKGDIR) |
| -rm -f -- $(OCAML_STUBDIR)/$(OCAML_STUB) |
| -rm -f -- $(OCAML_STUBDIR)/$(OCAML_OWNER) |
| |
| uninstall-with-findlib: |
| -$(OCAMLFIND) remove -destdir "$(OCAML_DESTDIR)" $(OCAML_LIB) |
| |