blob: 4d1a0475f0c774933a5bac641078f656e9c32275 [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/ .
# Build the runtime:
# cmake --build ../iree-build-runtime/ --target iree_runtime_unified
# Make this binary:
# make 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. YMMV
# if changing any compiler options and not keeping them in sync. Prefer using
# cmake to ensure consistency between the builds.
#
# If cpuinfo is not supported on your platform then configure the runtime with
# -DIREE_ENABLE_CPUINFO=OFF.
RUNTIME_SRC_DIR ?= ../../runtime/src/
RUNTIME_BUILD_DIR ?= ../../../iree-build-runtime/
SRC_FILES := 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/ \
${RUNTIME_BUILD_DIR}/third_party/cpuinfo/ \
${RUNTIME_BUILD_DIR}/third_party/cpuinfo/deps/clog
LINK_LIBRARIES := \
iree_runtime_unified \
flatcc_parsing \
cpuinfo \
clog \
dl \
pthread
LIBRARY_FLAGS := $(addprefix -L,${LIBRARY_DIRS}) $(addprefix -l,${LINK_LIBRARIES})
CXX_FLAGS := -flto -Os ${INCLUDE_FLAGS} ${LIBRARY_FLAGS}
all: dynamic-shapes
clean:
rm -f dynamic-shapes
dynamic-shapes: ${SRC_FILES}
${CXX} ${SRC_FILES} ${CXX_FLAGS} -o $@