
include ../Makefile.local

TINKERFORGE_FILES=$(shell cat tinkerforge-filelist)
TINKERFORGE_OBJS=$(TINKERFORGE_FILES:%.cpp=tinkerforge/build/%.o)


all: tinkerforge-dist log4cpp-dist

clean: log4cpp-distclean tinkerforge-distclean

tinkerforge-dist : tinkerforge-unzip tinkerforge/lib/libtinkerforge.a tinkerforge-copy-libs tinkerforge-clean

tinkerforge-unzip : tinkerforge-distclean
	unzip tinkerforge_c_bindings_*.zip -d tinkerforge
	cd tinkerforge/bindings; for i in *.c; do mv $$i $${i%.c}.cpp; done
	mkdir tinkerforge/include
	cd tinkerforge/bindings; for i in *.h; do mv $$i ../include/$$i; done

tinkerforge-copy-libs :
	mkdir -p ../lib
	cp tinkerforge/lib/libtinkerforge.a ../lib

tinkerforge-generate-filelist :
	cd tinkerforge/bindings; ls -1 *.cpp > ../../tinkerforge-filelist

tinkerforge-distclean :
	rm -rf tinkerforge tinkerforge/lib/libtinkerforge.a

tinkerforge-clean :
	rm -rf tinkerforge/build
	
tinkerforge/lib :
	mkdir -p $@
	
tinkerforge/build :
	mkdir -p $@

tinkerforge/lib/libtinkerforge.a : tinkerforge/lib $(TINKERFORGE_OBJS)
	$(AR) rc $@ tinkerforge/build/*.o
	$(RANLIB) $@

$(TINKERFORGE_OBJS) : tinkerforge/build/%.o : tinkerforge/bindings/%.cpp tinkerforge/build 
	$(CXX) $(CXX_FLAGS) $(TINKERFORGE_CXX_FLAGS) -I tinkerforge/include -c $< -o $@


log4cpp-dist : log4cpp-unzip log4cpp-build log4cpp-copy-libs log4cpp-clean

log4cpp-unzip : log4cpp-distclean
	tar xvfz log4cpp-*.tar.gz
	mv log4cpp log4cpp-src
	mkdir log4cpp
	mv log4cpp-src log4cpp/src

log4cpp-build :
	cd log4cpp/src; \
	./configure --prefix $(realpath log4cpp) --libdir $(realpath log4cpp)/lib
	make -C log4cpp/src
	make -C log4cpp/src install

log4cpp-copy-libs : 
	mkdir -p ../lib
	cp log4cpp/lib/liblog4cpp.a ../lib

log4cpp-distclean :
	rm -rf log4cpp log4cpp/lib/liblog4cpp.a

log4cpp-clean :
	rm -rf log4cpp/src

