Hi,
nach (sehr) langer Zeit habe ich mich mal wieder meinem Kernel gewidmet (Source angesehen, Würgereiz unterdrückt und neu angefangen). Dabei möchte ich jetzt auch ein Linkerscript und ein Makefile einsetzen.
Das mit dem Linkerscript klappt, aber das Makefile macht mir noch Problem.
Ich erkläre vielleicht zuerst einmal, wie ich das überhaupt haben will:
Im Ordner meines Kernels liegen zuerst einmal das Linkerscript (kernel.ld) und das Makefile. Dann gibt es da noch einen Unterordner (src) in dem der ganze Code liegt.
Wenn ich nun make starte, soll er alle *.bas-Files aus dem src-Ordner kompilieren und das Obj-File im Hauptordner ablegen (evtl. später auch in einem Unterordner obj oder so) und dann alle Obj-Files mit dem Linkerscript linken.
Auf Basis von Teil 4 der Tutorial-Reihe und jeder Menge googlen hab ich mir jetzt ein Makefile zusammengebastelt, dass mich aber mit einem Fehler abspeist:
make: *** Keine Regel vorhanden, um das Target »video.o«,
benötigt von »frost.krn«, zu erstellen. Schluss.
video.o wäre das Obj-File von video.bas, welches sich um die Ausgabe auf dem Bildschirm kümmert.
Jetzt folgt mein Makefile:
SRCS = $(shell find src -name *.bas)
OBJS = $(addsuffix .o,$(basename $(notdir $(SRCS))))
CC = fbc
LD = ld
CFLAGS = -c
LDFLAGS = -melf_i386 -Tkernel.ld
frost.krn: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.bas
$(CC) $(CFLAGS) -o $@ $^
clean:
rm $(OBJS)
rm frost.krn
.PHONY: clean
Wie ihr vermutlich schon erraten habt, habe ich keine Ahnung, wo mein Fehler liegt
Ich hoffe mal, dass ihr mir erklären könnnt, was ich falsch gemacht habe.