2010-08-17 21:20:03 +00:00
|
|
|
MAKE = make
|
|
|
|
CC = gcc
|
2012-09-12 00:46:52 -07:00
|
|
|
CROSS_COMPILE=gcc
|
|
|
|
CROSS_OBJCOPY=objcopy
|
2011-02-08 18:37:56 +00:00
|
|
|
CFLAGS = -m32 -O2 -Wall
|
2010-08-17 21:20:03 +00:00
|
|
|
LDFLGAS =
|
2012-09-12 00:46:52 -07:00
|
|
|
DEFINES =
|
2011-02-16 15:27:21 +01:00
|
|
|
NASM = nasm
|
|
|
|
NASMFLAGS = -fbin
|
2011-09-15 21:12:14 +02:00
|
|
|
EXECFILES = $(shell find ../newlib/examples -perm -u+r+x -type f)
|
2012-06-06 05:06:41 -07:00
|
|
|
CORENUM ?= 1
|
2010-08-17 21:20:03 +00:00
|
|
|
|
|
|
|
# other implicit rules
|
|
|
|
%.o : %.c
|
|
|
|
$(CC) -c $(CFLAGS) -o $@ $<
|
|
|
|
|
2011-02-16 15:27:21 +01:00
|
|
|
default: all
|
2010-08-17 21:20:03 +00:00
|
|
|
|
2011-02-18 21:15:16 +01:00
|
|
|
all: make_initrd initrd.img
|
|
|
|
|
2011-04-13 11:01:24 -07:00
|
|
|
initrd.img: $(EXECFILES) make_initrd
|
2011-02-16 15:27:21 +01:00
|
|
|
./make_initrd /bin $(foreach FILE, $(EXECFILES), $(FILE) $(shell basename $(FILE)))
|
2010-08-25 07:36:20 +00:00
|
|
|
|
|
|
|
make_initrd: make_initrd.o
|
2010-08-17 21:20:03 +00:00
|
|
|
$(CC) $(CFLAGS) -o make_initrd $< $(LDFLAGS)
|
|
|
|
|
2010-12-15 20:55:56 +00:00
|
|
|
smp_setup.bin: smp_setup.asm
|
2011-07-18 08:35:14 +02:00
|
|
|
$(NASM) $(NASMFLAGS) -o $@ $<
|
2010-12-15 20:55:56 +00:00
|
|
|
|
|
|
|
smp_setup.hex: smp_setup.bin
|
|
|
|
hexdump -v -e '"0x" 1/1 "%02X" ", "' $< > $@
|
|
|
|
|
2010-09-07 21:04:31 +00:00
|
|
|
scc_setup.bin: scc_setup.asm
|
2011-02-16 15:27:21 +01:00
|
|
|
$(NASM) $(NASMFLAGS) -o $@ $<
|
2010-09-07 21:04:31 +00:00
|
|
|
|
2012-09-12 00:46:52 -07:00
|
|
|
reset_vector.o: reset_vector.S
|
|
|
|
gcc -m32 -c -o reset_vector.o reset_vector.S
|
|
|
|
|
2010-09-07 21:04:31 +00:00
|
|
|
reset_vector.bin: reset_vector.o
|
|
|
|
ld --oformat binary -Ttext 0 -melf_i386 -o $@ $<
|
|
|
|
|
2012-06-06 05:06:18 -07:00
|
|
|
scc_bootinfo.asm: bootinfo.sh initrd.img
|
2012-06-06 05:06:41 -07:00
|
|
|
./bootinfo.sh 0x01000000 initrd.img $(CORENUM) 533 `seq 0 $$(($(CORENUM) - 1))` > scc_bootinfo.asm
|
2011-04-13 07:04:50 -07:00
|
|
|
|
|
|
|
scc_bootinfo.bin: scc_bootinfo.asm
|
|
|
|
$(NASM) $(NASMFLAGS) -o $@ $<
|
|
|
|
|
2011-04-19 07:39:53 -07:00
|
|
|
bin2obj: bin2obj.c
|
|
|
|
$(CC) $(CFLAGS) -o $@ $<
|
|
|
|
|
|
|
|
SCC: scc_bootinfo.bin scc_setup.bin reset_vector.bin initrd.img bin2obj
|
2011-03-31 12:50:42 -07:00
|
|
|
cp ../metalsvm.elf .
|
|
|
|
$(CROSS_OBJCOPY) -j .mboot -j .text -j .data -j .rodata -j .bss -O binary metalsvm.elf metalsvm.bin
|
2011-01-06 10:39:29 +00:00
|
|
|
chmod a-x *.bin
|
2010-08-25 07:36:20 +00:00
|
|
|
. ./prepare.sh
|
2011-04-19 07:39:53 -07:00
|
|
|
./bin2obj -m load.map -o metalsvm.obj
|
2010-08-25 07:36:20 +00:00
|
|
|
sccMerge -noimage -m 8 -n 12 -force ./metalsvm.mt
|
|
|
|
|
2010-08-17 21:20:03 +00:00
|
|
|
clean:
|
2011-04-19 07:39:53 -07:00
|
|
|
$(RM) -rf *.o *~ bin2obj make_initrd initrd.img *.bin *.obj *.hex *.elf obj
|
2010-08-17 21:20:03 +00:00
|
|
|
|
|
|
|
depend:
|
|
|
|
$(CC) -MM $(CFLAGS) *.c > Makefile.dep
|
|
|
|
|
|
|
|
-include Makefile.dep
|
|
|
|
# DO NOT DELETE
|