-CFLAGS = -pedantic -Wall -g $(inc) `sdl-config --cflags`
-LDFLAGS = -Llibs/imago -Llibs/mikmod -limago -lmikmod `sdl-config --libs` -lm
+inc = -I/usr/local/include -Isrc -Isrc/3dgfx -Isrc/scr -Isrc/glut -Ilibs \
+ -Ilibs/imago/src -Ilibs/mikmod/include
+def = -DMINIGLUT_USE_LIBC -DMIKMOD_STATIC
+warn = -pedantic -Wall -Wno-unused-variable -Wno-unused-function
+#opt = -O3 -ffast-math
+dbg = -g
+
+CFLAGS = $(arch) $(warn) -MMD $(opt) -fno-strict-aliasing $(dbg) $(inc)
+LDFLAGS = $(arch) -Llibs/imago -Llibs/mikmod -limago -lmikmod \
+ $(sndlib_$(sys)) -lm
+
+cpu ?= $(shell uname -m | sed 's/i.86/i386/')
+
+ifeq ($(cpu), x86_64)
+ arch = -m32
+endif
+
+sys ?= $(shell uname -s | sed 's/MINGW.*/mingw/; s/IRIX.*/IRIX/')
+ifeq ($(sys), mingw)
+ obj = $(src:.c=.w32.o)
+
+ bin = demo_win32.exe
+
+ LDFLAGS += -static-libgcc -lmingw32 -mconsole -lgdi32 -lwinmm \
+ -lopengl32
+else
+ LDFLAGS += -lGL -lX11 -lpthread
+endif
+
+sndlib_Linux = -lasound
+sndlib_IRIX = -laudio
+sndlib_mingw = -ldsound
+
+.PHONY: all
+all: data $(bin)