# Change it here or specify it on the "make" commandline
#

# cc -DLINELENGTH=80 prog.c -o prog
# cc -DDEBUG should work also

include ../config.mk

CROSS_COMPILE   = arm-linux-

#cross compile
AR_ARM	    = $(CROSS_COMPILE)ar
AS_ARM      = $(CROSS_COMPILE)as
LD_ARM      = $(CROSS_COMPILE)ld
CC_ARM      = $(CROSS_COMPILE)gcc

#std compile
AR	= ar
AS      = as
LD      = ld
CC      = gcc

LIBS_ARM = -lpthread -lDynamoMiddlewareARM -lX11 -lm $(PAAPI_DIR)/user-level/paapilib.a
LIBS = -lpthread -lDynamoMiddleware -lm
LIBSLOCATIONS = -L./lib -L${ARM_X11}/lib

LINUXKERNELINCLUDEDIR		= $(LINUXKERNELSRC)/include
ARM_LINUXKERNELINCLUDEDIR	= ${ARM_LINUXKERNELSRC}/include

IFLAGS	= -I. -I$(LINUXKERNELINCLUDEDIR) -I${ARM_LINUXKERNELINCLUDEDIR}  -I$(PAAPI_DIR)/kernel-level/include -I$(PAAPI_DIR)/user-level -I${ARM_X11}/include

CFLAGS_ARM  = -Os 
CFLAGS += -march=armv4
CFLAGS_ARM += $(IFLAGS)

GCC_ARM = $(CC_ARM) $(CFLAGS_ARM)

CFLAGS  = -g -Os
CFLAGS += $(IFLAGS)

GCC = $(CC) $(CFLAGS)

DEVICE = device
PROXY = proxy
DEVICE_OBJS =${DEVICE}.o 
PROXY_OBJS = ${PROXY}.o

# script starts here
all:device proxy

clean:
	(cd lib/libDynamoMiddleware; make clean)
	(rm -f *.o ${DEVICE} ${PROXY})
	
${DEVICE}:${DEVICE_OBJS} libraries
	${GCC_ARM} ${DEVICE_OBJS} -o ${DEVICE} ${LIBSLOCATIONS} ${LIBS_ARM}

${DEVICE}.o:${DEVICE}.c dyncommunication.h
	${GCC_ARM} ${DEVICE}.c -c

${PROXY}:${PROXY_OBJS} libraries
	${GCC} ${PROXY_OBJS} -o ${PROXY} ${LIBSLOCATIONS} ${LIBS}

${PROXY}.o:${PROXY}.c dyncommunication.h
	${GCC} ${PROXY}.c -c

libraries:
	(cd lib/libDynamoMiddleware; make all)
