# $Id: Makefile 15082 2007-04-05 11:51:21Z edgaras $
CC        = $(CROSS)gcc
LD        = $(CROSS)ld
STRIP     = $(CROSS)strip

BASEDIR   = ../../../
INC_PATH  = $(BASEDIR)include/linux/
LIB_PATH  = $(BASEDIR)lib/linux_glibc_arm/

CFLAGS   += -Wall
CFLAGS   += -ffast-math -fomit-frame-pointer
CFLAGS   += -I$(INC_PATH)

LDFLAGS   = -L$(LIB_PATH)

LDLIBS   += -lFncExtractor
LDLIBS   += -lFncMatcher
LDLIBS   += -lNTemplate
LDLIBS   += -lNCore

LDFLAGS += -Wl,-rpath=$(LIB_PATH)
LDFLAGS += -Wl,-rpath=../../lib/linux_glibc_arm/

LDLIBS   += -lpthread
LDLIBS   += -lm

ifdef DEBUG
CFLAGS   += -ggdb
LDFLAGS  += -ggdb
else
CFLAGS   += -O3
LDFLAGS  += -O3
endif

.PHONY: clean all

TARGETS += FncSample.console FncSample.console.list

all: $(TARGETS)

# FncSample.console aditionally uses NImages library
FncSample.console: LDLIBS += -lNImages

FncSample.console: sample.o img.o version.o
	$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
ifndef DEBUG
	$(STRIP) -R .comment $@
endif

FncSample.console.list: list_sample.o pgm.o version.o
	$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
ifndef DEBUG
	$(STRIP) -R .comment $@
endif

help:
	@echo 'targets: clean, all, $(TARGETS)'
	@echo 'variables: CROSS, DEBUG'
	@echo '   CROSS - use cross compiler'
	@echo '   DEBUG - compile with debug information'
	@echo ''
	@echo ' Examples:'
	@echo '   make CROSS=arm-linux- all   -- build all using cross compiler'
	@echo '   make clean           -- clean up compiled files'
	@echo '   make DEBUG=yes all   -- build all with DEBUG info, '
	@echo '                           using native (default) compiler'
	@echo ''
	@echo ' Notes:'
	@echo '   When cross-compiling, appropriate cross-toolchain must be installed and'
	@echo '   accessible through PATH. For example to build with CROSS=arm-linux-'
	@echo '   arm-linux-gcc, arm-linux-ld, ... must be executable.'
	@echo ''

clean:
	$(RM) *.o
	$(RM) $(TARGETS)
