Skip to content
Snippets Groups Projects
Makefile 549 B
Newer Older
  • Learn to ignore specific revisions
  • Avi Kivity's avatar
    Avi Kivity committed
    CXXFLAGS = -std=gnu++11 -lstdc++ $(CFLAGS)
    CFLAGS = $(autodepend)
    
    autodepend = -MD $(@.o=.d) -MT $@
    
    Avi Kivity's avatar
    Avi Kivity committed
    
    all: loader.bin
    
    loader.bin: loader.elf
    
    Avi Kivity's avatar
    Avi Kivity committed
    	objcopy -O elf32-i386 $^ $@
    
    fs = fs/fs.o
    
    
    Avi Kivity's avatar
    Avi Kivity committed
    drivers = drivers/vga.o
    
    drivers += $(fs)
    
    Avi Kivity's avatar
    Avi Kivity committed
    
    libc = libc/string/strcmp.o
    
    loader.elf: arch/x64/boot.o arch/x64/loader.ld loader.o runtime.o $(drivers) \
    		$(libc)
    	$(CXX) $(CXXFLAGS) -nostartfiles -static -nodefaultlibs -o $@ \
    	    $(^:%.ld=-T %.ld) -lsupc++
    
    Avi Kivity's avatar
    Avi Kivity committed
    clean:
    	find -name '*.[od]' | xargs rm
    	rm -f loader.elf loader.bin
    
    
    Avi Kivity's avatar
    Avi Kivity committed
    -include $(shell find -name '*.d')