# ++++++++++
# $Name: $
# $Revision: 1.12 $
# $Author: mani $
# $Date: Sat Apr 26 20:53:30 PDT 1997 $
#
# Copyright (c) 1991-1997 by Be Incorporated.  All Rights Reserved.
#
# Makefile for Intel buildtools
# +++++

SHELL		:= /bin/sh

HOSTCC = $(CC)
HOSTLD = $(LD)
CPP 	= $(HOSTCC) -e -Dxor=XOR -Dor=OR -Dand=AND
CPPOUT	= | sed -e "s/_ /_/g" >
CFLAGS 	= -nostdinc -i- -I. -Iinclude -O2 -DLOAD_ADDR=$(LOAD_ADDR) \
		  -relax_pointers -Cpp_exceptions off

LD86 	= tools/ld86 -0
AS86	= tools/as86 -0 -a
AS		= tools/gas

#
# Load the boot loader code at 4MB
#
LOAD_ADDR = 0x400000 

CPU = i586
BUILDHOME=$(shell pwd)/..
OBJ_DIR := $(BUILDHOME)/obj

OBJS =	$(OBJ_DIR)/misc.o \
		$(OBJ_DIR)/head.o

ALL_TOOLS = \
	$(OBJS) \
	$(OBJ_DIR)/build \
	$(OBJ_DIR)/bootsect \
	$(OBJ_DIR)/setup \
	$(OBJ_DIR)/dumpraw

__OSTYPE:=$(shell echo $(OSTYPE) | tr [:upper:] [:lower:])

all: $(OBJ_DIR) $(ALL_TOOLS)

#
# startup and decompression code
#

$(OBJ_DIR)/misc.o: misc.c inflate.c
	$(HOSTCC) $(CFLAGS) -o $@ -c $<


$(OBJ_DIR)/head.o: head.s
	$(AS) -o $@ $<

head.s: head.S include/linux/config.h
	$(CPP) $(CFLAGS) $< $(CPPOUT) $@

$(OBJ_DIR)/build.o: build.c
	$(HOSTCC) -I- -I. -Iinclude -D_LINUX_STDDEF_H -D__STRUCT_EXEC_OVERRIDE__ -D__BFD__ -O2 -c -o $@ $<

$(OBJ_DIR)/build: $(OBJ_DIR)/build.o
	$(HOSTLD) -o $@ $<

#
# bootsect
#

$(OBJ_DIR)/bootsect: bootsect.o
	$(LD86) -s -o $@ $<

bootsect.o: bootsect.s
	$(AS86) -o $@ $<

bootsect.s: bootsect.S include/linux/config.h
	$(CPP) $(CFLAGS) -DSVGA_MODE=NORMAL_VGA $(LTRADITIONAL) $< $(CPPOUT) $@

#
# setup
#

$(OBJ_DIR)/setup: setup.o
	$(LD86) -s -o $@ $<

setup.o: setup.s
	$(AS86) -o $@ $<

setup.s: setup.S include/linux/config.h video.S
	$(CPP) $(CFLAGS) $(LTRADITIONAL) $< $(CPPOUT) $@

#
# dumpraw -- converts a kernel_intel PE binary to
#         raw data.
#

$(OBJ_DIR)/dumpraw.o: dumpraw.c pe.h
	$(HOSTCC) -O2 -c -o $@ $<

$(OBJ_DIR)/dumpraw: $(OBJ_DIR)/dumpraw.o
	$(HOSTLD) -o $@ $<

#
# maintenance
#
$(OBJ_DIR):
	mkdir $(OBJ_DIR)

clean:
	rm -f *.o *.s $(ALL_TOOLS)
