X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=Makefile.dj;fp=Makefile.dj;h=e24955357563cccfcbab1ac1d8f3aef69d52d264;hp=0000000000000000000000000000000000000000;hb=57bd2dc519c47f434e3e5acf998fb9c72448cbce;hpb=d956a9d9273eebfacfda58cb3bafff017269d5dc diff --git a/Makefile.dj b/Makefile.dj new file mode 100644 index 0000000..e249553 --- /dev/null +++ b/Makefile.dj @@ -0,0 +1,97 @@ +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=.odj) $(asmsrc:.asm=.odj) +dep = $(obj:.odj=.dep) +bin = demo.exe + +asmsrc += cspr/dbgfont.asm cspr/confont.asm +bindata = data/loading.img + +ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM) + hostsys = dos +else + hostsys = unix + TOOLPREFIX = i586-pc-msdosdjgpp- +endif + +inc = -Isrc -Isrc/scr -Isrc/dos -Ilibs -Ilibs/imago/src -Ilibs/anim/src +opt = -O3 -ffast-math -fno-strict-aliasing +warn = -pedantic -Wall -Wno-unused-function -Wno-unused-variable + +ifdef RELEASE + dbg = -g + def = -DNDEBUG -DNO_MUSIC +else + def = -DNO_MUSIC +endif +#prof = -pg + +CC = $(TOOLPREFIX)gcc +AR = $(TOOLPREFIX)ar +CFLAGS = $(warn) -march=pentium $(dbg) $(opt) $(prof) $(inc) $(def) +LDFLAGS = libs/imago/imago.dja libs/anim/anim.dja + +ifneq ($(hostsys), dos) +.PHONY: all +all: data $(bin) +endif + +$(bin): $(obj) imago anim + $(CC) -o $@ -Wl,-Map=ld.map $(prof) $(obj) $(LDFLAGS) + +%.odj: %.asm + nasm -f coff -o $@ $< + +src/data.odj: src/data.asm $(bindata) + +ifneq ($(hostsys), dos) +-include $(dep) +endif + +%.odj: %.c + $(CC) $(CFLAGS) -o $@ -c $< + +%.dep: %.c + @echo dep $@ + @$(CPP) $(CFLAGS) $< -MM -MT $(@:.dep=.odj) >$@ + +.PHONY: imago +imago: + $(MAKE) -C libs/imago -f Makefile + +.PHONY: anim +anim: + $(MAKE) -C libs/anim -f Makefile + +.PHONY: cleanlibs +cleanlibs: + $(MAKE) -C libs/imago -f Makefile clean + $(MAKE) -C libs/anim -f Makefile clean + +.PHONY: clean +.PHONY: cleandep + +ifeq ($(hostsys), dos) +clean: + del src\*.odj + del src\dos\*.odj + del $(bin) + +cleandep: + del src\*.dep + del src\dos\*.dep +else +clean: + rm -f $(obj) $(bin) + +cleandep: + rm -f $(dep) + +.PHONY: data +data: + @tools/procdata +endif + +.PHONY: strip +strip: $(bin) + $(TOOLPREFIX)strip $(bin)