Sfoglia il codice sorgente

Merge branch 'autotools-conversion' of git://git.busybox.net/~tpetazzoni/git/buildroot

Peter Korsgaard 15 anni fa
parent
commit
b827af3bb4

+ 8 - 56
package/argus/argus.mk

@@ -7,63 +7,15 @@ ARGUS_VERSION:=3.0.0.rc.34
 ARGUS_SOURCE:=argus_$(ARGUS_VERSION).orig.tar.gz
 ARGUS_PATCH:=argus_$(ARGUS_VERSION)-1.diff.gz
 ARGUS_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/a/argus/
-ARGUS_DIR:=$(BUILD_DIR)/argus-$(ARGUS_VERSION)
-ARGUS_CAT:=$(ZCAT)
-ARGUS_BINARY:=bin/argus
-ARGUS_TARGET_BINARY:=usr/sbin/argus
+ARGUS_DEPENDENCIES=libpcap
+ARGUS_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
 
-$(DL_DIR)/$(ARGUS_SOURCE):
-	$(call DOWNLOAD,$(ARGUS_SITE),$(ARGUS_SOURCE))
-
-$(DL_DIR)/$(ARGUS_PATCH):
-	$(call DOWNLOAD,$(ARGUS_SITE),$(ARGUS_PATCH))
-
-argus-source: $(DL_DIR)/$(ARGUS_SOURCE) $(DL_DIR)/$(ARGUS_PATCH)
-
-$(ARGUS_DIR)/.unpacked: $(DL_DIR)/$(ARGUS_SOURCE) $(DL_DIR)/$(ARGUS_PATCH)
-	$(ARGUS_CAT) $(DL_DIR)/$(ARGUS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(ARGUS_DIR) package/argus/ argus\*.patch
-ifneq ($(ARGUS_PATCH),)
-	(cd $(ARGUS_DIR) && $(ARGUS_CAT) $(DL_DIR)/$(ARGUS_PATCH) | patch -p1)
-	if [ -d $(ARGUS_DIR)/debian/patches ]; then \
-		toolchain/patch-kernel.sh $(ARGUS_DIR) $(ARGUS_DIR)/debian/patches \*.patch; \
+define ARGUS_DEBIAN_PATCH_APPLY
+	if [ -d $(@D)/debian/patches ]; then \
+		toolchain/patch-kernel.sh $(@D) $(@D)/debian/patches \*.patch; \
 	fi
-endif
-	touch $@
-
-$(ARGUS_DIR)/.configured: $(ARGUS_DIR)/.unpacked
-	(cd $(ARGUS_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $@
-
-$(ARGUS_DIR)/$(ARGUS_BINARY): $(ARGUS_DIR)/.configured
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(ARGUS_DIR)
-
-$(TARGET_DIR)/$(ARGUS_TARGET_BINARY): $(ARGUS_DIR)/$(ARGUS_BINARY)
-	cp -dpf $(ARGUS_DIR)/$(ARGUS_BINARY) $@
-	$(STRIPCMD) $(STRIP_STRIP_ALL) $@
+endef
 
-argus: libpcap $(TARGET_DIR)/$(ARGUS_TARGET_BINARY)
+ARGUS_POST_PATCH_HOOKS += ARGUS_DEBIAN_PATCH_APPLY
 
-argus-clean:
-	-$(MAKE) -C $(ARGUS_DIR) clean
-	rm -f $(TARGET_DIR)/$(ARGUS_TARGET_BINARY)
-
-argus-dirclean:
-	rm -rf $(ARGUS_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_ARGUS),y)
-TARGETS+=argus
-endif
+$(eval $(call AUTOTARGETS,package,argus))

+ 5 - 64
package/bison/bison.mk

@@ -6,70 +6,11 @@
 BISON_VERSION:=2.3
 BISON_SOURCE:=bison-$(BISON_VERSION).tar.bz2
 BISON_SITE:=$(BR2_GNU_MIRROR)/bison
-BISON_DIR:=$(BUILD_DIR)/bison-$(BISON_VERSION)
-BISON_CAT:=$(BZCAT)
-BISON_BINARY:=src/bison
-BISON_TARGET_BINARY:=usr/bin/bison
 
-$(DL_DIR)/$(BISON_SOURCE):
-	 $(call DOWNLOAD,$(BISON_SITE),$(BISON_SOURCE))
+define BISON_DISABLE_EXAMPLES
+	echo 'all install:' > $(@D)/examples/Makefile
+endef
 
-bison-source: $(DL_DIR)/$(BISON_SOURCE)
+BISON_POST_CONFIGURE_HOOKS += BISON_DISABLE_EXAMPLES
 
-$(BISON_DIR)/.unpacked: $(DL_DIR)/$(BISON_SOURCE)
-	$(BISON_CAT) $(DL_DIR)/$(BISON_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(BISON_DIR)/build-aux
-	touch $@
-
-$(BISON_DIR)/.configured: $(BISON_DIR)/.unpacked
-	(cd $(BISON_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		gt_cv_func_gnugettext2_libintl=yes \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/share/man \
-		--infodir=/usr/share/info \
-		--includedir=/usr/include \
-		$(DISABLE_NLS) \
-	)
-	echo 'all install:' > $(BISON_DIR)/examples/Makefile
-	touch $@
-
-$(BISON_DIR)/$(BISON_BINARY): $(BISON_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(BISON_DIR)
-
-$(TARGET_DIR)/$(BISON_TARGET_BINARY): $(BISON_DIR)/$(BISON_BINARY)
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BISON_DIR) install
-	rm -rf $(TARGET_DIR)/share/locale
-	cp -a package/bison/yacc $(TARGET_DIR)/usr/bin/yacc
-
-bison: $(TARGET_DIR)/$(BISON_TARGET_BINARY)
-
-bison-clean:
-	-$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(BISON_DIR) uninstall
-	rm -f $(TARGET_DIR)/$(BISON_TARGET_BINARY)
-	-$(MAKE) -C $(BISON_DIR) clean
-
-bison-dirclean:
-	rm -rf $(BISON_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_BISON),y)
-TARGETS+=bison
-endif
+$(eval $(call AUTOTARGETS,package,bison))

+ 0 - 7
package/dummy/Config.in

@@ -1,7 +0,0 @@
-config BR2_PACKAGE_DUMMY
-	bool "dummy"
-	help
-	  This is a dummy package to show how to integrate a new package into
-	  Buildroot. The syntax for this file is the default kbuild from the
-	  Linux kernel, more information at
-	  http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=Documentation/kbuild

+ 0 - 93
package/dummy/dummy.mk

@@ -1,93 +0,0 @@
-#############################################################
-#
-# dummy
-#
-#############################################################
-
-# Current version, use the latest unless there are any known issues.
-DUMMY_VERSION=1.2.3
-# The filename of the package to download.
-DUMMY_SOURCE=dummy-$(DUMMY_VERSION).tar.bz2
-# The site and path to where the source packages are.
-DUMMY_SITE=http://www.example.net/dummy/source
-# The directory which the source package is extracted to.
-DUMMY_DIR=$(BUILD_DIR)/dummy-$(DUMMY_VERSION)
-# Which decompression to use, BZCAT or ZCAT.
-DUMMY_CAT:=$(BZCAT)
-# Target binary for the package.
-DUMMY_BINARY:=dummy
-# Not really needed, but often handy define.
-DUMMY_TARGET_BINARY:=usr/bin/$(DUMMY_BINARY)
-
-# The download rule. Main purpose is to download the source package.
-$(DL_DIR)/$(DUMMY_SOURCE):
-	$(call DOWNLOAD,$(DUMMY_SITE),$(DUMMY_SOURCE))
-
-# The unpacking rule. Main purpose is to extract the source package, apply any
-# patches and update config.guess and config.sub.
-$(DUMMY_DIR)/.unpacked: $(DL_DIR)/$(DUMMY_SOURCE)
-	$(DUMMY_CAT) $(DL_DIR)/$(DUMMY_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(DUMMY_DIR) package/dummy/ dummy-$(DUMMY_VERSION)-\*.patch\*
-	$(CONFIG_UPDATE) $(DUMMY_DIR)
-	touch $@
-
-# The configure rule. Main purpose is to get the package ready for compilation,
-# usually by running the configure script with different kinds of options
-# specified.
-$(DUMMY_DIR)/.configured: $(DUMMY_DIR)/.unpacked
-	(cd $(DUMMY_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $@
-
-$(DUMMY_DIR)/$(DUMMY_BINARY): $(DUMMY_DIR)/.configured
-	$(MAKE) -C $(DUMMY_DIR)
-
-# The installing rule. Main purpose is to install the binary into the target
-# root directory and make sure it is stripped from debug symbols to reduce the
-# space requirements to a minimum.
-#
-# Only the files needed to run the application should be installed to the
-# target root directory, to not waste valuable flash space.
-$(TARGET_DIR)/$(DUMMY_TARGET_BINARY): $(DUMMY_DIR)/$(DUMMY_BINARY)
-	cp -dpf $(DUMMY_DIR)/dummy $@
-	$(STRIPCMD) --strip-unneeded $@
-
-# Main rule which shows which other packages must be installed before the dummy
-# package is installed. This to ensure that all depending libraries are
-# installed.
-dummy: $(TARGET_DIR)/$(DUMMY_TARGET_BINARY)
-
-# Source download rule. Main purpose to download the source package. Since some
-# people would like to work offline, it is mandotory to implement a rule which
-# downloads everything this package needs.
-dummy-source: $(DL_DIR)/$(DUMMY_SOURCE)
-
-# Clean rule. Main purpose is to clean the build directory, thus forcing a new
-# rebuild the next time Buildroot is made.
-dummy-clean:
-	-$(MAKE) -C $(DUMMY_DIR) clean
-
-# Directory clean rule. Main purpose is to remove the build directory, forcing
-# a new extraction, patching and rebuild the next time Buildroot is made.
-dummy-dirclean:
-	rm -rf $(DUMMY_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-# This is how the dummy package is added to the list of rules to build.
-ifeq ($(BR2_PACKAGE_DUMMY),y)
-TARGETS+=dummy
-endif

+ 1 - 74
package/findutils/findutils.mk

@@ -5,79 +5,6 @@
 #############################################################
 FINDUTILS_VERSION:=4.2.31
 FINDUTILS_SOURCE:=findutils-$(FINDUTILS_VERSION).tar.gz
-#FINDUTILS_SITE:=ftp://alpha.gnu.org/gnu/findutils
 FINDUTILS_SITE:=$(BR2_GNU_MIRROR)/findutils/
-FINDUTILS_CAT:=$(ZCAT)
-FINDUTILS_DIR:=$(BUILD_DIR)/findutils-$(FINDUTILS_VERSION)
-FINDUTILS_BINARY:=find/find
-FINDUTILS_TARGET_BINARY:=usr/bin/find
 
-$(DL_DIR)/$(FINDUTILS_SOURCE):
-	 $(call DOWNLOAD,$(FINDUTILS_SITE),$(FINDUTILS_SOURCE))
-
-findutils-source: $(DL_DIR)/$(FINDUTILS_SOURCE)
-
-$(FINDUTILS_DIR)/.unpacked: $(DL_DIR)/$(FINDUTILS_SOURCE)
-	$(FINDUTILS_CAT) $(DL_DIR)/$(FINDUTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(FINDUTILS_DIR)
-	touch $@
-
-$(FINDUTILS_DIR)/.configured: $(FINDUTILS_DIR)/.unpacked
-	(cd $(FINDUTILS_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		ac_cv_func_setvbuf_reversed=no \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib/locate \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var/lib \
-		--mandir=/usr/share/man \
-		--infodir=/usr/share/info \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $@
-
-$(FINDUTILS_DIR)/$(FINDUTILS_BINARY): $(FINDUTILS_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(FINDUTILS_DIR)
-
-# This stuff is needed to work around GNU make deficiencies
-findutils-target_binary: $(FINDUTILS_DIR)/$(FINDUTILS_BINARY)
-	@if [ -L $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY) ]; then \
-		rm -f $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY); \
-	fi
-	@if [ ! -f $(FINDUTILS_DIR)/$(FINDUTILS_BINARY) \
-		-o $(TARGET_DIR)/$(FINDUTILS_TARGET_BINARY) \
-		-ot $(FINDUTILS_DIR)/$(FINDUTILS_BINARY) ]; then \
-		set -x; \
-		$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(FINDUTILS_DIR) install-strip; \
-		$(STRIPCMD) $(TARGET_DIR)/usr/lib/locate/* > /dev/null 2>&1; \
-	fi
-	rm -rf $(TARGET_DIR)/share/locale
-
-findutils: findutils-target_binary
-
-findutils-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(FINDUTILS_DIR) uninstall
-	-$(MAKE) -C $(FINDUTILS_DIR) clean
-
-findutils-dirclean:
-	rm -rf $(FINDUTILS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_FINDUTILS),y)
-TARGETS+=findutils
-endif
+$(eval $(call AUTOTARGETS,package,findutils))

+ 1 - 4
package/ipkg/ipkg.mk

@@ -11,7 +11,4 @@ IPKG_AUTORECONF = NO
 IPKG_INSTALL_STAGING = YES
 IPKG_INSTALL_TARGET = YES
 
-IPKG_CONF_OPT = --target=$(GNU_TARGET_NAME) --host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) --prefix=/usr --sysconfdir=/etc
-
-$(eval $(call AUTOTARGETS,package,ipkg))
+$(eval $(call AUTOTARGETS,package,ipkg))

+ 3 - 65
package/libcgi/libcgi.mk

@@ -6,69 +6,7 @@
 LIBCGI_VERSION:=1.0
 LIBCGI_SOURCE:=libcgi-$(LIBCGI_VERSION).tar.gz
 LIBCGI_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/libcgi
-LIBCGI_DIR:=$(BUILD_DIR)/libcgi-$(LIBCGI_VERSION)
-LIBCGI_LIBRARY:=src/libcgi.so
-LIBCGI_DESTDIR:=usr/lib
-LIBCGI_TARGET_LIBRARY=$(LIBCGI_DESTDIR)/libcgi.so
+LIBCGI_INSTALL_STAGING=YES
+LIBCGI_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
 
-$(DL_DIR)/$(LIBCGI_SOURCE):
-	$(call DOWNLOAD,$(LIBCGI_SITE),$(LIBCGI_SOURCE))
-
-$(LIBCGI_DIR)/.source: $(DL_DIR)/$(LIBCGI_SOURCE)
-	$(ZCAT) $(DL_DIR)/$(LIBCGI_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(LIBCGI_DIR) package/libcgi/ libcgi\*.patch
-	touch $(LIBCGI_DIR)/.source
-
-$(LIBCGI_DIR)/.configured: $(LIBCGI_DIR)/.source
-	(cd $(LIBCGI_DIR); rm -f config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/$(LIBCGI_DESTDIR) \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--includedir=/include \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-	)
-	touch $(LIBCGI_DIR)/.configured
-
-$(LIBCGI_DIR)/$(LIBCGI_LIBRARY): $(LIBCGI_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(LIBCGI_DIR)
-
-$(STAGING_DIR)/$(LIBCGI_TARGET_LIBRARY): $(LIBCGI_DIR)/$(LIBCGI_LIBRARY)
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBCGI_DIR) install
-	touch -c $@
-
-$(TARGET_DIR)/$(LIBCGI_TARGET_LIBRARY): $(STAGING_DIR)/$(LIBCGI_TARGET_LIBRARY)
-	cp -dpf $<* $(TARGET_DIR)/$(LIBCGI_DESTDIR)
-
-libcgi: $(TARGET_DIR)/$(LIBCGI_TARGET_LIBRARY)
-
-libcgi-source: $(DL_DIR)/$(LIBCGI_SOURCE)
-
-libcgi-clean:
-	rm -f $(TARGET_DIR)/$(LIBCGI_TARGET_LIBRARY)*
-	-$(MAKE) -C $(LIBCGI_DIR) clean
-
-libcgi-dirclean:
-	rm -rf $(LIBCGI_DIR)
-
-.PHONY: libcgi
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBCGI),y)
-TARGETS+=libcgi
-endif
+$(eval $(call AUTOTARGETS,package,libcgi))

+ 5 - 59
package/libcgicc/libcgicc.mk

@@ -3,67 +3,13 @@
 # libcgicc
 #
 #############################################################
-
 LIBCGICC_VERSION=3.2.9
-LIBCGICC_DIR=$(BUILD_DIR)/cgicc-$(LIBCGICC_VERSION)
 LIBCGICC_SITE=$(BR2_GNU_MIRROR)/cgicc
 LIBCGICC_SOURCE=cgicc-$(LIBCGICC_VERSION).tar.gz
-LIBCGICC_CAT:=$(ZCAT)
-
-$(DL_DIR)/$(LIBCGICC_SOURCE):
-	$(call DOWNLOAD,$(LIBCGICC_SITE),$(LIBCGICC_SOURCE))
-
-libcgicc-source: $(DL_DIR)/$(LIBCGICC_SOURCE)
-
-$(LIBCGICC_DIR)/.unpacked: $(DL_DIR)/$(LIBCGICC_SOURCE)
-	$(LIBCGICC_CAT) $(DL_DIR)/$(LIBCGICC_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(LIBCGICC_DIR) package/libcgicc cgicc\*.patch
-	touch $@
-
-$(LIBCGICC_DIR)/.configured: $(LIBCGICC_DIR)/.unpacked
-	(cd $(LIBCGICC_DIR); rm -f config.cache; \
-		$(AUTORECONF); \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--sysconfdir=/etc \
-		--localstatedir=/var \
-		--disable-demos \
-		--disable-doc \
-	)
-	touch $@
-
-$(LIBCGICC_DIR)/.compiled: $(LIBCGICC_DIR)/.configured
-	$(TARGET_MAKE_ENV) $(MAKE) -C $(LIBCGICC_DIR)
-	touch $@
-
-$(STAGING_DIR)/usr/lib/libcgicc.so: $(LIBCGICC_DIR)/.compiled
-	$(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBCGICC_DIR) install
-	touch -c $(STAGING_DIR)/usr/lib/libcgicc.so
-
-$(TARGET_DIR)/usr/lib/libcgicc.so: $(STAGING_DIR)/usr/lib/libcgicc.so
-	cp -dpf $(STAGING_DIR)/usr/lib/libcgicc.so* $(TARGET_DIR)/usr/lib/
+LIBCGICC_INSTALL_STAGING=YES
 
-libcgicc: $(TARGET_DIR)/usr/lib/libcgicc.so
+LIBCGICC_CONF_OPT = \
+	--disable-demos \
+	--disable-doc
 
-libcgicc-unpacked: $(LIBCGICC_DIR)/.unpacked
-
-libcgicc-clean:
-		-$(MAKE) -C $(LIBCGICC_DIR) clean
-
-libcgicc-dirclean:
-	rm -rf $(LIBCGICC_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBCGICC),y)
-TARGETS+=libcgicc
-endif
+$(eval $(call AUTOTARGETS,package,libcgicc))

+ 6 - 77
package/libosip2/libosip2.mk

@@ -3,85 +3,14 @@
 # libosip2
 #
 #############################################################
-
 LIBOSIP2_VERSION=3.1.0
 LIBOSIP2_SOURCE=libosip2-$(LIBOSIP2_VERSION).tar.gz
 LIBOSIP2_SITE=http://www.antisip.com/download/exosip2
-LIBOSIP2_DIR=$(BUILD_DIR)/libosip2-$(LIBOSIP2_VERSION)
-LIBOSIP2_CAT:=$(ZCAT)
-
-$(DL_DIR)/$(LIBOSIP2_SOURCE):
-	$(call DOWNLOAD,$(LIBOSIP2_SITE),$(LIBOSIP2_SOURCE))
-
-$(LIBOSIP2_DIR)/.unpacked: $(DL_DIR)/$(LIBOSIP2_SOURCE)
-	$(LIBOSIP2_CAT) $(DL_DIR)/$(LIBOSIP2_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(LIBOSIP2_DIR)
-	touch $(LIBOSIP2_DIR)/.unpacked
-
-$(LIBOSIP2_DIR)/.configured: $(LIBOSIP2_DIR)/.unpacked
-	(cd $(LIBOSIP2_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		--includedir=/usr/include \
-		--with-gnu-ld \
-		--enable-shared \
-		--enable-static \
-		$(DISABLE_NLS) \
-	)
-	touch $(LIBOSIP2_DIR)/.configured
-
-$(LIBOSIP2_DIR)/libosip2.so: $(LIBOSIP2_DIR)/.configured
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(LIBOSIP2_DIR)
-
-$(STAGING_DIR)/usr/lib/libosip2.so: $(LIBOSIP2_DIR)/.configured
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBOSIP2_DIR) install
-	$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libosip2.la
-	$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libosipparser2.la
-
-$(TARGET_DIR)/usr/lib/libosip2.so: $(STAGING_DIR)/usr/lib/libosip2.so
-	mkdir -p $(TARGET_DIR)/usr/lib
-	cp -dpf $(STAGING_DIR)/usr/lib/libosip2.so* $(TARGET_DIR)/usr/lib/
-	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libosip2.so*
-
-$(TARGET_DIR)/usr/lib/libosipparser2.so: $(STAGING_DIR)/usr/lib/libosip2.so
-	mkdir -p $(TARGET_DIR)/usr/lib
-	cp -dpf $(STAGING_DIR)/usr/lib/libosipparser2.so* $(TARGET_DIR)/usr/lib/
-	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libosipparser2.so*
+LIBOSIP2_INSTALL_STAGING=YES
 
-libosip2: $(TARGET_DIR)/usr/lib/libosip2.so $(TARGET_DIR)/usr/lib/libosipparser2.so
+LIBOSIP2_CONF_OPT = \
+	--with-gnu-ld \
+	--enable-shared \
+	--enable-static
 
-libosip2-source: $(DL_DIR)/$(LIBOSIP2_SOURCE)
-
-libosip2-clean:
-	-$(MAKE) -C $(LIBOSIP2_DIR) clean
-	-rm -f $(STAGING_DIR)/usr/lib/libosip2.*
-	-rm -f $(STAGING_DIR)/usr/lib/libosipparser2.*
-	-rm -f $(TARGET_DIR)/usr/lib/libosip2.*
-	-rm -f $(TARGET_DIR)/usr/lib/libosipparser2.*
-
-libosip2-dirclean:
-	rm -rf $(LIBOSIP2_DIR)
-
-.PHONY: libosip2-headers libosip2-target-headers
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBOSIP2),y)
-TARGETS+=libosip2
-endif
+$(eval $(call AUTOTARGETS,package,libosip2))

+ 2 - 62
package/libraw1394/libraw1394.mk

@@ -3,69 +3,9 @@
 # libraw1394
 #
 #############################################################
-
 LIBRAW1394_VERSION:=1.2.1
 LIBRAW1394_SOURCE:=libraw1394-$(LIBRAW1394_VERSION).tar.gz
 LIBRAW1394_SITE:=http://www.kernel.org/pub/linux/libs/ieee1394/
-LIBRAW1394_DIR:=$(BUILD_DIR)/libraw1394-$(LIBRAW1394_VERSION)
-
-$(DL_DIR)/$(LIBRAW1394_SOURCE):
-	$(call DOWNLOAD,$(LIBRAW1394_SITE),$(LIBRAW1394_SOURCE))
-
-$(LIBRAW1394_DIR)/.unpacked: $(DL_DIR)/$(LIBRAW1394_SOURCE)
-	$(ZCAT) $(DL_DIR)/$(LIBRAW1394_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	touch $@
-
-$(LIBRAW1394_DIR)/.configured: $(LIBRAW1394_DIR)/.unpacked
-	(cd $(LIBRAW1394_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/usr/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--includedir=/include \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-	)
-	touch $@
-
-$(LIBRAW1394_DIR)/.compiled: $(LIBRAW1394_DIR)/.configured
-	$(MAKE) -C $(LIBRAW1394_DIR)
-	touch $@
-
-$(STAGING_DIR)/usr/lib/libraw1394.so: $(LIBRAW1394_DIR)/.compiled
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBRAW1394_DIR)/src install
-
-$(TARGET_DIR)/usr/lib/libraw1394.so: $(STAGING_DIR)/usr/lib/libraw1394.so
-	cp -dpf $(STAGING_DIR)/usr/lib/libraw1394.so* $(TARGET_DIR)/usr/lib/
-
-libraw1394: $(TARGET_DIR)/usr/lib/libraw1394.so
-
-libraw1394-source: $(DL_DIR)/$(LIBRAW1394_SOURCE)
-
-libraw1394-clean:
-	rm $(TARGET_DIR)/usr/lib/libraw1394.so*
-	-$(MAKE) -C $(LIBRAW1394_DIR) clean
-
-libraw1394-dirclean:
-	rm -rf $(LIBRAW1394_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBRAW1394),y)
-TARGETS+=libraw1394
-endif
+LIBRAW1394_INSTALL_STAGING=YES
 
+$(eval $(call AUTOTARGETS,package,libraw1394))

+ 2 - 57
package/libsysfs/libsysfs.mk

@@ -22,63 +22,8 @@
 # USA
 
 LIBSYSFS_VERSION:=2.1.0
-LIBSYSFS_DIR:=$(BUILD_DIR)/sysfsutils-$(LIBSYSFS_VERSION)
 LIBSYSFS_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/linux-diag
 LIBSYSFS_SOURCE:=sysfsutils-$(LIBSYSFS_VERSION).tar.gz
-LIBSYSFS_CAT:=$(ZCAT)
+LIBSYSFS_INSTALL_STAGING=YES
 
-$(DL_DIR)/$(LIBSYSFS_SOURCE):
-	 $(call DOWNLOAD,$(LIBSYSFS_SITE),$(LIBSYSFS_SOURCE))
-
-libsysfs-source: $(DL_DIR)/$(LIBSYSFS_SOURCE)
-
-$(LIBSYSFS_DIR)/.unpacked: $(DL_DIR)/$(LIBSYSFS_SOURCE)
-	$(LIBSYSFS_CAT) $(DL_DIR)/$(LIBSYSFS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(@D)
-	touch $@
-
-$(LIBSYSFS_DIR)/.configured: $(LIBSYSFS_DIR)/.unpacked
-	(cd $(LIBSYSFS_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-	)
-	touch $@
-
-$(LIBSYSFS_DIR)/.compiled: $(LIBSYSFS_DIR)/.configured
-	$(MAKE) -C $(LIBSYSFS_DIR)
-	touch $@
-
-$(STAGING_DIR)/usr/lib/libsysfs.so: $(LIBSYSFS_DIR)/.compiled
-	$(MAKE) -C $(LIBSYSFS_DIR) DESTDIR=$(STAGING_DIR) install
-	$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" \
-		$(STAGING_DIR)/usr/lib/libsysfs.la
-	touch -c $@
-
-$(TARGET_DIR)/usr/lib/libsysfs.so: $(STAGING_DIR)/usr/lib/libsysfs.so
-	cp -dpf $(STAGING_DIR)/usr/lib/libsysfs.so* $(TARGET_DIR)/usr/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libsysfs.so
-
-libsysfs: $(TARGET_DIR)/usr/lib/libsysfs.so
-
-libsysfs-clean:
-	-$(MAKE) -C $(LIBSYSFS_DIR) clean
-	-$(MAKE) -C $(LIBSYSFS_DIR) DESTDIR=$(STAGING_DIR) uninstall
-	rm -f $(TARGET_DIR)/usr/lib/libsysfs.so*
-
-libsysfs-dirclean:
-	rm -rf $(LIBSYSFS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBSYSFS),y)
-TARGETS+=libsysfs
-endif
+$(eval $(call AUTOTARGETS,package,libsysfs))

+ 29 - 0
package/multimedia/aumix/aumix-2.8-fix-incorrect-makefile-am.patch

@@ -0,0 +1,29 @@
+Aumix's src/Makefile.am incorrect adds @includedir@ to the list of
+include paths and @libdir@ to the list of libraries paths. This is
+incorrect, as @includedir@ and @libdir@ are respectively /usr/include
+and /usr/lib, even in cross-compilation mode.
+
+At the same time, use AM_CFLAGS instead of CFLAGS, as is done on the
+similar patch found in OpenEmbedded.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/Makefile.am |    5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+Index: aumix-2.8/src/Makefile.am
+===================================================================
+--- aumix-2.8.orig/src/Makefile.am
++++ aumix-2.8/src/Makefile.am
+@@ -7,9 +7,8 @@
+ 		mouse.c common.h curses.h gpm-xterm.h gtk.h interactive.h  \
+ 		mouse.h play.xpm record.xpm
+ localedir	= $(datadir)/locale
+-INCLUDES	= -I../intl -DLOCALEDIR=\"$(localedir)\" -I@includedir@
+-CFLAGS		= @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
+-LDADD		= -L@libdir@
++INCLUDES	= -I../intl -DLOCALEDIR=\"$(localedir)\"
++AM_CFLAGS	= @CFLAGS@ @GLIB_CFLAGS@ @GTK_CFLAGS@
+ LIBS		= @LIBS@ @GTK_LIBS@ @INTLLIBS@
+ DEFS		= @DEFS@
+ 

+ 9 - 51
package/multimedia/aumix/aumix.mk

@@ -7,57 +7,15 @@
 AUMIX_VERSION=2.8
 AUMIX_SOURCE=aumix-$(AUMIX_VERSION).tar.bz2
 AUMIX_SITE=http://jpj.net/~trevor/aumix
-AUMIX_DIR=$(BUILD_DIR)/aumix-$(AUMIX_VERSION)
-AUMIX_CAT:=$(BZCAT)
+AUMIX_AUTORECONF=YES
 
-$(DL_DIR)/$(AUMIX_SOURCE):
-	$(call DOWNLOAD,$(AUMIX_SITE),$(AUMIX_SOURCE))
+AUMIX_CONF_OPT = \
+	--without-gtk \
+	--without-gtk1 \
+	--without-alsa \
+	--without-gpm \
+	--without-sysmouse
 
-$(AUMIX_DIR)/.unpacked: $(DL_DIR)/$(AUMIX_SOURCE)
-	$(AUMIX_CAT) $(DL_DIR)/$(AUMIX_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	touch $@
+AUMIX_DEPENDENCIES = ncurses
 
-$(AUMIX_DIR)/.configured: $(AUMIX_DIR)/.unpacked
-	(cd $(AUMIX_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		--libdir=$(STAGING_DIR)/lib \
-		--includedir=$(STAGING_DIR)/usr/include \
-		--without-gtk \
-		--without-gtk1 \
-		--without-alsa \
-		--without-gpm \
-		--without-sysmouse \
-		$(DISABLE_NLS) \
-	)
-	touch $@
-
-$(AUMIX_DIR)/src/aumix: $(AUMIX_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(AUMIX_DIR)
-
-$(TARGET_DIR)/usr/bin/aumix: $(AUMIX_DIR)/src/aumix
-	$(MAKE) -C $(AUMIX_DIR) DESTDIR=$(TARGET_DIR) install
-
-aumix: ncurses $(TARGET_DIR)/usr/bin/aumix
-
-aumix-source: $(DL_DIR)/$(AUMIX_SOURCE)
-
-aumix-clean:
-	-$(MAKE) -C $(AUMIX_DIR) clean
-
-aumix-dirclean:
-	rm -rf $(AUMIX_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_AUMIX),y)
-TARGETS+=aumix
-endif
+$(eval $(call AUTOTARGETS,package/multimedia,aumix))

+ 4 - 58
package/multimedia/libid3tag/libid3tag.mk

@@ -7,62 +7,8 @@
 LIBID3TAG_VERSION:=0.15.1b
 LIBID3TAG_SOURCE:=libid3tag-$(LIBID3TAG_VERSION).tar.gz
 LIBID3TAG_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/mad
-LIBID3TAG_DIR:=$(BUILD_DIR)/libid3tag-$(LIBID3TAG_VERSION)
-LIBID3TAG_CAT:=$(ZCAT)
-LIBID3TAG_BIN:=libid3tag.so.0.3.0
-LIBID3TAG_TARGET_BIN:=usr/lib/$(LIBID3TAG_BIN)
+LIBID3TAG_INSTALL_STAGING=YES
+LIBID3TAG_DEPENDENCIES=zlib
+LIBID3TAG_LIBTOOL_PATCH=NO
 
-$(DL_DIR)/$(LIBID3TAG_SOURCE):
-	$(call DOWNLOAD,$(LIBID3TAG_SITE),$(LIBID3TAG_SOURCE))
-
-$(LIBID3TAG_DIR)/.unpacked: $(DL_DIR)/$(LIBID3TAG_SOURCE)
-	$(LIBID3TAG_CAT) $(DL_DIR)/$(LIBID3TAG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(LIBID3TAG_DIR) package/multimedia/libid3tag/ libid3tag-$(LIBID3TAG_VERSION)\*.patch\*
-	$(CONFIG_UPDATE) $(LIBID3TAG_DIR)
-	touch $@
-
-$(LIBID3TAG_DIR)/.configured: $(LIBID3TAG_DIR)/.unpacked
-	(cd $(LIBID3TAG_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		$(DISABLE_NLS) \
-	)
-	touch $@
-
-$(LIBID3TAG_DIR)/.libs/$(LIBID3TAG_BIN): $(LIBID3TAG_DIR)/.configured
-	$(MAKE) -C $(LIBID3TAG_DIR)
-
-$(STAGING_DIR)/$(LIBID3TAG_TARGET_BIN): $(LIBID3TAG_DIR)/.libs/$(LIBID3TAG_BIN)
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBID3TAG_DIR) install
-	$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libid3tag.la
-
-$(TARGET_DIR)/$(LIBID3TAG_TARGET_BIN): $(STAGING_DIR)/$(LIBID3TAG_TARGET_BIN)
-	cp -dpf $(STAGING_DIR)/usr/lib/libid3tag.so* $(TARGET_DIR)/usr/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libid3tag.so*
-
-libid3tag: zlib $(TARGET_DIR)/$(LIBID3TAG_TARGET_BIN)
-
-libid3tag-source: $(DL_DIR)/$(LIBID3TAG_SOURCE)
-
-libid3tag-clean:
-	-$(MAKE) -C $(LIBID3TAG_DIR) clean
-	rm -f $(STAGING_DIR)/$(LIBID3TAG_TARGET_BIN)
-	rm -f $(TARGET_DIR)/$(LIBID3TAG_TARGET_BIN) \
-		$(TARGET_DIR)/usr/lib/libid3tag*
-
-libid3tag-dirclean:
-	rm -rf $(LIBID3TAG_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBID3TAG),y)
-TARGETS+=libid3tag
-endif
+$(eval $(call AUTOTARGETS,package/multimedia,libid3tag))

+ 10 - 67
package/multimedia/libmad/libmad.mk

@@ -7,75 +7,18 @@
 LIBMAD_VERSION=0.15.1b
 LIBMAD_SOURCE=libmad-$(LIBMAD_VERSION).tar.gz
 LIBMAD_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/mad/
-LIBMAD_DIR=$(BUILD_DIR)/libmad-$(LIBMAD_VERSION)
-LIBMAD_CAT:=$(ZCAT)
+LIBMAD_INSTALL_STAGING=YES
+LIBMAD_LIBTOOL_PATCH=NO
 
-$(DL_DIR)/$(LIBMAD_SOURCE):
-	$(call DOWNLOAD,$(LIBMAD_SITE),$(LIBMAD_SOURCE))
-
-$(LIBMAD_DIR)/.unpacked: $(DL_DIR)/$(LIBMAD_SOURCE)
-	$(LIBMAD_CAT) $(DL_DIR)/$(LIBMAD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(LIBMAD_DIR)
-	toolchain/patch-kernel.sh $(LIBMAD_DIR) package/multimedia/libmad/ libmad-$(LIBMAD_VERSION)\*.patch
-	toolchain/patch-kernel.sh $(LIBMAD_DIR) package/multimedia/libmad/ libmad-$(LIBMAD_VERSION)\*.patch.$(ARCH)
+define LIBMAD_PREVENT_AUTOMAKE
 	# Prevent automake from running.
-	(cd $(LIBMAD_DIR); touch -c config* aclocal.m4 Makefile*);
-	touch $@
-
-$(LIBMAD_DIR)/.configured: $(LIBMAD_DIR)/.unpacked
-	(cd $(LIBMAD_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		--disable-debugging \
-		--enable-speed \
-		$(DISABLE_NLS) \
-	)
-	touch $@
-
-$(LIBMAD_DIR)/libmad.la: $(LIBMAD_DIR)/.configured
-	rm -f $@
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(LIBMAD_DIR)
-
-$(STAGING_DIR)/usr/lib/libmad.so.0: $(LIBMAD_DIR)/libmad.la
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBMAD_DIR) install
-	$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libmad.la
-
-$(TARGET_DIR)/usr/lib/libmad.so.0: $(STAGING_DIR)/usr/lib/libmad.so.0
-ifeq ($(BR2_HAVE_DEVFILES),y)
-	mkdir -p $(TARGET_DIR)/usr/include
-	cp -dpf $(STAGING_DIR)/usr/include/mad.h $(TARGET_DIR)/usr/include/
-	cp -dpf $(STAGING_DIR)/usr/lib/libmad.la $(TARGET_DIR)/usr/lib/
-	cp -dpf $(STAGING_DIR)/usr/lib/libmad.so $(TARGET_DIR)/usr/lib/
-	cp -dpf $(STAGING_DIR)/usr/lib/libmad.a $(TARGET_DIR)/usr/lib/
-endif
-	cp -dpf $(STAGING_DIR)/usr/lib/libmad.so.* $(TARGET_DIR)/usr/lib/
-	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libmad.so.*
-
-libmad: $(TARGET_DIR)/usr/lib/libmad.so.0
+	(cd $(@D); touch -c config* aclocal.m4 Makefile*);
+endef
 
-libmad-source: $(DL_DIR)/$(LIBMAD_SOURCE)
-
-libmad-clean:
-	-$(MAKE) -C $(LIBMAD_DIR) clean
-	-rm -f $(STAGING_DIR)/usr/lib/libmad.*
-	rm -f $(STAGING_DIR)/usr/include/mad.h
-	-rm -f $(TARGET_DIR)/usr/lib/libmad.*
-	rm -f $(TARGET_DIR)/usr/include/mad.h
+LIBMAD_POST_PATCH_HOOKS += LIBMAD_PREVENT_AUTOMAKE
 
+LIBMAD_CONF_OPT = \
+		--disable-debugging \
+		--enable-speed
 
-libmad-dirclean:
-	rm -rf $(LIBMAD_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBMAD),y)
-TARGETS+=libmad
-endif
+$(eval $(call AUTOTARGETS,package/multimedia,libmad))

+ 5 - 59
package/multimedia/madplay/madplay.mk

@@ -6,68 +6,14 @@
 MADPLAY_VERSION:=0.15.2b
 MADPLAY_SOURCE:=madplay-$(MADPLAY_VERSION).tar.gz
 MADPLAY_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/mad
-MADPLAY_CAT:=$(ZCAT)
-MADPLAY_DIR:=$(BUILD_DIR)/madplay-$(MADPLAY_VERSION)
-MADPLAY_BIN:=madplay
-MADPLAY_TARGET_BIN:=usr/bin/$(MADPLAY_BIN)
+MADPLAY_LIBTOOL_PATCH=NO
+MADPLAY_DEPENDENCIES=libmad libid3tag
 
 # Check if ALSA is built, then we should configure after alsa-lib so
 # ./configure can find alsa-lib.
 ifeq ($(BR2_PACKAGE_MADPLAY_ALSA),y)
-MADPLAY_USE_ALSA:=--with-alsa
-MADPLAY_ALSA_DEP:=alsa-lib
+MADPLAY_CONF_OPT+=--with-alsa
+MADPLAY_DEPENDENCIES+=alsa-lib
 endif
 
-$(DL_DIR)/$(MADPLAY_SOURCE):
-	 $(call DOWNLOAD,$(MADPLAY_SITE),$(MADPLAY_SOURCE))
-
-$(MADPLAY_DIR)/.unpacked: $(DL_DIR)/$(MADPLAY_SOURCE)
-	$(MADPLAY_CAT) $(DL_DIR)/$(MADPLAY_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(MADPLAY_DIR) package/multimedia/madplay madplay\*.patch\*
-	$(CONFIG_UPDATE) $(MADPLAY_DIR)
-	touch $@
-
-$(MADPLAY_DIR)/.configured: $(MADPLAY_DIR)/.unpacked
-	(cd $(MADPLAY_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_ARGS) \
-		$(TARGET_CONFIGURE_OPTS) \
-		CFLAGS="$(TARGET_CFLAGS) $(BR2_MADPLAY_CFLAGS)" \
-		LDFLAGS="$(TARGET_LDFLAGS)" \
-		./configure $(QUIET) \
-		--target=$(REAL_GNU_TARGET_NAME) \
-		--host=$(REAL_GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		$(MADPLAY_USE_ALSA) \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $@
-
-$(MADPLAY_DIR)/$(MADPLAY_BIN): $(MADPLAY_DIR)/.configured
-	$(MAKE) -C $(MADPLAY_DIR)
-
-$(TARGET_DIR)/$(MADPLAY_TARGET_BIN): $(MADPLAY_DIR)/$(MADPLAY_BIN)
-	$(INSTALL) -D $(MADPLAY_DIR)/$(MADPLAY_BIN) $(TARGET_DIR)/$(MADPLAY_TARGET_BIN)
-	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/$(MADPLAY_TARGET_BIN)
-
-madplay: $(MADPLAY_ALSA_DEP) libmad libid3tag $(TARGET_DIR)/$(MADPLAY_TARGET_BIN)
-
-madplay-clean:
-	rm -f $(TARGET_DIR)/$(MADPLAY_TARGET_BIN)
-	-$(MAKE) -C $(MADPLAY_DIR) clean
-
-madplay-dirclean:
-	rm -rf $(MADPLAY_DIR)
-
-madplay-source: $(DL_DIR)/$(MADPLAY_SOURCE)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_MADPLAY),y)
-TARGETS+=madplay
-endif
+$(eval $(call AUTOTARGETS,package/multimedia,madplay))

+ 5 - 64
package/patch/patch.mk

@@ -3,68 +3,9 @@
 # patch
 #
 #############################################################
-GNUPATCH_VERSION:=2.5.9
-GNUPATCH_SOURCE:=patch_$(GNUPATCH_VERSION).orig.tar.gz
-GNUPATCH_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/p/patch
-GNUPATCH_CAT:=$(ZCAT)
-GNUPATCH_DIR:=$(BUILD_DIR)/patch-$(GNUPATCH_VERSION)
-GNUPATCH_BINARY:=patch
-GNUPATCH_TARGET_BINARY:=usr/bin/patch
+PATCH_VERSION:=2.6
+PATCH_SOURCE:=patch_$(PATCH_VERSION).orig.tar.gz
+PATCH_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/p/patch
+PATCH_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
 
-$(DL_DIR)/$(GNUPATCH_SOURCE):
-	 $(call DOWNLOAD,$(GNUPATCH_SITE),$(GNUPATCH_SOURCE))
-
-patch-source: $(DL_DIR)/$(GNUPATCH_SOURCE)
-
-$(GNUPATCH_DIR)/.unpacked: $(DL_DIR)/$(GNUPATCH_SOURCE)
-	$(GNUPATCH_CAT) $(DL_DIR)/$(GNUPATCH_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(GNUPATCH_DIR)
-	touch $(GNUPATCH_DIR)/.unpacked
-
-$(GNUPATCH_DIR)/.configured: $(GNUPATCH_DIR)/.unpacked
-	(cd $(GNUPATCH_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $(GNUPATCH_DIR)/.configured
-
-$(GNUPATCH_DIR)/$(GNUPATCH_BINARY): $(GNUPATCH_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(GNUPATCH_DIR)
-
-$(TARGET_DIR)/$(GNUPATCH_TARGET_BINARY): $(GNUPATCH_DIR)/$(GNUPATCH_BINARY)
-	rm -f $(TARGET_DIR)/$(GNUPATCH_TARGET_BINARY)
-	cp -a $(GNUPATCH_DIR)/$(GNUPATCH_BINARY) $(TARGET_DIR)/$(GNUPATCH_TARGET_BINARY)
-
-patch: $(TARGET_DIR)/$(GNUPATCH_TARGET_BINARY)
-
-patch-clean:
-	rm -f $(TARGET_DIR)/$(GNUPATCH_TARGET_BINARY)
-
-patch-dirclean:
-	rm -rf $(GNUPATCH_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_PATCH),y)
-TARGETS+=patch
-endif
+$(eval $(call AUTOTARGETS,package,patch))

+ 7 - 66
package/setserial/setserial.mk

@@ -8,73 +8,14 @@ SETSERIAL_PATCH_VERSION:=.orig
 SETSERIAL_PATCH_FILE:=setserial_2.17-45.diff.gz
 SETSERIAL_SOURCE:=setserial_$(SETSERIAL_VERSION)$(SETSERIAL_PATCH_VERSION).tar.gz
 SETSERIAL_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/s/setserial/
-SETSERIAL_DIR:=$(BUILD_DIR)/setserial-$(SETSERIAL_VERSION)
-SETSERIAL_BINARY:=setserial
-SETSERIAL_TARGET_BINARY:=usr/bin/setserial
+SETSERIAL_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
 
-$(DL_DIR)/$(SETSERIAL_SOURCE):
-	$(call DOWNLOAD,$(SETSERIAL_SITE),$(SETSERIAL_SOURCE))
-
-ifneq ($(SETSERIAL_PATCH_FILE),)
-SETSERIAL_PATCH:=$(DL_DIR)/$(SETSERIAL_PATCH_FILE)
-$(SETSERIAL_PATCH):
-	$(call DOWNLOAD,$(SETSERIAL_SITE),$(SETSERIAL_PATCH_FILE))
-else
-SETSERIAL_PATCH:=
-endif
-
-$(SETSERIAL_DIR)/.unpacked: $(DL_DIR)/$(SETSERIAL_SOURCE) $(SETSERIAL_PATCH)
-	$(ZCAT) $(DL_DIR)/$(SETSERIAL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(SETSERIAL_DIR)
-	toolchain/patch-kernel.sh $(SETSERIAL_DIR) package/setserial setserial\*.patch
-ifneq ($(SETSERIAL_PATCH_FILE),)
-	toolchain/patch-kernel.sh $(SETSERIAL_DIR) $(DL_DIR) $(SETSERIAL_PATCH_FILE)
-	if [ -d $(SETSERIAL_DIR)/debian/patches ]; then \
-		toolchain/patch-kernel.sh $(SETSERIAL_DIR) $(SETSERIAL_DIR)/debian/patches \*.patch; \
+define SETSERIAL_APPLY_DEBIAN_PATCHES
+	if [ -d $(@D)/debian/patches ]; then \
+		toolchain/patch-kernel.sh $(@D) $(@D)/debian/patches \*.patch; \
 	fi
-endif
-	touch $(SETSERIAL_DIR)/gorhack.h
-	touch $@
-
-$(SETSERIAL_DIR)/.configured: $(SETSERIAL_DIR)/.unpacked
-	(cd $(SETSERIAL_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		CFLAGS="$(TARGET_CFLAGS) $(SETSERIAL_CFLAGS)" \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-	)
-	touch $@
-
-$(SETSERIAL_DIR)/$(SETSERIAL_BINARY): $(SETSERIAL_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(SETSERIAL_DIR)
-
-$(TARGET_DIR)/$(SETSERIAL_TARGET_BINARY): $(SETSERIAL_DIR)/$(SETSERIAL_BINARY)
-	install -c $(SETSERIAL_DIR)/$(SETSERIAL_BINARY) $(TARGET_DIR)/$(SETSERIAL_TARGET_BINARY)
-	$(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/$(SETSERIAL_TARGET_BINARY)
-
-setserial: $(TARGET_DIR)/$(SETSERIAL_TARGET_BINARY)
-
-setserial-source: $(DL_DIR)/$(SETSERIAL_SOURCE) $(SETSERIAL_PATCH)
+endef
 
-setserial-unpacked: $(SETSERIAL_DIR)/.unpacked
+SETSERIAL_POST_PATCH_HOOKS += SETSERIAL_APPLY_DEBIAN_PATCHES
 
-setserial-clean:
-	rm -f $(TARGET_DIR)/$(SETSERIAL_TARGET_BINARY)
-	-$(MAKE) -C $(SETSERIAL_DIR) clean
-
-setserial-dirclean:
-	rm -rf $(SETSERIAL_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_SETSERIAL),y)
-TARGETS+=setserial
-endif
+$(eval $(call AUTOTARGETS,package,setserial))

+ 1 - 68
package/smartmontools/smartmontools.mk

@@ -7,72 +7,5 @@ SMARTMONTOOLS_VERSION:=5.33
 SMARTMONTOOLS_SOURCE:=smartmontools-$(SMARTMONTOOLS_VERSION).tar.gz
 SMARTMONTOOLS_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/smartmontools
 SMARTMONTOOLS_DIR:=$(BUILD_DIR)/smartmontools-$(SMARTMONTOOLS_VERSION)
-SMARTMONTOOLS_CAT:=$(ZCAT)
-SMARTMONTOOLS_BINARY:=smartctl
-SMARTMONTOOLS_BINARY2:=smartd
-SMARTMONTOOLS_TARGET_BINARY:=usr/sbin/smartctl
-SMARTMONTOOLS_TARGET_BINARY2:=usr/sbin/smartd
 
-$(DL_DIR)/$(SMARTMONTOOLS_SOURCE):
-	 $(call DOWNLOAD,$(SMARTMONTOOLS_SITE),$(SMARTMONTOOLS_SOURCE))
-
-smartmontools-source: $(DL_DIR)/$(SMARTMONTOOLS_SOURCE)
-
-$(SMARTMONTOOLS_DIR)/.unpacked: $(DL_DIR)/$(SMARTMONTOOLS_SOURCE)
-	$(SMARTMONTOOLS_CAT) $(DL_DIR)/$(SMARTMONTOOLS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(SMARTMONTOOLS_DIR) package/smartmontools/ \*.patch
-	touch $(SMARTMONTOOLS_DIR)/.unpacked
-
-$(SMARTMONTOOLS_DIR)/.configured: $(SMARTMONTOOLS_DIR)/.unpacked
-	(cd $(SMARTMONTOOLS_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $(SMARTMONTOOLS_DIR)/.configured
-
-$(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY): $(SMARTMONTOOLS_DIR)/.configured
-	$(MAKE) -C $(SMARTMONTOOLS_DIR)
-	$(STRIPCMD) $(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY)
-	$(STRIPCMD) $(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY2)
-	touch -c $(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY)
-
-$(TARGET_DIR)/$(SMARTMONTOOLS_TARGET_BINARY): $(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY)
-	cp $(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY) $(TARGET_DIR)/usr/sbin/
-
-$(TARGET_DIR)/$(SMARTMONTOOLS_TARGET_BINARY2): $(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY)
-	cp $(SMARTMONTOOLS_DIR)/$(SMARTMONTOOLS_BINARY2) $(TARGET_DIR)/usr/sbin/
-
-smartmontools: $(TARGET_DIR)/$(SMARTMONTOOLS_TARGET_BINARY)
-
-smartmontools-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(SMARTMONTOOLS_DIR) uninstall
-	-$(MAKE) -C $(SMARTMONTOOLS_DIR) clean
-
-smartmontools-dirclean:
-	rm -rf $(SMARTMONTOOLS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_SMARTMONTOOLS),y)
-TARGETS+=smartmontools
-endif
+$(eval $(call AUTOTARGETS,package,smartmontools))

+ 4 - 78
package/tar/tar.mk

@@ -3,82 +3,8 @@
 # tar
 #
 #############################################################
-GNUTAR_VERSION:=1.21
-GNUTAR_SOURCE:=tar-$(GNUTAR_VERSION).tar.bz2
-GNUTAR_SITE:=$(BR2_GNU_MIRROR)/tar/
-GNUTAR_DIR:=$(BUILD_DIR)/tar-$(GNUTAR_VERSION)
-GNUTAR_CAT:=$(BZCAT)
-GNUTAR_BINARY:=src/tar
-GNUTAR_TARGET_BINARY:=bin/tar
+TAR_VERSION:=1.21
+TAR_SOURCE:=tar-$(TAR_VERSION).tar.bz2
+TAR_SITE:=$(BR2_GNU_MIRROR)/tar/
 
-$(DL_DIR)/$(GNUTAR_SOURCE):
-	 $(call DOWNLOAD,$(GNUTAR_SITE),$(GNUTAR_SOURCE))
-
-tar-source: $(DL_DIR)/$(GNUTAR_SOURCE)
-
-$(GNUTAR_DIR)/.unpacked: $(DL_DIR)/$(GNUTAR_SOURCE)
-	$(GNUTAR_CAT) $(DL_DIR)/$(GNUTAR_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(GNUTAR_DIR) package/tar/ tar\*.patch
-	$(CONFIG_UPDATE) $(GNUTAR_DIR)
-	$(CONFIG_UPDATE) $(GNUTAR_DIR)/build-aux
-	touch $@
-
-$(GNUTAR_DIR)/.configured: $(GNUTAR_DIR)/.unpacked
-	(cd $(GNUTAR_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		ac_cv_func_chown_works=yes \
-		gl_cv_func_chown_follows_symlink=yes \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $@
-
-$(GNUTAR_DIR)/$(GNUTAR_BINARY): $(GNUTAR_DIR)/.configured
-	$(MAKE) -C $(GNUTAR_DIR)
-
-# This stuff is needed to work around GNU make deficiencies
-tar-target_binary: $(GNUTAR_DIR)/$(GNUTAR_BINARY)
-	@if [ -L $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY) ]; then \
-		rm -f $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY); \
-	fi
-	@if [ ! -f $(GNUTAR_DIR)/$(GNUTAR_BINARY) -o $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY) \
-	-ot $(GNUTAR_DIR)/$(GNUTAR_BINARY) ]; then \
-		set -x; \
-		rm -f $(TARGET_DIR)/$(GNUTAR_TARGET_BINARY); \
-		cp -a $(GNUTAR_DIR)/$(GNUTAR_BINARY) \
-			$(TARGET_DIR)/$(GNUTAR_TARGET_BINARY); \
-	fi
-
-tar: tar-target_binary
-
-tar-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(GNUTAR_DIR) uninstall
-	-$(MAKE) -C $(GNUTAR_DIR) clean
-
-tar-dirclean:
-	rm -rf $(GNUTAR_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_TAR),y)
-TARGETS+=tar
-endif
+$(eval $(call AUTOTARGETS,package,tar))

+ 14 - 79
package/udpcast/udpcast.mk

@@ -6,90 +6,25 @@
 UDPCAST_VERSION:=20071228
 UDPCAST_SOURCE:=udpcast-$(UDPCAST_VERSION).tar.gz
 UDPCAST_SITE:=http://www.udpcast.linux.lu/download
-UDPCAST_CAT:=$(ZCAT)
-UDPCAST_DIR:=$(BUILD_DIR)/udpcast-$(UDPCAST_VERSION)
+UDPCAST_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
+UDPCAST_CONF_ENV = $(if $(BR_LARGEFILE),ac_cv_type_stat64=yes,ac_cv_type_stat64=no)
 
-BR2_UDPCAST_CFLAGS:=
-
-$(DL_DIR)/$(UDPCAST_SOURCE):
-	 $(call DOWNLOAD,$(UDPCAST_SITE),$(UDPCAST_SOURCE))
-
-udpcast-source: $(DL_DIR)/$(UDPCAST_SOURCE)
-
-$(UDPCAST_DIR)/.unpacked: $(DL_DIR)/$(UDPCAST_SOURCE)
-	$(UDPCAST_CAT) $(DL_DIR)/$(UDPCAST_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(UDPCAST_DIR) package/udpcast udpcast\*.patch
-	$(CONFIG_UPDATE) $(UDPCAST_DIR)
-	touch $(UDPCAST_DIR)/.unpacked
-
-$(UDPCAST_DIR)/.configured: $(UDPCAST_DIR)/.unpacked
-	(cd $(UDPCAST_DIR); rm -rf config.cache; \
-		$(if $(BR_LARGEFILE),ac_cv_type_stat64=yes,ac_cv_type_stat64=no) \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		CFLAGS="$(TARGET_CFLAGS) $(BR2_UDPCAST_CFLAGS)" \
-		./configure $(QUIET) \
-		--target=$(REAL_GNU_TARGET_NAME) \
-		--host=$(REAL_GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		$(DISABLE_NLS) \
-	)
-	touch $(UDPCAST_DIR)/.configured
-
-UDPCAST_BINARIES:=udp-sender udp-receiver
-
-UDPCAST_BUILD_TARGETS:=$(addprefix $(UDPCAST_DIR)/,$(UDPCAST_BINARIES))
-
-$(UDPCAST_BUILD_TARGETS): $(UDPCAST_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(UDPCAST_DIR)
-
-UDPCAST_PROGS:=$(addprefix $(TARGET_DIR)/usr/sbin/,$(UDPCAST_BINARIES))
-
-UDPCAST_INSTALL_MANPAGES=$(addprefix $(TARGET_DIR)/usr/man/, $(addsuffix .1,$(UDPCAST_BINARIES)))
-
-UDPCAST_INSTALL_FILES:=$(UDPCAST_PROGS) $(UDPCAST_INSTALL_MANPAGES)
-
-$(UDPCAST_PROGS): $(UDPCAST_BUILD_TARGETS)
-	$(MAKE) -C $(UDPCAST_DIR) DESTDIR=$(TARGET_DIR) install
-	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(REMOVE_SECTION_COMMENT) \
-	  $(REMOVE_SECTION_NOTE) \
-	  $(UDPCAST_PROGS)
-ifneq ($(BR2_PACKAGE_UDPCAST_SENDER),y)
+define UDPCAST_REMOVE_UDP_SENDER
 	rm -f $(TARGET_DIR)/usr/sbin/udp-sender
 	rm -f $(TARGET_DIR)/usr/sbin/udp-sender.1
+endef
+
+ifneq ($(BR2_PACKAGE_UDPCAST_SENDER),y)
+UDPCAST_HOOK_POST_INSTALL_TARGET_HOOKS += UDPCAST_REMOVE_UDP_SENDER
 endif
-ifneq ($(BR2_PACKAGE_UDPCAST_RECEIVER),y)
+
+define UDPCAST_REMOVE_UDP_RECEIVER
 	rm -f $(TARGET_DIR)/usr/sbin/udp-receiver
 	rm -f $(TARGET_DIR)/usr/sbin/udp-receiver.1
-endif
-
-udpcast: $(UDPCAST_PROGS)
-
-udpcast-clean:
-	rm -f $(UDPCAST_INSTALL_FILES)
-	$(MAKE) -C $(UDPCAST_DIR) clean
-	rm -f $(UDPCAST_DIR)/.configured
-
-udpcast-dirclean:
-	rm -rf $(UDPCAST_DIR)
-
+endef
 
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_UDPCAST),y)
-TARGETS+=udpcast
+ifneq ($(BR2_PACKAGE_UDPCAST_RECEIVER),y)
+UDPCAST_HOOK_POST_INSTALL_TARGET_HOOKS += UDPCAST_REMOVE_UDP_RECEIVER
 endif
+
+$(eval $(call AUTOTARGETS,package,udpcast))

+ 5 - 71
package/vtun/vtun.mk

@@ -6,81 +6,15 @@
 # to enable that within busybox
 #
 #############################################################
-#Old version 2.6
 VTUN_VERSION:=3.0.2
 VTUN_SOURCE:=vtun-$(VTUN_VERSION).tar.gz
 VTUN_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/vtun/
-VTUN_DIR:=$(BUILD_DIR)/vtun-$(VTUN_VERSION)
-VTUN_CAT:=$(ZCAT)
-VTUN_BINARY:=vtund
-VTUN_TARGET_BINARY:=usr/sbin/vtund
+VTUN_INSTALL_TARGET_OPT=DESTDIR=$(TARGET_DIR) install
+VTUN_DEPENDENCIES = zlib lzo openssl
 
-$(DL_DIR)/$(VTUN_SOURCE):
-	 $(call DOWNLOAD,$(VTUN_SITE),$(VTUN_SOURCE))
-
-vtun-source: $(DL_DIR)/$(VTUN_SOURCE)
-
-$(VTUN_DIR)/.unpacked: $(DL_DIR)/$(VTUN_SOURCE)
-	$(VTUN_CAT) $(DL_DIR)/$(VTUN_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	touch $@
-
-$(VTUN_DIR)/.patched: $(VTUN_DIR)/.unpacked
-	toolchain/patch-kernel.sh $(VTUN_DIR) package/vtun/ vtun-$(VTUN_VERSION)\*.patch
-	touch $@
-
-
-
-$(VTUN_DIR)/.configured: $(VTUN_DIR)/.patched
-	(cd $(VTUN_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--exec-prefix=/usr \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
+VTUN_CONF_OPT = \
 		--with-ssl-headers=$(STAGING_DIR)/usr/include/openssl \
 		--with-lzo-headers=$(STAGING_DIR)/usr/include/lzo \
-		--with-lzo-lib=$(STAGING_DIR)/usr/lib \
-	)
-	touch $(VTUN_DIR)/.configured
-
-$(VTUN_DIR)/$(VTUN_BINARY): $(VTUN_DIR)/.configured
-	$(MAKE) -C $(VTUN_DIR)
-
-$(TARGET_DIR)/$(VTUN_TARGET_BINARY): $(VTUN_DIR)/$(VTUN_BINARY)
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(VTUN_DIR) install
-	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
-
-vtun: zlib lzo openssl $(TARGET_DIR)/$(VTUN_TARGET_BINARY)
+		--with-lzo-lib=$(STAGING_DIR)/usr/lib
 
-vtun-unpacked: $(VTUN_DIR)/.unpacked
-
-vtun-patched: $(VTUN_DIR)/.patched
-
-vtun-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(VTUN_DIR) uninstall
-	-$(MAKE) -C $(VTUN_DIR) clean
-
-vtun-dirclean:
-	rm -rf $(VTUN_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_VTUN),y)
-TARGETS+=vtun
-endif
+$(eval $(call AUTOTARGETS,package,vtun))

+ 2 - 5
package/x11vnc/x11vnc.mk

@@ -8,12 +8,9 @@ X11VNC_SOURCE = x11vnc-$(X11VNC_VERSION).tar.gz
 X11VNC_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/libvncserver
 X11VNC_INSTALL_STAGING = NO
 X11VNC_INSTALL_TARGET = YES
-#X11VNCINSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
 
-X11VNC_CONF_OPT = --target=$(GNU_TARGET_NAME) --host=$(GNU_TARGET_NAME) \
-        --build=$(GNU_HOST_NAME) --prefix=/usr \
-        --includedir=/usr/include \
-		--without-avahi
+X11VNC_CONF_OPT = \
+	--without-avahi
 
 X11VNC_DEPENDENCIES = xserver_xorg-server