|
|
|
# Copyright (c) Facebook, Inc. and its affiliates.
|
|
|
|
#
|
|
|
|
# This source code is licensed under the MIT license found in the
|
|
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
|
|
|
|
# additional arguments to pass to clang
|
|
|
|
OPT_ARGS?=-Os
|
|
|
|
CLANG_ARGS?=-g $(OPT_ARGS)
|
|
|
|
|
|
|
|
# select llvm and clang
|
|
|
|
SWITCH?=$(shell opam switch show)
|
|
|
|
ROOT?=..
|
|
|
|
LLVM=$(ROOT)/llvm/_install/$(SWITCH)
|
|
|
|
|
|
|
|
LIBCXXABI=$(ROOT)/llvm/projects/libcxxabi
|
|
|
|
|
|
|
|
PLATFORM=$(shell uname)
|
|
|
|
ifeq ($(PLATFORM),Linux)
|
|
|
|
CLANG_ARGS += --sysroot=/usr
|
|
|
|
endif
|
|
|
|
|
|
|
|
cxxabi.bc : cxxabi.cpp
|
|
|
|
$(LLVM)/bin/clang $(CLANG_ARGS) -I$(LLVM)/include/c++/v1 -I$(LIBCXXABI)/include -I$(LIBCXXABI)/src -c -emit-llvm cxxabi.cpp
|
|
|
|
|
|
|
|
lib_fuzzer_main.bc : lib_fuzzer_main.c
|
|
|
|
$(LLVM)/bin/clang $(CLANG_ARGS) -c -emit-llvm -o $@ $<
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -f cxxabi.bc lib_fuzzer_main.bc
|
|
|
|
|
|
|
|
fmt:
|
|
|
|
clang-format -i *.h *.c *.cpp
|
|
|
|
|
|
|
|
# print any variable for Makefile debugging
|
|
|
|
print-%:
|
|
|
|
@printf '$*='; printf '$($*)'; printf '\n'
|