commit 625f68f

shrub  ·  2026-10-30 14:26:30 +0000 UTC
parent 7daaec8
makefile: simplify and posix compliance
1 files changed,  +14, -26
+14, -26
 1@@ -1,41 +1,29 @@
 2-DEBUG = FALSE
 3+.POSIX:
 4 
 5-GCC = nspire-gcc
 6-AS  = nspire-as
 7-GXX = nspire-g++
 8-LD  = nspire-ld
 9+CC = nspire-gcc
10+LD = nspire-ld
11 GENZEHN = genzehn
12 
13-GCCFLAGS = -Wall -W -marm -Wno-int-conversion -Os
14+CFLAGS  = -Wall -W -marm -Wno-int-conversion -Os
15 LDFLAGS = -lSDL -Wl,-Os
16 ZEHNFLAGS = --name "uxn39"
17 
18-OBJS = $(patsubst %.c, %.o, $(shell find . -name \*.c))
19-OBJS += $(patsubst %.cpp, %.o, $(shell find . -name \*.cpp))
20-OBJS += $(patsubst %.S, %.o, $(shell find . -name \*.S))
21 EXE = uxn39
22-DISTDIR = .
23-vpath %.tns $(DISTDIR)
24-vpath %.elf $(DISTDIR)
25 
26 all: $(EXE).tns
27 
28-%.o: %.c
29-	$(GCC) $(GCCFLAGS) -c $<
30+uxn.o: uxn.c
31+	$(CC) $(CFLAGS) -c $< -o $@
32 
33-%.o: %.cpp
34-	$(GXX) $(GCCFLAGS) -c $<
35-%.o: %.S
36-	$(AS) -c $<
37-
38-$(EXE).elf: $(OBJS)
39-	mkdir -p $(DISTDIR)
40-	$(LD) $^ -o $(DISTDIR)/$@ $(LDFLAGS)
41+$(EXE).elf: uxn.o
42+	$(LD) $^ -o $@ $(LDFLAGS)
43 
44 $(EXE).tns: $(EXE).elf
45-	$(GENZEHN) --input $(DISTDIR)/$^ --output $(DISTDIR)/$@.zehn $(ZEHNFLAGS)
46-	make-prg $(DISTDIR)/$@.zehn $(DISTDIR)/$@
47-	rm $(DISTDIR)/$@.zehn
48+	$(GENZEHN) --input $< --output $@.zehn $(ZEHNFLAGS)
49+	make-prg $@.zehn $@
50+	rm -f $@.zehn
51 
52 clean:
53-	rm -f *.o $(DISTDIR)/$(EXE).tns $(DISTDIR)/$(EXE).elf $(DISTDIR)/$(EXE).zehn
54+	rm -f uxn.o $(EXE).elf $(EXE).tns $(EXE).tns.zehn
55+
56+.PHONY: all clean