################################################################################
#
# imlib2
#
################################################################################

IMLIB2_VERSION = 1.6.1
IMLIB2_SOURCE = imlib2-$(IMLIB2_VERSION).tar.bz2
IMLIB2_SITE = http://downloads.sourceforge.net/project/enlightenment/imlib2-src/$(IMLIB2_VERSION)
IMLIB2_LICENSE = Imlib2
IMLIB2_LICENSE_FILES = COPYING COPYING-PLAIN

IMLIB2_INSTALL_STAGING = YES
IMLIB2_DEPENDENCIES = host-pkgconf freetype
IMLIB2_CONF_OPTS = --with-freetype-config=$(STAGING_DIR)/usr/bin/freetype-config
IMLIB2_CONFIG_SCRIPTS = imlib2-config

ifeq ($(BR2_PACKAGE_IMLIB2_X),y)
IMLIB2_CONF_OPTS += --with-x
IMLIB2_DEPENDENCIES += xlib_libX11 xlib_libXext
else
IMLIB2_CONF_OPTS += --without-x
endif

ifeq ($(BR2_PACKAGE_IMLIB2_JPEG),y)
IMLIB2_CONF_OPTS += --with-jpeg
IMLIB2_DEPENDENCIES += jpeg
else
IMLIB2_CONF_OPTS += --without-jpeg
endif

ifeq ($(BR2_PACKAGE_IMLIB2_PNG),y)
IMLIB2_CONF_OPTS += --with-png
IMLIB2_DEPENDENCIES += libpng
else
IMLIB2_CONF_OPTS += --without-png
endif

ifeq ($(BR2_PACKAGE_IMLIB2_GIF),y)
IMLIB2_CONF_OPTS += --with-gif
IMLIB2_DEPENDENCIES += giflib
else
IMLIB2_CONF_OPTS += --without-gif
endif

ifeq ($(BR2_PACKAGE_IMLIB2_TIFF),y)
IMLIB2_CONF_OPTS += --with-tiff
IMLIB2_DEPENDENCIES += tiff
else
IMLIB2_CONF_OPTS += --without-tiff
endif

ifeq ($(BR2_PACKAGE_IMLIB2_ID3),y)
IMLIB2_CONF_OPTS += --with-id3
IMLIB2_DEPENDENCIES += libid3tag
else
IMLIB2_CONF_OPTS += --without-id3
endif

# drop -L<dir> from linker flags
define IMLIB2_FIXUP_IMLIB2_CONFIG
	$(SED) 's/-L[^ ]*//g' $(STAGING_DIR)/usr/bin/imlib2-config
endef

IMLIB2_POST_INSTALL_STAGING_HOOKS += IMLIB2_FIXUP_IMLIB2_CONFIG

$(eval $(autotools-package))
