#
#  GRUB stage2 makefile
#

VPATH = ../shared_src netboot

SHARED_FLAGS += -I../shared_src
LOCAL_FLAGS = -MMD

SRCS=	main.c
OBJS=	main.o

SHARED_OBJS=	asm.o common.o char_io.o boot.o cmdline.o gunzip.o \
	disk_io.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o 
SHARED_SRCS=	asm.S common.c char_io.c boot.c cmdline.c gunzip.c \
	disk_io.c fsys_ffs.c fsys_ext2fs.c fsys_fat.c 

# "asm.o" absolutely must come first!!!
ALL_OBJS= $(SHARED_OBJS) $(NET_OBJS) $(OBJS)
ALL_SRCS= $(SHARED_SRCS) $(NET_SRCS) $(SRCS)

all:	../bin/stage2

include Config

$(ALL_OBJS): Makefile Config ../Makefile

asm.o: %.o: %.S
	$(CC) $(CFLAGS) $(LOCAL_FLAGS) $(SHARED_FLAGS) -c $<

%.o: %.c
	$(CC) $(CFLAGS) $(LOCAL_FLAGS) $(SHARED_FLAGS) -c $<

# "asm.o" absolutely has to come first in the link line!
stage2.exec:	$(ALL_OBJS) Makefile ../Makefile $(NETLIB)
	$(LD) -N -Ttext 8000 -o stage2.exec $(ALL_OBJS) $(NETLIB)

../bin/stage2:	stage2.exec Makefile ../Makefile
	$(OBJCOPY) -O binary stage2.exec ../bin/stage2

clean:
	rm -f $(ALL_OBJS) stage2.exec
	$(MAKE) -f Makefile.drivers clean
	rm -f *.d

include $(wildcard $(ALL_OBJS:.o=.d))
