src = $(src_main) $(filter-out $(wildcard src/main_*.c), $(wildcard src/*.c)) obj = $(src:.c=.o) dep = $(obj:.o=.d) bin = censuslogo sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/') CFLAGS = -pedantic -Wall -g -DNOLOAD LDFLAGS = $(ldflags_sys) -lm ifeq ($(sys), mingw) src_main = src/main_w32.c obj = $(src:.c=.w32.o) bin = censuslogo.exe CFLAGS += -DFREEGLUT_STATIC ldflags_sys = -lmingw32 -mconsole -lfreeglut_static -lopengl32 -lglu32 -lgdi32 -lwinmm else src_main = src/main_x11.c ldflags_sys = -lGL -lGLU -lX11 endif $(bin): $(obj) $(CC) -o $@ $(obj) $(LDFLAGS) -include $(dep) %.d: %.c @$(CPP) $(CFLAGS) $< -MM -MT $(@:.d=.o) >$@ .PHONY: clean clean: rm -f $(obj) $(bin) .PHONY: cleandep cleandep: rm -f $(dep) # --- cross-compile rules for win32 --- %.w32.o: %.c $(CC) -o $@ $(CFLAGS) -c $< .PHONY: cross cross: $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw .PHONY: cross-clean cross-clean: $(MAKE) CC=i686-w64-mingw32-gcc sys=mingw clean