| ##===- bindings/ocaml/backends/Makefile.common -------------*- Makefile -*-===## |
| # |
| # The LLVM Compiler Infrastructure |
| # |
| # This file is distributed under the University of Illinois Open Source |
| # License. See LICENSE.TXT for details. |
| # |
| ##===----------------------------------------------------------------------===## |
| # |
| # This is the slave makefile for backend-specific bindings. This makefile should |
| # be included after defining TARGET. It will then substitute @TARGET@ for |
| # the value of TARGET in various *.in files and build an OCaml library in |
| # a regular way. |
| # |
| ##===----------------------------------------------------------------------===## |
| |
| LEVEL := ../../.. |
| LIBRARYNAME := llvm_$(TARGET) |
| UsedComponents := $(TARGET) |
| UsedOcamlInterfaces := llvm |
| |
| include $(LEVEL)/Makefile.config |
| |
| SOURCES := $(TARGET)_ocaml.c |
| OcamlHeaders1 := $(PROJ_SRC_DIR)/llvm_$(TARGET).mli |
| OcamlSources1 := $(PROJ_SRC_DIR)/llvm_$(TARGET).ml |
| |
| include ../Makefile.ocaml |
| |
| $(ObjDir)/llvm_$(TARGET).ml: $(PROJ_SRC_DIR)/llvm_backend.ml.in $(ObjDir)/.dir |
| $(Verb) $(SED) -e 's/@TARGET@/$(TARGET)/' $< > $@ |
| |
| $(ObjDir)/llvm_$(TARGET).mli: $(PROJ_SRC_DIR)/llvm_backend.mli.in $(ObjDir)/.dir |
| $(Verb) $(SED) -e 's/@TARGET@/$(TARGET)/' $< > $@ |
| |
| $(ObjDir)/$(TARGET)_ocaml.o: $(PROJ_SRC_DIR)/backend_ocaml.c $(ObjDir)/.dir |
| $(Echo) "Compiling $*.c for $(BuildMode) build" $(PIC_FLAG) |
| $(Verb) $(Compile.C) -DTARGET=$(TARGET) $< -o $@ |
| |
| |
| ##===- OCamlFind Package --------------------------------------------------===## |
| |
| all-local:: copy-meta |
| install-local:: install-meta |
| uninstall-local:: uninstall-meta |
| |
| DestMETA := $(PROJ_libocamldir)/META.llvm_$(TARGET) |
| |
| # Easy way of generating META in the objdir |
| copy-meta: $(OcamlDir)/META.llvm_$(TARGET) |
| |
| $(OcamlDir)/META.llvm_$(TARGET): META.llvm_backend.in |
| $(Verb) $(SED) -e 's/@TARGET@/$(TARGET)/' \ |
| -e 's/@PACKAGE_VERSION@/$(LLVMVersion)/' $< > $@ |
| |
| install-meta:: $(OcamlDir)/META.llvm_$(TARGET) |
| $(Echo) "Install $(BuildMode) $(DestMETA)" |
| $(Verb) $(MKDIR) $(PROJ_libocamldir) |
| $(Verb) $(DataInstall) $< "$(DestMETA)" |
| |
| uninstall-meta:: |
| $(Echo) "Uninstalling $(DestMETA)" |
| -$(Verb) $(RM) -f "$(DestMETA)" |
| |
| .PHONY: copy-meta install-meta uninstall-meta |