-src = $(wildcard src/*.c)
+src = $(src_main) $(filter-out $(wildcard src/main_*.c), $(wildcard src/*.c))
obj = $(src:.c=.o)
dep = $(obj:.o=.d)
bin = censuslogo
-CFLAGS = -pedantic -Wall -g
-LDFLAGS = -lGL -lGLU -lglut -lm
+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)
.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