Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
CTCaer
GitHub Repository: CTCaer/hekate
Path: blob/master/modules/hekate_libsys_minerva/Makefile
3693 views
ifeq ($(strip $(DEVKITARM)),)
$(error "Please set DEVKITARM in your environment. export DEVKITARM=<path to>devkitARM")
endif

include $(DEVKITARM)/base_rules

TARGET := libsys_minerva
BUILDDIR := ../../build/$(TARGET)
OUTPUTDIR := ../../output
BDKDIR := bdk
BDKINC := -I../../$(BDKDIR)

# Track compiler flags
TRACK_CFLAGS = $(BUILDDIR)/.cflags
TRACK_LDFLAGS = $(BUILDDIR)/.ldflags

OBJS = $(addprefix $(BUILDDIR)/,\
	sys_sdrammtc.o \
)

ARCH := -march=armv4t -mtune=arm7tdmi -mthumb-interwork
CFLAGS = $(ARCH) -O2 -nostdlib -fpie -ffunction-sections -fdata-sections -fomit-frame-pointer -std=gnu11 -Wall -Wsign-compare $(CUSTOMDEFINES)
LDFLAGS = $(ARCH) -fpie -pie -nostartfiles -lgcc -Wl,-z,max-page-size=256

.PHONY: all

all: $(TARGET).bso
$(BUILDDIR)/%.o: ./%.c $(TRACK_CFLAGS)
	@$(CC) $(CFLAGS) $(BDKINC) -MMD -MP -c $< -o $@

$(TARGET).bso: $(OBJS) $(TRACK_LDFLAGS)
	@$(CC) $(LDFLAGS) -e minerva_entry $(OBJS) -o $(OUTPUTDIR)/$(TARGET).bso
	@$(STRIP) -g $(OUTPUTDIR)/$(TARGET).bso
	@echo "Built module: "$(TARGET)".bso"

$(BUILDDIR):
	@mkdir -p "$(BUILDDIR)"

# Non objects change detectors.
$(TRACK_CFLAGS): $(BUILDDIR)
	@echo '$(CFLAGS)' | cmp -s - $@ || echo '$(CFLAGS)' > $@
$(TRACK_LDFLAGS): $(BUILDDIR)
	@echo '$(LDFLAGS)' | cmp -s - $@ || echo '$(LDFLAGS)' > $@
-include $(OBJS:.o=.d)