blob: 9a0a63045f889832888a2382e2fe1f41d5f6ae7c [file] [log] [blame]
# Copyright 2022 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# This is an example showing a basic makefile that links in the IREE runtime by
# way of the unified static library. It's recommended that IREE is added as a
# subproject and cmake is used to add the dependencies (as in the CMakeLists.txt
# in this directory) but when using other build systems this is easier to adapt.
#
# Configure the runtime:
# cmake -GNinja -B ../iree-build-runtime/ . \
# -DCMAKE_BUILD_TYPE=MinSizeRel \
# -DIREE_SIZE_OPTIMIZED=ON
# Build the runtime:
# cmake --build ../iree-build-runtime/ --target iree_runtime_unified
# Make this binary:
# make custom-module-run-min RUNTIME_BUILD_DIR=../iree-build-runtime/
#
# Note that if IREE_SIZE_OPTIMIZED is used to build the runtime then the
# -DNDEBUG and -DIREE_STATUS_MODE=0 are required on any binaries using it.
RUNTIME_SRC_DIR ?= ../../runtime/src/
RUNTIME_BUILD_DIR ?= ../../../iree-build/
SRC_FILES := module.h module.cc main.c
INCLUDE_DIRS := ${RUNTIME_SRC_DIR}
INCLUDE_FLAGS := $(addprefix -I,${INCLUDE_DIRS})
LIBRARY_DIRS := \
${RUNTIME_BUILD_DIR}/build_tools/third_party/flatcc/ \
${RUNTIME_BUILD_DIR}/runtime/src/iree/runtime/
LINK_LIBRARIES := \
iree_runtime_unified \
flatcc_parsing
LIBRARY_FLAGS := $(addprefix -L,${LIBRARY_DIRS}) $(addprefix -l,${LINK_LIBRARIES})
CXX_FLAGS := -flto ${INCLUDE_FLAGS} ${LIBRARY_FLAGS}
MIN_FLAGS := \
-s \
-Os \
-DNDEBUG \
-DIREE_STATUS_MODE=0
all: custom-module-run custom-module-run-min
clean:
rm -f custom-module-run custom-module-run-min
custom-module-run: ${SRC_FILES}
${CXX} ${SRC_FILES} ${CXX_FLAGS} -o $@
custom-module-run-min: ${SRC_FILES}
${CXX} ${SRC_FILES} ${CXX_FLAGS} ${MIN_FLAGS} -o $@