mirror of
https://github.com/fail0verflow/shofel2.git
synced 2025-07-12 09:05:51 +02:00
37 lines
994 B
Makefile
37 lines
994 B
Makefile
TOOLCHAIN ?= arm-linux-gnueabi-
|
|
CC = $(TOOLCHAIN)gcc
|
|
AS = $(TOOLCHAIN)as
|
|
OBJCOPY = $(TOOLCHAIN)objcopy
|
|
|
|
CFLAGS := -march=armv4t -mthumb -Wall -Werror -Os -MMD -ffreestanding \
|
|
-fno-common -fomit-frame-pointer -nostdlib -fno-builtin-printf \
|
|
-fno-asynchronous-unwind-tables -fPIE -fno-builtin -fno-exceptions \
|
|
-Wl,--no-dynamic-linker,--build-id=none,-T,romhax.ld
|
|
CXXFLAGS := $(CFLAGS) -std=gnu++14
|
|
CFLAGS += -std=gnu11
|
|
|
|
# shameless copypasta from https://stackoverflow.com/a/2908351/375416
|
|
C_FILES := $(wildcard *.c)
|
|
S_FILES := $(wildcard *.S)
|
|
OBJ_FILES := $(addprefix obj/,$(notdir $(C_FILES:.c=.o)))
|
|
OBJ_FILES += $(addprefix obj/,$(notdir $(S_FILES:.S=.o)))
|
|
-include $(OBJFILES:.o=.d)
|
|
|
|
all: cbfs.bin
|
|
|
|
obj/%.o: %.c
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
obj/%.o: %.S
|
|
$(AS) -c -o $@ $<
|
|
|
|
%.bin: %.elf
|
|
$(OBJCOPY) -O binary $< $@
|
|
|
|
cbfs.elf: obj/cbfs.o obj/common.o obj/vsprintf.o obj/idiv.o obj/idivmod.o obj/thumb_case.o
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
clean:
|
|
rm -f $(OBJ_FILES)
|
|
rm -f cbfs.bin cbfs.elf
|