#
#  Amiga Linux/m68k Loader
#
#  Makefile
#

CC =		gcc -O2 -c -Wall -fomit-frame-pointer
ASM =		$(CC)
LINK =		gcc
PICCC =		$(CC) -fPIC -S
FIXPIC =	./fixpic
PICLINK =	ld -oformat binary -Bstatic -defsym _start=0 -Ttext 0x00000000
BISON =		bison -d
FLEX =		flex
INSTALL =	install
RM =		rm -f
LN =            ln -s
LATEX =		latex
DVIPS =		dvips


OBJS =		lilo loader lilo.dvi lilo.ps


All:		$(OBJS)


lilo:		lilo.o bootcode.o conf.tab.o lex.yy.o
		$(LINK) lilo.o bootcode.o conf.tab.o lex.yy.o -o lilo

loader:		header.o loader.pic.o linuxboot.pic.o
		$(PICLINK) header.o loader.pic.o linuxboot.pic.o -o loader -lc

lex.yy.c:	conf.l
		$(FLEX) conf.l

conf.tab.c:	conf.y
		$(BISON) conf.y

loader.s:	loader.c loader.h bootlib.h lilo.h linuxboot.h
		$(PICCC) loader.c

loader.pic.s:	loader.s
		$(FIXPIC) loader.s

linuxboot.s:	linuxboot.c linuxboot.h
		$(PICCC) -DMODIFY_BOOTINFO linuxboot.c

linuxboot.pic.s:	linuxboot.s
		$(FIXPIC) linuxboot.s

linuxboot.h:	/usr/src/linux/arch/m68k/boot/amiga/linuxboot.h
		$(LN) /usr/src/linux/arch/m68k/boot/amiga/linuxboot.h

linuxboot.c:	/usr/src/linux/arch/m68k/boot/amiga/linuxboot.c
		$(LN) /usr/src/linux/arch/m68k/boot/amiga/linuxboot.c


lilo.o:		lilo.c lilo.h
bootcode.o:	bootcode.s
conf.tab.o:	conf.tab.c lilo.h
lex.yy.o:	lex.yy.c lilo.h conf.tab.h

lilo.ps:	lilo.dvi
		$(DVIPS) lilo.dvi -o lilo.ps

lilo.dvi:	lilo.tex
		$(LATEX) lilo.tex
		$(LATEX) lilo.tex


install:	$(OBJS)
		$(INSTALL) -m 700 lilo $(DESTDIR)/sbin
		$(INSTALL) -d -m 700 $(DESTDIR)/boot
		$(INSTALL) -m 600 loader $(DESTDIR)/boot
		$(INSTALL) lilo.8 $(DESTDIR)/usr/man/man8
		$(INSTALL) lilo.conf.5 $(DESTDIR)/usr/man/man5
		$(INSTALL) -d -m 755 $(DESTDIR)/usr/lib/lilo
		$(INSTALL) -m 644 lilo.dvi $(DESTDIR)/usr/lib/lilo
		$(INSTALL) -m 644 lilo.ps $(DESTDIR)/usr/lib/lilo


clean:
		$(RM) $(OBJS) conf.tab.* lex.yy.c loader.s loader.pic.s
		$(RM) linuxboot.s linuxboot.pic.s linuxboot.h linuxboot.c *.aux
		$(RM) *.log *.o *.toc


.c.o:
		$(CC) $*.c

.s.o:
		$(ASM) $*.s
