# Makefile for the Time Zone shared desktop applet # Copyright (c) 2026 Daniel Hammer MAKEFLAGS += -rR .SUFFIXES: TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CXX := $(TOOLCHAIN_PREFIX)g++ LD := $(TOOLCHAIN_PREFIX)ld else CXX := g++ LD := ld endif OUTDIR := ../../bin/os OBJDIR := obj TARGET := $(OUTDIR)/timezonesapplet.lib CXXFLAGS := \ -std=gnu++20 \ -g -O2 -pipe \ -Wall \ -Wextra \ -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ -fPIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ -m64 \ -march=x86-64 \ -mno-red-zone \ -mcmodel=small \ -MMD -MP \ -I ../../include \ -isystem ../../include/libc \ -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include LDFLAGS := \ -shared \ --build-id=none \ --hash-style=sysv \ -m elf_x86_64 \ -z max-page-size=0x1000 SRCS := src/libtimezonesapplet.cpp OBJS := $(addprefix $(OBJDIR)/,$(SRCS:.cpp=.o)) .PHONY: all clean all: $(TARGET) $(TARGET): $(OBJS) Makefile mkdir -p $(OUTDIR) $(LD) $(LDFLAGS) $(OBJS) -o $@ $(OBJDIR)/%.o: %.cpp Makefile mkdir -p $(dir $@) $(CXX) $(CXXFLAGS) -c $< -o $@ -include $(OBJS:.o=.d) clean: rm -rf $(OBJDIR) $(TARGET)