--- /dev/null
+cmake_minimum_required(VERSION 2.8)
+
+project(config)
+
+#set(CMAKE_VERBOSE_MAKEFILE ON)
+
+find_package(BISON REQUIRED)
+find_package(FLEX REQUIRED)
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+
+file(MAKE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../include/generated")
+
+LIST(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../extra")
+FIND_PACKAGE(GPERF REQUIRED)
+
+BISON_TARGET(zconf zconf.y zconf.tab.c COMPILE_FLAGS "-l -b zconf -p zconf")
+FLEX_TARGET(zconfscan zconf.l lex.zconf.c COMPILE_FLAGS "-Pzconf -L")
+GPERF_TARGET(zconfhash zconf.gperf zconf.hash.c)
+
+SET(zconf_deps ${FLEX_zconfscan_OUTPUTS} ${GPERF_zconfhash_OUTPUTS})
+SET_SOURCE_FILES_PROPERTIES(${BISON_zconf_OUTPUTS}
+ PROPERTIES OBJECT_DEPENDS "${zconf_deps}")
+
+set(conf_src conf.c ${BISON_zconf_OUTPUTS})
+
+add_executable(conf ${conf_src})
+++ /dev/null
-# ===========================================================================
-# carl9170 configuration targets
-# These targets are used from top-level makefile
-
-PHONY += config
-
-config: conf
-
-# ===========================================================================
-# Shared Makefile for the various kconfig executables:
-
-clean:
- @rm -f *.o zconf.tab.c lex.zconf.c zconf.hash.c lex.backup conf
-
-# generated files seem to need this to find local include files
-
-zconf.tab.o: lex.zconf.c zconf.hash.c
-
-zconf.tab.c: zconf.y
-lex.zconf.c: zconf.l
-zconf.hash.c: zconf.gperf
-
-%.tab.c: %.y
- bison -l -b $* -p $(notdir $*) $<
-
-lex.%.c: %.l
- flex -L -P$(notdir $*) -o$@ $<
-
-%.hash.c: %.gperf
- gperf < $< > $@
-
-%.o: %.c
- gcc $(CFLAGS) -I./ -c $< -o $@
-
-conf: zconf.tab.o conf.o