# ──────────────────────────────────────────────────────────── # LaserBoy‑FLTK • Ubuntu‑24.10 Makefile # Produces: # • objects → ../build/*.oux # • binary → ../LaserBoy_fltk_ubuntu # ──────────────────────────────────────────────────────────── BIN := ../LaserBoy_fltk_ubuntu CXX ?= g++ STRIP ?= strip -s # ───────── include / lib search paths ─────────────────────── INC_PATHS := -I/usr/local/include LIB_PATHS := -L/usr/local/lib # ───────── compiler flags ─────────────────────────────────── CXXFLAGS = -std=c++17 \ -O3 \ -pipe \ -Wall -Wextra \ -frounding-math \ -Wno-unused-parameter \ -Wno-implicit-fallthrough \ -Wno-missing-field-initializers \ -Wno-misleading-indentation \ -Wno-mismatched-new-delete \ -Wno-unused-but-set-variable \ $(INC_PATHS) # ───────── libraries ──────────────────────────────────────── BOOST_LIBS = -lboost_system \ -lboost_filesystem \ -lboost_thread \ -lboost_chrono FLTK_LIBS = -lfltk \ -lfltk_images IMG_LIBS = -ljpeg \ -lpng \ -lz X11_LIBS = -lX11 \ -lXext \ -lXft \ -lfontconfig \ -lXrender \ -lXfixes \ -lXcursor \ -lXinerama SYS_LIBS = -pthread \ -ldl LDFLAGS = $(LIB_PATHS) \ $(BOOST_LIBS) \ $(FLTK_LIBS) \ $(IMG_LIBS) \ $(X11_LIBS) \ $(SYS_LIBS) # ───────── source / object / dep lists ────────────────────── SRC := $(wildcard LaserBoy*.cpp) OBJ := $(patsubst %.cpp,../build/%.oux,$(SRC)) DEP := $(OBJ:.oux=.dux) # ───────── rules ──────────────────────────────────────────── all: $(BIN) strip $(BIN): $(OBJ) $(CXX) $(OBJ) -o $@ $(LDFLAGS) ../build/%.oux: %.cpp @mkdir -p ../build $(CXX) $(CXXFLAGS) -MD -MF ../build/$*.dux -c $< -o $@ -include $(DEP) strip: @if [ -f $(BIN) ]; then $(STRIP) $(BIN); fi clean: rm -f ../build/*.oux ../build/*.dux $(BIN) .PHONY: all clean strip