36 lines
996 B
Makefile
36 lines
996 B
Makefile
COMPILER_RT_BUILD_DIR ?= build
|
|
DESTDIR ?= $(COMPILER_RT_BUILD_DIR)/sysroot
|
|
|
|
ifneq ($(TOOLCHAIN_FILE),)
|
|
include $(TOOLCHAIN_FILE)
|
|
endif
|
|
|
|
CC ?= clang
|
|
CFLAGS ?= -target riscv32-unknow-elf -march=rv32i -mabi=ilp32 -O2
|
|
AR ?= llvm-ar
|
|
|
|
# This option is necessary for software long double support
|
|
CFLAGS += -fforce-enable-int128
|
|
|
|
COMPILER_RT_SRCS := $(wildcard src/*.c)
|
|
COMPILER_RT_OBJS := $(patsubst src/%.c,$(COMPILER_RT_BUILD_DIR)/objs/%.o,$(COMPILER_RT_SRCS))
|
|
|
|
all: $(COMPILER_RT_BUILD_DIR)/libclang_rt.builtins.a
|
|
|
|
install: $(COMPILER_RT_BUILD_DIR)/libclang_rt.builtins.a
|
|
@mkdir -p $(DESTDIR)/lib
|
|
cp -f $(COMPILER_RT_BUILD_DIR)/libclang_rt.builtins.a $(DESTDIR)/lib/
|
|
|
|
clean:
|
|
rm -rf $(COMPILER_RT_BUILD_DIR)/libclang_rt.builtins.a $(COMPILER_RT_BUILD_DIR)/objs
|
|
|
|
$(COMPILER_RT_BUILD_DIR)/objs/%.o: src/%.c
|
|
@mkdir -p $(dir $@)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(COMPILER_RT_BUILD_DIR)/libclang_rt.builtins.a: $(COMPILER_RT_OBJS)
|
|
@rm -f $@
|
|
$(AR) rcs $@ $(COMPILER_RT_OBJS)
|
|
|
|
.PHONY: all install clean
|