cross-compile cleanly!

SVN revision: 9003
This commit is contained in:
Carsten Haitzler 2004-02-17 07:13:12 +00:00
parent f11447ab8a
commit cac7272808
4 changed files with 178 additions and 94 deletions

View File

@ -4,10 +4,13 @@ dnl Process this file with autoconf to produce a configure script.
rm -f config.cache
AC_INIT(configure.in)
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AC_ISC_POSIX
AM_INIT_AUTOMAKE(edje, 0.0.1)
AM_CONFIG_HEADER(config.h)
AC_ISC_POSIX
AC_PROG_CC
AM_PROG_CC_STDC
AC_HEADER_STDC
@ -80,33 +83,89 @@ dnl Set PACKAGE_SOURCE_DIR in config.h.
packagesrcdir=`cd $srcdir && pwd`
AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "${packagesrcdir}", [Source code directory])
AC_MSG_CHECKING(whether to build only fb support)
have_fb_only="no"
AC_ARG_ENABLE(fb-only, [ --enable-fb-only enable building of fb support only ], [
if [ test "$enableval" = "yes" ]; then
AC_MSG_RESULT(yes)
have_fb_only="yes"
else
AC_MSG_RESULT(no)
have_fb_only="no"
fi
], [
AC_MSG_RESULT($have_fb_only)
]
)
AC_MSG_CHECKING(whether to build edje_cc)
have_edje_cc="yes"
AC_ARG_ENABLE(edje-cc, [ --disable-edje-cc disable building of edje_cc ], [
if [ test "$enableval" = "yes" ]; then
AC_MSG_RESULT(yes)
have_edje_cc="yes"
else
AC_MSG_RESULT(no)
have_edje_cc="no"
fi
], [
AC_MSG_RESULT($have_edje_cc)
]
)
edje_def=""
if test "x$have_fb_only" = "xyes"; then
edje_def="-DEDJE_FB_ONLY"
fi
AC_SUBST(edje_def)
EDJE_CC_PRG=""
if test "x$have_edje_cc" = "xyes"; then
AM_CONDITIONAL(BUILD_EDJE_CC, true)
EDJE_CC_PRG="edje_cc"
else
AM_CONDITIONAL(BUILD_EDJE_CC, false)
fi
AC_SUBST(EDJE_CC_PRG)
AC_ARG_WITH(eet,
[ --with-eet=DIR use eet in <DIR>],
[CFLAGS="$CFLAGS -I$withval/include"
LIBS="-L$withval/lib $LIBS"])
LIBS="-L$withval/lib $LIBS"])
have_eet="no";
AC_CHECK_HEADER(Eet.h,
[ have_eet="yes" ],
[ have_eet="no" ]
)
AC_PATH_GENERIC(eet, , [
AC_SUBST(eet_libs)
AC_SUBST(eet_cflags)],
AC_MSG_ERROR(Cannot find eet: Is eet-config in path?))
eet_libs=`eet-config --libs`
eet_cflags=`eet-config --cflags`
if test "x$have_eet" = "xyes"; then
if [ test -z "$EET_CONFIG" ]; then EET_CONFIG="eet-config"; fi
eet_cflags=`$EET_CONFIG --cflags`
eet_libs=`$EET_CONFIG --libs`
else
AC_MSG_ERROR(Cannot find Eet.h)
exit -1
fi
AC_SUBST(eet_cflags)
AC_SUBST(eet_libs)
AC_ARG_WITH(imlib2,
[ --with-imlib2=DIR use imlib2 in <DIR>],
[CFLAGS="$CFLAGS -I$withval/include"
LIBS="-L$withval/lib $LIBS"])
AC_PATH_GENERIC(imlib2, , [
AC_SUBST(imlib2_libs)
AC_SUBST(imlib2_cflags)],
AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in path?))
imlib2_libs=`imlib2-config --libs`
imlib2_cflags=`imlib2-config --cflags`
imlib2_cflags=""
imlib2_libs=""
if test "x$have_edje_cc" = "xyes"; then
AC_ARG_WITH(imlib2,
[ --with-imlib2=DIR use imlib2 in <DIR>],
[CFLAGS="$CFLAGS -I$withval/include"
LIBS="-L$withval/lib $LIBS"])
AC_PATH_GENERIC(imlib2, , [
AC_SUBST(imlib2_libs)
AC_SUBST(imlib2_cflags)],
AC_MSG_ERROR(Cannot find imlib2: Is imlib2-config in path?))
imlib2_libs=`imlib2-config --libs`
imlib2_cflags=`imlib2-config --cflags`
fi
AC_SUBST(imlib2_cflags)
AC_SUBST(imlib2_libs)
@ -119,8 +178,10 @@ AC_PATH_GENERIC(evas, , [
AC_SUBST(evas_libs)
AC_SUBST(evas_cflags)],
AC_MSG_ERROR(Cannot find evas: Is evas-config in path?))
evas_libs=`evas-config --libs`
evas_cflags=`evas-config --cflags`
if [ test -z "$EVAS_CONFIG" ]; then EVAS_CONFIG="evas-config"; fi
evas_cflags=`$EVAS_CONFIG --cflags`
evas_libs=`$EVAS_CONFIG --libs`
AC_SUBST(evas_cflags)
AC_SUBST(evas_libs)
@ -133,6 +194,10 @@ AC_CHECK_HEADERS(Evas_Engine_GL_X11.h, [], [], [
#include <Evas.h>
])
AC_CHECK_HEADERS(Evas_Engine_FB.h, [], [], [
#include <Evas.h>
])
AC_ARG_WITH(ecore,
[ --with-ecore=DIR use ecore in <DIR>],
[CFLAGS="$CFLAGS -I$withval/include"
@ -142,8 +207,10 @@ AC_PATH_GENERIC(ecore, , [
AC_SUBST(ecore_libs)
AC_SUBST(ecore_cflags)],
AC_MSG_ERROR(Cannot find ecore: Is ecore-config in path?))
ecore_libs=`ecore-config --libs`
ecore_cflags=`ecore-config --cflags`
if [ test -z "$ECORE_CONFIG" ]; then ECORE_CONFIG="ecore-config"; fi
ecore_cflags=`$ECORE_CONFIG --cflags`
ecore_libs=`$ECORE_CONFIG --libs`
AC_SUBST(ecore_cflags)
AC_SUBST(ecore_libs)

View File

@ -1,72 +1,83 @@
#!/bin/sh
PROJ="edje"
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"
export EVAS_CONFIG=$SKIFF"/"$TARGETCPU"-linux/bin/evas-config"
export ECORE_CONFIG=$SKIFF"/"$TARGETCPU"-linux/bin/ecore-config"
make clean distclean
./configure
export CC=/skiff/local/bin/arm-linux-gcc
export CFLAGS=-O9
./configure \
--host=$HOSTARCH \
--build=$TARGETARCH \
--target=$TARGETARCH \
--disable-edje-cc \
--enable-fb-only
CC="/skiff/local/bin/arm-linux-gcc"
ST="/skiff/local/bin/arm-linux-strip"
CFLAGS="-O2"
INST="/tmp/"$PROJ"-instroot"
sudo rm -rf $INST
rm -rf "build"
mkdir "build"
DST=`pwd`"/build";
make
mkdir $DST"/lib";
mkdir $DST"/bin";
mkdir $DST"/include";
mkdir $DST"/share";
mkdir $DST"/share/edje";
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
pushd src
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
pushd lib
LIB="edje"
$CC \
*.c \
-DEDJE_FB_ONLY \
$CFLAGS \
-I. \
-I../.. \
-I/skiff/local/include \
-shared -fPIC -DPIC \
-Wl,-soname -Wl,"lib"$LIB".so.0" \
-o "lib"$LIB".so.0.0.1"
$ST -g "lib"$LIB".so.0.0.1"
rm -f "lib"$LIB".so"
ln -s "lib"$LIB".so.0.0.1" "lib"$LIB".so"
rm -f "lib"$LIB".so.0"
ln -s "lib"$LIB".so.0.0.1" "lib"$LIB".so.0"
rm -f "lib"$LIB".so.0.0"
ln -s "lib"$LIB".so.0.0.1" "lib"$LIB".so.0.0"
cp -a "lib"$LIB".so"* $DST"/lib";
cp -a Edje.h $DST"/include";
popd
## FIXUPS
for I in $INST"/bin/"* $INST"/sbin/"* $INST"/libexec/"*; do
J=`echo $I | sed s:$TARGETARCH"-"::g`
sudo mv $I $J
done
pushd bin
BIN="edje"
$CC edje_main.c \
-DEDJE_FB_ONLY \
-I../.. -I../lib \
-I. \
-I/skiff/local/include \
-L. -L../lib \
-L/skiff/local/lib \
-ledje \
-lecore -lecore_evas -lecore_fb -lecore_ipc -lecore_con -lecore_job \
-levas -leet -ljpeg -lpng -lfreetype -lm -lz \
-o $BIN
$ST $BIN
cp -a $BIN $DST"/bin";
popd
popd
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"
mkdir $DST"/share/edje/data"
cp -ar data/test data/e_logo.eet $DST"/share/edje/data"
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"
PD=`pwd`
pushd "build"
tar zcvf $PD"/data.tar.gz" *
pushd "/skiff/local"
sudo tar zxvf $PD"/data.tar.gz"
popd
popd
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,20 +1,23 @@
## Process this file with automake to produce Makefile.in
INCLUDES = \
-I.. \
-I../lib \
-I../.. \
-I$(top_srcdir) \
-I$(top_builddir) \
-I$(top_srcdir)/lib \
-I$(top_builddir)/lib \
-I/usr/local/include \
-I$(top_srcdir)/bin \
-I$(top_srcdir)/src/lib \
@eet_cflags@ \
@evas_cflags@ \
@ecore_cflags@ \
@imlib2_cflags@
bin_PROGRAMS = edje edje_cc edje_ls
bin_PROGRAMS = \
edje \
edje_ls \
@EDJE_CC_PRG@
EXTRA_PROGRAMS = \
edje \
edje_ls \
edje_cc
edje_SOURCES = \
edje_main.c \
@ -26,6 +29,7 @@ $(top_builddir)/src/lib/libedje.la \
#edje_LDFLAGS = -static
edje_LDFLAGS =
edje_CPPFLAGS = @edje_def@
edje_DEPENDENCIES = $(top_builddir)/src/lib/libedje.la
@ -40,6 +44,7 @@ edje_cc_handlers.c
edje_cc_LDADD = \
$(top_builddir)/src/lib/libedje.la \
@imlib2_libs@
edje_cc_CPPFLAGS = @edje_def@
edje_cc_LDFLAGS =
@ -51,6 +56,7 @@ edje_ls.c
edje_ls_LDADD = \
$(top_builddir)/src/lib/libedje.la
edje_ls_CPPFLAGS = @edje_def@
edje_ls_LDFLAGS =

View File

@ -5,9 +5,8 @@ AUTOMAKE_OPTIONS = 1.4 foreign
# A list of all the files in the current directory which can be regenerated
MAINTAINERCLEANFILES = Makefile.in
LDFLAGS = -L/usr/local/lib
LDFLAGS =
INCLUDES = \
-I/usr/local/include \
-I$(top_srcdir) \
-I$(top_builddir) \
-I$(includedir) \
@ -30,5 +29,6 @@ edje_util.c \
edje_private.h
libedje_la_LIBADD = $(LDFLAGS) -lm @evas_libs@ @ecore_libs@ @eet_libs@
libedje_la_CPPFLAGS = @edje_def@
libedje_la_DEPENDENCIES = $(top_builddir)/config.h
libedje_la_LDFLAGS = -version-info 0:1:0