Hallo,
ich habe mir nochmal ein neues Makefile geschrieben.
Es kompiliert auhc alles; es gibt aber ein "Fehlermeldung":
make[1]: Zirkuläre Datei init.asm <- init.asm.o Abhängigkeit wird nicht verwendet.
Ich habe nachgeschaut, dass tritt bei allen ASM-Files auf.
Aber die hängen ja von nichts ab.
Sie werden auch erstellt.
Wie bekomme ich den Fehler weg?
Meine Makeregel sieht dazu folgender Maßen aus:
%.asm.o:%.asm
$(NASM) $(ASMFLAGS) -o $(HOME_DIR)/obj/$@ $<
Woran liegt die Meldung.
Sie stört zwar nicht, ist aber auch nicht schön.
[Edit]
Ich habe mir dann auch noch ein Linker-Teil geschrieben, der sich aus einer Directory alle Object-Files sammelt und die dann linkt.
Dabei kommt der Fehler 127 zustande.
Die Befehle:
#Makefile for the hole project
include Makefile.rules
KERNEL_DIRS = kernel kernel/driver kernel/interrupt kernel/memory
LIBC_DIRS = usr/src
#Makros
EXTENSIONS = .asm.o .c.o
OBJ_FILES = $(wildcard $(addprefix $(1)/*,$(EXTENSIONS)))
all: build-kernel
build-kernel:
for i in $(KERNEL_DIRS); do make -C $$i; done
KERNEL_OBJ = $(call OBJ_FILES,$(HOME_DIR)/obj)
$(LD) $(LDFLAGS) $(HOME_DIR)/bin/kernel.bin $(KERNEL_OBJ)
HOME_DIR, LD und LDFLAGS sind in der Makefile.rules definiert.