#///////////////////////////////////////////////////////////////////////////
# $Header: Exp $
#
# Copyright (c) 1999 ConnectTel, Inc. All Rights Reserved.
#  
# MODULE DESCRIPTION: 
#
# This makefile creates a RTEMS example program to test the MYSQL interface
#
# MODIFICATION/HISTORY:
#
# $Log: makefile.mak,v $
#
#///////////////////////////////////////////////////////////////////////////

# This macro should point the location of your rtems build
RTEMS_BUILD	        = /tools/build-i386-elf-rtems
# Specify the BSP in use
RTEMS_BSP           = pc386

PROJECT_RELEASE     = $(RTEMS_BUILD)/$(RTEMS_BSP)
PROJECT_TOOLS       = $(PROJECT_RELEASE)/build-tools


# BSP pc386 specific defines to create "downloadable" 
# files using netboot.

RELOCADDR       = 0x00100000
START16FILE     = $(PROJECT_RELEASE)/lib/start16.bin
START16ADDR     = 0x00097C00
HEADERADDR      = 0x00097E00



# export variables for sublevel makefiles
export CC CFLAGS AS LD AR STRIP CXX OBJCOPY CXXFLAGS

# Define this macro as the prefix for your cross-compiler
CROSS_COMPILE = i386-rtemself-

CC            = $(CROSS_COMPILE)gcc
AS            = $(CROSS_COMPILE)as
LD            = $(CROSS_COMPILE)ld
AR            = $(CROSS_COMPILE)ar
STRIP         = $(CROSS_COMPILE)strip
OBJCOPY       = $(CROSS_COMPILE)objcopy
CXX           = $(CROSS_COMPILE)g++

# cc flags, includes
RTEMS_INC = -I$(PROJECT_RELEASE)/lib/include -I$(PROJECT_RELEASE)/lib/include/networking \
-I$(PROJECT_RELEASE)/lib/include/sys
PRJ_INC = -I../include  -I.. -I.

DEFINES  +=	-DENGLISH -DDBUG_OFF -DUNDEF_THREADS_HACK

CFLAGS = -O4 -Wall -Wno-unused $(DEFINES) $(PRJ_INC) $(RTEMS_INC) \
-fasm -g -B$(PROJECT_RELEASE)/lib/ -specs bsp_specs -qrtems 

# C++ and C flags are the same 
CXXFLAGS = $(CFLAGS)

LIBS = -lm ../client/libmysql.a

EXAMPLE_FILES = database.o example.o rtems_init.o gdb_glue.o no_dns.o

OUT_TARGET = example

ALL = example.bt

all: $(ALL)

clean:
	rm -f *.o *.elf32 *.bt *.bin *.obj

$(OUT_TARGET).elf32: $(EXAMPLE_FILES) 
	$(CXX) $(CXXFLAGS) -o $(OUT_TARGET).elf32 -Wl,-Ttext,$(RELOCADDR) $(EXAMPLE_FILES) $(LIBS)

$(OUT_TARGET).bt:  $(OUT_TARGET).elf32 
	$(OBJCOPY) -O binary $(OUT_TARGET).elf32 $(OUT_TARGET).bin;
	$(PROJECT_TOOLS)/bin2boot -v $(OUT_TARGET).bt $(HEADERADDR) $(START16FILE) $(START16ADDR) 0 \
	                    $(OUT_TARGET).bin $(RELOCADDR) 0;
	rm -f $(OUT_TARGET).bin
