Improve Qt embedded target_dir install handling and granularity. This saves me 600k on jffs2 compressed fs for avr32.

This commit is contained in:
Thiago A. Corrêa 2009-04-29 18:29:24 +00:00
parent bb1b213570
commit 0e0bd3a780
2 changed files with 158 additions and 34 deletions

View File

@ -127,16 +127,19 @@ endif
config BR2_PACKAGE_QTOPIA4_GIF config BR2_PACKAGE_QTOPIA4_GIF
bool "Enable GIF support" bool "Enable GIF support"
depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
help help
This compiles and installs the plugin for GIF reading support. This compiles and installs the plugin for GIF reading support.
config BR2_PACKAGE_QTOPIA4_LIBMNG config BR2_PACKAGE_QTOPIA4_LIBMNG
bool "Enable libmng support" bool "Enable libmng support"
depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
help help
This compiles and installs the plugin for MNG support. This compiles and installs the plugin for MNG support.
choice choice
prompt "JPEG support" prompt "JPEG support"
depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
default BR2_PACKAGE_QTOPIA4_NOJPEG default BR2_PACKAGE_QTOPIA4_NOJPEG
help help
Select libjpeg support. Select libjpeg support.
@ -160,6 +163,7 @@ endchoice
choice choice
prompt "PNG support" prompt "PNG support"
depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
default BR2_PACKAGE_QTOPIA4_NOPNG default BR2_PACKAGE_QTOPIA4_NOPNG
help help
Select which library to use if PNG support should be enabled. Select which library to use if PNG support should be enabled.
@ -177,6 +181,7 @@ endchoice
choice choice
prompt "TIFF support" prompt "TIFF support"
depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
default BR2_PACKAGE_QTOPIA4_NOTIFF default BR2_PACKAGE_QTOPIA4_NOTIFF
help help
Select which library to use if TIFF support should be enabled. Select which library to use if TIFF support should be enabled.
@ -212,6 +217,7 @@ endchoice
choice choice
prompt "freetype2 support" prompt "freetype2 support"
depends on BR2_PACKAGE_QTOPIA4_GUI_MODULE
default BR2_PACKAGE_QTOPIA4_NOFREETYPE default BR2_PACKAGE_QTOPIA4_NOFREETYPE
help help
Select freetype2 support. Select freetype2 support.
@ -257,8 +263,10 @@ config BR2_PACKAGE_QTOPIA4_EMB_PLATFORM
The target platform. The target platform.
source "package/qtopia4/Config.sql.in" source "package/qtopia4/Config.sql.in"
if BR2_PACKAGE_QTOPIA4_GUI_MODULE
source "package/qtopia4/Config.gfx.in" source "package/qtopia4/Config.gfx.in"
source "package/qtopia4/Config.mouse.in" source "package/qtopia4/Config.mouse.in"
endif
config BR2_PACKAGE_QTOPIA4_PHONON config BR2_PACKAGE_QTOPIA4_PHONON
bool "Phonon Module" bool "Phonon Module"
@ -269,8 +277,15 @@ config BR2_PACKAGE_QTOPIA4_PHONON
formats can be configured at the GStreamer package. formats can be configured at the GStreamer package.
If unsure, say n. If unsure, say n.
config BR2_PACKAGE_QTOPIA4_XML
bool "XML Module"
default y
help
Build the XML module.
config BR2_PACKAGE_QTOPIA4_XMLPATTERNS config BR2_PACKAGE_QTOPIA4_XMLPATTERNS
bool "XML Patterns Module" bool "XML Patterns Module"
depends on BR2_PACKAGE_QTOPIA4_XML
help help
Build QtXmlPatterns module. Build QtXmlPatterns module.
If unsure, say n If unsure, say n
@ -281,14 +296,23 @@ config BR2_PACKAGE_QTOPIA4_SVG
Build the SVG module. Build the SVG module.
If unsure, say n If unsure, say n
config BR2_PACKAGE_QTOPIA4_NETWORK
bool "Network Module"
default y
help
Install the Network module.
if unsure, say y
config BR2_PACKAGE_QTOPIA4_WEBKIT config BR2_PACKAGE_QTOPIA4_WEBKIT
bool "WebKit Module" bool "WebKit Module"
depends on BR2_PACKAGE_QTOPIA4_NETWORK
help help
Build the WebKit module. Build the WebKit module.
If unsure, say n. If unsure, say n.
config BR2_PACKAGE_QTOPIA4_OPENSSL config BR2_PACKAGE_QTOPIA4_OPENSSL
bool "Enable OpenSSL support" bool "Enable OpenSSL support"
depends on BR2_PACKAGE_QTOPIA4_NETWORK
select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL
help help
Enable support for the OpenSSL encryption library. If you use Enable support for the OpenSSL encryption library. If you use
@ -296,4 +320,19 @@ config BR2_PACKAGE_QTOPIA4_OPENSSL
target. target.
If unsure, say n. If unsure, say n.
config BR2_PACKAGE_QTOPIA4_SCRIPT
bool "Script Module"
default y
help
Build the Qt Script module.
if unsure, say y.
config BR2_PACKAGE_QTOPIA4_SCRIPTTOOLS
bool "Script Tools Module"
depends on BR2_PACKAGE_QTOPIA4_SCRIPT
default n
help
Build the Qt Script Tools module.
if unsure, say n.
endif # BR2_PACKAGE_QTOPIA4 endif # BR2_PACKAGE_QTOPIA4

View File

@ -1,9 +1,10 @@
###################################################################### ######################################################################
# #
# qtopia4 (Qtopia Core 4) # qtopia4 (Qt Embedded for Linux 4.5)
# http://www.trolltech.com/ # http://www.qtsoftware.com/
# #
# This makefile composed by Thomas Lundquist <thomasez@zelow.no> # This makefile was oiginaly composed by Thomas Lundquist <thomasez@zelow.no>
# Later heavily modified by buildroot developers
# #
# BTW, this uses alot of FPU calls and it's pretty slow if you use # BTW, this uses alot of FPU calls and it's pretty slow if you use
# the kernels FPU emulation so it's better to choose soft float in the # the kernels FPU emulation so it's better to choose soft float in the
@ -339,6 +340,38 @@ endif
endif endif
# End of workaround. # End of workaround.
# Figure out what libs to install in the target
QTOPIA4_LIBS=#empty
ifeq ($(BR2_PACKAGE_QTOPIA4_GUI_MODULE),y)
QTOPIA4_LIBS+= qtopia4-gui
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_SQL_MODULE),y)
QTOPIA4_LIBS+= qtopia4-sql
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_PHONON),y)
QTOPIA4_LIBS+= qtopia4-phonon
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_SVG),y)
QTOPIA4_LIBS+= qtopia4-svg
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_NETWORK),y)
QTOPIA4_LIBS+= qtopia4-network
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_WEBKIT),y)
QTOPIA4_LIBS+= qtopia4-webkit
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_XML),y)
QTOPIA4_LIBS+= qtopia4-xml
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_XMLPATTERNS),y)
QTOPIA4_LIBS+= qtopia4-xmlpatterns
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_SCRIPT),y)
QTOPIA4_LIBS+= qtopia4-script
endif
ifeq ($(BR2_PACKAGE_QTOPIA4_SCRIPTTOOLS),y)
QTOPIA4_LIBS+= qtopia4-scripttools
endif
QTOPIA4_QMAKE_CONF:=$(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf QTOPIA4_QMAKE_CONF:=$(QTOPIA4_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QTOPIA4_EMB_PLATFORM)-g++/qmake.conf
@ -362,6 +395,23 @@ define QTOPIA4_QMAKE_SET
$(SED) '/include.*qws.conf/aQMAKE_$(1) = $(2)' $(QTOPIA4_QMAKE_CONF) $(SED) '/include.*qws.conf/aQMAKE_$(1) = $(2)' $(QTOPIA4_QMAKE_CONF)
endef endef
################################################################################
# QTOPIA4_INSTALL_PLUGINS -- helper macro to install Qt plugins to target and
# strip them
#
# Argument 1 is the plugin folder
#
# E.G. use like this to install plugins/sqldrivers:
# $(call QTOPIA4_INSTALL_PLUGINS,sqldrivers)
# ################################################################################
define QTOPIA4_INSTALL_PLUGINS
if [ -d $(STAGING_DIR)/usr/plugins/$(1) ]; then \
mkdir -p $(TARGET_DIR)/usr/plugins; \
cp -dpfr $(STAGING_DIR)/usr/plugins/$(1) $(TARGET_DIR)/usr/plugins/; \
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/plugins/$(1)/*; \
fi
endef
$(DL_DIR)/$(QTOPIA4_SOURCE): $(DL_DIR)/$(QTOPIA4_SOURCE):
$(call DOWNLOAD,$(QTOPIA4_SITE),$(QTOPIA4_SOURCE)) $(call DOWNLOAD,$(QTOPIA4_SITE),$(QTOPIA4_SOURCE))
@ -429,48 +479,83 @@ $(QTOPIA4_TARGET_DIR)/.compiled: $(QTOPIA4_TARGET_DIR)/.configured
$(STAGING_DIR)/usr/lib/libQtCore.la: $(QTOPIA4_TARGET_DIR)/.compiled $(STAGING_DIR)/usr/lib/libQtCore.la: $(QTOPIA4_TARGET_DIR)/.compiled
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(QTOPIA4_TARGET_DIR) install $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(QTOPIA4_TARGET_DIR) install
$(TARGET_DIR)/usr/lib/libQtCore.so.4: $(STAGING_DIR)/usr/lib/libQtCore.la qtopia4-gui: $(STAGING_DIR)/usr/lib/libQtCore.la
mkdir -p $(TARGET_DIR)/usr/lib/fonts mkdir -p $(TARGET_DIR)/usr/lib/fonts
touch $(TARGET_DIR)/usr/lib/fonts/fontdir touch $(TARGET_DIR)/usr/lib/fonts/fontdir
cp -dpf $(STAGING_DIR)/usr/lib/fonts/helvetica*.qpf $(TARGET_DIR)/usr/lib/fonts cp -dpf $(STAGING_DIR)/usr/lib/fonts/helvetica*.qpf $(TARGET_DIR)/usr/lib/fonts
cp -dpf $(STAGING_DIR)/usr/lib/fonts/fixed*.qpf $(TARGET_DIR)/usr/lib/fonts cp -dpf $(STAGING_DIR)/usr/lib/fonts/fixed*.qpf $(TARGET_DIR)/usr/lib/fonts
cp -dpf $(STAGING_DIR)/usr/lib/fonts/micro*.qpf $(TARGET_DIR)/usr/lib/fonts cp -dpf $(STAGING_DIR)/usr/lib/fonts/micro*.qpf $(TARGET_DIR)/usr/lib/fonts
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQt*.so.* $(TARGET_DIR)/usr/lib/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libQt*.so.*
ifeq ($(BR2_PACKAGE_QTOPIA4_PHONON),y)
cp -dpf $(STAGING_DIR)/usr/lib/libphonon.so.* $(TARGET_DIR)/usr/lib/
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libphonon.so.*
endif
endif
# Install image plugins if they are built # Install image plugins if they are built
if [ -d $(STAGING_DIR)/usr/plugins/imageformats ]; then \ $(call QTOPIA4_INSTALL_PLUGINS,imageformats)
mkdir -p $(TARGET_DIR)/usr/plugins; \ ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpfr $(STAGING_DIR)/usr/plugins/imageformats $(TARGET_DIR)/usr/plugins/; \ cp -dpf $(STAGING_DIR)/usr/lib/libQtGui.so.* $(TARGET_DIR)/usr/lib/
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/plugins/imageformats/*; \
fi
ifeq ($(BR2_PACKAGE_QTOPIA4_PHONON),y)
mkdir -p $(TARGET_DIR)/usr/plugins
cp -dpfr $(STAGING_DIR)/usr/plugins/phonon_backend $(TARGET_DIR)/usr/plugins/
$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/plugins/phonon_backend/*
endif
ifneq ($(BR2_PACKAGE_QTOPIA4_GUI_MODULE),y)
# Remove Gui library, not needed
-rm $(TARGET_DIR)/usr/lib/libQtGui*
endif
ifneq ($(BR2_PACKAGE_QTOPIA4_SQL_MODULE),y)
# Remove Sql libraries, not needed
-rm $(TARGET_DIR)/usr/lib/libQtSql*
endif
ifneq ($(BR2_PACKAGE_QTOPIA4_SVG),y)
# Remove Svg libraries, not needed
-rm $(TARGET_DIR)/usr/lib/libQtSvg*
endif endif
qtopia4: uclibc zlib $(QTOPIA4_DEP_LIBS) $(TARGET_DIR)/usr/lib/libQtCore.so.4 qtopia4-sql: $(STAGING_DIR)/usr/lib/libQtCore.la
$(call QTOPIA4_INSTALL_PLUGINS,sqldrivers)
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtSql.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-phonon: $(STAGING_DIR)/usr/lib/libQtCore.la
$(call QTOPIA4_INSTALL_PLUGINS,phonon_backend)
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libphonon.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-svg: $(STAGING_DIR)/usr/lib/libQtCore.la
$(call QTOPIA4_INSTALL_PLUGINS,iconengines)
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtSvg.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-network: $(STAGING_DIR)/usr/lib/libQtCore.la
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtNetwork.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-webkit: $(STAGING_DIR)/usr/lib/libQtCore.la
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtWebKit.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-xml: $(STAGING_DIR)/usr/lib/libQtCore.la
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtXml.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-xmlpatterns: $(STAGING_DIR)/usr/lib/libQtCore.la
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtXmlPatterns.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-script: $(STAGING_DIR)/usr/lib/libQtCore.la
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtScript.so.* $(TARGET_DIR)/usr/lib/
endif
qtopia4-scripttools: $(STAGING_DIR)/usr/lib/libQtCore.la
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
cp -dpf $(STAGING_DIR)/usr/lib/libQtScriptTools.so.* $(TARGET_DIR)/usr/lib/
endif
$(TARGET_DIR)/usr/lib/libQtCore.so.4: $(STAGING_DIR)/usr/lib/libQtCore.la $(QTOPIA4_LIBS)
# Strip all installed libs
cp -dpf $(STAGING_DIR)/usr/lib/libQtCore.so.* $(TARGET_DIR)/usr/lib/
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
-$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libQt*.so.*
endif
qtopia4: uclibc $(QTOPIA4_DEP_LIBS) $(TARGET_DIR)/usr/lib/libQtCore.so.4
qtopia4-clean: qtopia4-clean:
-$(MAKE) -C $(QTOPIA4_TARGET_DIR) clean -$(MAKE) -C $(QTOPIA4_TARGET_DIR) clean
-rm -rf $(TARGET_DIR)/usr/lib/fonts
ifeq ($(BR2_PACKAGE_QTOPIA4_SHARED),y)
-rm $(TARGET_DIR)/usr/lib/libQt*.so.*
-rm $(TARGET_DIR)/usr/lib/libphonon.so.*
endif
qtopia4-dirclean: qtopia4-dirclean:
rm -rf $(QTOPIA4_TARGET_DIR) rm -rf $(QTOPIA4_TARGET_DIR)