Use autotools
authorTodor Tomov <ttomov@mm-sol.com>
Thu, 3 Feb 2011 08:50:48 +0000 (10:50 +0200)
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Mon, 7 Feb 2011 15:32:44 +0000 (16:32 +0100)
Use autoconf and automake for building.
Quick instructions are added in INSTALL.
Application source files are moved to src subdirectory.

Signed-off-by: Todor Tomov <ttomov@mm-sol.com>
13 files changed:
INSTALL [new file with mode: 0644]
Makefile [deleted file]
Makefile.am [new file with mode: 0644]
configure.in [new file with mode: 0644]
src/Makefile.am [new file with mode: 0644]
src/main.c [moved from main.c with 100% similarity]
src/media.c [moved from media.c with 100% similarity]
src/media.h [moved from media.h with 100% similarity]
src/options.c [moved from options.c with 100% similarity]
src/options.h [moved from options.h with 100% similarity]
src/subdev.c [moved from subdev.c with 100% similarity]
src/subdev.h [moved from subdev.h with 100% similarity]
src/tools.h [moved from tools.h with 100% similarity]

diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..98e1ef9
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,26 @@
+Building:
+---------
+
+Useful 'configure' options:
+  --with-kernel-headers=DIR    path of Linux kernel headers,
+                               default /usr/src/kernel-headers.
+
+  --host=TYPE                  host platform for cross-compilation.
+
+
+Building:
+$ autoreconf --install
+$ ./configure [--with-kernel-headers=DIR] [--host=TYPE]
+$ make
+
+
+Installing:
+-----------
+
+$ sudo make install
+
+
+Uninstalling:
+-------------
+
+$ sudo make uninstall
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index a89b79c..0000000
--- a/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-CROSS_COMPILE ?=
-KDIR ?=
-
-KINC := -I$(KDIR)/usr/include
-CC   := $(CROSS_COMPILE)gcc
-
-CFLAGS += -O2 -Wall -fpic -I. $(KINC)
-OBJS = media.o main.o options.o subdev.o
-
-all: media-ctl
-
-media-ctl: $(OBJS)
-       $(CC) $(CFLAGS) -o media-ctl $(OBJS)
-       $(CROSS_COMPILE)strip media-ctl
-clean:
-       rm -f $(OBJS) media-ctl
-
-.PHONY: clean all
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..f268924
--- /dev/null
@@ -0,0 +1,2 @@
+SUBDIRS = src
+
diff --git a/configure.in b/configure.in
new file mode 100644 (file)
index 0000000..1b627bc
--- /dev/null
@@ -0,0 +1,61 @@
+AC_PREREQ([2.65])
+AC_INIT([media-ctl], [0.0.1], [laurent.pinchart@ideasonboard.com])
+AC_CONFIG_SRCDIR([src/main.c])
+AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([-Wall -Werror foreign])
+
+# Checks for programs.
+AC_PROG_CC
+
+# Checks for libraries.
+
+# Kernel headers path.
+AC_ARG_WITH(kernel-headers,
+    [AC_HELP_STRING([--with-kernel-headers=DIR],
+        [specify path of Linux kernel headers [/usr/src/kernel-headers]])],
+    [case "${withval}" in
+        yes | no) AC_MSG_ERROR([bad value ${withval} for --with-kernel-headers]) ;;
+        *)   KERNEL_HEADERS_DIR="${withval}" ;;
+     esac],
+    [KERNEL_HEADERS_DIR="/usr/src/kernel-headers"])
+
+CPPFLAGS="-I$KERNEL_HEADERS_DIR/include"
+
+# Checks for header files.
+AC_CHECK_HEADERS([linux/media.h \
+                 linux/types.h \
+                 linux/v4l2-mediabus.h \
+                 linux/v4l2-subdev.h \
+                 linux/videodev2.h],
+                 [],
+                 [echo "ERROR: Kernel header file not found or not usable!"; exit 1])
+
+AC_CHECK_HEADERS([fcntl.h \
+                 stdlib.h \
+                 string.h \
+                 sys/ioctl.h \
+                 sys/time.h \
+                 unistd.h],
+                 [],
+                 [echo "ERROR: Header file not found or not usable!"; exit 1])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_INLINE
+AC_TYPE_SIZE_T
+AC_CHECK_MEMBERS([struct stat.st_rdev])
+
+# Checks for library functions.
+AC_HEADER_MAJOR
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([memset strerror strrchr strtoul])
+
+AC_CONFIG_FILES([
+ Makefile
+ src/Makefile
+])
+
+AC_OUTPUT
+
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644 (file)
index 0000000..b112ba6
--- /dev/null
@@ -0,0 +1,3 @@
+bin_PROGRAMS = media-ctl
+media_ctl_SOURCES = main.c media.c media.h options.c options.h subdev.c subdev.h tools.h
+
similarity index 100%
rename from main.c
rename to src/main.c
similarity index 100%
rename from media.c
rename to src/media.c
similarity index 100%
rename from media.h
rename to src/media.h
similarity index 100%
rename from options.c
rename to src/options.c
similarity index 100%
rename from options.h
rename to src/options.h
similarity index 100%
rename from subdev.c
rename to src/subdev.c
similarity index 100%
rename from subdev.h
rename to src/subdev.h
similarity index 100%
rename from tools.h
rename to src/tools.h