GR-SAKURAのMakefile

以前、CygwinとGCCを使ったGR-SAKURAのローカルビルド環境について書きましたが、その後、Webコンパイラの仕様が変わってしまい、Makefileをダウンロードできなくなったようです。そこで、Makefileの一例をここに示しておきます。適宜、必要な項目を追記して使用してください。


ダウンロード


OBJFILES = ./common.o ./gr_sketch.o ./gr_common/intvect.o ./gr_common/lowlevel.o
LIBFILES = ./gr_common/lib/libc.a ./gr_common/lib/libg.a ./gr_common/lib/libgcc.a ./gr_common/lib/libm.a ./gr_common/lib/librxduino.a ./gr_common/lib/libsim.a ./gr_common/lib/libstdc++.a ./gr_common/lib/libsupc++.a ./gr_common/lib/libtkdnhal.a ./gr_common/lib/libtkdnip.a ./gr_sakura_servo/libservo.a
CCINC = -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -I./gr_sakura_servo
CPPINC = -I./gr_build -I./gr_common -I./gr_common/include -I./gr_common/include/rxduino -I./gr_common/include/tkdnhal -I./gr_common/lib -I./gr_sakura_servo
TARGET = sketch
CC = $(CCPATH)rx-elf-gcc -Wall -g -O2 $(CCINC)
CPP = $(CCPATH)rx-elf-gcc -Wall -g -O2 $(CPPINC)
AS = $(CCPATH)rx-elf-as
LNK = $(CCPATH)rx-elf-ld
#CNV = $(CCPATH)rx-elf-objcopy --srec-forceS3 --srec-len 32 -O srec
CNV = $(CCPATH)rx-elf-objcopy -O binary
DMP = $(CCPATH)rx-elf-objdump
OBJS = ./gr_common/gstart.o $(OBJFILES) $(LIBFILES)
LFLAGS = -L./gr_common/lib/ -lrxduino -lstdc++ -lsupc++ -lc -lsim -lgcc -lm -ltkdnhal -nostartfiles
MAKEFILE = makefile
ROMSCRIPT=./gr_common/gr_sakura.gsi

make = make --no-print-directory

all: rom

rom: $(OBJS) $(MAKEFILE) $(ROMSCRIPT)
$(LNK) -Map ./gr_build/$(TARGET).map $(OBJS) -T $(ROMSCRIPT) $(LFLAGS) -o $(TARGET).elf
$(CNV) $(TARGET).elf $(TARGET).bin
rm -f *.o
rm -f $(TARGET).elf

#gstart.o: gstart.s
# $(AS) -o gstart.o gstart.s

.c.o:
$(CC) $(CFLAGS) -c $< -o $@

.cpp.o:
$(CPP) $(CFLAGS) -c $< -o $@