# *************************************************************************** 
# 
#   Copyright (c) 2006 Sony Corporation. All Rights Reserved.
# 
#   File Name: Makefile
#   Description: Memory dump tool Linux Makefile
# 
#   Redistribution and use in source and binary forms, with or without
#   modification, are permitted provided that the following conditions
#   are met:
#
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above copyright
#       notice, this list of conditions and the following disclaimer in
#       the documentation and/or other materials provided with the
#       distribution.
#     * Neither the name of Sony Corporation nor the names of its
#       contributors may be used to endorse or promote products derived
#       from this software without specific prior written permission.
#
#   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
#   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
#   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
#   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
#   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
#   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
#   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
#   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
#   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
#   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
#   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# **************************************************************************/

.SUFFIXES: .o .cpp .c

# Program
CC   = $(CROSS_COMPILE)gcc
CXX  = $(CROSS_COMPILE)g++
AR   = $(CROSS_COMPILE)ar -crs
MAKE = make

# Directory
HOMEDIR    		= $(PWD)
SRCDIR          = .
COMMONDIR		= 
DEBUGDIR		= $(HOMEDIR)/../Obj/Debug
RELEASEDIR		= $(HOMEDIR)/../Obj/Release

VPATH = $(COMMON):$(SRCDIR):$(OBJDIR):$(PLATDIR)


# C compiler option
CFLAGS_DEBUG	= -g -Wall -O0 -DDEBUG
CFLAGS_RELEASE	= -O1

INCLUDE			= -I$(COMMONDIR) -I.

MYLIB			=
COMMONLIBS		= -lm
LIBS			=  $(MYLIB) $(COMMONLIBS)

LDFLAGS_DEBUG	= 
LDFLAGS_RELEASE	=

# Files
LIB  =	memory_dump.a

OBJS =	memory_dump.o

RELS =	memory_dump.h

# Target
debug:
	$(MAKE) OBJDIR="$(DEBUGDIR)" CFLAGS="$(CFLAGS_DEBUG)" INCLUDE="$(INCLUDE)" CROSS_COMPILE="" \
	LIBDIR="$(DEBUGDIR)" COMMON="$(COMMONDIR)" PLATDIR="$(PLATDIR)" LDFLAGS="$(LDFLAGS_DEBUG)" \
	$(DEBUGDIR)/$(LIB)

release:
	$(MAKE) OBJDIR="$(RELEASEDIR)" CFLAGS="$(CFLAGS_RELEASE)" INCLUDE="$(INCLUDE)" CROSS_COMPILE="" \
	LIBDIR="$(RELEASEDIR)" COMMON="$(COMMONDIR)" PLATDIR="$(PLATDIR)" LDFLAGS="$(LDFLAGS_RELEASE)" \
	$(RELEASEDIR)/$(LIB)

all:
	$(MAKE) debug
	$(MAKE) release

clean:
	rm -f *~ core*
	(cd $(DEBUGDIR); rm -f $(LIB) $(OBJS) $(RELS))
	(cd $(RELEASEDIR); rm -f $(LIB) $(OBJS) $(RELS))



$(OBJDIR)/$(LIB): $(OBJS) Makefile
	(cd $(OBJDIR); $(AR) $(LIB) $(OBJS))
	cp $(RELS) $(LIBDIR)/

.cpp.o:
	$(CXX) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/${*F}.o $<

.c.o:
	$(CC) -c $(CFLAGS) $(INCLUDE) -o $(OBJDIR)/${*F}.o $<




memory_dump.o 	: memory_dump.c

