mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-05 13:09:10 +00:00
2bdf881ee4
This allows to only link in the needed targets, reducing binary size and more importantly link time. Note that this is an incomplete implementation: currently, LLVM does not have the plumbing which would allow to conditionally link in AsmPrinter, AsmParser and Disassembler for the targets which support them. This should be improved in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194670 91177308-0d34-0410-b5e6-96231b3b80d8
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
|