auto-package for evas and cleanups

SVN revision: 13612
This commit is contained in:
Carsten Haitzler 2005-03-04 14:34:35 +00:00
parent f73faed27b
commit 17fc7bb20b
21 changed files with 62 additions and 416 deletions

View File

@ -5,18 +5,31 @@ SUBDIRS = data src proj
MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess \
config.h.in config.sub configure install-sh \
ltconfig ltmain.sh missing mkinstalldirs \
stamp-h.in evas_docs.tar evas_docs.tar.gz evas.c
dist-hook:
./gendoc; \
tar cvf evas_docs.tar doc/html doc/latex doc/man; \
rm -f evas_docs.tar.gz; \
gzip -9 evas_docs.tar;
stamp-h.in build-stamp configure-stamp depcomp \
evas_docs.tar.gz evas.c \
README \
evas.pc \
evas.spec \
evas.oe evas-native.oe \
evas.bb evasXnative.bb \
debian/changelog
bin_SCRIPTS = evas-config
EXTRA_DIST = TODO README AUTHORS COPYING COPYING-PLAIN evas.spec evas.c.in gendoc Doxyfile evas_docs.tar.gz evas.pc.in \
make_cross_compile_arm.sh
EXTRA_DIST = AUTHORS COPYING COPYING-PLAIN evas.c.in gendoc \
Doxyfile \
README.in README \
evas.pc.in \
evas.spec.in evas.spec \
evas.oe.in evas.oe evas-native.oe.in evas-native.oe \
evas.bb.in evas.bb evasXnative.bb.in evasXnative.bb \
debian/changelog.in debian/changelog \
debian/control \
debian/copyright \
debian/evas2-test.files \
debian/libevas2-dev.files \
debian/libevas2.files \
debian/rules
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = evas.pc

View File

@ -1,248 +0,0 @@
#####################
# Evas 1.0.0 pre-13 #
#####################
This is a !!!!!!!!***** PRE RELEASE *****!!!!!!!!.
This does NOT mean this is a 1.0.0. It is not complete. It has a 1.0.0
version to make sure it does not conflict with previous evas versions
(0.6.0). 1.0.0 is there because this codebase is PLANNED for 1.0.0. The API
is now stable and I'm happy with it. Until a final 1.0.0, all releases will
have a pre-<number> release. Don't be fooled though. This code should be
stable and fast, but it just may be missing features (like a fully working
OpenGL engine, or documentation).
When this no longer has a pre-<something> as its version THEN it is ready.
--------------------------------------------------------------------------
Requires:
freetype 2.x.x (I want to make this optional)
Optional:
X11R6
DirectFB
OpenGL (underway at the moment)
Linux
Qtopia
libpng
libjpeg
libeet
libedb
--------------------------------------------------------------------------
Evas as of 1.0.0 has a new (and incompatible) API. Why? It's much cleaner
and more compact. Designed for portable access to different display systems.
It is also much more optimised internally, uses much less ram than previous
Evas libraries, and is tiny. Evas when compiled for the Ipaq is a grand
total of 191Kb (thats all of Evas minus libjpeg, libpng, libz (required for
libpng), and minus freetype (required for font rendering)). I have plans that
may involve having an alternative font engine other than freetype to minimise
requirements, and having a native (optional) image loader for an image
format that may end up being custom to evas, but will minimise code &
requirements especially for embedded use.
Evas uses very little RAM too (try profiling it in memprof if you want to
know) most of the ram allocated, if you look, is for freetype itself,
image pixel data, and font glyph data. You can't really avoid this, though
evas tries to share this data as much as possible and not duplicate where it
can. Feel free to point me at sensible memory optimisations etc. though :) I
want this baby to be lean, mean tiny, fast and do everything from your
massive multi-cpu desktop with gobs of ram and disk to a tiny watch.
Evas also supports full UTF-8 for text object strings, thus allowing for
full internationalised text strings (if your font gives you all the
characters). I've tested with quite a few fonts and it works quite well.
Though this requires a unicode compatible font with unicode charmap support
(cyberbit is quite good actually as a font). For now Evas draws the fonts
only from left to right, so arabic, hebrew etc. won't display quite right,
direction-wise, but the charcters do.
--------------------------------------------------------------------------
if you want to know what options to enable
./confiugre --help
Notes:
the small dither mask is faster on the ipaq, but is not as good looking. on
desktop machines it makes no speed difference so only use
--enable-small-dither-mask if you are compiling for the ipaq
you need at least 1 image loader if you want to load images.
gcc 3.0.x on solaris screws up the jpeg code so erroring out doesn't work.
use gcc 3.2 on solaris.
freetype 2.1.2 is BAD. RedHat 8.0 uses this as do some debain distributions.
either downgrade to 2.1.1. freetype 2.1.3 is ALSO BAD, as is 2.0.9. It has
glyph metric rendering bugs and glyph geomery query bugs. do not use it.
try using 2.0.3. It is known to be stable and work perfectly with Evas.
--------------------------------------------------------------------------
notes on features:
SCALING:
--enable-scale-sample
this enables the sampling scaler code. this is the fastest image scaling
code, but also the lowest quality. when scaling up pixels will become blocky
and when scaling down you will see shimmering/aliasing artifacts. this is a
speed vs. quality tradeoff
--enable-scale-smooth
this is the nicest looking scaler that is not that much slower than
tri-linear, but it looks really good. it also uses mipmaps and is optimised
heavily. it is recommended to always use this unless you are really
struggling for speed and are qilling to forego the quality
DITHERING:
--enable-small-dither-mask
this uses a 4x4 dither mask instead of 128x128. on desktop boxes these days
(pentium, pentium2, amd etc.) the speed difference is not really measurable,
but the quality of the 128x128 dither mask is quite a lot better. patterns
of dithering are much less noticable, so it is recommended to not enable
this unless you are struggling for speed. the compaq ipaq for example shows
a slowdown with this large a dither mask so enabling a small dither mask is
recommended unless you really want to forego the speed.
ENGINES:
--enable-software-x11
this enables the software x11 rendering engine that renders to X drawable
targets using highly optimised software routines. there is no hardware
assist here. this engine requires X11 to be installed to build (and run).
This si a godo generic engine that is fast and can run in X for good
development and debugging purposes.
--enable-fb
this is the software framebuffer drivign engine. this uses the linxu
framebuffer device (/dev/fb<x>) and will currently just inherit the current
framebuffer settings on the fb device and use them to run in. this engine is
almost fully functional except for the fb management itself. i'd be quite
happy for people to help out with fixing up the fb init & management code to
properly set up a vt and release it etc. this engine is specifically geared
towards peoel writing minimalist display systems for embedded devices such
as the ipaq, zaurus, etc. it also scales up to high-res desktop systems as
well and performs outstandingly. i have measured up to 67% speedup over X11
using the fb driver insetad of X11.
--enable-direcfb
this is the direct fb engine that uses direcftb (http://www.directfb.org) on
linux to access the framebuffer with (or maybe without) acceleration. for
people making set-top boxes or just wanting an alternative to X this is
really good. it may also be useful for embedded devices supported by
directfb that offer acceleration (otherwise the fb driver will likely be
faster).
CPU:
--enable-cpu-c
this enabled the c code. you can actually build the code withotu the c
fallback code and only have the mmx routines for example. it is suggested to
always use this regardless uness you have some definite size issues with the
code.
--enable-cpu-mmx
this enables the mmx optimised routines. this works for penitum, pentium2,
pentium3, pentium4, athlon and duron processors. it can get quite
considerable speedups, souse it if you can. ppc owners just have to live with
the c fallback functions unfortunately as no one has provided any ALTIVEC asm
routines yet. :) arm owners will also have to rely on the c fallback
routines as i haven't managed to come up with any arm assembly that actually
can beat the c code (when compiled whht all optimisations) in speed.
--enable-cpu-sse
this enables sse optimisations availbale in he pentium3 and 4 cpus (not
athlon and duron or pentium 2 or pentium cpu's). ppc owners just have to
live with the c fallback functions unfortunately as no one has provided any
ALTIVEC asm routines yet. :) arm owners will also have to rely on the c
fallback routines as i haven't managed to come up with any arm assembly that
actually can beat the c code (when compiled whht all optimisations) in speed.
IMAGE LOADERS:
--enable-image-loader-png
this enables the loader code that loads png files using libpng. there may be
call for embedded devices later that have custom written small image
loaders that use sless disk space than libpng to load custom format images.
for now this is the only loader so you may as well include it.
--enable-image-loader-jpeg
this enables the loader code that loads jpeg files using libjpeg.
CONVERTERS:
--enable-convert-16-rgb-565
the most common converter you'll want for 16bpp. this means 5 bits for red,
6 bits for green and 5 bits for blue are used.
--enable-convert-16-rgb-555
this is a converter for what many people know as "15 bit" color. you might
want to enable this for X output as it used to be common to find many cards
that do this.
--enable-convert-16-rgb-444
this converter outputs to 12bit packed (int 16 bit WORDS).
--enable-convert-16-rgb-ipq
this converter was written specifically for the ipaq (and may apply to
similarly configured devices) because it lies about its screen depth. it
says it is 16bit 565 (that means 5 upper bits of the WORD are red, the next 6
bits are for green abd the next 5 for blue) but in fact only the upper 4
bits of each color component (red green and blue) are significant and work,
so effectively the display is 12 bits of color, not 16, but padded out to
fill 16bits, with unused bits in the color masks. X on the ipaq advertises
it as a full 16bpp 565 display (i can't remember what the linux framebuffer
advertised it as) and so many lumps of code can be fooled into rendering
data badly because they think the output will look as the expect. This
renderer assuems the upper 4 bits fo each color primitie only are
significant and renders accordingly. this produces nice quality images on
the ipaq and even still works in 16bpp 565 on your pc. it is highly
recommended to use this renderer if your target is an ipaq or your device
dislpays similar qualities of the ipaq for display purposes.
--enable-convert-16-rgb-rot-0
this enables the 16bpp converters to run with 0 degrees rotation - this is
normal disp;ay and you shoudl really include this (though it is optional if you
only ever want to do portrait mode - perhaps like on an ipaq embedded device)
--enable-convert-16-rgb-rot-270
this enables the portrait mode (270 degree rotation) converteres for 16bpp.
this is the standard display mode for things like pocketpc on the ipaq and
the zaurus etc. thsi si a optimised part of the rendering pipeline to allow
portrait display with a much lower overhead than doing it through X.
--enable-convert-24-rgb-888
To be documented...
--enable-convert-24-bgr-888
To be documented...
--enable-convert-32-rgb-8888
To be documented...
--enable-convert-32-bgr-8888
To be documented...
--enable-convert-32-rgb-rot-0
To be documented...
--enable-convert-32-rgb-rot-270
To be documented...
...

View File

@ -1,5 +0,0 @@
-------------------------------------------------------------------------------
Things to do for Evas 1.0.0 before a full 1.0.0 release:
-------------------------------------------------------------------------------
This is now in evas.c.in, under todo:

View File

@ -1,8 +1,6 @@
# get rid of that stupid cache mechanism
rm -f config.cache
AC_INIT(configure.in)
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
@ -1459,6 +1457,7 @@ AC_SUBST(altivec_cflags)
AC_OUTPUT([
Makefile
evas.pc
data/Makefile
src/Makefile
src/bin/Makefile
@ -1484,10 +1483,15 @@ src/lib/include/Makefile
proj/Makefile
proj/win32_gdi/Makefile
evas-config
evas.pc
README
evas.spec
evas.oe
evas-native.oe
evas.bb
evasXnative.bb
debian/changelog
],[
chmod +x evas-config
touch evas_docs.tar.gz
touch src/bin/moc_evas_software_qtopia_main.cpp
])

View File

@ -1,3 +1,5 @@
MAINTAINERCLEANFILES = Makefile.in
FILES = Vera.ttf VeraBI.ttf VeraBd.ttf VeraIt.ttf VeraMoBI.ttf VeraMoBd.ttf \
VeraMoIt.ttf VeraMono.ttf VeraSe.ttf VeraSeBd.ttf fonts.alias fonts.dir \
backdrop.png e_logo.png evas_logo.png panel.png \

View File

@ -1,4 +1,4 @@
evas2 (1.0.0-pre14-0cvs20040704) unstable; urgency=low
evas (@VERSION@-1) unstable; urgency=low
* a CVS release

View File

@ -6,8 +6,8 @@ MAINTAINER = "Carsten Haitzler (Rasterman) <raster@rasterman.com>"
SECTION = "e/libs"
PRIORITY = "optional"
DEPENDS = "libpng jpeg eet freetype"
PV = "evas-1.0.0_pre13"
PR = "2"
PV = "@VERSION@"
PR = "1"
do_prepsources () {
make clean distclean || true

View File

@ -6,8 +6,8 @@ MAINTAINER = "Carsten Haitzler (Rasterman) <raster@rasterman.com>"
SECTION = "e/libs"
PRIORITY = "optional"
DEPENDS = "libpng jpeg eet freetype"
PV = "evas-1.0.0_pre13"
PR = "2"
PV = "@VERSION@"
PR = "1"
do_prepsources () {
make clean distclean || true

View File

@ -1,13 +1,13 @@
%define _missing_doc_files_terminate_build 0
Summary: Multi-platform Canvas Library
Name: evas
Version: 1.0.0
Release: 0.pre13.%(date '+%Y%m%d')
Name: @PACKAGE@
Version: @VERSION@
Release: 1
License: BSD
Group: System Environment/Libraries
URL: http://www.enlightenment.org/
Source: ftp://ftp.enlightenment.org/pub/evas/evas-%{version}_pre13.tar.gz
Source: %{name}-%{version}_pre13.tar.gz
Packager: %{?_packager:%{_packager}}%{!?_packager:Michael Jennings <mej@eterm.org>}
Vendor: %{?_vendorinfo:%{_vendorinfo}}%{!?_vendorinfo:The Enlightenment Project (http://www.enlightenment.org/)}
Distribution: %{?_distribution:%{_distribution}}%{!?_distribution:%{_vendor}}
@ -33,7 +33,7 @@ Requires: /usr/bin/freetype-config
Headers, static libraries, test programs and documentation for Evas.
%prep
%setup -q -n %{name}-%{version}_pre13
%setup -q -n %{name}-%{version}
%build
%{configure} --prefix=%{_prefix} --x-libraries=%{_prefix}/X11R6/%{_lib} $RPM_CONFIGURE_OPTS
@ -54,19 +54,18 @@ test "x$RPM_BUILD_ROOT" != "x/" && rm -rf $RPM_BUILD_ROOT
%files
%defattr(-, root, root)
%doc AUTHORS README COPYING
%{_libdir}/libevas.so.*
%{_libdir}/libevas.la
%doc AUTHORS COPYING COPYING-PLAIN README
%{_libdir}/*.so.*
%{_libdir}/*.la
%{_bindir}/evas_*
%{_datadir}/%{name}
%files devel
%defattr(-, root, root)
%doc doc/html
%{_libdir}/libevas.so
%{_libdir}/libevas.a
%{_libdir}/*.so
%{_libdir}/*.a
%{_bindir}/evas-config
%{_libdir}/pkgconfig/evas.pc
%{_includedir}/Evas*
%{_libdir}/pkgconfig/*
%{_includedir}/*.h
%changelog

View File

@ -1,122 +0,0 @@
#!/bin/sh
PROJ="evas"
SKIFF="/skiff/local"
HOSTARCH="i686-pc-linux-gnu"
TARGETCPU="arm"
TARGETARCH=$TARGETCPU"-pc-linux-gnu"
export EDB_CONFIG=$SKIFF"/"$TARGETCPU"-linux/bin/edb-config"
export EET_CONFIG=$SKIFF"/"$TARGETCPU"-linux/bin/eet-config"
export FREETYPE_CONFIG=$SKIFF"/"$TARGETCPU"-linux/bin/freetype-config"
make clean distclean
export CC=/skiff/local/bin/arm-linux-gcc
export CFLAGS=-O9
./configure \
--host=$HOSTARCH \
--build=$TARGETARCH \
--target=$TARGETARCH \
--disable-software-x11 \
--disable-directfb \
--enable-fb \
--disable-buffer \
--disable-software-qtopia \
--disable-gl-x11 \
--disable-cairo-x11 \
--enable-image-loader-png \
--enable-image-loader-jpeg \
--enable-image-loader-eet \
--disable-image-loader-edb \
--enable-font-loader-eet \
--disable-cpu-mmx \
--disable-cpu-sse \
--disable-cpu-altivec \
--enable-cpu-c \
--enable-scale-sample \
--enable-scale-smooth \
--enable-convert-yuv \
--disable-small-dither-mask \
--disable-convert-8-rgb-332 \
--disable-convert-8-rgb-666 \
--disable-convert-8-rgb-232 \
--disable-convert-8-rgb-222 \
--disable-convert-8-rgb-221 \
--disable-convert-8-rgb-121 \
--disable-convert-8-rgb-111 \
--disable-convert-16-rgb-565 \
--disable-convert-16-rgb-555 \
--disable-convert-16-rgb-444 \
--enable-convert-16-rgb-ipq \
--disable-convert-16-rgb-rot-0 \
--enable-convert-16-rgb-rot-270 \
--disable-convert-16-rgb-rot-90 \
--disable-convert-24-rgb-888 \
--disable-convert-24-bgr-888 \
--disable-convert-32-rgb-8888 \
--disable-convert-32-rgbx-8888 \
--disable-convert-32-bgr-8888 \
--disable-convert-32-bgrx-8888 \
--disable-convert-32-rgb-rot-0 \
--disable-convert-32-rgb-rot-270 \
--disable-convert-32-rgb-rot-90 \
--disable-valgrind
INST="/tmp/"$PROJ"-instroot"
sudo rm -rf $INST
make
for I in find . -name "*.la" -print; do
sed s:"/usr/local":$INST:g < $I > "/tmp/.sed.tmp"
sudo cp "/tmp/.sed.tmp" $I
rm -f "/tmp/.sed.tmp"
done
sudo \
make \
prefix=$INST \
exec_prefix=$INST \
bindir=$INST"/bin" \
sbindir=$INST"/sbin" \
sysconfdir=$INST"/etc" \
datadir=$INST"/share" \
includedir=$INST"/include" \
libdir=$INST"/lib" \
libexecdir=$INST"/libexec" \
localstatedir=$INST"/var/run" \
mandir=$INST"/share/man" \
infodir=$INST"/share/info" \
install
## FIXUPS
for I in $INST"/bin/"* $INST"/sbin/"* $INST"/libexec/"*; do
J=`echo $I | sed s:$TARGETARCH"-"::g`
sudo mv $I $J
done
CF=$INST"/bin/"$PROJ"-config"
sed s:"/usr/local":$SKIFF"/"$TARGETCPU"-linux":g < $CF > "/tmp/.sed.tmp"
sudo cp "/tmp/.sed.tmp" $CF
rm -f "/tmp/.sed.tmp"
for I in $INST"/lib/"*.la; do
sed s:"/usr/local":$SKIFF"/"$TARGETCPU"-linux":g < $I > "/tmp/.sed.tmp"
sudo cp "/tmp/.sed.tmp" $I
rm -f "/tmp/.sed.tmp"
done
## package it all up
PACK=$PROJ"-"$TARGETCPU"-inst.tar.gz"
DIR=$PWD
cd $INST
sudo tar zcvf $DIR"/"$PACK *
sudo chown $USER $DIR"/"$PACK
cd $DIR
sudo rm -rf $INST
## install it in our skiff tree
cd $SKIFF"/"$TARGETCPU"-linux"
sudo tar zxvf $DIR"/"$PACK

View File

@ -1,3 +1,3 @@
## Process this file with automake to produce Makefile.in
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = win32_gdi

View File

@ -1,3 +1,5 @@
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
evaslib.vcb \
evaslib.vcl \

View File

@ -1,3 +1,3 @@
## Process this file with automake to produce Makefile.in
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = lib bin

View File

@ -1,4 +1,4 @@
## Process this file with automake to produce Makefile.in
MAINTAINERCLEANFILES = Makefile.in
INCLUDES = \
-I. -I$(top_srcdir)/src/lib -I$(top_srcdir) \

View File

@ -1,3 +1,5 @@
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
ReadMe.txt \
StdAfx.cpp \

View File

@ -1,12 +1,9 @@
## Process this file with automake to produce Makefile.in
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = canvas data file engines imaging include
AUTOMAKE_OPTIONS = 1.4 foreign
# A list of all the files in the current directory which can be regenerated
MAINTAINERCLEANFILES = Makefile.in
INCLUDES = @freetype_cflags@ @x_cflags@ @qt_cflags@ @DIRECTFB_CFLAGS@ @gl_cflags@ \
-I. \
-I$(top_srcdir)/src/lib \

View File

@ -1,4 +1,4 @@
## Process this file with automake to produce Makefile.in
MAINTAINERCLEANFILES = Makefile.in
SUBDIRS = \
common \

View File

@ -1,3 +1,5 @@
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
evas_engine.h \
evas_engine.c \

View File

@ -1,4 +1,4 @@
## Process this file with automake to produce Makefile.in
MAINTAINERCLEANFILES = Makefile.in
EXTRA_DIST = \
evas_common.h \