ifndef PREFIX
	PREFIX = /usr/local
endif

LIBPOINTING = libpointing.dylib

HEADERS = include/pointing/pointing.h include/pointing/utils/Base64.h include/pointing/utils/ByteOrder.h include/pointing/utils/Correlation.h include/pointing/utils/FileUtils.h include/pointing/utils/TimeStamp.h include/pointing/utils/URI.h include/pointing/utils/ConfigDict.h include/pointing/utils/HIDReportParser.h include/pointing/utils/HIDItem.h include/pointing/utils/HIDTags.h include/pointing/utils/PointingCursor.h include/pointing/utils/FrequencyEstimator.h include/pointing/input/DummyPointingDevice.h include/pointing/input/PointingDevice.h include/pointing/output/DisplayDevice.h include/pointing/output/DisplayDeviceManager.h include/pointing/output/DummyDisplayDevice.h include/pointing/transferfunctions/Composition.h include/pointing/transferfunctions/ConstantFunction.h include/pointing/transferfunctions/NaiveConstantFunction.h include/pointing/transferfunctions/SigmoidFunction.h include/pointing/transferfunctions/TransferFunction.h include/pointing/transferfunctions/SubPixelFunction.h include/pointing/transferfunctions/Interpolation.h include/pointing/input/PointingDeviceManager.h include/pointing/input/SystemPointingDevice.h include/pointing/utils/osx/osxPlistUtils.h include/pointing/input/osx/osxPointingDevice.h include/pointing/input/osx/osxHIDPointingDevice.h include/pointing/input/osx/osxHIDInputDevice.h include/pointing/input/osx/osxHIDUtils.h include/pointing/input/osx/osxPrivateMultitouchDevice.h include/pointing/input/osx/osxPrivateMultitouchSupport.h include/pointing/input/osx/osxPointingDeviceManager.h include/pointing/output/osx/osxDisplayDevice.h include/pointing/output/osx/osxDisplayDeviceManager.h include/pointing/transferfunctions/osx/osxSystemPointerAcceleration.h include/pointing-xorg/transferfunctions/XorgFunction.h

SOURCES = src/pointing/utils/Base64.cpp src/pointing/utils/ByteOrder.cpp src/pointing/utils/FileUtils.cpp src/pointing/utils/TimeStamp.cpp src/pointing/utils/URI.cpp src/pointing/utils/ConfigDict.cpp src/pointing/utils/HIDItem.cpp src/pointing/utils/HIDReportParser.cpp src/pointing/utils/PointingCursor.cpp src/pointing/utils/FrequencyEstimator.cpp src/pointing/input/PointingDevice.cpp src/pointing/input/DummyPointingDevice.cpp src/pointing/output/DisplayDevice.cpp src/pointing/output/DisplayDeviceManager.cpp src/pointing/output/DummyDisplayDevice.cpp src/pointing/transferfunctions/Composition.cpp src/pointing/transferfunctions/ConstantFunction.cpp src/pointing/transferfunctions/NaiveConstantFunction.cpp src/pointing/transferfunctions/SigmoidFunction.cpp src/pointing/transferfunctions/TransferFunction.cpp src/pointing/transferfunctions/SubPixelFunction.cpp src/pointing/transferfunctions/Interpolation.cpp src/pointing/input/PointingDeviceManager.cpp src/pointing/input/SystemPointingDevice.cpp src/pointing/utils/osx/osxPlistUtils.cpp src/pointing/input/osx/osxPointingDevice.cpp src/pointing/input/osx/osxHIDPointingDevice.cpp src/pointing/input/osx/osxHIDInputDevice.cpp src/pointing/input/osx/osxHIDUtils.cpp src/pointing/input/osx/osxPrivateMultitouchDevice.cpp src/pointing/input/osx/osxPointingDeviceManager.cpp src/pointing/output/osx/osxDisplayDevice.cpp src/pointing/output/osx/osxDisplayDeviceManager.cpp src/pointing/transferfunctions/osx/osxSystemPointerAcceleration.cpp src/pointing-xorg/transferfunctions/XorgFunction.cpp

CXX      = g++ -stdlib=libc++
CPPFLAGS = -Iinclude -DPOINTING_XORG
CXXFLAGS = -mmacosx-version-min=10.7 -std=c++11
LDFLAGS  = -Llib -F/System/Library/PrivateFrameworks -mmacosx-version-min=10.7
LIBS     = -framework MultitouchSupport -framework IOKit -framework CoreFoundation -framework ApplicationServices -framework AppKit

OBJECTS = $(SOURCES:.cpp=.o)

all: lib/$(LIBPOINTING)

lib/$(LIBPOINTING): $(OBJECTS)
	$(CXX) -shared -o $@ $^ $(LDFLAGS) $(LIBS)

src/simpletest: src/simpletest.cpp
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(LIBS) -lpointing

test: lib/$(LIBPOINTING) src/simpletest
	src/simpletest
clean:
	rm -f $(OBJECTS)
distclean: clean
	rm -f lib/$(LIBPOINTING)
install:
	mkdir -p $(PREFIX)/include
	cp -r include/pointing $(PREFIX)/include
	cp -r include/pointing-xorg $(PREFIX)/include
	cp -r include/pointing-echomouse $(PREFIX)/include
	mkdir -p $(PREFIX)/lib
	cp -r lib $(PREFIX)
uninstall:
	rm -rf $(PREFIX)/include/pointing
	rm -rf $(PREFIX)/include/pointing-xorg
	rm -rf $(PREFIX)/include/pointing-echomouse
	rm -f $(PREFIX)/lib/$(LIBPOINTING)
tarball: distclean
	cd .. && tar cvzf libpointing-mac-1.0.2.tar.gz libpointing-1.0.2/
	openssl dgst -sha256 ../libpointing-mac-1.0.2.tar.gz
