# Makefile - makefile for target/src/os/mm
#
# Copyright (c) 2003-2006, 2008-2010, 2013-2014 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
# --------------------
# 02p,02oct14,pcs  Fixed an issue where docs were not generated for
#                  kProxHeapLib.c because it was wrapped using
#                  _WRS_CONFIG_LP64
# 02o,21may13,pcs  Add file memPartCacheShow.o
# 02n,05may13,pcs  Add support for SMP-optimized memory allocator.
# 02m,08nov10,zl   add CC_WARNINGS_IGNORE_DEPRECATED for vmBaseLib.o
# 02l,21sep10,j_l  Added cacheDma32FuncBind.c
# 02k,30aug10,jpb  Added cacheFuncBind.c.
# 02j,09jun10,pcs  Add devMemLib.c to DOC_FILES
# 02o,18feb10,pch  small footprint
# 02n,05mar10,pcs  Add devMemFsLib.o .
# 02m,12apr10,jpb  Added memFuncBind.o
# 02l,17mar10,jpb  Added userReserveMem.
# 02k,19feb10,zl   added mmanLib to DOC_FILES. Added shmLib.
# 02j,05feb10,zl   removed mmuSoftLib.o from 64-bit
# 02i,11jan10,zl   added pgMgrBaseLib.o, pgMgrFuncBind.o
# 02h,08dec09,h_k  fixed a typo for cacheDmaPool.o.
# 02g,03dec09,cww  add taskMemFuncBind.o
# 02f,16nov09,pcs  Add kProxHeapLib.o and kCommonHeapLib.o
# 02e,06sep09,h_k  added cacheDma32Lib.
# 02d,22jun09,zl   address space manager for LP64
# 02c,14may09,zl   added vmBind.o, removed vmData.o
# 02b,26feb09,pch  add cacheDmaPool.c
# 02a,08jul08,jpb  Added _WRS_CONFIG_RTP specific builds.
# 01z,13jun06,zl   added memInfo.
# 01y,01jan06,zl   added mmanShow and mmanRtpShow.
# 01x,21oct05,zl   added shmFsLib and mmanFdLib to build.
# 01w,13sep05,jln  diable size-opt compilation for DIAB builds for
#                  critical objects
# 01v,11aug05,zl   added vmGlobalMap to build.
# 01u,12jul05,mil  Added memAllotLib.o.
# 01t,30aug04,zl   removed pgMgrShow.c and pgPoolShow.c from doc build
# 01s,18aug04,scm  remove MPU support...
# 01r,08jul04,tam  added scMemVal.c to DOCS
# 01q,10jun04,tam  added adrSpaceLib.c to DOC_FILES
# 01p,19may04,gls  added mmanScLib.c, renamed mmScLib.c to mmanLib.c
# 01o,15apr04,gls  added vmInvTblLib.o to build.
# 01n,28apr04,zl   added memEdrRtpShow to build
# 01m,08apr04,zl   added mmuSoftLib to build.
# 01l,17feb04,pch  remove PPC32 hack, no longer needed
# 01k,26jan04,zl   added memEdr files to library and doc builds.
# 01j,03feb04,pcs  Remove vmLib.c from DOC_FILES.
# 01i,05dec03,zl   added memRtpLib.o
# 01h,05dec03,tam  re-enabled build of pgPoolShow.o for arm
# 01g,22nov03,tam  added scMemVal.o; removed adrSpaceLib.c, pgMgrLib.c and
#		   pgPoolXxxLib.c from DOC_FILES
# 01f,13nov03,yp   adding adrSpaceShow
# 01e,12nov03,tam  added taskMemLib.o
# 01d,04nov03,pcs  Temp, for generating doc;s.
# 01c,29oct03,gls  added pgMgrShow.o
# 01b,14oct03,gls  added pgMgrLib.o
# 01a,14oct03,zl   created
#
# DESCRIPTION
# This file contains the makefile rules for building the vx library
#

TGT_DIR=$(WIND_BASE)/target

LIB_BASE_NAME = os

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


DOC_FILES     =	adrSpaceLib.c adrSpaceShow.c cacheDma32Lib.c cacheLib.c \
		kProxHeapLib.c memEdrLib.c memEdrRtpShow.c memEdrShow.c \
                memInfo.c memLib.c memPartCacheLib.c memPartCacheShow.c \
                memPartLib.c memShow.c mmanLib.c mmanShow.c shmLib.c \
                scMemVal.c vmBaseLib.c userReservedMem.c vmGlobalMap.c \
                vmShow.c devMemLib.c

OBJS_COMMON   =	cacheFuncBind.o cacheLib.o memFuncBind.o pgMgrFuncBind.o \
                taskMemFuncBind.o userReservedMem.o vmBind.o

OBJS		= $(OBJS_COMMON)

ifdef _WRS_CONFIG_MEM_ALLOT
OBJS += memAllotLib.o
else
OBJS += adrSpaceLib.o adrSpaceShow.o cacheDmaPool.o devMemFsLib.o devMemLib.o \
        memEdrLib.o memEdrRtc.o memEdrRtpShow.o memEdrShow.o memEdrShowUtil.o \
        memInfo.o memLib.o memPartCacheLib.o memPartCacheShow.o memPartLib.o \
        memRtpLib.o memShow.o mmanFdLib.o mmanLib.o mmanRtpShow.o mmanShow.o \
        pgMgrBaseLib.o pgPoolLib.o pgPoolPhysLib.o pgPoolShow.o \
        pgPoolVirtLib.o scMemVal.o shmFsLib.o shmLib.o taskMemLib.o \
        vmBaseLib.o vmGlobalMap.o vmInvTblLib.o vmLib.o vmShow.o 
endif

ifdef _WRS_CONFIG_LP64
OBJS += adrSpaceLib64.o cacheDma32FuncBind.o cacheDma32Lib.o kProxHeapLib.o \
        kCommonHeapLib.o
else
  ifndef _WRS_CONFIG_MEM_ALLOT
OBJS += adrSpaceLib32.o mmuSoftLib.o
  endif
endif

ifdef _WRS_CONFIG_RTP
OBJS += pgMgrLib.o pgMgrShow.o mmanScLib.o
endif

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

# The following kernel critical objects are built with size optimization off
# for DIAB builds for better performance, but with the tradeoff of potentially
# having an increase in code size for the objects.

ifeq ($(TOOL_FAMILY),diab)
CFLAGS_memPartLib.o = -Xsize-opt=0
CFLAGS_memLib.o     = -Xsize-opt=0
endif

# extra options for specific modules

CFLAGS_vmBaseLib.o  = $(CC_WARNINGS_IGNORE_DEPRECATED)
