-src = $(wildcard src/*.c) $(wildcard src/dos/*.c)
-obj = $(src:.c=.cof)
+src = $(wildcard src/*.c) $(wildcard src/scr/*.c) $(wildcard src/dos/*.c)
+asmsrc = $(wildcard src/*.asm) $(wildcard src/scr/*.asm) $(wildcard src/dos/*.asm)
+obj = $(src:.c=.cof) $(asmsrc:.asm=.cof)
dep = $(obj:.cof=.dep)
bin = demo.exe
+asmsrc += cspr/dbgfont.asm cspr/confont.asm
+
ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM)
hostsys = dos
else
TOOLPREFIX = i586-pc-msdosdjgpp-
endif
-inc = -Isrc -Isrc/dos -Ilibs/imago/src -Ilibs/mikmod/include
-opt = -O3 -ffast-math
+inc = -Isrc -Isrc/scr -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/anim/src -Ilibs/mikmod/include
+opt = -O3 -ffast-math -fno-strict-aliasing
dbg = -g
+warn = -pedantic -Wall -Wno-unused-function -Wno-unused-variable
CC = $(TOOLPREFIX)gcc
AR = $(TOOLPREFIX)ar
-CFLAGS = -pedantic -Wall -march=pentium $(dbg) $(opt) $(inc)
-LDFLAGS = libs/imago/imago.dja libs/mikmod/dos/libmikmod.a
+CFLAGS = $(warn) -march=pentium $(dbg) $(opt) $(inc)
+LDFLAGS = libs/imago/imago.dja libs/anim/anim.dja libs/mikmod/dos/libmikmod.a
+
+ifneq ($(hostsys), dos)
+.PHONY: all
+all: data $(bin)
+endif
-$(bin): $(obj) imago mikmod
+$(bin): $(obj) imago anim mikmod
$(CC) -o $@ -Wl,-Map=ld.map $(obj) $(LDFLAGS)
%.cof: %.asm
nasm -f coff -o $@ $<
+ifneq ($(hostsys), dos)
-include $(dep)
+endif
%.cof: %.c
$(CC) $(CFLAGS) -o $@ -c $<
%.dep: %.c
+ @echo dep $@
@$(CPP) $(CFLAGS) $< -MM -MT $(@:.dep=.cof) >$@
.PHONY: imago
imago:
$(MAKE) -C libs/imago -f Makefile.dj
+.PHONY: anim
+anim:
+ $(MAKE) -C libs/anim -f Makefile.dj
+
.PHONY: mikmod
mikmod:
$(MAKE) -C libs/mikmod/dos -f Makefile.dj
.PHONY: cleanlibs
cleanlibs:
$(MAKE) -C libs/imago -f Makefile.dj clean
+ $(MAKE) -C libs/anim -f Makefile.dj clean
$(MAKE) -C libs/mikmod/dos -f Makefile.dj clean
.PHONY: clean
cleandep:
rm -f $(dep)
+
+.PHONY: data
+data:
+ @tools/procdata
endif