#
#  GRUB stage2 makefile
#

VPATH = ../shared_src netboot serialboot

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 

#SHARED_OBJS=	asm.o common.o char_io.o boot.o cmdline.o gunzip.o \
	disk_io.o  
#SHARED_SRCS=	asm.S common.c char_io.c boot.c cmdline.c gunzip.c \
	disk_io.c  

#SERIAL_OBJS=	fsys_serial.o
#SERIAL_SRCS=	fsys_serial.c
#REMOTE_CONFIG= -DCONFIG_FILE_ASM=".string \"(sd0)/grub/boot/menu.lst\""

#LOCAL_FLAGS+= -DFSYS_SERIAL $(REMOTE_CONFIG)

# "asm.o" absolutely must come first!!!
ALL_OBJS= $(SHARED_OBJS) $(NET_OBJS) $(SERIAL_OBJS) $(OBJS) 
ALL_SRCS= $(SHARED_SRCS) $(NET_SRCS) $(SERIAL_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))






