# Makefile for the Keyboard settings applet on MontaukOS MAKEFLAGS += -rR .SUFFIXES: include ../../mk/arch.mk ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CXX = $(error $(TOOLCHAIN_MISSING)) else CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include LINK_LD := ../../link.ld BINDIR := ../../bin$(ARCH_SUFFIX) OBJDIR := obj$(ARCH_SUFFIX) LIBDIR := ../../lib CXXFLAGS := -std=gnu++20 -g -O2 -pipe -Wall -Wextra -Wno-unused-parameter \ -Wno-unused-function -ffreestanding -fno-stack-protector -fno-stack-check \ -fno-rtti -fno-exceptions -ffunction-sections -fdata-sections $(ARCH_FP_FLAGS) \ -MMD -MP -I $(PROG_INC) -isystem $(PROG_INC)/libc LDFLAGS := -nostdlib -Wl,--gc-sections -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o)) TARGET := $(BINDIR)/apps/keyboard/keyboard.elf LIBS := $(LIBDIR)/libc/$(ARCH_OUT)liblibc.a .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJS) $(LINK_LD) Makefile $(LIBS) mkdir -p $(BINDIR)/apps/keyboard $(CXX) $(CXXFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ $(OBJDIR)/%.o: %.cpp Makefile mkdir -p $(dir $@) $(CXX) $(CXXFLAGS) -c $< -o $@ -include $(OBJS:.o=.d) clean: rm -rf $(OBJDIR) $(TARGET)