#
# Makefile
#
#
# Variables for building the HID manager - requires at least gcc ver 4.7.3
#
FRAMEWORK_PATH=../../../../../..
CLASSPATH=$(FRAMEWORK_PATH)/Common/src:$(FRAMEWORK_PATH)/HidManagement/src
JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home

BITS=64
   
CC64=gcc
CCFLAGS64=-fPIC
BUILD_DIR64=build_osx64/
LIB_DIR64=lib_osx64/

JNICFLAGS=-c -I${JDK}/include -I${JDK}/include/darwin -std=gnu99 -D__int64="long long" -fPIC

HIDAPI_ROOT=jni/hidapi
HIDAPI_DIR=jni/hidapi/hidapi
JNILDFLAGS=-Wall -D_JNI_IMPLEMENTATION_ 

HID_SOURCE=${HIDAPI_ROOT}/mac/hid.c
WINLIBS=-framework IOKit -framework CoreFoundation

JNISRC=com_ti_msp430_HidManagement_HidCommunicationManager.c
JNIOBJS=com_ti_msp430_HidManagement_HidCommunicationManager.o

.SUFFIXES: .java .class

default: clean init jni$(BITS) javah$(BITS)

classes:
	${JDK}/bin/javac -classpath "${CLASSPATH}" *.java

javah64: classes
	${JDK}/bin/javah  -classpath ${CLASSPATH} -jni com.ti.msp430.HidManagement.HidCommunicationManager 

init:
	mkdir -p $(BUILD_DIR64)
	mkdir -p $(LIB_DIR64)


${LIB_DIR64}/libHidCommunicationManagerMac64.dylib:
	${CC64} ${CCFLAGS64} -I${HIDAPI_DIR} -c ${HID_SOURCE} -o ${BUILD_DIR64}/hid.o 
	${CC64} ${JNICFLAGS} -I${HIDAPI_DIR} -I. jni/${JNISRC} -o ${BUILD_DIR64}/${JNIOBJS} 
	${CC64} ${CCFLAGS65} ${BUILD_DIR64}/${JNIOBJS} ${BUILD_DIR64}/hid.o ${WINLIBS} -o ${LIB_DIR64}/libHidCommunicationManagerMac64.dylib ${JNILDFLAGS} -shared

jni64: ${LIB_DIR64}/libHidCommunicationManagerMac64.dylib

clean:
	rm -rf *.class 
	rm -rf $(BUILD_DIR64) 


