CONF=pc64 ARCH = amd64RUSTC = rustcCC = gccLD = ldAS = nasmOBJCOPY = objcopyQEMU = qemu-system-x86_64 LDFLAGS = --gc-sections -z max-page-size=0x1000 -T $(CONF).ldRUSTFLAGS = -C soft-float -g -O --target=$(CONF).json OBJ= \ $(CONF).o \ l.o\ LIBCORE = libcore.rlib all: 9$(CONF) 9$(CONF): $(OBJ) $(LD) $(LDFLAGS) -o $@.tmp $(OBJ) $(LIBCORE) $(OBJCOPY) --strip-debug -F elf32-i386 $@.tmp $@ $(OBJCOPY) --only-keep-debug $@.tmp $@.sym rm -f $@.tmp debug: 9$(CONF) $(QEMU) -s -S -kernel $< -serial stdio $(CONF).o: $(CONF).rs $(LIBCORE) $(RUSTC) $(RUSTFLAGS) -o $@ --emit=obj $< --extern core=$(LIBCORE) %.o: %.c $(CC) -c -o $@ $< $(CFLAGS) %.o: %.asm $(AS) -f elf64 -Wall -o $@ $< $(ASFLAGS) libcore.rlib: libcore/lib.rs $(RUSTC) $(RUSTFLAGS) -o $@ --crate-type=lib --emit=link $< clean: rm -f 9$(CONF) *.sym *.d *.rlib *.o *.bin
CONF=pc64
ARCH = amd64
RUSTC = rustc
CC = gcc
LD = ld
AS = nasm
OBJCOPY = objcopy
QEMU = qemu-system-x86_64
LDFLAGS = --gc-sections -z max-page-size=0x1000 -T $(CONF).ld
RUSTFLAGS = -C soft-float -g -O --target=$(CONF).json
OBJ= \
$(CONF).o \
l.o\
LIBCORE = libcore.rlib
all: 9$(CONF)
9$(CONF): $(OBJ)
$(LD) $(LDFLAGS) -o $@.tmp $(OBJ) $(LIBCORE)
$(OBJCOPY) --strip-debug -F elf32-i386 $@.tmp $@
$(OBJCOPY) --only-keep-debug $@.tmp $@.sym
rm -f $@.tmp
debug: 9$(CONF)
$(QEMU) -s -S -kernel $< -serial stdio
$(CONF).o: $(CONF).rs $(LIBCORE)
$(RUSTC) $(RUSTFLAGS) -o $@ --emit=obj $< --extern core=$(LIBCORE)
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS)
%.o: %.asm
$(AS) -f elf64 -Wall -o $@ $< $(ASFLAGS)
libcore.rlib: libcore/lib.rs
$(RUSTC) $(RUSTFLAGS) -o $@ --crate-type=lib --emit=link $<
clean:
rm -f 9$(CONF) *.sym *.d *.rlib *.o *.bin