# Makefile - makefile for target/src/drv/end
#
# Copyright (c) 1996-2011 Wind River Systems, Inc.
#
# The right to copy, distribute, modify or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
# modification history
# --------------------
# 03j,19sep11,rlg  remove bcm1250 elements
# 03i,29dec09,h_k  removed unsupported module builds from LP64.
# 03h,12nov08,dlk  Compile endCommon.o and endEtherHdr.o with CC_OPTIM_NORMAL.
#                  Turn off -fvolatile/-Xpointers-volatile for endCommon.o,
#                  endEtherHdr.o, endLib.o, and miiLib.o.
# 03g,07jul08,jpb  Changed SMP conditional.
# 03f,21may08,dlk  Add endCommon.o for simulators. Add endEtherHdr.o.
# 03e,14mar08,dlk  MUX2 redesign.
# 03d,11apr07,rec  add support for M5200
# 03c,06jul07,pch  For SMP, build only endLib and miiLib
# 03b,26jun07,mze  Only build smEnd.o smEndShow.o if not SMP
# 03a,09mar07,pes  Update for new MIPS library structure.
# 02z,01jun06,wap  Compile non-driver files with full optimization
# 02y,18nov05,j_b  add motFecEnd for MCF5400
# 02x,12sep05,pch  add amd8111LanEnd driver for maple BSP
# 02w,15aug05,kkz  Updating doc values
# 02v,29apr05,kkz  Updating for new doc directory
# 02u,31jan05,dtr  Add in compilation of TSEC driver.
# 02t,07dec04,h_k  removed sh7615End.
# 02s,15sep04,jln  removed endNetBufLib.o
# 02r,21jun04,rcs  removed ln7990End.o and ntEnd.o from OBJS_COMMON
# 02q,21jun04,mdo  Remove deprecated motFccEnd.c.
# 02p,14jun04,h_k  added wancomEnd for PPC604 and MIPS64.
# 02o,08jun04,jeg  added smEnd support for simulators
# 02n,27may04,dgp  change output dir and TOC structure (DOC_CHAPTER & DOC_DIR)
# 02n,04may04,pch  SPR 94932: remove PPC32 special case
# 02m,01mar04,jln  add smEnd/smEndShow
# 02l,04feb04,pch  PPC32 floating-point adjustments
# 02k,10dec03,pch  restored emacEnd, motCpmEnd, motFcc2End, motFccEnd,
#		   nicEvbEnd which are still used
# 02j,05dec03,rcs  removed unsupported files from DOC_FILES and OBJS_COMMON
# 02i,14jul03,jln  add emacEnd.c
# 02h,14apr03,pch  Add PPC32 support
# 02g,21mar03,rcs  Added endNetBufLib.o to OBJS_COMMON SPR# 87039
# 02f,03feb03,m_h  Shorten list of IPv6 supported drivers
# 02e,14jan03,m_h  IPv6 support
# 02e,14jan03,gjc  SPR#85164 and SPR#85093
#		   Adding motFcc2End.c and m8260SccEnd.c
# 02d,20jun02,pgh  Add bcm1250MacEnd.c.
# 02c,17may02,zmm  Global au1000 name changes. SPR 77333.
# 02b,12mar02,dat  SPR 72518 Drivers docs in separate directory
# 02a,16nov01,dgp  remove ntEnd.c from doc build
# 01z,09nov01,jmp  only build endLib.o for simulators.
# 01y,12oct01,tam  added repackaging support
# 01x,14jun01,rcs  added gei82543End
# 01w,17sep99,ms_  add motFccEnd
# 01v,14apr99,cn   added miiLib
# 01w,01jun01,mem  Added au1000End.c
# 01v,14apr99,cn   added miiLib
# 01z,11oct00,zl   build sh7615End.o for SH7600 only
# 01y,29aug00,rsh  add sh7615End device to build list
# 01x,17may00,zl   corrected DOC_FILES for ns83902
# 01w,10apr00,zl   renamed nicEnd to ns83902End
# 01v,07apr00,zl   added nicEnd support
# 01u,16mar99,dat  nicEvb is only for PPC403. mbcEnd only for 68302
# 01t,13mar99,db   added mbcEnd support.
# 01s,12mar99,cn   added el3c90xEnd support (SPR# 25327).
# 01r,12mar99,ms_  add elt3c509End.o to OBJS_COMMON
# 01q,11mar99,db   added mb86960End support.
# 01p,08mar99,sbs  added ultraEnd support.
# 01o,04mar99,cn   added motFecEnd support (SPR# 23153).
# 01n,17feb99,sut  added nicEvbEnd support.
# 01m,01feb99,jkf  added ln97xEnd support.
# 01l,26jan99,dat  merge from 1_0_x. (added motCpmEnd.c, ne2000End.c)
# 01k,01jun98,dat  fixed EXTRA_INCLUDES to use TGT_DIR, added fei and olicom
#		   drivers.
# 01j,13mar98,cn   added fei82557End to OBJS_COMMON and DOC_FILES.
# 01i,04may98,cym  added ntEnd (Windows ULIP driver.)
# 01h,02apr98,jpd  added iOlicomEnd driver to DOC_FILES
# 01g,06dec97,tam  added dec21x4xEnd and removed dec21x40End.
# 01f,25aug97,vin  deleted the sonic driver for the beta2 patch.
# 01e,03May97,sal  restored sonic driver to DOC_FILES
# 01d,30apr97,jag  deleted the sonic driver from the DOC_FILES due to man page
#		   errors.
# 01c,24apr97,map  added dec21x40End
# 01b,18apr97,sal  added the sn83932End.c
# 01a,28feb97,vin  created from 01d of MakeSkel
#
# DESCRIPTION
# This file contains the makefile rules for building ENDs (Enhanced
# Network Drivers) into the VxWorks library.
#
# Old style network drivers (i.e. BSD style) are contained in src/drv/netif.
#

TGT_DIR=$(WIND_BASE)/target

LIB_BASE_NAME=drv

# Including defs.library to see if _WRS_CONFIG_SMP or _WRS_CONFIG_LP64 is
# defined.
# It must be after LIB_BASE_NAME
include $(TGT_DIR)/h/make/defs.library

DOC_FILES= emacEnd.c endCommon.c endLib.c endEtherHdr.c \
	   ne2000End.c dec21x40End.c \
	   fei82557End.c gei82543End.c iOlicomEnd.c elt3c509End.c  \
           ln97xEnd.c motFecEnd.c el3c90xEnd.c miiLib.c ns83902End.c \
	   auEnd.c  motFcc2End.c m8260SccEnd.c \
           smEnd.c smEndShow.c wancomEnd.c amd8111LanEnd.c

EXTRA_INCLUDE=-I$(TGT_DIR)/h/

OBJS_COMMON = endCommon.o endLib.o endEtherHdr.o \
		ne2000End.o dec21x40End.o \
		fei82557End.o gei82543End.o iOlicomEnd.o ln97xEnd.o \
		elt3c509End.o el3c90xEnd.o miiLib.o ns83902End.o \
		smEnd.o smEndShow.o 
OBJS_MCF5400 = motFecEnd.o
OBJS_MIPSI32 = auEnd.o
OBJS_MIPSI64 = wancomEnd.o
OBJS_PPC403  = nicEvbEnd.o
OBJS_PPC405  = emacEnd.o
OBJS_PPC440  = emacEnd.o
OBJS_PPC603  = motFcc2End.o m8260SccEnd.o
OBJS_PPC604  = wancomEnd.o
OBJS_PPC860  = motCpmEnd.o motFecEnd.o
OBJS_PPC32   = emacEnd.o nicEvbEnd.o motFcc2End.o m8260SccEnd.o \
		motCpmEnd.o motFecEnd.o wancomEnd.o motTsecEnd.o \
		amd8111LanEnd.o

ifdef _WRS_CONFIG_LP64
OBJS        = endCommon.o endLib.o endEtherHdr.o
else
  ifdef _WRS_CONFIG_SMP
  OBJS        = endCommon.o endLib.o endEtherHdr.o miiLib.o
  else
  OBJS        = $(OBJS_COMMON) $(OBJS_$(CPU))
  endif
endif

#
# redefine OBJS for simulators since only endLib.o need to be built
#
ifneq ($(subst SIM,,$(CPU)),$(CPU))
    OBJS = endCommon.o endLib.o endEtherHdr.o smEnd.o smEndShow.o
endif

IPV6_OBJS_COMMON = endLib.o ne2000End.o dec21x40End.o \
		fei82557End.o gei82543End.o iOlicomEnd.o ln97xEnd.o \
		elt3c509End.o el3c90xEnd.o miiLib.o

# Suppress local build of generic drivers for all PPC except generic PPC32.
ifeq ($(VX_CPU_FAMILY),ppc)
    ifneq ($(CPU),PPC32)
	IPV6_OBJS_COMMON=
    endif
endif

IPV6_OBJS_MCF5200 = 
IPV6_OBJS_MCF5400 = motFecEnd.o
IPV6_OBJS_MIPSI32 = auEnd.o
IPV6_OBJS_MIPSI64 = wancomEnd.o
IPV6_OBJS_PPC403  = nicEvbEnd.o
IPV6_OBJS_PPC405  = emacEnd.o
IPV6_OBJS_PPC440  = emacEnd.o
IPV6_OBJS_PPC603  = motFcc2End.o m8260SccEnd.o
IPV6_OBJS_PPC604  = wancomEnd.o
IPV6_OBJS_PPC860  = motCpmEnd.o motFecEnd.o
IPV6_OBJS_PPC32   = emacEnd.o nicEvbEnd.o motFcc2End.o \
		    m8260SccEnd.o motCpmEnd.o motFecEnd.o wancomEnd.o \
		    amd8111LanEnd.o

ifdef _WRS_CONFIG_LP64
IPV6_OBJS = endLib.o
else
  ifdef _WRS_CONFIG_SMP
  IPV6_OBJS = endLib.o miiLib.o
  else
  IPV6_OBJS        = $(IPV6_OBJS_COMMON) $(IPV6_OBJS_$(CPU))
  endif
endif

ifneq ($(BUILD_IPV6),)
	OBJS = $(IPV6_OBJS)
	EXTRA_DEFINE += -DWR_IPV6
endif

# Unfortunately, adding $(CC_OPTIM_NORMAL) doesn't
# turn off -fvolatile or -Xpointers-volatile, so do it
# manually.  Also, turn of -Xsize-opt=0 for diab.
ifeq ($(findstring gnu, $(TOOL)), gnu)
CFLAGS_endCommon.o  = $(CC_OPTIM_NORMAL) -fno-volatile
CFLAGS_endEtherHdr.o = $(CC_OPTIM_NORMAL) -fno-volatile
CFLAGS_endLib.o     = $(CC_OPTIM_NORMAL) -fno-volatile
CFLAGS_miiLib.o     = $(CC_OPTIM_NORMAL) -fno-volatile
else
CFLAGS_endCommon.o  = $(CC_OPTIM_NORMAL) -Xpointers-volatile=0 -Xsize-opt=0
CFLAGS_endEtherHdr.o = $(CC_OPTIM_NORMAL) -Xpointers-volatile=0 -Xsize-opt=0
CFLAGS_endLib.o     = $(CC_OPTIM_NORMAL) -Xpointers-volatile=0 -Xsize-opt=0
CFLAGS_miiLib.o     = $(CC_OPTIM_NORMAL) -Xpointers-volatile=0 -Xsize-opt=0
endif

include $(TGT_DIR)/h/make/rules.library

CC_OPTIM=$(CC_OPTIM_DRIVER)
include  $(TGT_DIR)/h/make/defs.drivers

