# Makefile - makefile for target/src/arch/arm/math/fp
#
# Copyright (c) 2004-2006, 2008-2010, 2012, 2013 Wind River Systems, Inc.
#
# The right to copy, distribute or otherwise make use of this software
# may be licensed only pursuant to the terms of an applicable Wind River
# license agreement. No license to Wind River intellectual property rights
# is granted herein. All rights not licensed by Wind River are reserved
# by Wind River.
#
#
# modification history
# --------------------
# 01o,14mar13,yjw  Update for ARMARCH7M
# 01n,24sep12,jdw  Update for ARMARCH7
# 01m,09feb12,jdw  Remove Thumb2 use of ARM precompiled objects, WIND00332894
# 01l,16jul10,m_h  Intrinsic Support for Thumb-2
# 01k,31jul10,fao  add be8 support.
# 01j,24may10,m_h  Thumb-2 Support
# 01i,03mar09,m_h  Adding ARMARCH7 support
# 01h,17jul08,pee  VSB.
# 01g,08jul08,pee  VSB adaptation.
# 01f,20jun06,jb   Revert 920t to arch4
# 01e,29nov05,jb   Adding 920 CPU Variant support and Fixing SPR 112232 by 
#                  removing fpconst.o
# 01d,31aug05,h_k  changed OBJS to OBJS_PRECOMP. (SPR #111764)
# 01c,18Aug05,pee  Added NODEPENDOBJS definition
# 01b,06apr05,jb   Adding ARCH6
# 01a,02jan04,to   written
#
# DESCRIPTION
# This file contains the makefile rules for assembling the pre-build
# ARM Ltd. floating point support objects.
#

TGT_DIR		= $(WIND_BASE)/target

LIB_BASE_NAME	= arch

BUILD_ALL_OBJS	= true

OBJ_PREFIX	= _x_ads_

OBJS_ADS_COMMON	= \
		  basic.o \
		  d2f.o \
		  dcheck.o \
		  dcmp.o \
		  dcmpin.o \
		  ddiv.o \
		  deqf.o \
		  dfix.o \
		  dfixll.o \
		  dfixu.o \
		  dfixull.o \
		  dgeqf.o \
		  dleqf.o \
		  drem.o \
		  drnd.o \
		  dsqrt.o \
		  dunder.o \
		  except.o \
		  f2d.o \
		  fcheck.o \
		  fcmp.o \
		  fdiv.o \
		  feqf.o \
		  ffix.o \
		  ffixll.o \
		  ffixu.o \
		  ffixull.o \
		  fgeqf.o \
		  fleqf.o \
		  fpinit.o \
		  frem.o \
		  frnd.o \
		  funder.o \
		  istatus.o \
		  retnan.o \
		  status.o \
		  trapv.o

OBJS_ADS_ARMV4	= \
		  daddsub.o \
		  dflt.o \
		  dfltll.o \
		  dmul_mull.o \
		  faddsub.o \
		  fflt.o \
		  ffltll.o \
		  fmul_mull.o \
		  fnorm2.o \
		  fsqrt.o

OBJS_ADS_ARMV5	= \
		  daddsub_clz.o \
		  dflt_clz.o \
		  dfltll_clz.o \
		  dmul_mull.o \
		  faddsub_clz.o \
		  fflt_clz.o \
		  ffltll_clz.o \
		  fmul_mull.o \
		  fnorm2_clz.o \
		  fsqrt_clz.o

OBJS_ARMARCH7_soft = $(OBJS_COMMON) $(OBJS_ARMV7)
OBJS_ARMARCH7_vector = 
OBJS_COMMON	= $(patsubst %,$(OBJ_PREFIX)%,$(OBJS_ADS_COMMON))
OBJS_ARMV4	= $(patsubst %,$(OBJ_PREFIX)%,$(OBJS_ADS_ARMV4))
OBJS_ARMV5	= $(patsubst %,$(OBJ_PREFIX)%,$(OBJS_ADS_ARMV5))
OBJS_ARMV6	= $(patsubst %,$(OBJ_PREFIX)%,$(OBJS_ADS_ARMV5))
OBJS_ARMV7	= $(patsubst %,$(OBJ_PREFIX)%,$(OBJS_ADS_ARMV5))
OBJS_ARMARCH4	= $(OBJS_COMMON) $(OBJS_ARMV4)
OBJS_ARMARCH5	= $(OBJS_COMMON) $(OBJS_ARMV5)
OBJS_ARMARCH6	= $(OBJS_COMMON) $(OBJS_ARMV6)
OBJS_ARMARCH7	= $(OBJS_ARMARCH7_$(_WRS_CONFIG_FP))
OBJS_ARMARCH7_T2 =
OBJS_ARMARCH7M	=
OBJS_STRONGARM	= $(OBJS_COMMON) $(OBJS_ARMV4)
OBJS_XSCALE	= $(OBJS_COMMON) $(OBJS_ARMV5)

include $(TGT_DIR)/h/make/defs.singleCpuVariant

ifeq ($(findstring diab,$(TOOL)),diab)
OBJS_PRECOMP	= $(OBJS_$(CPU))
endif

NODEPENDOBJS = $(OBJS_PRECOMP)

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

ifeq ($(_WRS_CONFIG_ENDIAN),big)
ADS_OBJ_DIR	= fplib/fplib.b/f_a_p.b
else
ifeq ($(_WRS_CONFIG_ENDIAN),be8)
ADS_OBJ_DIR	= fplib/fplib.b/f_a_p.b
else
ADS_OBJ_DIR	= fplib/fplib.b/f_a_p.l
endif
endif

$(PRECOMPDIR)/$(OBJ_PREFIX)%.o : $(ADS_OBJ_DIR)/%.o
	$(LD_PARTIAL) $(OPTION_OBJECT_NAME)$@ $<

