
# This file contains project specific Makefile information
# Macros, targets, etc.

DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_MULTIARCH := $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

#####################
# Directory hierarchy
#####################

install_app_rel = usr/bin/
install_lib_rel = usr/lib/$(DEB_HOST_MULTIARCH)/
install_hdr_rel = usr/include/

ifeq ($(INSTALL_ROOT),1)
install_home = 
else
install_home = $(top_srcdir)/debian/tmp
endif

install_app = $(install_home)/$(install_app_rel)
install_lib = $(install_home)/$(install_lib_rel)
install_hdr = $(install_home)/$(install_hdr_rel)
target_locale_dir = /usr/share/locale
install_locale = $(install_home)$(target_locale_dir)


OBJDIR = .obj
DEPDIR = .dep
PODIR = po

#######
# Tools
#######


AR = $(TOOLS_PREFIX)ar
CC = $(TOOLS_PREFIX)gcc
CXX = $(TOOLS_PREFIX)g++
CPP = $(CC) -E

COPY = /bin/cp -a
ECHO = /bin/echo
LINK = /bin/ln -s
MKDIR = /bin/mkdir -p
REMOVE = /bin/rm -f
TOUCH = /usr/bin/touch
XGETTEXT = /usr/bin/xgettext

#######
# Flags
#######

# compiler flags
################
CFLAGS =
INCLUDE = -I. -I$(top_srcdir)/include -I$(top_srcdir)/lib/include -I$(mot_home)/include -I$(oss_home)/include
OPTIMIZE =
DEBUG = -g -ggdb
WARN = -Wall -Werror
COMMON_FLAGS = $(X_CC_FLAGS) $(INCLUDE) $(DEBUG) $(OPTIMIZE) $(WARN) $(PKGCFLAGS) $(CFLAGS) -DPKG_NAME='"$(PKG_NAME)"' -DPKG_VERSION='"$(PKG_VERSION)"' -DARCH='"$(ARCH)"' 

ifeq ($(USE_GETTEXT_I18N),TRUE)
COMMON_FLAGS += -DGETTEXT_PACKAGE=\"$(GETTEXT_PACKAGE)\" -DGETTEXT_LOCALE_DIR=\"$(target_locale_dir)\"
endif

C_FLAGS = $(COMMON_FLAGS)
CC_FLAGS = -D__cpluscplus $(COMMON_FLAGS)
CXX_FLAGS = -D__cpluscplus $(COMMON_FLAGS)
CPP_FLAGS = -D__cpluscplus $(COMMON_FLAGS)

XGETTEXT_FLAGS = --no-location --copyright-holder="2010 Motorola Inc. 2011-2012 Canonical, Ltd. All rights reserved." --package-name=$(GETTEXT_PACKAGE) --package-version=1.0 --no-wrap  -k_ -kN_

# linker flags
##############
OSSLIBS = -L$(oss_home)/lib
MOTLIBS = -L$(mot_home)/lib
PKGLIBS = 
LIBS = $(PKGLIBS) $(MOTLIBS) $(OSSLIBS)

# filled in by individual Makefile
LDSYSLIBS =
LDFLAGS =

LD_FLAGS = $(X_LD_FLAGS) $(LIBS) $(LDSYSLIBS) $(PKGLDFLAGS) $(LDFLAGS)

# archiver flags
################
ARFLAGS = cr

OSS_PKG_CONFIG_PATH = $(oss_home)/lib/pkgconfig
MOT_PKG_CONFIG_PATH = $(mot_home)/lib/pkgconfig

############################
# Derived Target File Macros
############################

vpath
vpath %.o $(OBJDIR)
vpath %.d $(DEPDIR)

SOURCES = \
	$(CPPFILES) \
	$(CXXFILES) \
	$(CCFILES) \
	$(CFILES) \
	$(SFILES) \
	$(sFILES) 

OBJECTS = $(addprefix $(OBJDIR)/, $(addsuffix .o, $(basename $(SOURCES))))

DEPENDS = $(addprefix $(DEPDIR)/, $(addsuffix .d, $(basename $(SOURCES))))

CLEAN = $(OBJECTS) $(DEPENDS)

GENPOT =

GENMO =

########################
# Implicit Rules Section
########################
SUFFIXES = .o .c .cc .cxx .cpp .d .h .xml .s .S .pot
.SUFFIXES:
.SUFFIXES: $(SUFFIXES)

$(OBJDIR)/%.o : %.S
	$(CC) $(C_FLAGS) -c $< -o $@
 
$(DEPDIR)/%.d : %.S
	$(CC) $(C_FLAGS) -MM $< > $@
	sed -i "s|$(*F).o|$(*F).o $(@F)|" $@ 

$(OBJDIR)/%.o : %.s
	$(CC) $(C_FLAGS) -c $< -o $@
 
$(DEPDIR)/%.d : %.s
	$(CC) $(C_FLAGS) -MM $< > $@
	sed -i "s|$(*F).o|$(*F).o $(@F)|" $@ 

$(OBJDIR)/%.o : %.c
	$(CC) $(C_FLAGS) -c $< -o $@

$(DEPDIR)/%.d : %.c
	$(CC) $(C_FLAGS) -MM $< > $@
	sed -i "s|$(*F).o|$(*F).o $(@F)|" $@ 

$(OBJDIR)/%.o : %.cc
	$(CXX) $(CC_FLAGS) -c $< -o $@

$(DEPDIR)/%.d : %.cc
	$(CXX) $(CC_FLAGS) -MM $< > $@
	sed -i "s|$(*F).o|$(*F).o $(@F)|" $@ 

$(OBJDIR)/%.o : %.cxx
	$(CXX) $(CXX_FLAGS) -c $< -o $@

$(DEPDIR)/%.d : %.cxx
	$(CXX) $(CXX_FLAGS) -MM $< > $@
	sed -i "s|$(*F).o|$(*F).o $(@F)|" $@ 

$(OBJDIR)/%.o : %.cpp
	$(CXX) $(CPP_FLAGS) -c $< -o $@

$(DEPDIR)/%.d : %.cpp
	$(CXX) $(CPP_FLAGS) -MM $< > $@
	sed -i "s|$(*F).o|$(*F).o $(@F)|" $@ 

#Rule to generate the pot file in the po folder
$(PODIR)/%.pot: $(I18NFILES)
	$(XGETTEXT) $(XGETTEXT_FLAGS) $(I18NFILES) -o $@

.PHONY : all clean app lib install

