Adopted to OpenWrt target. Most likely these changes go elsewhere when done right.
--- a/service/CMakeLists.txt
+++ b/service/CMakeLists.txt
@@ -98,7 +98,7 @@ IF (UNIX AND NOT APPLE)
 	IF (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
 		SET(DEFAULT_STATE_INSTALL_DIR "/var/spool")
 	ELSE ()
-		SET(DEFAULT_STATE_INSTALL_DIR "/var/state")
+		SET(DEFAULT_STATE_INSTALL_DIR "/tmp/state") # OpenWrt has var as symlink to tmp
 	ENDIF ()
 	SET(STATE_INSTALL_DIR "${DEFAULT_STATE_INSTALL_DIR}" CACHE PATH "The directory to store state information of the devices")
 
--- a/tdadmin/CMakeLists.txt
+++ b/tdadmin/CMakeLists.txt
@@ -38,8 +38,11 @@ ELSEIF (CMAKE_SYSTEM_NAME MATCHES "FreeB
 		${ARGP_LIBRARY}
 	)
 ELSE (WIN32)
+	# Linux, in this case openwrt that requires argp-standalone
+	FIND_LIBRARY(ARGP_LIBRARY argp)
 	TARGET_LINK_LIBRARIES(tdadmin
 		${CMAKE_BINARY_DIR}/client/libtelldus-core.so
+		${ARGP_LIBRARY}
 	)
 ENDIF (WIN32)
 
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -66,12 +66,16 @@ ELSEIF (CMAKE_SYSTEM_NAME MATCHES "FreeB
 	)
 ELSE (APPLE)
 	#### Linux ####
+	#FIND_LIBRARY(ICONV_LIBRARY iconv) Does not work
 	ADD_DEFINITIONS( -D_LINUX )
 	LIST(APPEND  telldus-common_SRCS
 		Event_unix.cpp
 		EventHandler_unix.cpp
 		Socket_unix.cpp
 	)
+	LIST(APPEND telldus-common_LIBRARIES
+		${ICONV_LIBRARY}
+	)
 ENDIF (APPLE)
 
 
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,7 +62,7 @@ IF(DOXYGEN_FOUND)
 	SET(DOXY_CONFIG ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
 
 	CONFIGURE_FILE(
-		"${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in"
+		"${CMAKE_CURRENT_SOURCE_DIR}/CMakeDoxyfile.in"
 		${DOXY_CONFIG} @ONLY
 	)