make.txt "missing separator"

hey leute. hier meine make.txt
Code:
gcc -c -o bootloader.o bootloader.asm
gcc -c -o kernel.o kernel.c
gcc bootloader.o kernel.o -o kernel.bin

ich will mit ihr die *.obj bootloader und kernel zusammen in eine *.bin file linken damit sie bootbar ist. boorloader is ne assembler und kernel ne c file wie man an der endung sieht.
wenn ich jetzt in die konsole
"make make.txt kernel.bin" eingebe bekomme ich nur die warnung "make.txt:1: *** missing separator. Schluss." was kann ich machen bzw gibt es ne andere möglichkeit die beiden files zu linken ?
 
entschuldigung, aber soll das ein makefile für linux sein?

Code:
#!/bin/sh

make:
    gcc foo bar

ausführbar machen, make eingeben, fertig.
 
ganz genau das soll sein, allerdings verstehe ich jetzt wieder nich was du hiermit erreichen willst

Code:
#!/bin/sh

make:
    gcc foo bar

*dumm bin*
 
ja du hast es erkannt nur alle makefiles die ich schreibe funktionieren nicht siehe diese hier
Code:
LD = /usr/bin/ld
kernel: bootloader.o kernel.o
	ld bootloader.o kernel.o

%.o: %.c
%.o: %.asm

ich will die datei kernel.o mit der bootloader.o linken. kernel.o benutz dabei funktionen die in bootloader.o definiert sind. bootloader.o ist der source ne assembler, kernel.o ist der source ein c-quellcode, so jetzt bekomm ich bei dieser makefile immer die warnung
Code:
cc    -c -o kernel.o kernel.c
cc   kernel.o   -o kernel
kernel.o: In function `main':
kernel.c:(.text+0x14): undefined reference to `boot'
kernel.c:(.text+0x1f): undefined reference to `prnt'
collect2: ld gab 1 als Ende-Status zurück
make: *** [kernel] Fehler 1
 
was du mit BLA=FOO definierst, das rufst du mit $(BLA) auf, nicht mit BLA.

LD=/usr/bin/ld
kernel:
$(LD) bootloader.o kernel.o

ob das hier das problem ist weiss ich nicht, hab leider nicht allzuviel zeit hier reinzuschauen. lern aber dringend ein wenig über bashscripting und makefiles, sonst wirst du immer probleme mit sowas haben.
 
Zurück
Oben