#*******************************************************************************
#* booter/Makefile
#*                                                                   2012/09/22
#* Copyright (C) 2012 Mochi
#*******************************************************************************
BOOTER_OBJS = \
	real_mode/main.o \
	real_mode/a20.o \
	protected_mode/main.o \
	protected_mode/idt.o \
	protected_mode/interrupt_handlers.o \
	protected_mode/pic.o \
	protected_mode/load.o \
	protected_mode/ata.o

# Cコンパイラオプション
CFLAGS = \
	-O \
	-masm=intel \
	-ffreestanding \
	-I../include

# リンカオプション
LDFLAGS = \
	-L../libraries \
	-lcstandard

#*********
# Actions
#*********
.PHONY:all clean mostlyclean
all: booter

clean: mostlyclean

mostlyclean:
	-rm -f *~ real_mode/*~ protected_mode/*~
	-rm -f booter
	-rm -f $(BOOTER_OBJS)

#*******
# Rules
#*******
%.o: %.s Makefile
	$(AS) -o $@ $<

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

booter: $(BOOTER_OBJS) Makefile
	$(LD) -T booter.lds -o $@ $(BOOTER_OBJS) $(LDFLAGS)
