Răsfoiți Sursa

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

Peter Korsgaard 15 ani în urmă
părinte
comite
a2a22b82fa

+ 1 - 1
package/Config.in

@@ -134,12 +134,12 @@ source "package/leafpad/Config.in"
 source "package/midori/Config.in"
 source "package/pcmanfm/Config.in"
 source "package/rdesktop/Config.in"
-source "package/rxvt/Config.in"
 source "package/sylpheed/Config.in"
 source "package/synergy/Config.in"
 source "package/torsmo/Config.in"
 source "package/x11vnc/Config.in"
 source "package/xstroke/Config.in"
+source "package/xterm/Config.in"
 source "package/xvkbd/Config.in"
 endmenu
 

+ 25 - 57
package/berkeleydb/berkeleydb.mk

@@ -3,25 +3,17 @@
 # berkeley db
 #
 #############################################################
-DB_VERSION:=4.3.29
-DB_SO_VERSION:=4.3
-DB_SITE:=ftp://ftp.sleepycat.com/releases
-DB_SOURCE:=db-$(DB_VERSION).NC.tar.gz
-DB_DIR:=$(BUILD_DIR)/db-$(DB_VERSION).NC
-DB_SHARLIB:=libdb-$(DB_SO_VERSION).so
-
-$(DL_DIR)/$(DB_SOURCE):
-	$(call DOWNLOAD,$(DB_SITE),$(DB_SOURCE))
-
-berkeleydb-source: $(DL_DIR)/$(DB_SOURCE)
-
-$(DB_DIR)/.dist: $(DL_DIR)/$(DB_SOURCE)
-	$(ZCAT) $(DL_DIR)/$(DB_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	touch $@
-
-$(DB_DIR)/.configured: $(DB_DIR)/.dist
-	$(CONFIG_UPDATE) $(DB_DIR)/dist
-	(cd $(DB_DIR)/build_unix; rm -rf config.cache; \
+BERKELEYDB_VERSION:=4.4.20
+BERKELEYDB_SO_VERSION:=4.4
+BERKELEYDB_SITE:=ftp://ftp.sleepycat.com/releases
+BERKELEYDB_SOURCE:=db-$(BERKELEYDB_VERSION).NC.tar.gz
+BERKELEYDB_SHARLIB:=libdb-$(BERKELEYDB_SO_VERSION).so
+BERKELEYDB_SUBDIR=build_unix
+BERKELEYDB_INSTALL_STAGING = YES
+
+#build directory can't be the directory where configure are there, so..
+define BERKELEYDB_CONFIGURE_CMDS
+	(cd $(@D)/build_unix; rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
 		$(TARGET_CONFIGURE_ARGS) \
 		../dist/configure $(QUIET) \
@@ -48,48 +40,24 @@ $(DB_DIR)/.configured: $(DB_DIR)/.dist
 		--disable-tcl \
 		--disable-compat185 \
 		--with-pic \
-		$(DISABLE_LARGEFILE) \
 	)
-	$(SED) 's/\.lo/.o/g' $(DB_DIR)/build_unix/Makefile
-	touch $@
-
-$(DB_DIR)/build_unix/.libs/$(DB_SHARLIB): $(DB_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(DB_DIR)/build_unix
-
-$(STAGING_DIR)/lib/$(DB_SHARLIB): $(DB_DIR)/build_unix/.libs/$(DB_SHARLIB)
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(DB_DIR)/build_unix install
-	chmod a-x $(STAGING_DIR)/lib/libdb*so*
-	rm -f $(STAGING_DIR)/bin/db_*
-	rm -rf $(STAGING_DIR)/share/locale
+	$(SED) 's/\.lo/.o/g' $(@D)/build_unix/Makefile
+endef
 
-$(TARGET_DIR)/lib/$(DB_SHARLIB): $(STAGING_DIR)/lib/$(DB_SHARLIB)
-	rm -rf $(TARGET_DIR)/lib/libdb*
-	cp -a $(STAGING_DIR)/lib/libdb*so* $(TARGET_DIR)/lib/
-	rm -f $(addprefix $(TARGET_DIR)/lib/,libdb.so libdb.la libdb.a)
-	(cd $(TARGET_DIR)/usr/lib; ln -fs /lib/$(DB_SHARLIB) libdb.so)
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/lib/libdb*so*
-
-$(TARGET_DIR)/usr/lib/libdb.a: $(STAGING_DIR)/lib/libdb-$(DB_SO_VERSION).a
+ifeq ($(BR2_HAVE_DEVFILES),y)
+define BERKELEYDB_INSTALL_TARGET_DEVFILES_CMDS
 	cp -dpf $(STAGING_DIR)/usr/include/db.h $(TARGET_DIR)/usr/include/
 	cp -dpf $(STAGING_DIR)/lib/libdb*.a $(TARGET_DIR)/usr/lib/
 	cp -dpf $(STAGING_DIR)/lib/libdb*.la $(TARGET_DIR)/usr/lib/
-	touch -c $@
-
-berkeleydb-headers: $(TARGET_DIR)/usr/lib/libdb.a
-
-berkeleydb-clean:
-	-$(MAKE) -C $(DB_DIR)/build_unix clean
-
-berkeleydb-dirclean:
-	rm -rf $(DB_DIR)
+endef
+endif
 
-berkeleydb: $(TARGET_DIR)/lib/$(DB_SHARLIB)
+define BERKELEYDB_INSTALL_TARGET_CMDS
+	rm -rf $(TARGET_DIR)/lib/libdb*
+	cp -a $(STAGING_DIR)/lib/libdb*so* $(TARGET_DIR)/lib/
+	rm -f $(addprefix $(TARGET_DIR)/lib/,libdb.so libdb.la libdb.a)
+	(cd $(TARGET_DIR)/usr/lib; ln -fs /lib/$(BERKELEYDB_SHARLIB) libdb.so)
+	$(BERKELEYDB_INSTALL_TARGET_DEVFILES_CMDS)
+endef
 
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_BERKELEYDB),y)
-TARGETS+=berkeleydb
-endif
+$(eval $(call AUTOTARGETS,package,berkeleydb))

+ 10 - 63
package/dash/dash.mk

@@ -3,71 +3,18 @@
 # dash
 #
 #############################################################
-DASH_VERSION:=0.5.3
+DASH_VERSION:=0.5.5.1
 DASH_SOURCE:=dash_$(DASH_VERSION).orig.tar.gz
 DASH_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/d/dash
-DASH_CAT:=$(ZCAT)
-DASH_DIR:=$(BUILD_DIR)/dash-$(DASH_VERSION)
-DASH_PATCH1:=dash_$(DASH_VERSION)-7.diff.gz
-DASH_BINARY:=src/dash
-DASH_TARGET_BINARY:=bin/dash
+DASH_PATCH:=dash_$(DASH_VERSION)-6.diff.gz
 
-$(DL_DIR)/$(DASH_SOURCE):
-	$(call DOWNLOAD,$(DASH_SITE),$(DASH_SOURCE))
+define DASH_INSTALL_TARGET_CMDS
+	cp -a $(@D)/src/dash $(TARGET_DIR)/bin/dash
+endef
 
-$(DL_DIR)/$(DASH_PATCH1):
-	$(call DOWNLOAD,$(DASH_SITE),$(DASH_PATCH1))
+define DASH_CLEAN_CMDS
+	$(MAKE) -C $(@D) clean
+	rm -f $(TARGET_DIR)/bin/dash
+endef
 
-dash-source: $(DL_DIR)/$(DASH_SOURCE) $(DL_DIR)/$(DASH_PATCH1)
-
-$(DASH_DIR)/.unpacked: $(DL_DIR)/$(DASH_SOURCE) $(DL_DIR)/$(DASH_PATCH1)
-	$(DASH_CAT) $(DL_DIR)/$(DASH_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(ZCAT) $(DL_DIR)/$(DASH_PATCH1) | patch -p1 -d $(DASH_DIR)
-	touch $(DASH_DIR)/.unpacked
-
-$(DASH_DIR)/.configured: $(DASH_DIR)/.unpacked
-	(cd $(DASH_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 \
-	)
-	touch $(DASH_DIR)/.configured
-
-$(DASH_DIR)/$(DASH_BINARY): $(DASH_DIR)/.configured
-	$(MAKE1) CC=$(TARGET_CC) CC_FOR_BUILD="$(HOSTCC)" -C $(DASH_DIR)
-	touch -c $(DASH_DIR)/$(DASH_BINARY)
-
-$(TARGET_DIR)/$(DASH_TARGET_BINARY): $(DASH_DIR)/$(DASH_BINARY)
-	cp -a $(DASH_DIR)/$(DASH_BINARY) $(TARGET_DIR)/$(DASH_TARGET_BINARY)
-	touch -c $(TARGET_DIR)/$(DASH_TARGET_BINARY)
-
-dash: $(TARGET_DIR)/$(DASH_TARGET_BINARY)
-
-dash-clean:
-	$(MAKE1) CC=$(TARGET_CC) -C $(DASH_DIR) clean
-	rm -f $(TARGET_DIR)/$(DASH_TARGET_BINARY)
-
-dash-dirclean:
-	rm -rf $(DASH_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_DASH),y)
-TARGETS+=dash
-endif
+$(eval $(call AUTOTARGETS,package,dash))

+ 10 - 50
package/dialog/dialog.mk

@@ -3,59 +3,19 @@
 # dialog
 #
 #############################################################
-DIALOG_VERSION:=1.1-20070704
+DIALOG_VERSION:=1.1-20100428
 DIALOG_SOURCE:=dialog-$(DIALOG_VERSION).tgz
 DIALOG_SITE:=ftp://invisible-island.net/dialog
-DIALOG_DIR:=$(BUILD_DIR)/dialog-$(DIALOG_VERSION)
-DIALOG_BINARY:=dialog
-DIALOG_TARGET_BINARY:=usr/bin/dialog
 
-$(DL_DIR)/$(DIALOG_SOURCE):
-	$(call DOWNLOAD,$(DIALOG_SITE),$(DIALOG_SOURCE))
+DIALOG_DEPENDENCIES = ncurses
 
-$(DIALOG_DIR)/.source: $(DL_DIR)/$(DIALOG_SOURCE)
-	$(ZCAT) $(DL_DIR)/$(DIALOG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(DIALOG_DIR)
-	touch $@
+define DIALOG_INSTALL_TARGET_CMDS
+	install -c $(@D)/dialog $(TARGET_DIR)/usr/bin/dialog
+endef
 
-$(DIALOG_DIR)/.configured: $(DIALOG_DIR)/.source
-	(cd $(DIALOG_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 \
-		--sysconfdir=/etc; \
-	)
-	touch $@
+define DIALOG_POST_CLEAN
+	-$(MAKE) -C $(@D) clean
+	rm -f $(TARGET_DIR)/usr/bin/dialog
+endef
 
-$(DIALOG_DIR)/$(DIALOG_BINARY): $(DIALOG_DIR)/.configured
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(DIALOG_DIR)
-	touch -c $@
-
-$(TARGET_DIR)/$(DIALOG_TARGET_BINARY): $(DIALOG_DIR)/$(DIALOG_BINARY)
-	$(MAKE) prefix=$(TARGET_DIR)/usr \
-		mandir=$(TARGET_DIR)/usr/share/man \
-		-C $(DIALOG_DIR) install
-
-dialog: ncurses $(TARGET_DIR)/$(DIALOG_TARGET_BINARY)
-
-dialog-source: $(DL_DIR)/$(DIALOG_SOURCE)
-
-dialog-clean:
-	$(MAKE) prefix=$(TARGET_DIR)/usr -C $(DIALOG_DIR) uninstall
-	-$(MAKE) -C $(DIALOG_DIR) clean
-
-dialog-dirclean:
-	rm -rf $(DIALOG_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_DIALOG),y)
-TARGETS+=dialog
-endif
+$(eval $(call AUTOTARGETS,package,dialog))

+ 4 - 59
package/diffutils/diffutils.mk

@@ -6,26 +6,10 @@
 DIFFUTILS_VERSION=2.8.1
 DIFFUTILS_SOURCE:=diffutils-$(DIFFUTILS_VERSION).tar.gz
 DIFFUTILS_SITE:=$(BR2_GNU_MIRROR)/diffutils
-DIFFUTILS_CAT:=$(ZCAT)
-DIFFUTILS_DIR:=$(BUILD_DIR)/diffutils-$(DIFFUTILS_VERSION)
-DIFFUTILS_BINARY:=src/diff
-DIFFUTILS_TARGET_BINARY:=usr/bin/diff
 
-$(DL_DIR)/$(DIFFUTILS_SOURCE):
-	 $(call DOWNLOAD,$(DIFFUTILS_SITE),$(DIFFUTILS_SOURCE))
+DIFFUTILS_INSTALL_STAGING = YES
 
-diffutils-source: $(DL_DIR)/$(DIFFUTILS_SOURCE)
-
-$(DIFFUTILS_DIR)/.unpacked: $(DL_DIR)/$(DIFFUTILS_SOURCE)
-	$(DIFFUTILS_CAT) $(DL_DIR)/$(DIFFUTILS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(DIFFUTILS_DIR)/config
-	touch $@
-
-$(DIFFUTILS_DIR)/.configured: $(DIFFUTILS_DIR)/.unpacked
-	(cd $(DIFFUTILS_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		ac_cv_func_strtod=yes \
+DIFFUTILS_CONF_ENV = ac_cv_func_strtod=yes
 		ac_fsusage_space=yes \
 		fu_cv_sys_stat_statfs2_bsize=yes \
 		ac_cv_func_closedir_void=no \
@@ -71,45 +55,6 @@ $(DIFFUTILS_DIR)/.configured: $(DIFFUTILS_DIR)/.unpacked
 		gl_cv_func_mkstemp_limitations=no \
 		ac_cv_func_working_mktime=yes \
 		jm_cv_func_working_re_compile_pattern=yes \
-		ac_use_included_regex=no \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--mandir=/usr/share/man \
-		--infodir=/usr/share/info \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $@
-
-$(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY): $(DIFFUTILS_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR)
-
-$(TARGET_DIR)/$(DIFFUTILS_TARGET_BINARY): $(DIFFUTILS_DIR)/$(DIFFUTILS_BINARY)
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR) \
-		$(if $(BR2_STRIP_none),install,install-strip)
-ifneq ($(BR2_ENABLE_LOCALE),y)
-	rm -rf $(TARGET_DIR)/usr/share/locale
-endif
-
-diffutils: $(TARGET_DIR)/$(DIFFUTILS_TARGET_BINARY)
-
-diff-utils-unpacked: $(DIFFUTILS_DIR)/.unpacked
+		ac_use_included_regex=no
 
-diffutils-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIFFUTILS_DIR) uninstall
-	-$(MAKE) -C $(DIFFUTILS_DIR) clean
-
-diffutils-dirclean:
-	rm -rf $(DIFFUTILS_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_DIFFUTILS),y)
-TARGETS+=diffutils
-endif
+$(eval $(call AUTOTARGETS,package,diffutils))

+ 11 - 59
package/distcc/distcc.mk

@@ -5,67 +5,19 @@
 #############################################################
 DISTCC_VERSION:=2.18.3
 DISTCC_SOURCE:=distcc-$(DISTCC_VERSION).tar.bz2
-DISTCC_CAT:=$(BZCAT)
 DISTCC_SITE:=http://distcc.samba.org/ftp/distcc/
-DISTCC_BUILDDIR:=$(BUILD_DIR)/distcc-$(DISTCC_VERSION)
-DISTCC_BINARY:=distcc
-DISTCC_TARGET_BINARY:=usr/bin/distcc
 
-$(DL_DIR)/$(DISTCC_SOURCE):
-	$(call DOWNLOAD,$(DISTCC_SITE),$(DISTCC_SOURCE))
+DISTCC_CONF_OPT = --with-included-popt --without-gtk --without-gnome
 
-distcc-source: $(DL_DIR)/$(CVS_SOURCE)
+define DISTCC_INSTALL_TARGET_CMDS
+	install -D $(@D)/distccd $(TARGET_DIR)/usr/bin/distccd
+	install -D $(@D)/distcc $(TARGET_DIR)/usr/bin/distcc
+endef
 
-$(DISTCC_BUILDDIR)/.unpacked: $(DL_DIR)/$(DISTCC_SOURCE)
-	$(DISTCC_CAT) $(DL_DIR)/$(DISTCC_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(DISTCC_BUILDDIR)
-	touch $(DISTCC_BUILDDIR)/.unpacked
+define DISTCC_CLEAN_CMDS
+	rm -f $(TARGET_DIR)/usr/bin/distcc
+	rm -f $(TARGET_DIR)/usr/bin/distccd
+	-$(MAKE) -C $(@D) clean
+endef
 
-$(DISTCC_BUILDDIR)/.configured: $(DISTCC_BUILDDIR)/.unpacked
-	(cd $(DISTCC_BUILDDIR); 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 \
-		--bindir=/usr/bin \
-		--sbindir=/usr/sbin \
-		--libdir=/lib \
-		--libexecdir=/usr/lib \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		--with-included-popt \
-		--without-gtk \
-		--without-gnome \
-	)
-	touch $(DISTCC_BUILDDIR)/.configured
-
-$(DISTCC_BUILDDIR)/$(DISTCC_BINARY): $(DISTCC_BUILDDIR)/.configured
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(DISTCC_BUILDDIR)
-
-$(TARGET_DIR)/$(DISTCC_TARGET_BINARY): $(DISTCC_BUILDDIR)/$(DISTCC_BINARY)
-	install -D $(DISTCC_BUILDDIR)/$(DISTCC_BINARY)d $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)d
-	install -D $(DISTCC_BUILDDIR)/$(DISTCC_BINARY) $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)
-
-distcc: $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)
-
-distcc-clean:
-	rm -f $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)
-	rm -f $(TARGET_DIR)/$(DISTCC_TARGET_BINARY)d
-	-$(MAKE) -C $(DISTCC_BUILDDIR) clean
-
-distcc-dirclean:
-	rm -rf $(DISTCC_BUILDDIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_DISTCC),y)
-TARGETS+=distcc
-endif
+$(eval $(call AUTOTARGETS,package,distcc))

+ 25 - 72
package/dmalloc/dmalloc.mk

@@ -6,100 +6,53 @@
 DMALLOC_VERSION:=5.4.3
 DMALLOC_SOURCE:=dmalloc-$(DMALLOC_VERSION).tgz
 DMALLOC_SITE:=http://dmalloc.com/releases
-DMALLOC_DIR:=$(BUILD_DIR)/dmalloc-$(DMALLOC_VERSION)
-DMALLOC_CAT:=$(ZCAT)
-DMALLOC_BINARY:=dmalloc
-DMALLOC_TARGET_BINARY:=usr/bin/dmalloc
 
-$(DL_DIR)/$(DMALLOC_SOURCE):
-	 $(call DOWNLOAD,$(DMALLOC_SITE),$(DMALLOC_SOURCE))
-
-dmalloc-source: $(DL_DIR)/$(DMALLOC_SOURCE)
-
-$(DMALLOC_DIR)/.unpacked: $(DL_DIR)/$(DMALLOC_SOURCE)
-	$(DMALLOC_CAT) $(DL_DIR)/$(DMALLOC_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(DMALLOC_DIR) package/dmalloc dmalloc\*.patch
-	$(SED) 's/^ac_cv_page_size=0$$/ac_cv_page_size=12/' $(DMALLOC_DIR)/configure
-	$(SED) 's/(ld -/($${LD-ld} -/' $(DMALLOC_DIR)/configure
-	$(SED) 's/'\''ld -/"$${LD-ld}"'\'' -/' $(DMALLOC_DIR)/configure
-	-$(SED) 's/ar cr/$$(AR) cr/' $(DMALLOC_DIR)/Makefile.in
-	touch $@
+DMALLOC_INSTALL_STAGING = YES
+DMALLOC_CONF_OPT:= --enable-shlib
 
 ifeq ($(BR2_INSTALL_LIBSTDCPP),y)
-DMALLOC_CONFIG_ARGS:=--enable-cxx
+DMALLOC_CONF_OPT+=--enable-cxx
 else
-DMALLOC_CONFIG_ARGS:=--disable-cxx
+DMALLOC_CONF_OPT+=--disable-cxx
 endif
 
 ifeq ($(BR2_PTHREADS_NONE),y)
-DMALLOC_CONFIG_ARGS+=--disable-threads
+DMALLOC_CONF_OPT+=--disable-threads
 else
-DMALLOC_CONFIG_ARGS+=--enable-threads
+DMALLOC_CONF_OPT+=--enable-threads
 endif
 
+define DMALLOC_POST_PATCH
+	$(SED) 's/^ac_cv_page_size=0$$/ac_cv_page_size=12/' $(@D)/configure
+	$(SED) 's/(ld -/($${LD-ld} -/' $(@D)/configure
+	$(SED) 's/'\''ld -/"$${LD-ld}"'\'' -/' $(@D)/configure
+	$(SED) 's/ar cr/$$(AR) cr/' $(@D)/Makefile.in
+endef
 
+DMALLOC_POST_PATCH_HOOKS += DMALLOC_POST_PATCH
 
-$(DMALLOC_DIR)/.configured: $(DMALLOC_DIR)/.unpacked
-	(cd $(DMALLOC_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		CFLAGS="-g" \
-		LDFLAGS="-g" \
-		./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 \
-		--includedir=/usr/include \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		--enable-shlib \
-		$(DMALLOC_CONFIG_ARGS) \
-	)
-	touch $@
-
-$(DMALLOC_DIR)/$(DMALLOC_BINARY): $(DMALLOC_DIR)/.configured
-	$(MAKE) -C $(DMALLOC_DIR)
-
-$(TARGET_DIR)/$(DMALLOC_TARGET_BINARY): $(DMALLOC_DIR)/$(DMALLOC_BINARY)
-	# both DESTDIR and PREFIX are ignored..
+# both DESTDIR and PREFIX are ignored..
+define DMALLOC_INSTALL_STAGING_CMDS
 	$(MAKE) includedir="$(STAGING_DIR)/usr/include" \
 		bindir="$(STAGING_DIR)/usr/bin" \
 		libdir="$(STAGING_DIR)/usr/lib" \
 		shlibdir="$(STAGING_DIR)/usr/lib" \
 		includedir="$(STAGING_DIR)/usr/share/info/" \
-		-C $(DMALLOC_DIR) install
-	(cd $(STAGING_DIR)/usr/lib; \
-		mv libdmalloc*.so $(TARGET_DIR)/usr/lib)
-	cp -dpf $(STAGING_DIR)/usr/bin/dmalloc $(TARGET_DIR)/$(DMALLOC_TARGET_BINARY)
-	$(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/$(DMALLOC_TARGET_BINARY)
+		-C $(@D) install
+endef
 
-dmalloc: $(TARGET_DIR)/$(DMALLOC_TARGET_BINARY)
+define DMALLOC_INSTALL_TARGET_CMDS
+	mv $(STAGING_DIR)/usr/lib/libdmalloc*.so $(TARGET_DIR)/usr/lib
+	cp -dpf $(STAGING_DIR)/usr/bin/dmalloc $(TARGET_DIR)/usr/bin/dmalloc
+endef
 
-dmalloc-clean:
+define DMALLOC_CLEAN_CMDS
 	-rm -f $(TARGET_DIR)/usr/lib/libdmalloc*
 	-rm -f $(STAGING_DIR)/usr/lib/libdmalloc*
 	rm -f $(STAGING_DIR)/usr/include/dmalloc.h
-	rm -f $(TARGET_DIR)/$(DMALLOC_TARGET_BINARY)
+	rm -f $(TARGET_DIR)/usr/bin/dmalloc
 	-$(MAKE) -C $(DMALLOC_DIR) clean
-
-dmalloc-dirclean:
-	rm -rf $(DMALLOC_DIR)
+endef
 
 
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_DMALLOC),y)
-TARGETS+=dmalloc
-endif
+$(eval $(call AUTOTARGETS,package,dmalloc))

+ 15 - 35
package/fbv/fbv.mk

@@ -6,23 +6,11 @@
 FBV_VERSION:=1.0b
 FBV_SOURCE:=fbv-$(FBV_VERSION).tar.gz
 FBV_SITE:=http://s-tech.elsat.net.pl/fbv
-FBV_DIR:=$(BUILD_DIR)/fbv-$(FBV_VERSION)
-FBV_CAT:=$(ZCAT)
-FBV_BINARY:=fbv
-FBV_TARGET_BINARY:=usr/bin/$(FBV_BINARY)
 
-$(DL_DIR)/$(FBV_SOURCE):
-	$(call DOWNLOAD,$(FBV_SITE),$(FBV_SOURCE))
+FBV_DEPENDENCIES = libpng jpeg libungif
 
-fbv-source: $(DL_DIR)/$(FBV_SOURCE)
-
-$(FBV_DIR)/.unpacked: $(DL_DIR)/$(FBV_SOURCE)
-	$(FBV_CAT) $(DL_DIR)/$(FBV_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(FBV_DIR) package/fbv/ \
-		fbv-$(FBV_VERSION)\*.patch fbv-$(FBV_VERSION)\*.patch.$(ARCH)
-	touch $@
-
-$(FBV_DIR)/.configured: $(FBV_DIR)/.unpacked
+#fbv donesn't support cross-compilation
+define FBV_CONFIGURE_CMDS
 	(cd $(FBV_DIR); rm -f config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
 		$(TARGET_CONFIGURE_ARGS) \
@@ -30,27 +18,19 @@ $(FBV_DIR)/.configured: $(FBV_DIR)/.unpacked
 		--prefix=/usr \
 		--libs="-lz -lm" \
 	)
-	touch $@
+endef
 
-$(FBV_DIR)/$(FBV_BINARY): $(FBV_DIR)/.configured
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(FBV_DIR)
+define FBV_BUILD_CMDS
+	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
+endef
 
-$(TARGET_DIR)/$(FBV_TARGET_BINARY): $(FBV_DIR)/$(FBV_BINARY)
-	install -D $(FBV_DIR)/$(FBV_BINARY) $(TARGET_DIR)/$(FBV_TARGET_BINARY)
+define FBV_INSTALL_TARGET_CMDS
+	install -D $(@D)/fbv $(TARGET_DIR)/usr/bin/fbv
+endef
 
-fbv: libpng jpeg libungif $(TARGET_DIR)/$(FBV_TARGET_BINARY)
+define FBV_CLEAN_CMDS
+	rm -f $(TARGET_DIR)/usr/bin/fbv
+	-$(MAKE) -C $(@D) clean
+endef
 
-fbv-clean:
-	rm -f $(TARGET_DIR)/$(FBV_TARGET_BINARY)
-	-$(MAKE) -C $(FBV_DIR) clean
-
-fbv-dirclean:
-	rm -rf $(FBV_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_FBV),y)
-TARGETS+=fbv
-endif
+$(eval $(call AUTOTARGETS,package,fbv))

+ 12 - 57
package/fuse/libfuse.mk

@@ -3,75 +3,30 @@
 # libfuse
 #
 #############################################################
-LIBFUSE_VERSION:=2.8.1
+LIBFUSE_VERSION:=2.8.4
 LIBFUSE_SOURCE:=fuse-$(LIBFUSE_VERSION).tar.gz
 LIBFUSE_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/fuse/
-LIBFUSE_DIR:=$(BUILD_DIR)/fuse-$(LIBFUSE_VERSION)
-LIBFUSE_BINARY:=libfuse
-$(DL_DIR)/$(LIBFUSE_SOURCE):
-	$(call DOWNLOAD,$(LIBFUSE_SITE),$(LIBFUSE_SOURCE))
 
-$(LIBFUSE_DIR)/.source: $(DL_DIR)/$(LIBFUSE_SOURCE)
-	$(ZCAT) $(DL_DIR)/$(LIBFUSE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(LIBFUSE_DIR) package/fuse/ \*.patch
-	touch $@
-
-
-$(LIBFUSE_DIR)/.configured: $(LIBFUSE_DIR)/.source
-	(cd $(LIBFUSE_DIR); rm -rf config.cache ; \
-	$(TARGET_CONFIGURE_OPTS) \
-	CFLAGS="$(TARGET_CFLAGS)" \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=/usr \
-		--sysconfdir=/etc \
-		--program-prefix="" \
+LIBFUSE_INSTALL_STAGING = YES
+LIBFUSE_LIBTOOL_PATCH = NO
+LIBFUSE_CONF_OPT= --program-prefix="" \
 		--enable-shared \
 		--enable-static \
 		--disable-nls \
 		--disable-example \
 		--disable-kernel-module \
 		--enable-lib \
-		--enable-util \
-	);
-	touch $@
-
-$(LIBFUSE_DIR)/.compiled: $(LIBFUSE_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(LIBFUSE_DIR)
-	touch $@
+		--enable-util
 
-$(STAGING_DIR)/usr/lib/libfuse.so: $(LIBFUSE_DIR)/.compiled
-	$(MAKE) -C $(LIBFUSE_DIR) DESTDIR=$(STAGING_DIR)/ install
-	touch -c $@
-
-$(TARGET_DIR)/usr/lib/libfuse.so: $(STAGING_DIR)/usr/lib/libfuse.so
-	mkdir -p $(TARGET_DIR)/usr/lib
-	mkdir -p $(TARGET_DIR)/usr/bin
+define LIBFUSE_INSTALL_TARGET_CMDS
 	cp -dpf $(STAGING_DIR)/usr/bin/fusermount $(TARGET_DIR)/usr/bin/
-	$(STRIPCMD) $(STRIP_STRIP_ALL) $(TARGET_DIR)/usr/bin/fusermount
 	cp -dpf $(STAGING_DIR)/usr/lib/libfuse.so* $(TARGET_DIR)/usr/lib/
-	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libfuse.so
-	touch -c $@
-
-libfuse: $(TARGET_DIR)/usr/lib/libfuse.so
-
-libfuse-source: $(DL_DIR)/$(LIBFUSE_SOURCE)
+endef
 
-libfuse-clean:
-	-$(MAKE) -C $(LIBFUSE_DIR) DESTDIR=$(STAGING_DIR) uninstall
-	-$(MAKE) -C $(LIBFUSE_DIR) clean
+define LIBFUSE_CLEAN_CMDS
+	-$(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) uninstall
+	-$(MAKE) -C $(@D) clean
 	rm -f $(TARGET_DIR)/usr/bin/fusermount $(TARGET_DIR)/usr/lib/libfuse.so*
+endef
 
-libfuse-dirclean:
-	rm -rf $(LIBFUSE_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBFUSE),y)
-TARGETS+=libfuse
-endif
+$(eval $(call AUTOTARGETS,package,libfuse))

+ 1 - 0
package/gawk/gawk.mk

@@ -9,6 +9,7 @@ GAWK_SITE = $(BR2_GNU_MIRROR)/gawk
 GAWK_TARGET_BINS = awk gawk igawk pgawk
 
 $(eval $(call AUTOTARGETS,package,gawk))
+$(eval $(call AUTOTARGETS,package,gawk,host))
 
 $(GAWK_HOOK_POST_INSTALL): $(GAWK_TARGET_INSTALL_TARGET)
 	ln -sf /usr/bin/gawk $(TARGET_DIR)/usr/bin/awk

+ 0 - 48
package/gzip/gzip-1.3.12-rename-futimens.patch

@@ -1,48 +0,0 @@
----
- gzip.c        |    2 +-
- lib/utimens.c |    4 ++--
- lib/utimens.h |    2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-Index: gzip-1.3.12/gzip.c
-===================================================================
---- gzip-1.3.12.orig/gzip.c
-+++ gzip-1.3.12/gzip.c
-@@ -1637,7 +1637,7 @@
- 	}
-       }
- 
--    if (futimens (ofd, ofname, timespec) != 0)
-+    if (gz_futimens (ofd, ofname, timespec) != 0)
-       {
- 	int e = errno;
- 	WARN ((stderr, "%s: ", program_name));
-Index: gzip-1.3.12/lib/utimens.c
-===================================================================
---- gzip-1.3.12.orig/lib/utimens.c
-+++ gzip-1.3.12/lib/utimens.c
-@@ -75,7 +75,7 @@
-    Return 0 on success, -1 (setting errno) on failure.  */
- 
- int
--futimens (int fd ATTRIBUTE_UNUSED,
-+gz_futimens (int fd ATTRIBUTE_UNUSED,
- 	  char const *file, struct timespec const timespec[2])
- {
-   /* Some Linux-based NFS clients are buggy, and mishandle time stamps
-@@ -185,5 +185,5 @@
- int
- utimens (char const *file, struct timespec const timespec[2])
- {
--  return futimens (-1, file, timespec);
-+  return gz_futimens (-1, file, timespec);
- }
-Index: gzip-1.3.12/lib/utimens.h
-===================================================================
---- gzip-1.3.12.orig/lib/utimens.h
-+++ gzip-1.3.12/lib/utimens.h
-@@ -1,3 +1,3 @@
- #include <time.h>
--int futimens (int, char const *, struct timespec const [2]);
-+int gz_futimens (int, char const *, struct timespec const [2]);
- int utimens (char const *, struct timespec const [2]);

+ 2 - 53
package/gzip/gzip.mk

@@ -3,59 +3,8 @@
 # gzip
 #
 #############################################################
-GZIP_VERSION:=1.3.12
+GZIP_VERSION:=1.4
 GZIP_SOURCE:=gzip-$(GZIP_VERSION).tar.gz
 GZIP_SITE:=$(BR2_GNU_MIRROR)/gzip
-GZIP_DIR:=$(BUILD_DIR)/gzip-$(GZIP_VERSION)
-GZIP_CAT:=$(ZCAT)
-GZIP_BINARY:=$(GZIP_DIR)/gzip
-GZIP_TARGET_BINARY:=$(TARGET_DIR)/bin/zmore
 
-$(DL_DIR)/$(GZIP_SOURCE):
-	 $(call DOWNLOAD,$(GZIP_SITE),$(GZIP_SOURCE))
-
-gzip-source: $(DL_DIR)/$(GZIP_SOURCE)
-
-$(GZIP_DIR)/.unpacked: $(DL_DIR)/$(GZIP_SOURCE)
-	$(GZIP_CAT) $(DL_DIR)/$(GZIP_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(GZIP_DIR) package/gzip gzip\*.patch
-	touch $(GZIP_DIR)/.unpacked
-
-$(GZIP_DIR)/.configured: $(GZIP_DIR)/.unpacked
-	(cd $(GZIP_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=/ \
-		$(DISABLE_NLS) \
-		$(DISABLE_LARGEFILE) \
-	)
-	touch $(GZIP_DIR)/.configured
-
-$(GZIP_BINARY): $(GZIP_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(GZIP_DIR)
-
-$(GZIP_TARGET_BINARY): $(GZIP_BINARY)
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(GZIP_DIR) install-strip
-
-gzip: $(GZIP_TARGET_BINARY)
-
-gzip-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(GZIP_DIR) uninstall
-	-$(MAKE) -C $(GZIP_DIR) clean
-
-gzip-dirclean:
-	rm -rf $(GZIP_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_GZIP),y)
-TARGETS+=gzip
-endif
+$(eval $(call AUTOTARGETS,package,gzip))

+ 4 - 67
package/libgpg-error/libgpg-error.mk

@@ -3,74 +3,11 @@
 # libgpg-error
 #
 #############################################################
-LIBGPG_ERROR_VERSION:=1.5
+LIBGPG_ERROR_VERSION:=1.8
 LIBGPG_ERROR_SOURCE:=libgpg-error-$(LIBGPG_ERROR_VERSION).tar.bz2
 LIBGPG_ERROR_SITE:=ftp://gd.tuwien.ac.at/privacy/gnupg/libgpg-error
-LIBGPG_ERROR_DIR:=$(BUILD_DIR)/libgpg-error-$(LIBGPG_ERROR_VERSION)
-LIBGPG_ERROR_LIBRARY:=src/libgpg-error.la
-LIBGPG_ERROR_DESTDIR:=usr/lib
-LIBGPG_ERROR_TARGET_LIBRARY=$(LIBGPG_ERROR_DESTDIR)/libgpg-error.so
 
-$(DL_DIR)/$(LIBGPG_ERROR_SOURCE):
-	$(call DOWNLOAD,$(LIBGPG_ERROR_SITE),$(LIBGPG_ERROR_SOURCE))
+LIBGPG_ERROR_LIBTOOL_PATCH = NO
+LIBGPG_ERROR_INSTALL_STAGING = YES
 
-$(LIBGPG_ERROR_DIR)/.source: $(DL_DIR)/$(LIBGPG_ERROR_SOURCE)
-	$(BZCAT) $(DL_DIR)/$(LIBGPG_ERROR_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(LIBGPG_ERROR_DIR) package/libgpg-error/ libgpg-error\*.patch
-	$(CONFIG_UPDATE) $(LIBGPG_ERROR_DIR)
-	touch $(LIBGPG_ERROR_DIR)/.source
-
-$(LIBGPG_ERROR_DIR)/.configured: $(LIBGPG_ERROR_DIR)/.source
-	(cd $(LIBGPG_ERROR_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=/usr/lib \
-		--libexecdir=/$(LIBGPG_ERROR_DESTDIR) \
-		--sysconfdir=/etc \
-		--datadir=/usr/share \
-		--localstatedir=/var \
-		--includedir=/usr/include \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		$(DISABLE_NLS) \
-	)
-	touch $(LIBGPG_ERROR_DIR)/.configured
-
-$(LIBGPG_ERROR_DIR)/$(LIBGPG_ERROR_LIBRARY): $(LIBGPG_ERROR_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(LIBGPG_ERROR_DIR)
-
-$(STAGING_DIR)/$(LIBGPG_ERROR_TARGET_LIBRARY): $(LIBGPG_ERROR_DIR)/$(LIBGPG_ERROR_LIBRARY)
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBGPG_ERROR_DIR) install
-	$(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" $(STAGING_DIR)/usr/lib/libgpg-error.la
-
-$(TARGET_DIR)/$(LIBGPG_ERROR_TARGET_LIBRARY): $(STAGING_DIR)/$(LIBGPG_ERROR_TARGET_LIBRARY)
-	cp -dpf $<* $(TARGET_DIR)/$(LIBGPG_ERROR_DESTDIR)
-
-libgpg-error: $(TARGET_DIR)/$(LIBGPG_ERROR_TARGET_LIBRARY)
-
-libgpg-error-source: $(DL_DIR)/$(LIBGPG_ERROR_SOURCE)
-
-libgpg-error-clean:
-	rm -f $(TARGET_DIR)/$(LIBGPG_ERROR_TARGET_LIBRARY)*
-	-$(MAKE) -C $(LIBGPG_ERROR_DIR) clean
-	rm -f $(STAGING_DIR)/$(LIBGPG_ERROR_TARGET_LIBRARY)\*
-
-libgpg-error-dirclean:
-	rm -rf $(LIBGPG_ERROR_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBGPG_ERROR),y)
-TARGETS+=libgpg-error
-endif
+$(eval $(call AUTOTARGETS,package,libgpg-error))

+ 12 - 51
package/liblockfile/liblockfile.mk

@@ -6,66 +6,27 @@
 LIBLOCKFILE_VERSION=1.08
 LIBLOCKFILE_SOURCE:=liblockfile_$(LIBLOCKFILE_VERSION).orig.tar.gz
 LIBLOCKFILE_SITE:=$(BR2_DEBIAN_MIRROR)/debian/pool/main/libl/liblockfile/
-LIBLOCKFILE_CAT:=$(ZCAT)
-LIBLOCKFILE_DIR:=$(BUILD_DIR)/liblockfile-$(LIBLOCKFILE_VERSION)
-LIBLOCKFILE_BINARY:=usr/lib/liblockfile.so.1.0
+LIBLOCKFILE_PATCH:=liblockfile_$(LIBLOCKFILE_VERSION)-4.debian.tar.bz2
 
-$(DL_DIR)/$(LIBLOCKFILE_SOURCE):
-	 $(call DOWNLOAD,$(LIBLOCKFILE_SITE),$(LIBLOCKFILE_SOURCE))
+LIBLOCKFILE_INSTALL_STAGING = YES
+LIBLOCKFILE_CONF_OPT = --enable-shared --mandir=/usr/share/man
 
-liblockfile-source: $(DL_DIR)/$(LIBLOCKFILE_SOURCE)
-
-$(LIBLOCKFILE_DIR)/.unpacked: $(DL_DIR)/$(LIBLOCKFILE_SOURCE)
-	$(LIBLOCKFILE_CAT) $(DL_DIR)/$(LIBLOCKFILE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(LIBLOCKFILE_DIR) package/liblockfile/ \*.patch
-	touch $@
-
-$(LIBLOCKFILE_DIR)/.configured: $(LIBLOCKFILE_DIR)/.unpacked
-	(cd $(LIBLOCKFILE_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 \
-		--bindir=/usr/bin \
-		--libdir=/usr/lib \
-		--includedir=/usr/include \
-		--mandir=/usr/share/man \
-		--enable-shared \
-	)
-	touch $@
-
-$(STAGING_DIR)/$(LIBLOCKFILE_BINARY): $(LIBLOCKFILE_DIR)/.configured
+define LIBLOCKFILE_INSTALL_STAGING_CMDS
 	mkdir -p $(addprefix $(STAGING_DIR)/usr/share/man/man,1 3)
 	rm -f $(STAGING_DIR)/usr/lib/liblockfile.so
 	$(MAKE) -C $(LIBLOCKFILE_DIR) ROOT=$(STAGING_DIR) install
 	ln -sf liblockfile.so $(STAGING_DIR)/usr/lib/liblockfile.so.1
-	touch -c $@
+endef
 
-$(TARGET_DIR)/$(LIBLOCKFILE_BINARY): $(STAGING_DIR)/$(LIBLOCKFILE_BINARY)
-	mkdir -p $(@D)
-	cp -a $(STAGING_DIR)/usr/lib/liblockfile.so* $(@D)
-	$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $@
-	touch -c $@
+define LIBLOCKFILE_INSTALL_TARGET_CMDS
+	cp -a $(STAGING_DIR)/usr/lib/liblockfile.so* $(TARGET_DIR)/usr/lib
+endef
 
-liblockfile: $(TARGET_DIR)/$(LIBLOCKFILE_BINARY)
-
-liblockfile-clean:
+define LIBLOCKFILE_CLEAN_CMDS
 	rm -f $(TARGET_DIR)/usr/lib/liblockfile.so*
 	rm -f $(STAGING_DIR)/usr/lib/liblockfile*
 	rm -f $(addprefix $(STAGING_DIR)/usr/include/,lockfile.h mailfile.h)
-	-$(MAKE) -C $(LIBLOCKFILE_DIR) clean
-
-liblockfile-dirclean:
-	rm -rf $(LIBLOCKFILE_DIR)
+	-$(MAKE) -C $(@D) clean
+endef
 
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LIBLOCKFILE),y)
-TARGETS+=liblockfile
-endif
+$(eval $(call AUTOTARGETS,package,liblockfile))

+ 22 - 0
package/links/links-1.01pre1-no-ssl-largefile.patch

@@ -0,0 +1,22 @@
+Index: links-1.01pre1-no-ssl/links.h
+===================================================================
+--- links-1.01pre1-no-ssl.orig/links.h	2010-06-21 00:39:10.000000000 +0200
++++ links-1.01pre1-no-ssl/links.h	2010-06-21 00:39:52.000000000 +0200
+@@ -2,6 +2,9 @@
+ #define __EXTENSIONS__
+ #endif
+ 
++#include <features.h>
++/* uclibc without largefile support #errors on _FILE_OFFSET_BITS=64 */
++#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_LFS__))
+ #ifndef _LARGEFILE_SOURCE
+ #define _LARGEFILE_SOURCE	1
+ #endif
+@@ -9,6 +12,7 @@
+ #ifndef _FILE_OFFSET_BITS
+ #define _FILE_OFFSET_BITS	64
+ #endif
++#endif
+ 
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"

+ 6 - 56
package/links/links.mk

@@ -3,64 +3,14 @@
 # links (text based web browser)
 #
 #############################################################
-LINKS_VERSION:=0.99pre9-no-ssl
+LINKS_VERSION:=1.01pre1-no-ssl
 LINKS_SITE:=http://artax.karlin.mff.cuni.cz/~mikulas/vyplody/links/download/no-ssl
 LINKS_SOURCE:=links-$(LINKS_VERSION).tar.gz
-LINKS_DIR:=$(BUILD_DIR)/links-$(LINKS_VERSION)
 
-$(DL_DIR)/$(LINKS_SOURCE):
-	$(call DOWNLOAD,$(LINKS_SITE),$(LINKS_SOURCE))
+LINKS_CONF_OPT = --localstatedir=/tmp
 
-links-source: $(DL_DIR)/$(LINKS_SOURCE)
+define LINKS_INSTALL_TARGET_CMDS
+	install -c $(@D)/links $(TARGET_DIR)/usr/bin/links
+endef
 
-$(LINKS_DIR)/.unpacked: $(DL_DIR)/$(LINKS_SOURCE)
-	$(ZCAT) $(DL_DIR)/$(LINKS_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	touch $(LINKS_DIR)/.unpacked
-
-$(LINKS_DIR)/.configured: $(LINKS_DIR)/.unpacked
-	(cd $(LINKS_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=/tmp \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		$(DISABLE_NLS) \
-	)
-	touch $(LINKS_DIR)/.configured
-
-$(LINKS_DIR)/links: $(LINKS_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(LINKS_DIR)
-	$(STRIPCMD) $(LINKS_DIR)/links
-
-$(TARGET_DIR)/usr/bin/links: $(LINKS_DIR)/links
-	install -c $(LINKS_DIR)/links $(TARGET_DIR)/usr/bin/links
-
-links-clean:
-	-$(MAKE) -C $(LINKS_DIR) clean
-	rm -f $(TARGET_DIR)/usr/bin/links
-
-links-dirclean:
-	rm -rf $(LINKS_DIR)
-
-links: $(TARGET_DIR)/usr/bin/links
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_LINKS),y)
-TARGETS+=links
-endif
+$(eval $(call AUTOTARGETS,package,links))

+ 8 - 67
package/make/make.mk

@@ -3,73 +3,14 @@
 # make
 #
 #############################################################
-GNUMAKE_VERSION:=3.81
-GNUMAKE_SOURCE:=make-$(GNUMAKE_VERSION).tar.bz2
-GNUMAKE_SITE:=$(BR2_GNU_MIRROR)/make
-GNUMAKE_DIR:=$(BUILD_DIR)/make-$(GNUMAKE_VERSION)
-GNUMAKE_CAT:=$(BZCAT)
-GNUMAKE_BINARY:=make
-GNUMAKE_TARGET_BINARY:=usr/bin/make
+MAKE_VERSION:=3.81
+MAKE_SOURCE:=make-$(MAKE_VERSION).tar.bz2
+MAKE_SITE:=$(BR2_GNU_MIRROR)/make
 
-$(DL_DIR)/$(GNUMAKE_SOURCE):
-	 $(call DOWNLOAD,$(GNUMAKE_SITE),$(GNUMAKE_SOURCE))
+MAKE_DEPENDENCIES = $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext libintl)
 
-make-source: $(DL_DIR)/$(GNUMAKE_SOURCE)
+MAKE_CONF_ENV = make_cv_sys_gnu_glob=no \
+		GLOBINC='-I$(@D)/glob' \
+		GLOBLIB=glob/libglob.a
 
-$(GNUMAKE_DIR)/.unpacked: $(DL_DIR)/$(GNUMAKE_SOURCE)
-	$(GNUMAKE_CAT) $(DL_DIR)/$(GNUMAKE_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(GNUMAKE_DIR)/config
-	touch $@
-
-$(GNUMAKE_DIR)/.configured: $(GNUMAKE_DIR)/.unpacked
-	(cd $(GNUMAKE_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		make_cv_sys_gnu_glob=no \
-		GLOBINC='-I$(GNUMAKE_DIR)/glob' \
-		GLOBLIB=glob/libglob.a \
-		./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 $@
-
-$(GNUMAKE_DIR)/$(GNUMAKE_BINARY): $(GNUMAKE_DIR)/.configured
-	$(MAKE) MAKE=$(HOSTMAKE) -C $(GNUMAKE_DIR)
-
-$(TARGET_DIR)/$(GNUMAKE_TARGET_BINARY): $(GNUMAKE_DIR)/$(GNUMAKE_BINARY)
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(GNUMAKE_DIR) install
-	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \
-		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc
-
-make: $(if $(BR2_NEEDS_GETTEXT_IF_LOCALE),gettext) $(TARGET_DIR)/$(GNUMAKE_TARGET_BINARY)
-
-make-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(GNUMAKE_DIR) uninstall
-	-$(MAKE) -C $(GNUMAKE_DIR) clean
-
-make-dirclean:
-	rm -rf $(GNUMAKE_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_MAKE),y)
-TARGETS+=make
-endif
+$(eval $(call AUTOTARGETS,package,make))

+ 27 - 0
package/quagga/quagga-0.99.16-fix-ipctl-forwarding.patch

@@ -0,0 +1,27 @@
+Add definitions for IPCTL_FORWARDING and IP6CTL_FORWARDING.
+
+Inspired from
+http://svn.gnumonks.org/trunk/grouter/build/src/quagga/quagga/quagga-0.99.1-forward_sysctl-2.6.14.patch
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: quagga-0.99.16/zebra/ipforward_sysctl.c
+===================================================================
+--- quagga-0.99.16.orig/zebra/ipforward_sysctl.c	2010-06-20 23:40:45.000000000 +0200
++++ quagga-0.99.16/zebra/ipforward_sysctl.c	2010-06-20 23:41:37.000000000 +0200
+@@ -31,6 +31,15 @@
+ 
+ #define MIB_SIZ 4
+ 
++/* Fix for recent (2.6.14) kernel headers */
++#ifndef IPCTL_FORWARDING
++#define IPCTL_FORWARDING NET_IPV4_FORWARD
++#endif
++
++#ifndef IP6CTL_FORWARDING
++#define IP6CTL_FORWARDING NET_IPV6_FORWARDING
++#endif
++
+ extern struct zebra_privs_t zserv_privs;
+ 
+ /* IPv4 forwarding control MIB. */

+ 43 - 128
package/quagga/quagga.mk

@@ -3,176 +3,91 @@
 # quagga suite
 #
 #############################################################
-QUAGGA_VERSION:=0.99.9
+QUAGGA_VERSION:=0.99.16
 QUAGGA_SOURCE:=quagga-$(QUAGGA_VERSION).tar.gz
-QUAGGA_SITE:=http://www.quagga.net/download/attic
-QUAGGA_DIR:=$(BUILD_DIR)/quagga-$(QUAGGA_VERSION)
-QUAGGA_CAT:=$(ZCAT)
+QUAGGA_SITE:=http://www.quagga.net/download/
 
-QUAGGA_CONFIGURE:=
-QUAGGA_DEPENDENCIES:=
+QUAGGA_DEPENDENCIES = host-gawk
+QUAGGA_LIBTOOL_PATCH = NO
+QUAGGA_CONF_OPT = --program-transform-name=''
 
 ifeq ($(BR2_PACKAGE_QUAGGA_ZEBRA),y)
-QUAGGA_CONFIGURE+=--enable-zebra
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=zebra
-QUAGGA_BINARY=$(QUAGGA_DIR)/zebra/.libs/zebra
-endif
+QUAGGA_CONF_OPT+=--enable-zebra
 else
-QUAGGA_CONFIGURE+=--disable-zebra
+QUAGGA_CONF_OPT+=--disable-zebra
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_BGPD),y)
-QUAGGA_CONFIGURE+=--enable-bgpd
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=bgpd
-QUAGGA_BINARY=$(QUAGGA_DIR)/bgpd/.libs/bgpd
-endif
+QUAGGA_CONF_OPT+=--enable-bgpd
 else
-QUAGGA_CONFIGURE+=--disable-bgpd
+QUAGGA_CONF_OPT+=--disable-bgpd
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_RIPD),y)
-QUAGGA_CONFIGURE+=--enable-ripd
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=ripd
-QUAGGA_BINARY=$(QUAGGA_DIR)/ripd/.libs/ripd
-endif
+QUAGGA_CONF_OPT+=--enable-ripd
 else
-QUAGGA_CONFIGURE+=--disable-ripd
+QUAGGA_CONF_OPT+=--disable-ripd
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_RIPNGD),y)
-QUAGGA_CONFIGURE+=--enable-ripngd
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=ripngd
-QUAGGA_BINARY=$(QUAGGA_DIR)/ripngd/.libs/ripngd
-endif
+QUAGGA_CONF_OPT+=--enable-ripngd
 else
-QUAGGA_CONFIGURE+=--disable-ripngd
+QUAGGA_CONF_OPT+=--disable-ripngd
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_OSPFD),y)
-QUAGGA_CONFIGURE+=--enable-ospfd
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=ospfd
-QUAGGA_BINARY=$(QUAGGA_DIR)/ospfd/.libs/ospfd
-endif
+QUAGGA_CONF_OPT+=--enable-ospfd
 else
-QUAGGA_CONFIGURE+=--disable-ospfd
+QUAGGA_CONF_OPT+=--disable-ospfd
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_OSPF6D),y)
-QUAGGA_CONFIGURE+=--enable-ospf6d
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=ospf6d
-QUAGGA_BINARY=$(QUAGGA_DIR)/ospf6d/.libs/ospf6d
-endif
+QUAGGA_CONF_OPT+=--enable-ospf6d
 else
-QUAGGA_CONFIGURE+=--disable-ospf6d
+QUAGGA_CONF_OPT+=--disable-ospf6d
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_WATCHQUAGGA),y)
-QUAGGA_CONFIGURE+=--enable-watchquagga
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=watchquagga
-QUAGGA_BINARY=$(QUAGGA_DIR)/watchquagga/.libs/watchquagga
-endif
+QUAGGA_CONF_OPT+=--enable-watchquagga
 else
-QUAGGA_CONFIGURE+=--disable-watchquagga
+QUAGGA_CONF_OPT+=--disable-watchquagga
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_ISISD),y)
-QUAGGA_CONFIGURE+=--enable-isisd
-ifndef QUAGGA_TARGET_BINARY
-QUAGGA_TARGET_BINARY=isisd
-QUAGGA_BINARY=$(QUAGGA_DIR)/isisd/.libs/isisd
-endif
+QUAGGA_CONF_OPT+=--enable-isisd
 else
-QUAGGA_CONFIGURE+=--disable-isisd
+QUAGGA_CONF_OPT+=--disable-isisd
 endif
 
-
 ifeq ($(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),y)
-QUAGGA_CONFIGURE+=--enable-bgp-announce
+QUAGGA_CONF_OPT+=--enable-bgp-announce
 else
-QUAGGA_CONFIGURE+=--disable-bgp-announce
+QUAGGA_CONF_OPT+=--disable-bgp-announce
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_NETLINK),y)
-QUAGGA_CONFIGURE+=--enable-netlink
+QUAGGA_CONF_OPT+=--enable-netlink
 else
-QUAGGA_CONFIGURE+=--disable-netlink
+QUAGGA_CONF_OPT+=--disable-netlink
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y)
-QUAGGA_CONFIGURE+=--enable-snmp
+QUAGGA_CONF_OPT+=--enable-snmp
 QUAGGA_DEPENDENCIES+=netsnmp
 else
-QUAGGA_CONFIGURE+=--disable-snmp
+QUAGGA_CONF_OPT+=--disable-snmp
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_TCP_ZEBRA),y)
-QUAGGA_CONFIGURE+=--enable-tcp-zebra
+QUAGGA_CONF_OPT+=--enable-tcp-zebra
 else
-QUAGGA_CONFIGURE+=--disable-tcp-zebra
+QUAGGA_CONF_OPT+=--disable-tcp-zebra
 endif
+
 ifeq ($(BR2_PACKAGE_QUAGGA_OPAGUE_LSA),y)
-QUAGGA_CONFIGURE+=--enable-opaque-lsa
+QUAGGA_CONF_OPT+=--enable-opaque-lsa
 else
-QUAGGA_CONFIGURE+=--disable-opaque-lsa
-endif
-
-$(DL_DIR)/$(QUAGGA_SOURCE):
-	$(call DOWNLOAD,$(QUAGGA_SITE),$(QUAGGA_SOURCE))
-
-ifneq ($(QUAGGA_PATCH),)
-QUAGGA_PATCH_FILE=$(DL_DIR)/$(QUAGGA_PATCH)
-$(DL_DIR)/$(QUAGGA_PATCH):
-	$(call DOWNLOAD,$(QUAGGA_SITE),$(QUAGGA_PATCH))
-endif
-quagga-source: $(DL_DIR)/$(QUAGGA_SOURCE) $(QUAGGA_PATCH_FILE)
-
-$(QUAGGA_DIR)/.unpacked: $(DL_DIR)/$(QUAGGA_SOURCE) $(DL_DIR)/$(QUAGGA_PATCH)
-	$(QUAGGA_CAT) $(DL_DIR)/$(QUAGGA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(QUAGGA_DIR) package/quagga/ quagga\*.patch
-ifneq ($(QUAGGA_PATCH),)
-	(cd $(QUAGGA_DIR) && $(QUAGGA_CAT) $(DL_DIR)/$(QUAGGA_PATCH) | patch -p1)
-	if [ -d $(QUAGGA_DIR)/debian/patches ]; then \
-		toolchain/patch-kernel.sh $(QUAGGA_DIR) $(QUAGGA_DIR)/debian/patches \*.patch; \
-	fi
-endif
-	touch $@
-
-$(QUAGGA_DIR)/.configured: $(QUAGGA_DIR)/.unpacked
-	(cd $(QUAGGA_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_LARGEFILE) \
-		$(DISABLE_IPV6) \
-		$(QUAGGA_CONFIGURE) \
-		--program-transform-name='' \
-	)
-	touch $@
-
-$(QUAGGA_BINARY): $(QUAGGA_DIR)/.configured
-	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(QUAGGA_DIR)
-
-$(TARGET_DIR)/usr/sbin/$(QUAGGA_TARGET_BINARY): $(QUAGGA_BINARY)
-	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(QUAGGA_DIR) install
-ifneq ($(BR2_PACKAGE_QUAGGA_HEADERS),y)
-	rm -rf $(TARGET_DIR)/usr/include/quagga
+QUAGGA_CONF_OPT+=--disable-opaque-lsa
 endif
 
-quagga: $(QUAGGA_DEPENDENCIES) $(TARGET_DIR)/usr/sbin/$(QUAGGA_TARGET_BINARY)
-
-quagga-clean:
-	-$(MAKE) DESTDIR=$(TARGET_DIR) -C $(QUAGGA_DIR) uninstall
-	-$(MAKE) -C $(QUAGGA_DIR) clean
-
-quagga-dirclean:
-	rm -rf $(QUAGGA_DIR)
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_QUAGGA),y)
-TARGETS+=quagga
-endif
+$(eval $(call AUTOTARGETS,package,quagga))

+ 0 - 7
package/rxvt/Config.in

@@ -1,7 +0,0 @@
-config BR2_PACKAGE_RXVT
-	bool "rxvt"
-	depends on BR2_PACKAGE_XORG7
-	help
-	  A nice small colour vt102 X terminal emulator.
-
-	  http://www.rxvt.org/

+ 0 - 17
package/rxvt/rxvt-2.7.5-include.patch

@@ -1,17 +0,0 @@
-uClibc doesn't have <sys/stropts.h>
----
- src/init.h |    1 -
- 1 file changed, 1 deletion(-)
-
-Index: rxvt-2.7.5/src/init.h
-===================================================================
---- rxvt-2.7.5.orig/src/init.h
-+++ rxvt-2.7.5/src/init.h
-@@ -16,7 +16,6 @@
- 
- #if defined(PTYS_ARE_PTMX) && !defined(__CYGWIN32__)
- # include <sys/resource.h>	/* for struct rlimit */
--# include <sys/stropts.h>	/* for I_PUSH */
- # define _NEW_TTY_CTRL		/* to get proper defines in <termios.h> */
- #endif
- 

+ 0 - 84
package/rxvt/rxvt.mk

@@ -1,84 +0,0 @@
-#############################################################
-#
-# rxvt
-#
-#############################################################
-# Copyright (C) 2002 by Tom Walsh <Tom@OpenHardware.net>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Library General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Library General Public License for more details.
-#
-# You should have received a copy of the GNU Library General Public
-# License along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-# USA
-
-RXVT_VERSION:=2.7.5
-RXVT_SOURCE:=rxvt-$(RXVT_VERSION).tar.gz
-RXVT_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/rxvt
-RXVT_CAT:=$(ZCAT)
-RXVT_DIR:=$(BUILD_DIR)/rxvt-$(RXVT_VERSION)
-RXVT_BINARY:=$(RXVT_DIR)/src/rxvt
-
-$(DL_DIR)/$(RXVT_SOURCE):
-	 $(call DOWNLOAD,$(RXVT_SITE),$(RXVT_SOURCE))
-
-rxvt-source: $(DL_DIR)/$(RXVT_SOURCE)
-
-$(RXVT_DIR)/.unpacked: $(DL_DIR)/$(RXVT_SOURCE)
-	$(RXVT_CAT) $(DL_DIR)/$(RXVT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(RXVT_DIR) package/rxvt/ \*.patch
-	$(CONFIG_UPDATE) $(RXVT_DIR)/autoconf
-	touch $@
-
-$(RXVT_DIR)/.configured: $(RXVT_DIR)/.unpacked
-	(cd $(RXVT_DIR); rm -rf config.cache; \
-		$(TARGET_CONFIGURE_OPTS) \
-		$(TARGET_CONFIGURE_ARGS) \
-		rxvt_cv_ptys=USG \
-		./configure $(QUIET) \
-		--target=$(GNU_TARGET_NAME) \
-		--host=$(GNU_TARGET_NAME) \
-		--build=$(GNU_HOST_NAME) \
-		--prefix=$(X11_PREFIX) \
-		--mandir=/usr/man \
-		--infodir=/usr/info \
-		--x-includes=$(STAGING_DIR)$(X11_PREFIX)/include \
-		--x-libraries=$(STAGING_DIR)$(X11_PREFIX)/lib \
-		--disable-resources \
-		--disable-memset \
-	)
-	touch $@
-
-$(RXVT_BINARY): $(RXVT_DIR)/.configured
-	$(MAKE) CC=$(TARGET_CC) -C $(RXVT_DIR)
-	$(STRIPCMD) $(STRIP_DISCARD_ALL) $(RXVT_BINARY)
-
-$(TARGET_DIR)$(X11_PREFIX)/bin/rxvt: $(RXVT_BINARY)
-	$(INSTALL) -m 0755 -D $^ $@
-	(cd $(@D); ln -fs rxvt xterm)
-
-rxvt: xserver_xorg-server $(TARGET_DIR)$(X11_PREFIX)/bin/rxvt
-
-rxvt-clean:
-	rm -f $(TARGET_DIR)$(X11_PREFIX)/bin/rxvt
-	-$(MAKE) -C $(RXVT_DIR) clean
-
-rxvt-dirclean:
-	rm -rf $(RXVT_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_RXVT),y)
-TARGETS+=rxvt
-endif

+ 0 - 1132
package/rxvt/rxvt_2.6.4-10.diff

@@ -1,1132 +0,0 @@
---- rxvt-2.6.4.orig/src/graphics/Makefile.in
-+++ rxvt-2.6.4/src/graphics/Makefile.in
-@@ -1,6 +1,6 @@
- # test/graphics/Makefile.in	-*- Makefile -*-
- # $Id: Makefile.in,v 1.3 1998/11/26 05:28:28 mason Exp $
--@MCOMMON@
-+#@MCOMMON@
- 
- srcdir =	@srcdir@
- VPATH =		@srcdir@
---- rxvt-2.6.4.orig/src/command.h
-+++ rxvt-2.6.4/src/command.h
-@@ -181,7 +181,7 @@
- 
- /* time factor to slow down a `jumpy' mouse */
- #define MOUSE_THRESHOLD		50
--#define CONSOLE		"/dev/console"	/* console device */
-+#define CONSOLE		"/dev/xconsole"	/* console device */
- 
- /*
-  * key-strings: if only these keys were standardized <sigh>
-@@ -196,20 +196,27 @@
- 
- #ifdef SCROLL_ON_SHIFT
- # define SCROLL_SHIFTKEY (shft)
-+# define NOSCROLL_SHIFTKEY 0
- #else
- # define SCROLL_SHIFTKEY 0
-+# define NOSCROLL_SHIFTKEY (shft)
- #endif
- #ifdef SCROLL_ON_CTRL
- # define SCROLL_CTRLKEY  (ctrl)
-+# define NOSCROLL_CTRLKEY 0
- #else
- # define SCROLL_CTRLKEY 0
-+# define NOSCROLL_CTRLKEY (ctrl)
- #endif
- #ifdef SCROLL_ON_META
- # define SCROLL_METAKEY  (meta)
-+# define NOSCROLL_METAKEY 0
- #else
- # define SCROLL_METAKEY 0
-+# define NOSCROLL_METAKEY (meta)
- #endif
--#define IS_SCROLL_MOD  (SCROLL_SHIFTKEY || SCROLL_CTRLKEY || SCROLL_METAKEY)
-+#define IS_SCROLL_MOD  ((SCROLL_SHIFTKEY || SCROLL_CTRLKEY || SCROLL_METAKEY) \
-+              && (!NOSCROLL_SHIFTKEY && !NOSCROLL_CTRLKEY && !NOSCROLL_METAKEY))
- 
- typedef struct XCNQueue_t {
-     struct XCNQueue_t *next;
---- rxvt-2.6.4.orig/src/rsizes.h
-+++ rxvt-2.6.4/src/rsizes.h
-@@ -0,0 +1,22 @@
-+/*
-+ * If we haven't pulled in typedef's like int16_t , then do them ourself
-+ */
-+
-+/* type of (normal and unsigned) basic sizes */
-+/* e.g. typedef short int16_t */
-+
-+/* e.g. typedef unsigned short u_int16_t */
-+
-+/* e.g. typedef int int32_t */
-+
-+/* e.g. typedef unsigned int u_int32_t */
-+
-+/* e.g. typedef long int64_t */
-+
-+/* e.g. typedef unsigned long u_int64_t */
-+
-+
-+/* whatever normal size corresponds to a integer pointer */
-+#define intp_t int32_t
-+/* whatever normal size corresponds to a unsigned integer pointer */
-+#define u_intp_t u_int32_t
---- rxvt-2.6.4.orig/src/xdefaults.c
-+++ rxvt-2.6.4/src/xdefaults.c
-@@ -215,6 +215,8 @@
- #ifdef MULTICHAR_SET
-     STRG(Rs_multichar_encoding, "multichar_encoding", "km", "mode",
-          "multiple-character font encoding; mode = eucj | sjis | big5 | gb"),
-+    BOOL(Rs_mc_hack, "mcCursor", "mcc", Opt_mc_hack,
-+	"Multibyte character cursor movement"),
- #endif				/* MULTICHAR_SET */
- #ifdef USE_XIM
-     STRG(Rs_preeditType, "preeditType", "pt", "style",
-@@ -299,10 +301,10 @@
-     fprintf(stderr, "Kanji,");
- #endif
- #ifdef ZH
--    fprintf(stderr, "Chinese,");
-+    fprintf(stderr, "Chinese (Big5),");
- #endif
- #ifdef ZHCN
--    fprintf(stderr, "Chinese(GB),");
-+    fprintf(stderr, "Chinese (GB),");
- #endif
- #ifdef XTERM_SCROLLBAR
-     fprintf(stderr, "XTerm-scrollbar,");
-@@ -760,14 +762,23 @@
- 
-     for (entry = 0; entry < optList_size(); entry++) {
- 	int             s;
--	char           *p;
-+	char           *p, *p0;
- 	const char     *kw = optList[entry].kw;
- 
- 	if (kw == NULL || *(optList[entry].dp) != NULL)
- 	    continue;		/* previously set */
--	if ((p = XGetDefault(display, name, kw)) != NULL
--	    || (p = XGetDefault(display, APL_SUBCLASS, kw)) != NULL
--	    || (p = XGetDefault(display, APL_CLASS, kw)) != NULL) {
-+
-+#define STRCMP(x, y)		strcmp((const char *)(x), (const char *)(y))
-+	p = XGetDefault(display, name, kw);
-+	p0 = XGetDefault(display, "!INVALIDPROGRAMMENAMEDONTMATCH!", kw);
-+	if (p == NULL || (p0 && STRCMP(p, p0) == 0)) {
-+	    p = XGetDefault(display, APL_SUBCLASS, kw);
-+	    if (p == NULL || (p0 && STRCMP(p, p0) == 0))
-+		p = XGetDefault(display, APL_CLASS, kw);
-+	}
-+	if (p == NULL && p0)
-+	    p = p0;
-+	if (p) {
- 	    *optList[entry].dp = p;
- 
- 	    if (optList_isBool(entry)) {
---- rxvt-2.6.4.orig/src/screen.c
-+++ rxvt-2.6.4/src/screen.c
-@@ -188,7 +188,7 @@
- 	rp[row] = MALLOC(sizeof(rend_t) * TermWin.ncol);
-     }
-     if (!keepr)
--	efs &= ~(RS_Uline);
-+	efs &= ~(RS_Uline | RS_RVid);
-     MEMSET(tp[row], ' ', width);
-     for (er = rp[row]; width--;)
- 	*er++ = efs;
-@@ -2107,6 +2107,54 @@
- #define FONT_RBEAR(X, Y)						\
-     (X)->per_char[(Y) - (X)->min_char_or_byte2].rbearing
- 
-+#ifdef MULTICHAR_SET
-+static int
-+draw_string16(Display *display,
-+	      Drawable d,
-+	      GC gc,
-+	      int x,
-+	      int y,
-+	      XChar2b *str,
-+	      int len)
-+{
-+    while (len > 0) {
-+	XDrawString16(display, d, gc, x, y, str, 1);
-+	if (str->byte1 == '\0') {
-+	    x += TermWin.fwidth;
-+	}
-+	else {
-+	    x += TermWin.fwidth * 2;
-+	}
-+	str++;
-+	len--;
-+    }
-+    return 0;
-+}
-+
-+static int
-+draw_image_string16(Display *display,
-+		    Drawable d,
-+		    GC gc,
-+		    int x,
-+		    int y,
-+		    XChar2b *str,
-+		    int len)
-+{
-+    while (len > 0) {
-+	XDrawImageString16(display, d, gc, x, y, str, 1);
-+	if (str->byte1 == '\0') {
-+	    x += TermWin.fwidth;
-+	}
-+	else {
-+	    x += TermWin.fwidth * 2;
-+	}
-+	str++;
-+	len--;
-+    }
-+    return 0;
-+}
-+#endif
-+
- /* EXTPROTO */
- void
- scr_refresh(int type)
-@@ -2262,11 +2310,19 @@
- #ifndef NO_CURSORCOLOR
- 	cc1 = *srp & (RS_fgMask | RS_bgMask);
- 	if (Xdepth <= 2 || !rs[Rs_color + Color_cursor])
-+#ifdef CURSOR_COLOR_IS_RENDITION_COLOR
-+	    ccol1 = GET_FGCOLOR(rstyle);
-+#else
- 	    ccol1 = Color_fg;
-+#endif
- 	else
- 	    ccol1 = Color_cursor;
- 	if (Xdepth <= 2 || !rs[Rs_color + Color_cursor2])
-+#ifdef CURSOR_COLOR_IS_RENDITION_COLOR
-+	    ccol2 = GET_BGCOLOR(rstyle);
-+#else
- 	    ccol2 = Color_bg;
-+#endif
- 	else
- 	    ccol2 = Color_cursor2;
- 	*srp = SET_FGCOLOR(*srp, ccol1);
-@@ -2366,9 +2422,9 @@
- 	    len = 0;
- 	    buffer[len++] = stp[col];
- 	    ypixelc = Row2Pixel(row);
--	    ypixel = ypixelc + TermWin.font->ascent;
-+	    ypixel = ypixelc + TermWin.fascent;
- 	    xpixel = Col2Pixel(col);
--	    fontdiff = 0;
-+	    fontdiff = TermWin.fontdiff;
- 	    wlen = 1;
- 
- /*
-@@ -2382,9 +2438,14 @@
- 		    if (!wbyte) {
- 			wbyte = 1;
- 			XSetFont(Xdisplay, TermWin.gc, TermWin.mfont->fid);
--		    fontdiff = TermWin.mprop;
--			draw_string = XDrawString16;
--			draw_image_string = XDrawImageString16;
-+			fontdiff |= TermWin.mprop;
-+			if (TermWin.mprop) {
-+			    draw_string = draw_string16;
-+			    draw_image_string = draw_image_string16;
-+			} else {
-+			    draw_string = XDrawString16;
-+			    draw_image_string = XDrawImageString16;
-+			}
- 		    }
- 		/* double stepping - we're in Kanji mode */
- 		    for (; ++col < TermWin.ncol;) {
-@@ -2512,11 +2573,12 @@
- 	    if (!wbyte && MONO_BOLD(rend) && TermWin.boldFont != NULL) {
- 		bfont = 1;
- 		XSetFont(Xdisplay, TermWin.gc, TermWin.boldFont->fid);
--		fontdiff = TermWin.bprop;
-+		fontdiff |= TermWin.bprop;
- 		rend &= ~RS_Bold;	/* we've taken care of it */
- 	    } else if (bfont) {
- 		bfont = 0;
--		XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
-+		if (!wbyte)
-+		    XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
- 	    }
- #endif
- /*
-@@ -3341,14 +3403,6 @@
- 
- /* ------------------------------------------------------------------------- */
- /*
-- * On some systems, the Atom typedef is 64 bits wide.  We need to have a type
-- * that is exactly 32 bits wide, because a format of 64 is not allowed by
-- * the X11 protocol.
-- */
--typedef CARD32  Atom32;
--
--/* ------------------------------------------------------------------------- */
--/*
-  * Respond to a request for our current selection
-  * EXT: SelectionRequest
-  */
-@@ -3357,7 +3411,7 @@
- selection_send(const XSelectionRequestEvent * rq)
- {
-     XEvent          ev;
--    Atom32          target_list[4];
-+    Atom            target_list[4];
-     Atom            target;
-     static Atom     xa_targets = None;
-     static Atom     xa_compound_text = None;
-@@ -3382,13 +3436,12 @@
-     ev.xselection.time = rq->time;
- 
-     if (rq->target == xa_targets) {
--	target_list[0] = (Atom32) xa_targets;
--	target_list[1] = (Atom32) XA_STRING;
--	target_list[2] = (Atom32) xa_text;
--	target_list[3] = (Atom32) xa_compound_text;
-+	target_list[0] = xa_targets;
-+	target_list[1] = XA_STRING;
-+	target_list[2] = xa_text;
-+	target_list[3] = xa_compound_text;
- 	XChangeProperty(Xdisplay, rq->requestor, rq->property, rq->target,
--			(8 * sizeof(target_list[0])), PropModeReplace,
--			(unsigned char *)target_list,
-+			32, PropModeReplace, (unsigned char *)target_list,
- 			(sizeof(target_list) / sizeof(target_list[0])));
- 	ev.xselection.property = rq->property;
-     } else if (rq->target == XA_STRING
-@@ -3503,3 +3556,26 @@
-     pos->y = Height2Pixel((screen.cur.row + 1)) + xwa.y;
- }
- #endif
-+
-+#ifdef MULTICHAR_SET
-+/* EXTPROTO */
-+int
-+scr_multi1(void)
-+{
-+    rend_t          rend;
-+    
-+    rend = screen.rend[screen.cur.row + TermWin.saveLines][screen.cur.col];
-+    return ((rend & RS_multiMask)==RS_multi1);
-+}
-+
-+/* EXTPROTO */
-+int
-+scr_multi2(void)
-+{
-+    rend_t          rend;
-+    
-+    if (screen.cur.col==0)  return 0;
-+    rend = screen.rend[screen.cur.row + TermWin.saveLines][screen.cur.col-1];
-+    return ((rend & RS_multiMask)==RS_multi2);
-+}
-+#endif
---- rxvt-2.6.4.orig/src/main.c
-+++ rxvt-2.6.4/src/main.c
-@@ -1010,6 +1010,9 @@
- 
- 	TermWin.fwidth = fw;
- 	TermWin.fheight = fh;
-+	TermWin.fascent = TermWin.font->ascent;
-+	TermWin.fdescent = TermWin.font->descent;
-+	TermWin.fontdiff = 0;
-     }
- 
- /* check that size of boldFont is okay */
-@@ -1035,10 +1038,17 @@
- 	    int             fh, fw;
- 
- 	    fw = get_fontwidest(TermWin.mfont);
--	    fh = TermWin.mfont->ascent + TermWin.mfont->descent;
--	    if (fw <= TermWin.fwidth && fh <= TermWin.fheight)
--		/* WHAT TO DO!! */ ;
--	    TermWin.mprop = !(fw == TermWin.fwidth /* && fh == TermWin.fheight */ );
-+	    if (TermWin.mfont->ascent > TermWin.fascent) {
-+		TermWin.fascent = TermWin.mfont->ascent;
-+		TermWin.fontdiff = 1;
-+	    }
-+	    if (TermWin.mfont->descent > TermWin.fdescent) {
-+		TermWin.fdescent = TermWin.mfont->descent;
-+		TermWin.fontdiff = 1;
-+	    }
-+	    if (TermWin.fontdiff)
-+		TermWin.fheight = TermWin.fascent + TermWin.fdescent;
-+	    TermWin.mprop = (fw != TermWin.fwidth * 2);
- 	}
- #endif
- 
-@@ -1348,6 +1358,16 @@
- 	sprintf(env_term, "TERM=%s", rs[Rs_term_name]);
- 	putenv(env_term);
-     } else {
-+	/* Debian hack: We at Debian prefer to be correct.  Therefore, we
-+           use TERM=rxvt on color displays and TERM=rxvt-m (the -m stands
-+           for monochrome, see terminfo(5)) on monochrome displays.  For
-+           some unknown reason, the upstream maintianers don't recognize
-+           the usefulness of this.  Oh well. */
-+#ifndef KANJI
-+	if (Xdepth <= 2)
-+	    putenv("TERM=" TERMENV "-m");
-+	else
-+#endif
- 	putenv("TERM=" TERMENV);
-     }
- }
---- rxvt-2.6.4.orig/src/grkelot.c
-+++ rxvt-2.6.4/src/grkelot.c
-@@ -158,9 +158,9 @@
- 
- #define NUM_XLAT_TYPES	(sizeof(xlat_type) / sizeof(xlat_type[0]))
- 
--static void     kstate_add_xlat(char *str);
--static void     kstate_add_switcher(char *str);
--static void     kstate_set_life(char *str);
-+void     kstate_add_xlat(char *str);
-+void     kstate_add_switcher(char *str);
-+void     kstate_set_life(char *str);
- 
- /* --- Functions ------------- */
- /* INTPROTO */
---- rxvt-2.6.4.orig/src/graphics.c
-+++ rxvt-2.6.4/src/graphics.c
-@@ -144,15 +144,15 @@
- 	x -= (XTextWidth(TermWin.font, data->text, data->coords[3]) >> 1);
- 
-     if (align & TOP_TEXT)
--	y += TermWin.font->ascent;
-+	y += TermWin.fascent;
-     else if (align & BOTTOM_TEXT)
--	y -= TermWin.font->descent;
-+	y -= TermWin.fdescent;
- 
-     if (align & VCENTER_TEXT)
--	y -= TermWin.font->descent
--	     + ((TermWin.font->ascent + TermWin.font->descent) >> 1);
-+	y -= TermWin.fdescent
-+	     + ((TermWin.fascent + TermWin.fdescent) >> 1);
-     if (align & VCAPS_CENTER_TEXT)
--	y += (TermWin.font->ascent >> 1);
-+	y += (TermWin.fascent >> 1);
- 
-     XPMClearArea(Xdisplay, grwin->win, x, y, Width2Pixel(data->coords[3]),
- 		 Height2Pixel(1), 0);
---- rxvt-2.6.4.orig/src/command.c
-+++ rxvt-2.6.4/src/command.c
-@@ -992,7 +992,9 @@
-     else {
-     /* To avoid Segmentation Fault in C locale */
- 	setTermFontSet();
-+#ifdef MULTICHAR_SET
-         if (strcmp(locale, "C"))
-+#endif
- 	    XRegisterIMInstantiateCallback(Xdisplay, NULL, NULL, NULL,
- 					   IMInstantiateCallback, NULL);
-     }
-@@ -1214,11 +1216,23 @@
- 				^ !!(shft | ctrl)) ? '\b' : '\177');
- 		} else
- 		    len = strlen(STRCPY(kbuf, key_backspace));
-+#ifdef MULTICHAR_SET
-+		if ((Options & Opt_mc_hack) && scr_multi2()) {
-+		    memmove(kbuf + len, kbuf, len);
-+		    len *= 2;
-+		}
-+#endif
- 		break;
- #endif
- #ifndef NO_DELETE_KEY
- 	    case XK_Delete:
- 		len = strlen(STRCPY(kbuf, key_delete));
-+#ifdef MULTICHAR_SET
-+		if ((Options & Opt_mc_hack) && scr_multi1()) {
-+		    memmove(kbuf + len, kbuf, len);
-+		    len *= 2;
-+		}
-+#endif
- 		break;
- #endif
- 	    case XK_Tab:
-@@ -1244,13 +1258,13 @@
- 
- #ifdef XK_KP_Left
- 	    case XK_KP_Up:	/* \033Ox or standard */
--	    case XK_KP_Down:	/* \033Ow or standard */
-+	    case XK_KP_Down:	/* \033Or or standard */
- 	    case XK_KP_Right:	/* \033Ov or standard */
- 	    case XK_KP_Left:	/* \033Ot or standard */
- 		if ((PrivateModes & PrivMode_aplKP) ? !shft : shft) {
- 		    len = 3;
- 		    STRCPY(kbuf, "\033OZ");
--		    kbuf[2] = ("txvw"[keysym - XK_KP_Left]);
-+		    kbuf[2] = ("txvr"[keysym - XK_KP_Left]);
- 		    break;
- 		} else
- 		/* translate to std. cursor key */
-@@ -1272,6 +1286,14 @@
- 		    kbuf[2] = ("dacb"[keysym - XK_Left]);
- 		} else if (PrivateModes & PrivMode_aplCUR)
- 		    kbuf[1] = 'O';
-+#ifdef MULTICHAR_SET
-+		if ((Options & Opt_mc_hack) &&
-+		    ((keysym==XK_Left && scr_multi2()) ||
-+		    (keysym==XK_Right && scr_multi1()))) {
-+		    memmove(kbuf + len, kbuf, len);
-+		    len *= 2;
-+		}
-+#endif
- 		break;
- 
- #ifndef UNSHIFTED_SCROLLKEYS
-@@ -1670,8 +1692,16 @@
- 
- 	    cmdbuf_ptr = cmdbuf_endp = cmdbuf_base;
- 	    for (count = BUFSIZ; count; count -= n, cmdbuf_endp += n)
--		if ((n = read(cmd_fd, cmdbuf_endp, count)) <= 0)
-+		if ((n = read(cmd_fd, cmdbuf_endp, count)) > 0)
-+		    continue;
-+		else if (n == 0 || (n < 0 && errno == EAGAIN))
- 		    break;
-+		else {
-+#if !defined (HAVE_ATEXIT) && !defined (__sun__)
-+		    clean_exit();
-+#endif
-+		    exit(1);	/* bad order of events? */
-+		}
- 	    if (count != BUFSIZ)	/* some characters read in */
- 		return (*cmdbuf_ptr++);
- 	}
-@@ -2376,7 +2406,7 @@
-     unsigned char   buf[256];
- 
-     va_start(arg_ptr, fmt);
--    vsprintf(buf, fmt, arg_ptr);
-+    vsnprintf(buf, sizeof(buf), fmt, arg_ptr);
-     va_end(arg_ptr);
-     tt_write(buf, strlen(buf));
- }
-@@ -2826,6 +2856,7 @@
-     case 18:			/* report window size (chars) */
- 	tt_printf("\033[8;%d;%dt", TermWin.nrow, TermWin.ncol);
- 	break;
-+#if 0 /* XXX: currently disabled due to security concerns */
-     case 20:			/* report icon label */
- 	XGetIconName(Xdisplay, TermWin.parent[0], &s);
- 	tt_printf("\033]L%-.200s\033\\", s ? s : "");
-@@ -2834,6 +2865,7 @@
- 	XFetchName(Xdisplay, TermWin.parent[0], &s);
- 	tt_printf("\033]l%-.200s\033\\", s ? s : "");
- 	break;
-+#endif
-     }
- }
- #endif
-@@ -2853,7 +2885,8 @@
-     if (ch == ';') {
- 	int             n = 0;
- 
--	while ((ch = cmd_getc()) != 007) {
-+	while ((ch = cmd_getc()) != 007 &&
-+	    !(ch == 0x1b && cmd_getc() == 0x5c)) {
- 	    if (ch) {
- 		if (ch == '\t')
- 		    ch = ' ';	/* translate '\t' to space */
-@@ -2870,7 +2903,11 @@
-      * so do it here
-      */
- 	if (arg == XTerm_Menu)
-+#if 0 /* XXX: currently disabled due to security concerns */
- 	    menubar_dispatch((char *)string);
-+#else
-+	    0;
-+#endif
- 	else
- 	    xterm_seq(arg, (char *)string);
-     }
---- rxvt-2.6.4.orig/src/rxvt.h
-+++ rxvt-2.6.4/src/rxvt.h
-@@ -173,9 +173,12 @@
- 		    height,	/* window height [pixels]                   */
- 		    fwidth,	/* font width [pixels]                      */
- 		    fheight,	/* font height [pixels]                     */
-+		    fascent,	/* font ascent [pixels]                     */
-+		    fdescent,	/* font descent [pixels]                    */
- 		    fprop,	/* font is proportional                     */
- 		    bprop,	/* treat bold font as proportional          */
- 		    mprop,	/* treat multichar font as proportional     */
-+		    fontdiff,	/* font size different                      */
- 		    ncol, nrow,	/* window size [characters]                 */
- 		    focus,	/* window has focus                         */
- 		    mapped,	/* window state mapped?                     */
-@@ -469,6 +472,7 @@
- #define Opt_scrollTtyOutput	(1LU<<11)
- #define Opt_scrollKeypress	(1LU<<12)
- #define Opt_transparent		(1LU<<13)
-+#define Opt_mc_hack		(1LU<<14)
- /* place holder used for parsing command-line options */
- #define Opt_Reverse		(1LU<<30)
- #define Opt_Boolean		(1LU<<31)
-@@ -610,6 +614,9 @@
-     Rs_preeditType,
-     Rs_inputMethod,
- #endif
-+#ifdef MULTICHAR_SET
-+    Rs_mc_hack,
-+#endif
- #if defined (HOTKEY_CTRL) || defined (HOTKEY_META)
-     Rs_bigfont_key,
-     Rs_smallfont_key,
---- rxvt-2.6.4.orig/src/feature.h
-+++ rxvt-2.6.4/src/feature.h
-@@ -368,6 +368,10 @@
-  */
- #define SUPPORT_BROKEN_APPS_WHICH_RELY_ON_UNDEFINED_BW_BEHAVIOUR_AS_XTERM
- 
-+/* Debian modification to change the cursor color to the foreground
-+   color */
-+#define CURSOR_COLOR_IS_RENDITION_COLOR
-+
- /*
-  * List of default fonts available
-  * NFONTS is the number of fonts in the list
---- rxvt-2.6.4.orig/doc/etc/rxvt.terminfo
-+++ rxvt-2.6.4/doc/etc/rxvt.terminfo
-@@ -13,7 +13,13 @@
- # rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
- # Since rxvt is not really compatible with xterm, it should be configured as
- # "rxvt-basic" (monochrom) and "rxvt"
--rxvt-basic|rxvt terminal base (X Window System), 
-+#
-+# Debian's changes:
-+#   Debian has uses two termcap/terminfo entries:
-+#	rxvt	for color displays
-+#	rxvt-m	for monochrome displays
-+#   Debian also prefers ^? for kbs (backspace).
-+rxvt-m|monochrome rxvt terminal emulator (X Window System), 
-         am, bce, eo, km, mir, msgr, xenl, xon, 
-         cols#80, it#8, lines#24, 
-         acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
-@@ -29,7 +35,7 @@
-         ind=^J, is1=\E[?47l\E=\E[?1l, 
-         is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, 
-         kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$, 
--        kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H, 
-+        kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^?, 
-         kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, 
-         kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^, 
-         kend=\E[8~, kent=\EOM, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~, 
-@@ -50,4 +56,4 @@
-         colors#8, pairs#64, 
-         op=\E[39;49m, setab=\E[%p1%{40}%+%dm, 
-         sgr0=\E[m\017, setaf=\E[%p1%{30}%+%dm,
--        use=rxvt-basic, 
-+        use=rxvt-m, 
---- rxvt-2.6.4.orig/doc/etc/rxvt.termcap
-+++ rxvt-2.6.4/doc/etc/rxvt.termcap
-@@ -1,5 +1,8 @@
--#	Reconstructed via infocmp from file: /usr/share/terminfo/r/rxvt
--rxvt|rxvt terminal emulator (X Window System):\
-+# Debian's changes:
-+#   Debian has uses two termcap/terminfo entries:
-+#	rxvt	for color displays
-+#	rxvt-m	for monochrome displays
-+rxvt-m|monochrome rxvt terminal emulator (X Window System):\
- 	:am:eo:km:mi:ms:xn:xo:\
- 	:co#80:it#8:li#24:\
- 	:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
-@@ -11,9 +14,27 @@
- 	:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
- 	:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
- 	:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
--	:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\
--	:kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:\
--	:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
-+	:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\E[B:\
-+	:ke=\E>:kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\
-+	:mb=\E[5m:md=\E[1m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
- 	:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
- 	:te=\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
- 	:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
-+rxvt|rxvt terminal emulator (X Window System):\
-+	:am:eo:km:mi:ms:xn:xo:\
-+	:co#80:it#8:li#24:\
-+	:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
-+	:K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
-+	:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
-+	:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
-+	:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
-+	:ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
-+	:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
-+	:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
-+	:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
-+	:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\E[B:\
-+	:ke=\E>:kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\
-+	:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
-+	:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
-+	:te=\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
-+	:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
---- rxvt-2.6.4.orig/doc/yodl/rxvt-resources.yo
-+++ rxvt-2.6.4/doc/yodl/rxvt-resources.yo
-@@ -221,7 +221,7 @@
-     dit(bf(cutchars:) em(string))
- 	The characters used as delimiters for double-click word selection. 
- 	The built-in default: nl()\
--	bf(BACKSLASH `"'&()*,;<=>?@[]{|})
-+	bf(BACKSLASH \ `"'&()*,;<=>?@[]{|})
-     dit(bf(preeditType:) em(style))
- 	bf(OverTheSpot), bf(OffTheSpot), bf(Root);
- 	option bf(-pt).
---- rxvt-2.6.4.orig/doc/rxvt.tbl
-+++ rxvt-2.6.4/doc/rxvt.tbl
-@@ -1,4 +1,5 @@
--.TH "1" "RXVT" "02 NOVEMBER 2001" "X Version 11" "X Tools" 
-+'\" t
-+.TH "RXVT" 1 "02 NOVEMBER 2001" "X Version 11" "X Tools" 
- .SH "NAME" 
- rxvt (ouR XVT) \- a VT102 emulator for the X window system
- .PP 
-@@ -17,19 +18,19 @@
- .PP 
- .SH "OPTIONS" 
- .PP 
--The \fBrxvt\fP options (mostly a subset of \fIxterm\fP\'s) are listed below\&.
-+The \fBrxvt\fP options (mostly a subset of \fIxterm\fP's) are listed below\&.
- In keeping with the smaller-is-better philosophy, options may be eliminated
- or default values chosen at compile-time, so options and defaults listed
- may not accurately reflect the version installed on your system\&.  
--`rxvt -h\' gives a list of major compile-time options on the usage line\&.
-+\(lqrxvt -h\(rq gives a list of major compile-time options on the usage line\&.
- Option descriptions may be prefixed with which compile option each is
--dependent upon\&.  e\&.g\&. `Compile \fIXIM\fP:\' requires \fIXIM\fP on the usage line\&.
--Note: `rxvt -help\' gives a list of all options compiled into your version\&.
-+dependent upon\&.  e\&.g\&. \(lqCompile \fIXIM\fP:\(rq requires \fIXIM\fP on the usage line\&.
-+Note: \(lqrxvt -help\(rq gives a list of all options compiled into your version\&.
- .PP 
- Note that \fBrxvt\fP permits the resource name to be used as a long-option
- (--/++ option) so the potential command-line options are far greater than
- those listed\&.
--For example: `rxvt --loginShell --color1 Orange\'\&.
-+For example: \(lqrxvt --loginShell --color1 Orange\(rq\&.
- .PP 
- .IP "\fB-help\fP, \fB--help\fP" 
- Print out a message describing available options\&.
-@@ -44,7 +45,7 @@
- Turn on/off simulated reverse video;
- resource \fBreverseVideo\fP\&.
- .IP "\fB-ip\fP|\fB+ip\fP" 
--Turn on/off inheriting parent window\'s pixmap\&.  Alternative form
-+Turn on/off inheriting parent window's pixmap\&.  Alternative form
- is \fB-tr\fP;
- resource \fBinheritPixmap\fP\&.
- .IP "\fB-bg\fP \fIcolour\fP" 
-@@ -57,7 +58,7 @@
- Compile \fIXPM\fP: Specify XPM file for the background and also
- optionally specify its scaling with a geometry string\&.  Note you
- may need to add quotes to avoid special shell interpretation of
--the `;\' in the command-line;
-+the \(lq;\(rq in the command-line;
- resource \fBbackgroundPixmap\fP\&.
- .IP "\fB-cr\fP \fIcolour\fP" 
- The cursor colour;
-@@ -90,7 +91,7 @@
- .IP "\fB-name\fP \fIname\fP" 
- Specify the application name under which resources
- are to be obtained, rather than the default executable file name\&.
--Name should not contain `\&.\' or `*\' characters\&.
-+Name should not contain \(lq\&.\(rq or \(lq*\(rq characters\&.
- Also sets the icon and title name\&.
- .IP "\fB-ls\fP|\fB+ls\fP" 
- Start as a login-shell/sub-shell;
-@@ -127,6 +128,9 @@
- \fBTERM\fP environment variable\&. This terminal type must exist in the
- \fItermcap(5)\fP database and should have \fIli#\fP and \fIco#\fP entries;
- resource \fBtermName\fP\&.
-+.IP "\fB-im\fP \fImethod\fP" 
-+This option specifies the input method to use;
-+resource \fBinputMethod\fP\&.
- .IP "\fB-e\fP \fIcommand [arguments]\fP" 
- Run the command with its command-line arguments in the \fBrxvt\fP
- window; also sets the window title and icon name to be the basename
-@@ -160,11 +164,11 @@
- resource \fImodifier\fP\&.
- .IP "\fB-xrm\fP \fIresourcestring\fP" 
- No effect on rxvt\&.  Simply passes through an argument to be made
--available in the instance\'s argument list\&.  Appears in \fIWM_COMMAND\fP
-+available in the instance's argument list\&.  Appears in \fIWM_COMMAND\fP
- in some window managers\&.
- .SH "RESOURCES (available also as long-options)" 
- .PP 
--Note: `rxvt --help\' gives a list of all resources (long options) compiled
-+Note: \(lqrxvt --help\(rq gives a list of all resources (long options) compiled
- into your version\&.
- If compiled with internal Xresources support (i\&.e\&. \fBrxvt -h\fP lists 
- \fB\&.Xdefaults\fP) then \fBrxvt\fP accepts application defaults set in
-@@ -185,11 +189,11 @@
- 80x24];
- option \fB-geometry\fP\&.
- .IP "\fBbackground:\fP \fIcolour\fP" 
--Use the specified colour as the window\'s background colour [default
-+Use the specified colour as the window's background colour [default
- White];
- option \fB-bg\fP\&.
- .IP "\fBforeground:\fP \fIcolour\fP" 
--Use the specified colour as the window\'s foreground colour [default
-+Use the specified colour as the window's foreground colour [default
- Black];
- option \fB-fg\fP\&.
- .IP "\fBcolor\fP\fIn\fP\fB:\fP \fIcolour\fP" 
-@@ -221,26 +225,26 @@
- option \fB+rv\fP\&.
- See note in \fBCOLORS AND GRAPHICS\fP section\&.
- .IP "\fBinheritPixmap:\fP \fIboolean\fP" 
--\fBTrue\fP: make the background inherit the parent windows\' pixmap,
-+\fBTrue\fP: make the background inherit the parent windows' pixmap,
- giving artificial transparency\&.
--\fBFalse\fP: do not inherit the parent windows\' pixmap\&.
-+\fBFalse\fP: do not inherit the parent windows' pixmap\&.
- .IP "\fBscrollColor:\fP \fIcolour\fP" 
- Use the specified colour for the scrollbar [default #B2B2B2]\&.
- .IP "\fBtroughColor:\fP \fIcolour\fP" 
--Use the specified colour for the scrollbar\'s trough area [default
-+Use the specified colour for the scrollbar's trough area [default
- #969696]\&.  Only relevant for normal (non XTerm/NeXT) scrollbar\&.
- .IP "\fBbackgroundPixmap:\fP \fIfile[;geom]\fP" 
--Use the specified XPM file (note the `\&.xpm\' extension is optional)
-+Use the specified XPM file (note the \(lq\&.xpm\(rq extension is optional)
- for the background and also optionally specify its scaling with a
--geometry string \fBWxH+X+Y\fP, in which \fB"W" / "H"\fP specify the
--horizontal/vertical scale (percent) and \fB"X" / "Y"\fP locate the
-+geometry string \fBWxH+X+Y\fP, in which \fB\(lqW\(rq / \(lqH\(rq\fP specify the
-+horizontal/vertical scale (percent) and \fB\(lqX\(rq / \(lqY\(rq\fP locate the
- image centre (percent)\&.  A scale of 0 displays the image with tiling\&.
- A scale of 1 displays the image without any scaling\&.  A scale of 2 to
- 9 specifies an integer number of images in that direction\&.  No image
- will be magnified beyond 10 times its original size\&.  The maximum
- permitted scale is 1000\&.  [default 0x0+50+50]
- .IP "\fBmenu:\fP \fIfile[;tag]\fP" 
--Read in the specified menu file (note the `\&.menu\' extension is
-+Read in the specified menu file (note the \(lq\&.menu\(rq extension is
- optional) and also optionally specify a starting tag to find\&.  See
- the reference documentation for details on the syntax for the menuBar\&.
- .IP "\fBpath:\fP \fIpath\fP" 
-@@ -304,8 +308,8 @@
- name;
- option \fB-title\fP\&.
- .IP "\fBiconName:\fP \fItext\fP" 
--Set the name used to label the window\'s icon or displayed in an icon
--manager window, it also sets the window\'s title unless it is
-+Set the name used to label the window's icon or displayed in an icon
-+manager window, it also sets the window's title unless it is
- explicitly set;
- option \fB-n\fP\&.
- .IP "\fBmapAlert:\fP \fIboolean\fP" 
-@@ -318,7 +322,7 @@
- \fBFalse\fP: no visual bell [default];
- option \fB+vb\fP\&.
- .IP "\fBloginShell:\fP \fIboolean\fP" 
--\fBTrue\fP: start as a login shell by prepending a `-\' to \fBargv[0]\fP
-+\fBTrue\fP: start as a login shell by prepending a \(lq-\(rq to \fBargv[0]\fP
- of the shell;
- option \fB-ls\fP\&.
- \fBFalse\fP: start as a normal sub-shell [default];
-@@ -372,6 +376,9 @@
- Specifies the terminal type name to be set in the \fBTERM\fP
- environment variable;
- option \fB-tn\fP\&.
-+.IP "\fBinputMethod:\fP \fImethod\fP" 
-+Specifies the input method to use;
-+option \fB-im\fP\&.
- .IP "\fBmeta8:\fP \fIboolean\fP" 
- \fBTrue\fP: handle Meta (Alt) + keypress to set the 8th bit\&.
- \fBFalse\fP: handle Meta (Alt) + keypress as an escape prefix [default]\&.
-@@ -388,7 +395,7 @@
- The characters used as delimiters for double-click word selection\&. 
- The built-in default: 
- .br 
--\fBBACKSLASH `"\'&()*,;<=>?@[]{|}\fP
-+\fBBACKSLASH \ `"'&()*,;<=>?@[]{|}\fP
- .IP "\fBpreeditType:\fP \fIstyle\fP" 
- \fBOverTheSpot\fP, \fBOffTheSpot\fP, \fBRoot\fP;
- option \fB-pt\fP\&.
-@@ -497,7 +504,7 @@
- as a number 0-15, as a convenient shorthand to reference the colour name of
- color0-color15\&.
- .PP 
--Note that \fB-rv\fP (\fB"reverseVideo: True"\fP) simulates reverse video by
-+Note that \fB-rv\fP (\fB\(lqreverseVideo: True\(rq\fP) simulates reverse video by
- always swapping the foreground/background colours\&.  This is in contrast to
- \fIxterm\fP(1) where the colours are only swapped if they have not otherwise been
- specified\&.
-@@ -520,6 +527,16 @@
- .IP "\fB/usr/lib/X11/rgb\&.txt\fP" 
- Color names\&.
- .PP 
-+.SH "DEBIAN NOTES"
-+.PP 
-+The standard Debian \fBrxvt\fP package provides two versions of the
-+\fBrxvt\fP binary:
-+.IP "\fBrxvt-xterm\fP"
-+This version is compiled with no XPM support.  It has been configured to
-+be a smaller, more efficient xterm substitute.
-+.IP "\fBrxvt-xpm\fP"
-+This version is compiled with XPM and menu support.
-+.PP 
- .SH "SEE ALSO" 
- .PP 
- \fIxterm\fP(1), \fIsh\fP(1), \fIresize\fP(1), \fIX\fP(1), \fIpty\fP(4), \fItty\fP(4),
-@@ -534,7 +551,7 @@
- .PP 
- Cursor change support is not yet implemented\&.
- .PP 
--Click-and-drag doesn\'t work with X11 mouse report overriding\&.
-+Click-and-drag doesn't work with X11 mouse report overriding\&.
- .PP 
- Graphics support is fairly crude\&.
- .PP 
---- rxvt-2.6.4.orig/doc/Makefile
-+++ rxvt-2.6.4/doc/Makefile
-@@ -0,0 +1,178 @@
-+# Generated automatically from Makefile.in by configure.
-+# doc/Makefile.in	-*- Makefile -*-
-+# $Id: Makefile.in,v 1.12.4.4 2000/04/15 08:59:44 gcw Exp $
-+
-+# autoconf/Make.common.in	 -*- Makefile -*-
-+# release date (man), LSM date, version number/name, current maintainer
-+DATE=02 NOVEMBER 2001
-+LSMDATE=02NOV01
-+VERSION=2.6.4
-+VERNAME=rxvt-$(VERSION)#
-+MAINT=Geoff Wing#
-+MAINTEMAIL=<gcw@rxvt.org>#
-+WEBMAINT=Oezguer Kesim#
-+WEBMAINTEMAIL=<oec@rxvt.org>#
-+WEBPAGE=<http://www.rxvt.org/>#
-+FTPSITENAME=ftp.rxvt.org#
-+FTPSITEDIR=/pub/rxvt#
-+#-------------------------------------------------------------------------
-+
-+SHELL = /bin/sh
-+
-+# This variable makes it possible to move the installation root to another
-+# directory. This is useful when you're creating a binary distribution
-+# If empty, normal root will be used.
-+# You can run eg. 'make install DESTDIR=/packages/rxvt-xx' to accomplish
-+# that.
-+# DESTDIR = /usr/local/X11/$(VERNAME)
-+
-+# Installation target directories & other installation stuff
-+prefix = /usr
-+exec_prefix = ${prefix}
-+binprefix =
-+manprefix =
-+bindir = ${exec_prefix}/bin
-+mandir = ${prefix}/share/man/man1
-+manext = 1
-+
-+# Tools & program stuff
-+CC = gcc
-+CPP = gcc -E
-+MV = /bin/mv
-+RM = /bin/rm
-+RMF = /bin/rm -f
-+CP = /bin/cp
-+SED = /bin/sed
-+AWK = /usr/bin/awk
-+ECHO = /bin/echo
-+CMP = /usr/bin/cmp
-+TBL = /usr/bin/tbl
-+INSTALL = /usr/bin/install -c
-+INSTALL_PROGRAM = /usr/bin/install -c -s -m 755
-+INSTALL_DATA = /usr/bin/install -c -m 644
-+
-+# Flags & libs
-+# add -DBINDIR=\""$(bindir)/"\" to CPPFLAGS, if we need to spawn a program
-+
-+CFLAGS = -O 
-+CPPFLAGS =  -DHAVE_LIBXPM
-+LDFLAGS = 
-+DEFS = -DHAVE_CONFIG_H
-+LIBS = 
-+DINCLUDE = 
-+DLIB = 
-+
-+# X Include directory
-+XINC =  -I/usr/X11R6/include -I/usr/include/X11
-+
-+# extra libraries needed by X on some systems, X library location
-+XLIB =  -L/usr/X11R6/lib -L/usr/X11R6/lib -lXpm -lX11 
-+
-+# End of common section of the Makefile
-+#-------------------------------------------------------------------------
-+
-+srcdir =	.
-+.PATH:		.
-+
-+basedir = ..
-+thisdir = doc
-+
-+first_rule: all
-+dummy:
-+
-+#
-+# Distribution variables
-+#
-+
-+YODL_RXVT = yodl/rxvt-colours.yo yodl/rxvt-environment.yo\
-+	    yodl/rxvt-files.yo yodl/rxvt-fonts.yo yodl/rxvt-login.yo\
-+	    yodl/rxvt-mousereporting.yo yodl/rxvt-options.yo\
-+	    yodl/rxvt-resources.yo yodl/rxvt-scrollbar.yo\
-+	    yodl/rxvt-textselection.yo
-+YODL_RREF = yodl/rxvtRef-csi.yo yodl/rxvtRef-definitions.yo\
-+	    yodl/rxvtRef-graphics.yo yodl/rxvtRef-keycodes.yo\
-+	    yodl/rxvtRef-menubar.yo yodl/rxvtRef-mouse.yo\
-+	    yodl/rxvtRef-privatemodes.yo yodl/rxvtRef-sequences.yo\
-+	    yodl/rxvtRef-values.yo yodl/rxvtRef-xpm.yo yodl/rxvtRef-xterm.yo
-+
-+DIST_ETC  = etc/rxvt.termcap etc/rxvt.terminfo etc/XTerm.ad
-+DIST_YODL = yodl/masonyodl.yo yodl/versioninfo.yo yodl/versioninfo.yo.in\
-+	    $(YODL_RXVT) yodl/rxvt.yo yodl/rxvt.yo.in $(YODL_RREF)\
-+	    yodl/rxvtRef.yo.in
-+DIST_MENU = menu/menu menu/example.menu menu/rxvt.menu menu/terminal.menu\
-+	    menu/jedmenu.sl
-+DIST	  = Makefile.in README.greek README.menu README.xvt BUGS FAQ TODO\
-+	    changes.txt xterm.seq LSM.in rxvt.1 rxvt.tbl rxvtRef.txt\
-+	    rxvtRef.html rxvtRef-frame.html rxvtRef-toc.html rxvt.html 
-+
-+#-------------------------------------------------------------------------
-+
-+all: rxvt.1
-+
-+rxvt.1: Makefile
-+	@if test x$(TBL) = x; then : ; else echo "$(TBL) $(srcdir)/rxvt.tbl | grep -v '^.lf' > rxvt.1"; $(TBL) $(srcdir)/rxvt.tbl | grep -v '^.lf' > rxvt.1 ; fi
-+
-+SEDREPLACE = -e 's%@RXVT_VERSION@%$(VERSION)%g;'\
-+	     -e 's%@RXVT_LSMDATE@%$(LSMDATE)%g;'\
-+	     -e 's%@RXVT_DATE@%$(DATE)%g;'\
-+	     -e 's%@RXVT_MAINTEMAIL@%$(MAINTEMAIL)%g;'\
-+	     -e 's%@RXVT_MAINT@%$(MAINT)%g;'\
-+	     -e 's%@RXVT_WEBPAGE@%$(WEBPAGE)%g;'\
-+	     -e 's%@RXVT_WEBMAINTEMAIL@%$(WEBMAINTEMAIL)%g;'\
-+	     -e 's%@RXVT_WEBMAINT@%$(WEBMAINT)%g;'\
-+	     -e 's%@RXVT_FTPSITENAME@%$(FTPSITENAME)%g;'\
-+	     -e 's%@RXVT_FTPSITEDIR@%$(FTPSITEDIR)%g;'
-+
-+tags allbin:
-+
-+alldoc:	$(basedir)/$(VERNAME).lsm rxvt.tbl rxvt.1 rxvt.html rxvtRef.html rxvtRef.txt
-+
-+yodl/versioninfo.yo: yodl/versioninfo.yo.in ../src/version.h
-+	$(SED) $(SEDREPLACE) < $(srcdir)/yodl/versioninfo.yo.in > $@
-+
-+$(basedir)/$(VERNAME).lsm: LSM.in $(srcdir)/../autoconf/Make.common.in $(srcdir)/../src/version.h
-+	$(SED) $(SEDREPLACE) < $(srcdir)/LSM.in > $@
-+
-+rxvt.tbl: yodl/rxvt.yo $(YODL_RXVT) yodl/versioninfo.yo yodl/masonyodl.yo
-+	yodl2man -orxvt.tbl yodl/rxvt.yo
-+
-+rxvt.html: yodl/rxvt.yo $(YODL_RXVT) yodl/versioninfo.yo yodl/masonyodl.yo
-+	yodl2html -o$@ yodl/rxvt.yo
-+
-+rxvtRef.html: $(YODL_RREF) yodl/rxvtRef.yo yodl/masonyodl.yo
-+	yodl2html -o$@ yodl/rxvtRef.yo
-+
-+rxvtRef.txt: $(YODL_RREF) yodl/rxvtRef.yo yodl/masonyodl.yo
-+	yodl2txt -o$@ yodl/rxvtRef.yo
-+
-+clean:
-+	$(RMF) rxvt.man *~ yodl/*~
-+
-+realclean: clean
-+	$(RMF) tags rxvt.1 rxvt.html rxvtRef.html rxvtRef.txt
-+
-+distclean:
-+
-+install:
-+	$(INSTALL_DATA) rxvt.1 $(DESTDIR)$(mandir)/$(manprefix)rxvt.$(manext)
-+
-+uninstall:
-+	-cd $(mandir); $(RMF) $(manprefix)rxvt.$(manext)
-+
-+distdirs:
-+	mkdir $(basedir)/../$(VERNAME)/$(thisdir)
-+	mkdir $(basedir)/../$(VERNAME)/$(thisdir)/etc
-+	mkdir $(basedir)/../$(VERNAME)/$(thisdir)/menu
-+	mkdir $(basedir)/../$(VERNAME)/$(thisdir)/yodl
-+
-+distcopy: distdepend
-+	$(CP) -p $(basedir)/$(VERNAME).lsm $(basedir)/../$(VERNAME);
-+	$(CP) -p $(DIST)      $(basedir)/../$(VERNAME)/$(thisdir)
-+	$(CP) -p $(DIST_ETC)  $(basedir)/../$(VERNAME)/$(thisdir)/etc
-+	$(CP) -p $(DIST_MENU) $(basedir)/../$(VERNAME)/$(thisdir)/menu
-+	$(CP) -p $(DIST_YODL) $(basedir)/../$(VERNAME)/$(thisdir)/yodl
-+
-+distdepend: alldoc
-+
-+# ------------------------------------------------------------------------
-+# DO NOT DELETE: ugly dependency list follows
---- rxvt-2.6.4.orig/doc/rxvt.html
-+++ rxvt-2.6.4/doc/rxvt.html
-@@ -468,7 +468,7 @@
- 	with the <strong>Execute</strong> key.
-     <p></p><dt><strong><strong>cutchars:</strong> <em>string</em></strong><dd>
- 	The characters used as delimiters for double-click word selection. 
--	The built-in default: <br><strong>BACKSLASH `"'&amp;()*,;&lt;=&gt;?@[]{|}</strong>
-+	The built-in default: <br><strong>BACKSLASH \ `"'&amp;()*,;&lt;=&gt;?@[]{|}</strong>
-     <p></p><dt><strong><strong>preeditType:</strong> <em>style</em></strong><dd>
- 	<strong>OverTheSpot</strong>, <strong>OffTheSpot</strong>, <strong>Root</strong>;
- 	option <strong>-pt</strong>.
---- rxvt-2.6.4.orig/rclock/rclock.c
-+++ rxvt-2.6.4/rclock/rclock.c
-@@ -336,7 +336,7 @@
- 	if (*opt == 'd' && val)		display_name = val;	/* "d", "display" */
- 	else if (*opt == 'g' && val)	rs_geometry = val;	/* "g", "geometry" */
- #ifdef ICONWIN
--	else if (*opt == 'i' && val)	/* "ic", "iconic" */
-+	else if (*opt == 'i')	/* "ic", "iconic" */
- 	  {
- 	     iconic_state = IconicState;
- 	     i--;	/* no argument */
-@@ -1201,8 +1201,16 @@
- 		       int n = (sizeof(execPrgm) - strlen (execPrgm) - 2);
- 		       if ((n > 0) && (n >= strlen (prgm)))
- 			 {
--			    /* for co-occurring programs */
--			    strcat (execPrgm, ";");
-+			   /* for co-occurring programs */
-+			   switch (execPrgm[strlen (execPrgm)-1])
-+			     {
-+			     case '&':
-+			     case ';':
-+			       break;
-+			     default:
-+			       strcat (execPrgm, ";");
-+			       break;
-+			     }
- 			    strncat (execPrgm, prgm, n);
- 			 }
- 		    }
---- rxvt-2.6.4.orig/rclock/feature.h
-+++ rxvt-2.6.4/rclock/feature.h
-@@ -53,7 +53,7 @@
- #define MAIL
- /* #define MAIL_BELL */
- /* #define MAIL_SPAWN	"xmh\ -font\ 7x14\&" */
--/* #define MAIL_SPOOL	"/var/spool/mail/" */
-+#define MAIL_SPOOL	"/var/spool/mail/"
- 
- /*----------------------------------------------------------------------*
-  * #define CLOCKUPDATE	30
---- rxvt-2.6.4.orig/Makefile.in
-+++ rxvt-2.6.4/Makefile.in
-@@ -1,6 +1,6 @@
- # ./Makefile.in			-*- Makefile -*-
- # $Id: Makefile.in,v 1.5 1999/03/29 05:31:37 mason Exp $
--@MCOMMON@
-+#@MCOMMON@
- 
- srcdir =	@srcdir@
- VPATH =		@srcdir@

+ 19 - 85
package/sdl/sdl.mk

@@ -3,122 +3,56 @@
 # SDL
 #
 #############################################################
-SDL_VERSION:=1.2.13
+SDL_VERSION:=1.2.14
 SDL_SOURCE:=SDL-$(SDL_VERSION).tar.gz
 SDL_SITE:=http://www.libsdl.org/release
-SDL_CAT:=$(ZCAT)
-SDL_DIR:=$(BUILD_DIR)/SDL-$(SDL_VERSION)
 
-SDL_EXTRA_CFLAGS = -I./include -D_GNU_SOURCE=1 -fvisibility=hidden -D_REENTRANT -D_REENTRANT -DHAVE_LINUX_VERSION_H
+SDL_LIBTOOL_PATCH = NO
+SDL_INSTALL_STAGING = YES
 
 ifeq ($(BR2_PACKAGE_SDL_FBCON),y)
-SDL_FBCON=--enable-video-fbcon=yes
+SDL_CONF_OPT+=--enable-video-fbcon=yes
 else
-SDL_FBCON=--enable-video-fbcon=no
+SDL_CONF_OPT+=--enable-video-fbcon=no
 endif
 
 ifeq ($(BR2_PACKAGE_SDL_DIRECTFB),y)
 SDL_DEPENDENCIES += directfb
-SDL_DIRECTFB=--enable-video-directfb=yes
-SDL_DIRECTFB_TARGET:=$(STAGING_DIR)/include/directfb
-SDL_DIRECTFB_INCLUDES:=-I$(STAGING_DIR)/usr/include/directfb
-SDL_EXTRA_CFLAGS += $(SDL_DIRECTFB_INCLUDES)
+SDL_CONF_OPT+=--enable-video-directfb=yes
 else
 SDL_DIRECTFB=--enable-video-directfb=no
 endif
 
 ifeq ($(BR2_PACKAGE_SDL_QTOPIA),y)
-SDL_QTOPIA=--enable-video-qtopia=yes
+SDL_CONF_OPT+=--enable-video-qtopia=yes
 SDL_DEPENDENCIES += qt
 else
-SDL_QTOPIA=--enable-video-qtopia=no
+SDL_CONF_OPT+=--enable-video-qtopia=no
 endif
 
 ifeq ($(BR2_PACKAGE_SDL_X11),y)
-SDL_X11=--enable-video-x11=yes
+SDL_CONF_OPT+=--enable-video-x11=yes
 SDL_DEPENDENCIES += xserver_xorg-server
 else
-SDL_X11=--enable-video-x11=no
+SDL_CONF_OPT+=--enable-video-x11=no
 endif
 
 ifeq ($(BR2_PACKAGE_TSLIB),y)
 SDL_DEPENDENCIES += tslib
 endif
 
-$(DL_DIR)/$(SDL_SOURCE):
-	$(call DOWNLOAD,$(SDL_SITE),$(SDL_SOURCE))
-
-sdl-source: $(DL_DIR)/$(SDL_SOURCE)
-
-$(SDL_DIR)/.unpacked: $(DL_DIR)/$(SDL_SOURCE)
-	$(SDL_CAT) $(DL_DIR)/$(SDL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(SDL_DIR) package/sdl sdl-$(SDL_VERSION)\*.patch
-	$(CONFIG_UPDATE) $(SDL_DIR)
-	$(CONFIG_UPDATE) $(SDL_DIR)/build-scripts
-	touch $@
-
-$(SDL_DIR)/.configured: $(SDL_DIR)/.unpacked
-	(cd $(SDL_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=$(STAGING_DIR)/usr \
-		--sysconfdir=/etc \
-		--localstatedir=/var \
-		--enable-pulseaudio=no \
+SDL_CONF_OPT += --enable-pulseaudio=no \
 		--disable-arts \
 		--disable-esd \
-		--disable-nasm \
-		$(SDL_FBCON) \
-		$(SDL_DIRECTFB) \
-		$(SDL_QTOPIA) \
-		$(SDL_X11) \
-		)
-	touch $@
-
-ifeq ($(BR2_PACKAGE_SDL_DIRECTFB),y)
-$(SDL_DIRECTFB_TARGET):
-	mkdir -p $(STAGING_DIR)/include
-	ln -s -f ../usr/include/directfb $(SDL_DIRECTFB_TARGET)
-endif
+		--disable-nasm
 
-$(SDL_DIR)/.compiled: $(SDL_DIR)/.configured $(SDL_DIRECTFB_TARGET)
-	$(MAKE1) $(TARGET_CONFIGURE_OPTS) \
-		EXTRA_CFLAGS="$(SDL_EXTRA_CFLAGS)" \
-		LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
-		DESTDIR=$(STAGING_DIR)/usr -C $(SDL_DIR)
-	touch $@
+define SDL_POST_INSTALL_STAGING_HOOKS
+       $(SED) 's^libdir=\$${exec_prefix}^libdir=/usr^' \
+               $(STAGING_DIR)/usr/bin/sdl-config
+endef
 
-$(STAGING_DIR)/usr/lib/libSDL.so: $(SDL_DIR)/.compiled
-	$(MAKE) -C $(SDL_DIR) install
-# use correct rpath for linking
-	$(SED) 's^libdir=\$${exec_prefix}^libdir=/usr^' \
-		$(STAGING_DIR)/usr/bin/sdl-config
-	touch -c $@
-
-$(TARGET_DIR)/usr/lib/libSDL.so: $(STAGING_DIR)/usr/lib/libSDL.so
+define SDL_INSTALL_TARGET_CMDS
 	cp -dpf $(STAGING_DIR)/usr/lib/libSDL*.so* $(TARGET_DIR)/usr/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libSDL.so
-
-SDL sdl: $(SDL_DEPENDENCIES) $(TARGET_DIR)/usr/lib/libSDL.so
+endef
 
-sdl-unpacked: $(SDL_DIR)/.unpacked
-
-sdl-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SDL_DIR) uninstall
-	-$(MAKE) -C $(SDL_DIR) clean
-
-sdl-dirclean:
-	rm -rf $(SDL_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_SDL),y)
-TARGETS+=sdl
-endif
+$(eval $(call AUTOTARGETS,package,sdl))

+ 12 - 55
package/sdl_mixer/sdl_mixer.mk

@@ -3,66 +3,23 @@
 # SDL_mixer
 #
 #############################################################
-SDL_MIXER_VERSION:=1.2.8
+SDL_MIXER_VERSION:=1.2.11
 SDL_MIXER_SOURCE:=SDL_mixer-$(SDL_MIXER_VERSION).tar.gz
 SDL_MIXER_SITE:=http://www.libsdl.org/projects/SDL_mixer/release/
-SDL_MIXER_CAT:=$(ZCAT)
-SDL_MIXER_DIR:=$(BUILD_DIR)/SDL_mixer-$(SDL_MIXER_VERSION)
 
-$(DL_DIR)/$(SDL_MIXER_SOURCE):
-	$(call DOWNLOAD,$(SDL_MIXER_SITE),$(SDL_MIXER_SOURCE))
+SDL_MIXER_LIBTOOL_PATCH = NO
+SDL_MIXER_INSTALL_STAGING = YES
+SDL_MIXER_DEPENDENCIES = sdl
+SDL_MIXER_CONF_OPT = --without-x --with-sdl-prefix=$(STAGING_DIR)/usr
 
-sdl_mixer-source: $(DL_DIR)/$(SDL_MIXER_SOURCE)
-
-$(SDL_MIXER_DIR)/.unpacked: $(DL_DIR)/$(SDL_MIXER_SOURCE)
-	$(SDL_MIXER_CAT) $(DL_DIR)/$(SDL_MIXER_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(SDL_MIXER_DIR)/build-scripts
-	touch $@
-
-$(SDL_MIXER_DIR)/.configured: $(SDL_MIXER_DIR)/.unpacked $(STAGING_DIR)/usr/lib/libSDL.so
-	(cd $(SDL_MIXER_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 \
-		--localstatedir=/var \
-		--without-x \
-		--with-freetype-prefix=$(STAGING_DIR)/usr \
-		--with-sdl-prefix=$(STAGING_DIR)/usr \
-		)
-	touch $@
-
-$(SDL_MIXER_DIR)/.compiled: $(SDL_MIXER_DIR)/.configured
-	$(MAKE1) $(TARGET_CONFIGURE_OPTS) -C $(SDL_MIXER_DIR)
-	touch $@
-
-$(STAGING_DIR)/usr/lib/libSDL_mixer.so: $(SDL_MIXER_DIR)/.compiled
-	$(MAKE) DESTDIR=$(STAGING_DIR) -C $(SDL_MIXER_DIR) install
-	touch -c $@
-
-$(TARGET_DIR)/usr/lib/libSDL_mixer.so: $(STAGING_DIR)/usr/lib/libSDL_mixer.so
+define SDL_MIXER_INSTALL_TARGET_CMDS
 	cp -dpf $(STAGING_DIR)/usr/lib/libSDL_mixer*.so* $(TARGET_DIR)/usr/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libSDL_mixer*.so*
-
-sdl_mixer: sdl $(TARGET_DIR)/usr/lib/libSDL_mixer.so
+endef
 
-sdl_mixer-clean:
+define SDL_MIXER_CLEAN_CMDS
 	rm -f $(TARGET_DIR)/usr/lib/libSDL_mixer*.so*
-	-$(MAKE) DESTDIR=$(STAGING_DIR) -C $(SDL_MIXER_DIR) uninstall
-	-$(MAKE) -C $(SDL_MIXER_DIR) clean
+	-$(MAKE) DESTDIR=$(STAGING_DIR) -C $(@D) uninstall
+	-$(MAKE) -C $(@D) clean
+endef
 
-sdl_mixer-dirclean:
-	rm -rf $(SDL_MIXER_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_SDL_MIXER),y)
-TARGETS+=sdl_mixer
-endif
+$(eval $(call AUTOTARGETS,package,sdl_mixer))

+ 7 - 68
package/sdl_ttf/sdl_ttf.mk

@@ -6,74 +6,13 @@
 SDL_TTF_VERSION:=2.0.9
 SDL_TTF_SOURCE:=SDL_ttf-$(SDL_TTF_VERSION).tar.gz
 SDL_TTF_SITE:=http://www.libsdl.org/projects/SDL_ttf/release/
-SDL_TTF_CAT:=$(ZCAT)
-SDL_TTF_DIR:=$(BUILD_DIR)/SDL_ttf-$(SDL_TTF_VERSION)
 
-$(DL_DIR)/$(SDL_TTF_SOURCE):
-	$(call DOWNLOAD,$(SDL_TTF_SITE),$(SDL_TTF_SOURCE))
-
-sdl_ttf-source: $(DL_DIR)/$(SDL_TTF_SOURCE)
-
-$(SDL_TTF_DIR)/.unpacked: $(DL_DIR)/$(SDL_TTF_SOURCE)
-	$(SDL_TTF_CAT) $(DL_DIR)/$(SDL_TTF_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	$(CONFIG_UPDATE) $(SDL_TTF_DIR)
-	touch $@
-
-$(SDL_TTF_DIR)/.configured: $(SDL_TTF_DIR)/.unpacked
-	(cd $(SDL_TTF_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=/bin \
-		--sbindir=/sbin \
-		--libdir=/lib \
-		--libexecdir=/lib \
-		--sysconfdir=/etc \
-		--datadir=/share \
-		--localstatedir=/var \
-		--includedir=/include \
-		--mandir=/man \
-		--infodir=/info \
-		--without-x \
+SDL_TTF_LIBTOOL_PATCH = NO
+SDL_TTF_INSTALL_STAGING = YES
+SDL_TTF_DEPENDENCIES = sdl freetype
+SDL_TTF_CONF_OPT = --without-x \
 		--with-freetype-prefix=$(STAGING_DIR)/usr \
-		--with-sdl-prefix=$(STAGING_DIR)/usr \
-		)
-	touch $@
-
-$(SDL_TTF_DIR)/.compiled: $(SDL_TTF_DIR)/.configured
-	$(MAKE1) $(TARGET_CONFIGURE_OPTS) \
-		INCLUDES="-I$(STAGING_DIR)/usr/include/SDL -I$(STAGING_DIR)/usr/include/freetype2" \
-		LDFLAGS="-L$(STAGING_DIR)/usr/lib" \
-		DESTDIR=$(STAGING_DIR)/usr -C $(SDL_TTF_DIR)
-	touch $@
-
-$(STAGING_DIR)/usr/lib/libSDL_ttf.so: $(SDL_TTF_DIR)/.compiled
-	$(MAKE) DESTDIR=$(STAGING_DIR)/usr -C $(SDL_TTF_DIR) install
-	touch -c $@
-
-$(TARGET_DIR)/usr/lib/libSDL_ttf.so: $(STAGING_DIR)/usr/lib/libSDL_ttf.so
-	cp -dpf $(STAGING_DIR)/usr/lib/libSDL_ttf*.so* $(TARGET_DIR)/usr/lib/
-	-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libSDL_ttf.so
-
-sdl_ttf: sdl freetype $(TARGET_DIR)/usr/lib/libSDL_ttf.so
+		--with-sdl-prefix=$(STAGING_DIR)/usr
 
-sdl_ttf-clean:
-	$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(SDL_TTF_DIR) uninstall
-	-$(MAKE) -C $(SDL_TTF_DIR) clean
-
-sdl_ttf-dirclean:
-	rm -rf $(SDL_TTF_DIR)
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_SDL_TTF),y)
-TARGETS+=sdl_ttf
-endif
+SDL_TTF_MAKE_OPT = INCLUDES="-I$(STAGING_DIR)/usr/include/SDL"  LDFLAGS="-L$(STAGING_DIR)/usr/lib"
+$(eval $(call AUTOTARGETS,package,sdl_ttf))

+ 6 - 0
package/xterm/Config.in

@@ -0,0 +1,6 @@
+config BR2_PACKAGE_XTERM
+	bool "xterm"
+	depends on BR2_PACKAGE_XORG7
+	help
+	  xterm terminal emulator
+

+ 13 - 0
package/xterm/xterm.mk

@@ -0,0 +1,13 @@
+#############################################################
+#
+# xterm
+#
+#############################################################
+
+XTERM_VERSION:=259
+XTERM_SOURCE:=xterm-$(XTERM_VERSION).tgz
+XTERM_SITE:=ftp://invisible-island.net/xterm
+XTERM_DEPENDENCIES = xserver_xorg-server
+XTERM_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
+
+$(eval $(call AUTOTARGETS,package,xterm))