From 8a12bab608cb8f8ab3d009966c34758d797c7443 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thiago=20A=2E=20Corr=C3=AAa?= Date: Tue, 7 Oct 2008 20:29:27 +0000 Subject: [PATCH] widen options to configure directfb, patch by Micha Nelissen --- package/directfb/Config.in | 76 ++++++++++++++-- package/directfb/directfb.mk | 164 +++++++++++++++++++++++++---------- 2 files changed, 190 insertions(+), 50 deletions(-) diff --git a/package/directfb/Config.in b/package/directfb/Config.in index 50dc5b9052..61f786a1bf 100644 --- a/package/directfb/Config.in +++ b/package/directfb/Config.in @@ -1,15 +1,10 @@ config BR2_PACKAGE_DIRECTFB bool "directfb" - select BR2_PACKAGE_ZLIB - select BR2_PACKAGE_JPEG - select BR2_PACKAGE_LIBPNG - select BR2_PACKAGE_LIBSYSFS select BR2_PACKAGE_FREETYPE - select BR2_PACKAGE_TSLIB + select BR2_PACKAGE_ZLIB help http://www.directfb.org/ - config BR2_PACKAGE_DIRECTFB_MULTI bool "directfb multi application" depends on BR2_PACKAGE_DIRECTFB @@ -17,3 +12,72 @@ config BR2_PACKAGE_DIRECTFB_MULTI help Enable use of multiple concurrent DirectFB applications http://www.directfb.org/ + +config BR2_PACKAGE_DIRECTFB_XSERVER + bool "build with X server backend" + default n + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_UNIQUE + bool "enable unique window manager" + default n + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_ATI128 + bool "compile ati128 graphics driver" + default n + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_CLE266 + bool "compile cle266 graphics driver" + default y + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_MATROX + bool "compile matrox graphics driver" + default n + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_UNICHROME + bool "compile unichrome graphics driver" + default y + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_KEYBOARD + bool "compile keyboard input driver" + default y + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_PS2MOUSE + bool "compile PS2 mouse input driver" + default y + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_SERIALMOUSE + bool "compile serial mouse input driver" + default y + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_PNG + bool "enable PNG support" + default y + depends on BR2_PACKAGE_DIRECTFB + select BR2_PACKAGE_LIBPNG + select BR2_PACKAGE_ZLIB + +config BR2_PACKAGE_DIRECTFB_TSLIB + bool "enable touchscreen support" + default y + depends on BR2_PACKAGE_DIRECTFB + select BR2_PACKAGE_TSLIB + +config BR2_PACKAGE_DIRECTFB_GIF + bool "enable GIF support" + default y + depends on BR2_PACKAGE_DIRECTFB + +config BR2_PACKAGE_DIRECTFB_JPEG + bool "enable JPEG support" + default y + depends on BR2_PACKAGE_DIRECTFB + select BR2_PACKAGE_JPEG diff --git a/package/directfb/directfb.mk b/package/directfb/directfb.mk index b50befd9aa..4e4f6e7541 100644 --- a/package/directfb/directfb.mk +++ b/package/directfb/directfb.mk @@ -5,23 +5,101 @@ ############################################################# #DIRECTFB_VERSION:=0.9.25.1 #DIRECTFB_SITE:=http://www.directfb.org/downloads/Old -DIRECTFB_VERSION:=1.0.1 +DIRECTFB_MAJOR:=1.2 +DIRECTFB_VERSION:=1.2.6 DIRECTFB_SITE:=http://www.directfb.org/downloads/Core DIRECTFB_SOURCE:=DirectFB-$(DIRECTFB_VERSION).tar.gz DIRECTFB_CAT:=$(ZCAT) DIRECTFB_DIR:=$(BUILD_DIR)/DirectFB-$(DIRECTFB_VERSION) +DIRECTFB_STAGING:=directfb-$(DIRECTFB_MAJOR)-0 +DIRECTFB_BIN:=usr/lib/libdirectfb-$(DIRECTFB_MAJOR).so.0 +DIRECTFB_DEP:=zlib ifeq ($(BR2_PACKAGE_DIRECTFB_MULTI),y) -DIRECTFB_MULTI:=--enable-multi +DIRECTFB_MULTI:=--enable-multi --enable-fusion DIRECTFB_FUSION:=linux-fusion else DIRECTFB_MULTI:= DIRECTFB_FUSION:= endif -ifeq ($(BR2_PACKAGE_XSERVER_none),y) +ifeq ($(BR2_PACKAGE_XSERVER),y) +DIRECTFB_X:=--enable-x11 +else DIRECTFB_X:=--disable-x11 +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB_UNIQUE),y) +DIRECTFB_UNIQUE:=--enable-unique else -DIRECTFB_X:=--enable-x11 +DIRECTFB_UNIQUE:=--disable-unique +endif + +DIRECTFB_GFX:= +ifeq ($(BR2_PACKAGE_DIRECTFB_ATI128),y) +DIRECTFB_GFX+= ati128 +endif +ifeq ($(BR2_PACKAGE_DIRECTFB_CLE266),y) +DIRECTFB_GFX+= cle266 +endif +ifeq ($(BR2_PACKAGE_DIRECTFB_CYBER5K),y) +DIRECTFB_GFX+= cyber5k +endif +ifeq ($(BR2_PACKAGE_DIRECTFB_MATROX),y) +DIRECTFB_GFX+= matrox +endif +ifeq ($(BR2_PACKAGE_DIRECTFB_UNICHROME),y) +DIRECTFB_GFX+= unichrome +endif +ifeq ($(DIRECTFB_GFX),) +DIRECTFB_GFX:=none +else +comma:=, +empty:= +space:=$(empty) $(empty) +DIRECTFB_GFX:=$(subst $(space),$(comma),$(strip $(DIRECTFB_GFX))) +endif + +DIRECTFB_INPUT:= +ifeq ($(BR2_PACKAGE_DIRECTFB_KEYBOARD),y) +DIRECTFB_INPUT+= keyboard +endif +ifeq ($(BR2_PACKAGE_DIRECTFB_PS2MOUSE),y) +DIRECTFB_INPUT+= ps2mouse +endif +ifeq ($(BR2_PACKAGE_DIRECTFB_SERIALMOUSE),y) +DIRECTFB_INPUT+= serialmouse +endif +ifeq ($(BR2_PACKAGE_DIRECTFB_TSLIB),y) +DIRECTFB_INPUT+= tslib +DIRECTFB_DEP+= tslib +endif +ifeq ($(DIRECTFB_INPUT),) +DIRECTFB_INPUT:=none +else +comma:=, +empty:= +space:=$(empty) $(empty) +DIRECTFB_INPUT:=$(subst $(space),$(comma),$(strip $(DIRECTFB_INPUT))) +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB_GIF),y) +DIRECTFB_GIF:=--enable-gif +else +DIRECTFB_GIF:=--disable-gif +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB_PNG),y) +DIRECTFB_PNG:=--enable-png +DIRECTFB_DEP+= libpng +else +DIRECTFB_PNG:=--disable-png +endif + +ifeq ($(BR2_PACKAGE_DIRECTFB_JPEG),y) +DIRECTFB_JPEG:=--enable-jpeg +DIRECTFB_DEP+= jpeg +else +DIRECTFB_JPEG:=--disable-jpeg endif $(DL_DIR)/$(DIRECTFB_SOURCE): @@ -46,32 +124,27 @@ $(DIRECTFB_DIR)/.configured: $(DIRECTFB_DIR)/.unpacked --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 \ - --with-gfxdrivers=cle266,unichrome \ + --with-gfxdrivers=$(DIRECTFB_GFX) \ + --with-inputdrivers=$(DIRECTFB_INPUT) \ + --enable-static \ --enable-shared \ $(DIRECTFB_MULTI) \ $(DIRECTFB_X) \ - --enable-jpeg \ - --enable-png \ + $(DIRECTFB_JPEG) \ + $(DIRECTFB_PNG) \ + $(DIRECTFB_GIF) \ + $(DIRECTFB_UNIQUE) \ --enable-linux-input \ --enable-zlib \ --enable-freetype \ + --enable-fbdev \ --disable-sysfs \ --disable-sdl \ --disable-vnc \ --disable-video4linux \ - --disable-video4linux2 \ - --enable-fusion ) + --disable-video4linux2 ) touch $@ $(DIRECTFB_DIR)/.compiled: $(DIRECTFB_DIR)/.configured @@ -80,36 +153,39 @@ $(DIRECTFB_DIR)/.compiled: $(DIRECTFB_DIR)/.configured -C $(DIRECTFB_DIR) touch $(DIRECTFB_DIR)/.compiled -$(STAGING_DIR)/usr/lib/libdirectfb.so: $(DIRECTFB_DIR)/.compiled - $(MAKE) DESTDIR=$(STAGING_DIR)/usr -C $(DIRECTFB_DIR) install - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" \ - $(STAGING_DIR)/usr/lib/libdirectfb.la - $(SED) "s,/lib/libfusion.la,$(STAGING_DIR)/usr/lib/libfusion.la,g" \ - $(STAGING_DIR)/usr/lib/libdirectfb.la - $(SED) "s,/lib/libdirect.la,$(STAGING_DIR)/usr/lib/libdirect.la,g" \ - $(STAGING_DIR)/usr/lib/libdirectfb.la - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" \ - $(STAGING_DIR)/usr/lib/libdirect.la - $(SED) "s,^libdir=.*,libdir=\'$(STAGING_DIR)/usr/lib\',g" \ - $(STAGING_DIR)/usr/lib/libfusion.la - $(SED) "s,/lib/libdirect.la,$(STAGING_DIR)/usr/lib/libdirect.la,g" \ - $(STAGING_DIR)/usr/lib/libfusion.la - touch -c $@ - -$(TARGET_DIR)/usr/lib/libdirectfb.so: $(STAGING_DIR)/usr/lib/libdirectfb.so - cp -dpf $(STAGING_DIR)/usr/lib/libdirect* $(STAGING_DIR)/usr/lib/libfusion* $(TARGET_DIR)/usr/lib/ - cp -rdpf $(STAGING_DIR)/usr/lib/directfb-* $(TARGET_DIR)/usr/lib/ - -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) \ - $(TARGET_DIR)/usr/lib/libdirectfb.so \ - $(TARGET_DIR)/usr/lib/libdirect.so \ - $(TARGET_DIR)/usr/lib/libfusion.so - -directfb: uclibc jpeg libpng freetype libsysfs tslib $(DIRECTFB_FUSION) \ - $(TARGET_DIR)/usr/lib/libdirectfb.so +$(STAGING_DIR)/$(DIRECTFB_BIN): $(DIRECTFB_DIR)/.compiled + $(MAKE) DESTDIR=$(STAGING_DIR) -C $(DIRECTFB_DIR) install + $(SED) "s, /usr/lib, $(STAGING_DIR)/usr/lib,g" \ + $(STAGING_DIR)/usr/lib/libdirect.la \ + $(STAGING_DIR)/usr/lib/libdirectfb.la \ + $(STAGING_DIR)/usr/lib/libfusion.la \ + `find $(STAGING_DIR)/usr/lib/directfb-$(DIRECTFB_MAJOR)-0/ -name '*.la'` + $(SED) "s,^prefix=.*,prefix=\'$(STAGING_DIR)/usr\',g" \ + $(STAGING_DIR)/usr/bin/*directfb-config + +$(TARGET_DIR)/$(DIRECTFB_BIN): $(STAGING_DIR)/$(DIRECTFB_BIN) + cd $(STAGING_DIR)/usr/lib/; find $(DIRECTFB_STAGING) -type f -name '*.so' \ + | xargs -IREPL install -Dm644 REPL $(TARGET_DIR)/usr/lib/REPL + mkdir -p $(TARGET_DIR)/usr/lib/directfb-$(DIRECTFB_MAJOR)-0/gfxdrivers + cp -dpf $(STAGING_DIR)/usr/lib/libfusion*.so.* $(TARGET_DIR)/usr/lib/ +ifeq ($(BR2_PACKAGE_DIRECTFB_UNIQUE),y) + cp -dpf $(STAGING_DIR)/usr/lib/libuniquewm*.so.* $(TARGET_DIR)/usr/lib/ +endif + cp -dpf $(STAGING_DIR)/usr/lib/libdirect*.so.* $(TARGET_DIR)/usr/lib/ + $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) \ + $(TARGET_DIR)/usr/lib/libdirect*.so.* \ + $(TARGET_DIR)/usr/lib/libfusion*.so.* +ifeq ($(BR2_PACKAGE_DIRECTFB_UNIQUE),y) + $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) \ + $(TARGET_DIR)/usr/lib/libuniquewm*.so.* +endif + +directfb: uclibc $(DIRECTFB_DEP) freetype $(DIRECTFB_FUSION) $(TARGET_DIR)/$(DIRECTFB_BIN) directfb-clean: -$(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(DIRECTFB_DIR) uninstall -$(MAKE) -C $(DIRECTFB_DIR) clean + rm -f $(DIRECTFB_DIR)/.configured $(DIRECTFB_DIR)/.compiled directfb-dirclean: rm -rf $(DIRECTFB_DIR) -- 2.30.2