forked from OSchip/llvm-project
66 lines
2.1 KiB
Makefile
66 lines
2.1 KiB
Makefile
|
##===- 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
|