# Copyright 2011 Google Inc. All Rights Reserved.
# Author: qianzhang@google.com (ken Zhang)
#MAKEFILE for cross platform

DEBUG=-g
ifdef DEBUG
  DEBUG_CFLAGS= -g $(DEBUG)
else
  DEBUG_CFLAGS= -O3
endif

ifdef  TARGET
	CROSS_PREFIX:=$(TARGET)
else
	CROSS_PREFIX:=
endif

CC:=$(CROSS_PREFIX)gcc
LD:=$(CROSS_PREFIX)ld
AR:=$(CROSS_PREFIX)ar
RANLIB:=$(CROSS_PREFIX)ranlib
STRIP:=$(CROSS_PREFIX)strip

CFLAGS= -Wall -fPIC -O2 -Wpointer-arith

FILES=sagelog.c hdhomerun_tuner.c hdhomerun_http.c hdhomerun_dev.c  utility.c hdhomerun_plugin.c
INC=  sagelog.h hdhomerun_tuner.h hdhomerun_http.h hdhomerun_dev.h  utility.h
EXTRA_INCS= ../tvstreamparser  

#all:hdhomerun
all:hdhr_plugin.so
dep_make:hdrun_dep

hdhr_plugin.so:dep_make $(FILES) $(INC)
	$(CC) $(CFLAGS) $(DEBUG_CFLAGS) $(FILES) -shared -o hdhr_plugin.so -I$(EXTRA_INCS) -L. -lhdhomerun  -lpthread

hdhomerun:dep_make $(FILES) $(INC)
	$(CC) $(CFLAGS) $(DEBUG_CFLAGS) $(FILES) -DTEST_APP -o hdhomerun -I$(EXTRA_INCS) -L. -lhdhomerun  -lpthread 

hdrun_dep:
	make -C libhdhomerun 
	cp libhdhomerun/libhdhomerun.so .
	
clean:
	rm -f $(ALL) hdrun libhdhomerun.so  hdhr_plugin.so get_http *~
	make clean -C libhdhomerun 

get_http:hdhomerun_http.c hdhomerun_http.h
	$(CC) $(CFLAGS) $(DEBUG_CFLAGS) -DHTTP_GET_APP hdhomerun_http.c -o get_http

