Ajouter des fichers headers et/ou C à un makefile linux
Bonjour à tous/toutes,
J'essaye de modifier une template C trouvée sur le web. De prendre un simple "hello world" pour Agon Light (programmé en sdcc), et d'en faire un programme à moi.
Mais comme je ne comprend pas grand chose aux fichiers make linux, je requiers un peu d'aide.
Merci d'avance.
Voici le makefile en question:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
rwildcard=$(foreach d,$(wildcard $(1:=/*)),$(call rwildcard,$d,$2) $(filter $(subst *,%,$2),$d))
SRC=$(call rwildcard,src,*.h) src/main.c
INC=$(call rwildcard,include,*.h) $(call rwildcard,src,*.h)
MOSLIBSRC=$(call rwildcard,include,*.s)
CRT=out/crt0.rel
MOSLIB=out/mos.rel
CC=sdcc
LD=sdcc
AS=sdasz80
CLD=sdldz80
OBJCPY=sdobjcopy
ASFLAGS=-plosgff
CFLAGS=-mez80_z80 -Iinclude/ -Isrc/include/ --reserve-regs-iy --std-c11 --fno-omit-frame-pointer
CLINK=--no-std-crt0 -mez80_z80 --code-loc 100
all: a.bin
$(CRT): crt/crt0.s
$(AS) $(ASFLAGS) -o $(CRT) crt/crt0.s
$(MOSLIB): $(MOSLIBSRC)
$(AS) $(ASFLAGS) -o $(MOSLIB) lib/mos.s
a.bin: $(SRC) $(INC) $(CRT) $(MOSLIB)
$(CC) $(CFLAGS) $(MOSLIB) src/main.c -o out/main.ihx
$(LD) $(CLINK) $(CRT) $(MOSLIB) out/main.rel -o out/a.ihx
$(CLD) -nf out/a.lk
$(OBJCPY) -I ihex -O binary out/a.ihx main.bin
clean:
rm -rf out/*.* out/* main.bin |
EDIT: Pour info, le message d'erreur qui me fait penser que je dois modifier le makefile...
Code:
1 2
| ?ASlink-Warning-Undefined Global '_init' referenced by module 'main'
make: *** [Makefile:29: a.bin] Error 1 |
EDIT: J'ai modifié ceci, ce qui change le message d'erreur à ce qui suit.
Code:
1 2 3 4
| a.bin: $(SRC) $(INC) $(CRT) $(MOSLIB)
$(CC) $(CFLAGS) $(MOSLIB) src/main.c -o out/main.ihx
$(CC) $(CFLAGS) $(MOSLIB) src/func.c -o out/func.ihx
$(CC) $(CFLAGS) $(MOSLIB) src/vdu.c -o out/vdu.ihx |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
bruno@PC-Salon:~/C/miniGraf$ make all
sdcc -mez80_z80 -Iinclude/ -Isrc/include/ --reserve-regs-iy --std-c11 --fno-omit-frame-pointer out/mos.rel src/main.c -o out/main.ihx
?ASlink-Warning-Undefined Global '_clear_text_area' referenced by module 'main'
?ASlink-Warning-Undefined Global '_VDU' referenced by module 'main'
?ASlink-Warning-Undefined Global '_init' referenced by module 'main'
?ASlink-Warning-Undefined Global '_change_pen' referenced by module 'main'
?ASlink-Warning-Undefined Global '_intro_screen' referenced by module 'main'
?ASlink-Warning-Undefined Global '_sleep' referenced by module 'main'
?ASlink-Warning-Undefined Global '_clear_all' referenced by module 'main'
?ASlink-Warning-Undefined Global '_inkey' referenced by module 'main'
make: *** [Makefile:29: a.bin] Error 1 |