################################################################################
#
# gpm
#
################################################################################

GPM_VERSION = 1.20.7
GPM_SOURCE = gpm-$(GPM_VERSION).tar.lzma
GPM_SITE = http://www.nico.schottelius.org/software/gpm/archives
GPM_LICENSE = GPLv2+
GPM_LICENSE_FILES = COPYING
GPM_INSTALL_STAGING = YES
GPM_DEPENDENCIES = host-bison

# if not already installed in staging dir, gpm Makefile may fail to find some
# of the headers needed to generate build dependencies, the first time it is
# built. CPPFLAGS is used to pass the right include path to dependency rules.
GPM_CONF_ENV = CPPFLAGS="$(TARGET_CPPFLAGS) -I$(@D)/src/headers/" \
			   ac_cv_path_emacs=no

# For some reason, Microblaze gcc does not define __ELF__, which gpm
# configure script uses to determine whether the architecture uses ELF
# binaries and therefore can build shared libraries. We fix this by
# telling GPM that ELF is used on Microblaze.
ifeq ($(BR2_microblaze),y)
GPM_CONF_ENV += itz_cv_sys_elf=yes
endif

# gpm and ncurses have a circular dependency. As gpm function GPM_Wgetch()
# (requiring ncurses) is not recommended for use by ncurses people themselves
# and as it's better to have gpm support in ncurses that the contrary, we force
# gpm to not look after ncurses explicitly.
# http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
GPM_CONF_OPTS = --without-curses

# configure is missing but gpm seems not compatible with our autoreconf
# mechanism so we have to do it manually instead of using GPM_AUTORECONF = YES
define GPM_RUN_AUTOGEN
	cd $(@D) && PATH=$(BR_PATH) ./autogen.sh
endef
GPM_PRE_CONFIGURE_HOOKS += GPM_RUN_AUTOGEN

GPM_DEPENDENCIES += host-automake host-autoconf host-libtool

# gpm tries to build/install .info doc even if makeinfo isn't installed on the
# host, so we have to disable global doc installation to prevent autobuild
# errors.
define GPM_DISABLE_DOC_INSTALL
	$(SED) 's/SUBDIRS = src doc contrib/SUBDIRS = src contrib/' \
		$(@D)/Makefile.in
endef
GPM_POST_PATCH_HOOKS += GPM_DISABLE_DOC_INSTALL

ifeq ($(BR2_PACKAGE_GPM_INSTALL_TEST_TOOLS),)
define GPM_REMOVE_TEST_TOOLS_FROM_TARGET
	for tools in mev hltest mouse-test display-buttons \
		get-versions display-coords; do \
			rm -f $(TARGET_DIR)/usr/bin/$$tools ; \
	done
endef
GPM_POST_INSTALL_TARGET_HOOKS += GPM_REMOVE_TEST_TOOLS_FROM_TARGET
endif

define GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET
	$(INSTALL) -m 0644 -D $(@D)/conf/gpm-root.conf $(TARGET_DIR)/etc/
endef

GPM_POST_INSTALL_TARGET_HOOKS += GPM_INSTALL_GPM_ROOT_CONF_ON_TARGET

$(eval $(autotools-package))
