src = $(wildcard src/*.c) $(wildcard src/dos/*.c)
-ssrc = sinlut.s
-obj = $(src:.c=.o) $(ssrc:.s=.o)
+ssrc = $(wildcard src/*.s) sinlut.s
+obj = $(src:.c=.odj) $(ssrc:.s=.odj)
dep = $(src:.c=.d)
coff = rbench
bin = $(coff).exe
bin0 = $(coff)0.exe
-LUTGEN = tools/lutgen.exe
+ifeq ($(findstring COMMAND.COM, $(SHELL)), COMMAND.COM)
+ host = dos
+ LUTGEN = tools/lutgen.exe
+else
+ host = unix
+ TC = i586-pc-msdosdjgpp-
+ LUTGEN = tools/lutgen
+endif
+
+CC = $(TC)gcc
+AS = $(TC)as
warn = -pedantic -Wall -Wno-deprecated-declarations
dbg = -g
-opt = -O3 -ffast-math
+opt = -O3 -ffast-math -fno-strict-aliasing
inc = -Isrc
def = -DNO_STDINT_H
-CFLAGS = -pedantic $(warn) $(dbg) $(opt) $(def) $(inc) -fno-strict-aliasing -MMD
+CFLAGS = $(warn) $(dbg) $(opt) $(def) $(inc) -MMD
LDFLAGS = -Wl,-Map=link.map
+$(bin): $(obj)
+ $(CC) -o $@ $(obj) $(LDFLAGS)
+
$(bin0): $(bin)
exe2coff $<
copy /b \djgpp\bin\cwsdstr0.exe+$(coff) $@
-$(bin): $(obj)
- $(CC) -o $@ $(obj) $(LDFLAGS)
-
sinlut.s: $(LUTGEN)
$(LUTGEN) >$@
-include $(dep)
-include *.d
+%.odj: %.c
+ $(CC) -o $@ $(CFLAGS) -c $<
+
+%.odj: %.s
+ $(AS) -o $@ $(ASFLAGS) $<
+
+ifeq ($(host), dos)
.PHONY: clean
clean:
- del src\*.o
- del src\dos\*.o
- del *.o
+ del src\*.odj
+ del src\dos\*.odj
+ del *.odj
del $(bin)
del sinlut.s
del src\*.d
del src\dos\*.d
del *.d
+else
+.PHONY: clean
+clean:
+ rm -f $(obj) $(bin)
+
+.PHONY: clean
+cleandep:
+ rm -f $(dep)
+endif
$(LUTGEN): tools/lutgen.c
- $(CC) -o $@ $< -lm
+ gcc -o $@ $< -lm