# Makefile for Amiga Linux main source directory
#
# Copyright 1993 by Hamish Macdonald
#
# This file is subject to the terms and conditions of the GNU General Public
# License.  See the file "README.legal" in the main directory of this archive
# for more details.

KERNADDR=0xC0000000
HOSTCC=gcc
LD=/gcc/compilers/linux/2.2.2/ld
KERNELHDRS	= include
INCFLAGS	= -nostdinc -I$(KERNELHDRS)
CFLAGS=-Wall -DKERNEL -b linux $(INCFLAGS) -O2 -mc68020
HOSTFLAGS=-O2 -fomit-frame-pointer -mc68020 -Wall -Dlinux -I$(KERNELHDRS)
LDFLAGS=-Ttext $(KERNADDR)

BOOTOBJS = tools/bootstrap.o tools/get_nlist.o tools/bootmisc.o

ARCHIVES	=kernel/kernel.o mm/mm.o fs/fs.o # net/net.o
FILESYSTEMS	=fs/filesystems.a
DRIVERS 	=kernel/blk_drv/blk_drv.a kernel/chr_drv/chr_drv.a
MATH		=
LIBS		=lib/lib.a
SUBDIRS 	=kernel lib mm fs # net

.c.o:
	$(CC) $(CFLAGS) -c -o $*.o $<
.s.o:
	$(CC) $(CFLAGS) -c -o $*.o $<

all:	bootstrap Version vmlinux

bootstrap: $(BOOTOBJS)
	$(HOSTCC) $(HOSTFLAGS) -o tmp $(BOOTOBJS)
	blink from tmp to bootstrap
	$(RM) $(RMFLAGS) tmp

echo:
	echo $$KERNELHDRS
	echo $$PATH

Version:
	@/bin/sh makever.sh
	@echo \\#define UTS_RELEASE \\"0.01.pl1-`cat .version`\\" > tools/version.h
	@echo \\#define UTS_VERSION \\"`date +%D`\\" >> tools/version.h
	@echo \\#define LINUX_COMPILE_TIME \\"`date +%T`\\" >> tools/version.h
	@echo \\#define LINUX_COMPILE_BY \\"`whoami`\\" >> tools/version.h
	@echo \\#define LINUX_COMPILE_HOST \\"`hostname`\\" >> tools/version.h

vmlinux: init/head.o init/main.o tools/version.o amiga/chipregs.o linuxsubdirs
	$(LD) $(LDFLAGS) -M init/head.o init/main.o amiga/chipregs.o \
		tools/version.o \
		$(ARCHIVES) \
		$(FILESYSTEMS) \
		$(DRIVERS) \
		$(MATH) \
		$(LIBS) \
		-o vmlinux > System.map

init/head.o: init/head.s

tools/version.o: tools/version.c tools/version.h

amiga/chipregs.o: amiga/chipregs.c include/machine/chipregs.h

tools/bootstrap.o: tools/bootstrap.c
	$(HOSTCC) $(HOSTFLAGS) -o $@ -c $<

tools/bootmisc.o: tools/bootmisc.c
	$(HOSTCC) $(HOSTFLAGS) -o $@ -c $<

tools/get_nlist.o: tools/get_nlist.c
	$(HOSTCC) $(HOSTFLAGS) -o $@ -c $<

linuxsubdirs:
	@for i in $(SUBDIRS); do (cd $$i && echo $$i && $(MAKE)) || exit; done

clean:
	$(RM) $(RMFLAGS) System.map
	$(RM) $(RMFLAGS) init/*.o tools/*.o
	for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean); done

clobber: clean
	$(RM) $(RMFLAGS) vmlinux bootstrap

depend dep:
	for i in init/*.c;do (echo -n init/;$(CPP) -M $(INCFLAGS) $$i); \
		done > .depend
	for i in $(SUBDIRS); do (cd $$i && $(MAKE) dep) || exit; done


.INCLUDE .IGNORE: ".depend"
