Permalink
Browse files

Added autotools to build system

  • Loading branch information...
joehillen authored and jpobst committed May 26, 2010
1 parent 54039d7 commit c8bebea36a4ecfcbf3c278417d5a315b5d18596d
Showing with 203 additions and 17 deletions.
  1. +11 −15 Makefile → Makefile.am
  2. +141 −0 autogen.sh
  3. +49 −0 configure.ac
  4. +0 −2 launcher
  5. +2 −0 pinta.in
@@ -1,6 +1,3 @@
PACKAGE = pinta
PREFIX = /usr
VERSION = 0.4
BINFILES = \
bin/Pinta.exe \
bin/Pinta.Core.dll \
@@ -23,7 +20,7 @@ help:
# target: build - Build Pinta.
build: Pinta.sln
xbuild Pinta.sln
$(XBUILD) Pinta.sln
# target: list - List source files.
list:
@@ -38,8 +35,7 @@ list:
clean: cleanobj
# target: cleanall - Removes build files.
cleanall: cleanobj cleanbin
rm -v $(PACKAGE)
cleanall: distclean cleanobj cleanbin
# target: cleanbin - Removes built files.
cleanbin:
@@ -50,18 +46,18 @@ cleanobj:
find . -type d -name obj | xargs rm -rvf
# target: install - Installs Pinta.
install: launcher $(BINFILES) $(EXTENSIONS)
mkdir -p $(PREFIX)/bin
mkdir -p $(PREFIX)/lib/$(PACKAGE)
mkdir -p $(PREFIX)/lib/$(PACKAGE)/Extensions
install -v -m 555 -t $(PREFIX)/lib/$(PACKAGE)/ $(BINFILES)
install -v -m 555 -t $(PREFIX)/lib/$(PACKAGE)/Extensions/ $(EXTENSIONS)
install -v -m 555 launcher $(PREFIX)/bin/$(PACKAGE)
install: pinta $(BINFILES) $(EXTENSIONS)
mkdir -p $(prefix)/bin
mkdir -p $(prefix)/lib/$(PACKAGE)
mkdir -p $(prefix)/lib/$(PACKAGE)/Extensions
install -v -m 555 -t $(prefix)/lib/$(PACKAGE)/ $(BINFILES)
install -v -m 555 -t $(prefix)/lib/$(PACKAGE)/Extensions/ $(EXTENSIONS)
install -v -m 555 pinta $(prefix)/bin/$(PACKAGE)
# target: uninstall - Uninstalls Pinta.
uninstall:
rm -vf $(PREFIX)/bin/$(PACKAGE)
rm -rvf $(PREFIX)/lib/$(PACKAGE)
rm -vf $(prefix)/bin/$(PACKAGE)
rm -rvf $(prefix)/lib/$(PACKAGE)
# target: dist - Default distribution type: disttar
dist: disttar
@@ -0,0 +1,141 @@
#! /bin/sh
# Compares software version numbers
# 10 means EQUAL
# 11 means GREATER THAN
# 9 means LESS THAN
check_version() {
test -z "$1" && return 1
local ver1=$1
while test `echo $ver1 | egrep -c [^0123456789.]` -gt 0 ; do
char=`echo $ver1 | sed 's/.*\([^0123456789.]\).*/\1/'`
char_dec=`echo -n "$char" | od -b | head -1 | awk {'print $2'}`
ver1=`echo $ver1 | sed "s/$char/.$char_dec/g"`
done
test -z "$2" && return 1
local ver2=$2
while test `echo $ver2 | egrep -c [^0123456789.]` -gt 0 ; do
char=`echo $ver2 | sed 's/.*\([^0123456789.]\).*/\1/'`
char_dec=`echo -n "$char" | od -b | head -1 | awk {'print $2'}`
ver2=`echo $ver2 | sed "s/$char/.$char_dec/g"`
done
ver1=`echo $ver1 | sed 's/\.\./.0/g'`
ver2=`echo $ver2 | sed 's/\.\./.0/g'`
do_version_check "$ver1" "$ver2"
}
do_version_check() {
test "$1" -eq "$2" && return 10
ver1front=`echo $1 | cut -d "." -f -1`
ver1back=`echo $1 | cut -d "." -f 2-`
ver2front=`echo $2 | cut -d "." -f -1`
ver2back=`echo $2 | cut -d "." -f 2-`
if test "$ver1front" != "$1" || test "$ver2front" != "$2" ; then
test "$ver1front" -gt "$ver2front" && return 11
test "$ver1front" -lt "$ver2front" && return 9
test "$ver1front" -eq "$1" || test -z "$ver1back" && ver1back=0
test "$ver2front" -eq "$2" || test -z "$ver2back" && ver2back=0
do_version_check "$ver1back" "$ver2back"
return $?
else
test "$1" -gt "$2" && return 11 || return 9
fi
}
PROJECT=Pinta
FILE=
CONFIGURE=configure.ac
: ${AUTOCONF=autoconf}
: ${AUTOHEADER=autoheader}
: ${AUTOMAKE=automake}
: ${ACLOCAL=aclocal}
: ${MONO=mono}
: ${XBUILD=xbuild}
DIE=0
($AUTOCONF --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have autoconf installed to compile $PROJECT."
echo "Download the appropriate package for your distribution,"
echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
DIE=1
}
($AUTOMAKE --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have automake installed to compile $PROJECT."
echo "Get ftp://sourceware.cygnus.com/pub/automake/automake-1.4.tar.gz"
echo "(or a newer version if it is available)"
DIE=1
}
($MONO --version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have mono runtime installed to compile $PROJECT."
DIE=1
}
($XBUILD /version) < /dev/null > /dev/null 2>&1 || {
echo
echo "You must have mono-xbuild installed to compile $PROJECT."
DIE=1
}
if test "$DIE" -eq 1; then
exit 1
fi
xbuild_version=`xbuild /version | grep '^XBuild' | egrep -o '([0-9]+\.?){2,}'`
check_version "$xbuild_version" "2.4" 2> /dev/null
if test $? -eq 9; then
echo
echo "A newer version of XBuild is required to build $PROJECT ( >= 2.4 )"
exit 1
fi
mono_version=`xbuild /version | grep '^Mono' | egrep -o '([0-9]+\.?){2,}'`
check_version "$xbuild_version" "2.4" 2> /dev/null
if test $? -eq 9; then
echo
echo "A newer version of Mono is required to run $PROJECT ( >= 2.4 )"
exit 1
fi
#Check directoy
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
cd $srcdir
TEST_TYPE=-f
aclocalinclude="-I . $ACLOCAL_FLAGS"
test $TEST_TYPE $FILE || {
echo "You must run this script in the top-level $PROJECT directory"
exit 1
}
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
echo "Running $ACLOCAL $aclocalinclude ..."
$ACLOCAL $aclocalinclude
echo "Running $AUTOMAKE --gnu $am_opt ..."
$AUTOMAKE --add-missing --gnu $am_opt
echo "Running $AUTOCONF ..."
$AUTOCONF
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
@@ -0,0 +1,49 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT([pinta], [0.4])
AM_INIT_AUTOMAKE([foreign])
AC_PREFIX_DEFAULT([/usr])
AC_PROG_INSTALL
dnl pkg-config
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
if test "x$PKG_CONFIG" = "xno"; then
AC_MSG_ERROR([You need to install pkg-config])
fi
AC_PATH_PROG(XBUILD, xbuild, no)
AC_PATH_PROG(MONO, mono, no)
if test "x$XBUILD" = "xno"; then
AC_MSG_ERROR([XBuild not found])
fi
if test "x$MONO" = "xno"; then
AC_MSG_ERROR([No mono runtime found])
fi
AC_SUBST(XBUILD)
AC_SUBST(MONO)
PKG_CHECK_MODULES([GLADE_SHARP_20], [glade-sharp-2.0])
PKG_CHECK_MODULES([GLIB_SHARP_20], [glib-sharp-2.0])
PKG_CHECK_MODULES([GTK_SHARP_20], [gtk-sharp-2.0])
PKG_CHECK_MODULES([MONO_CAIRO], [mono-cairo])
AC_CONFIG_FILES([
Makefile
pinta
])
AC_OUTPUT
cat <<EOF
${PACKAGE}-${VERSION}
Build Environment
Install Prefix: ${prefix}
XBuild Path: ${XBUILD}
Mono Runtime: ${MONO}
EOF

This file was deleted.

Oops, something went wrong.
@@ -0,0 +1,2 @@
#!/bin/sh
exec @MONO@ @prefix@/lib/@PACKAGE@/Pinta.exe "$@"

0 comments on commit c8bebea

Please sign in to comment.