SF.net SVN: geany-plugins:[896] trunk/geanylatex

frlan at users.sourceforge.net frlan at xxxxx
Thu Aug 13 20:24:07 UTC 2009


Revision: 896
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=896&view=rev
Author:   frlan
Date:     2009-08-13 20:24:06 +0000 (Thu, 13 Aug 2009)

Log Message:
-----------
GeanyLaTeX: Use waf instead of autotools for compiling plugin

Modified Paths:
--------------
    trunk/geanylatex/ChangeLog
    trunk/geanylatex/doc/geanylatex.tex
    trunk/geanylatex/src/geanylatex.h

Added Paths:
-----------
    trunk/geanylatex/waf
    trunk/geanylatex/wscript

Removed Paths:
-------------
    trunk/geanylatex/Makefile.am
    trunk/geanylatex/autogen.sh
    trunk/geanylatex/configure.in
    trunk/geanylatex/indent-all.sh
    trunk/geanylatex/makefile.win32
    trunk/geanylatex/src/Makefile.am

Modified: trunk/geanylatex/ChangeLog
===================================================================
--- trunk/geanylatex/ChangeLog	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/ChangeLog	2009-08-13 20:24:06 UTC (rev 896)
@@ -1,3 +1,8 @@
+2009-08-13  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
+
+ * Switch to waf and remove autotools build environment. Still experimental.
+
+
 2009-07-13  Frank Lanitz  <frank(at)frank(dot)uvena(dot)de>
 
  * Correct a tooltip by removing unneeded \t from it.

Deleted: trunk/geanylatex/Makefile.am
===================================================================
--- trunk/geanylatex/Makefile.am	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/Makefile.am	2009-08-13 20:24:06 UTC (rev 896)
@@ -1,21 +0,0 @@
-SUBDIRS = src po
-
-EXTRA_DIST =				\
-	autogen.sh				\
-	makefile.win32			\
-	po/LINGUAS				\
-	doc/geanylatex.tex		\
-	doc/geanylatex.pdf		\
-	doc/geanylatex.html		\
-	$(srcdir)/doc/img/*
-
-dist-bzip2: distdir
-	BZIP2=$(BZIP2_ENV) $(AMTAR) --bzip2 -chof $(distdir).tar.bz2 $(distdir)
-	-rm -rf $(distdir)
-
-sign:
-	if test -f $(PACKAGE)-$(VERSION).tar.gz; then \
-		gpg --detach-sign --digest-algo SHA512 $(PACKAGE)-$(VERSION).tar.gz; fi
-	if test -f $(PACKAGE)-$(VERSION).tar.bz2; then \
-		gpg --detach-sign --digest-algo SHA512 $(PACKAGE)-$(VERSION).tar.bz2; fi
-

Deleted: trunk/geanylatex/autogen.sh
===================================================================
--- trunk/geanylatex/autogen.sh	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/autogen.sh	2009-08-13 20:24:06 UTC (rev 896)
@@ -1,159 +0,0 @@
-#!/bin/sh
-# Run this to generate all the initial makefiles, etc.
-
-srcdir=`dirname $0`
-test -z "$srcdir" && srcdir=.
-
-DIE=0
-
-if [ -n "$GNOME2_DIR" ]; then
-	ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
-	LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
-	PATH="$GNOME2_DIR/bin:$PATH"
-	export PATH
-	export LD_LIBRARY_PATH
-fi
-
-(test -f $srcdir/configure.in) || {
-    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
-    echo " top-level package directory"
-    exit 1
-}
-
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`autoconf' installed."
-  echo "Download the appropriate package for your distribution,"
-  echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-(grep "^AC_PROG_INTLTOOL" $srcdir/configure.in >/dev/null) && {
-  (intltoolize --version) < /dev/null > /dev/null 2>&1 || {
-    echo 
-    echo "**Error**: You must have \`intltool' installed."
-    echo "You can get it from:"
-    echo "  ftp://ftp.gnome.org/pub/GNOME/"
-    DIE=1
-  }
-}
-
-(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.in >/dev/null) && {
-  (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`xml-i18n-toolize' installed."
-    echo "You can get it from:"
-    echo "  ftp://ftp.gnome.org/pub/GNOME/"
-    DIE=1
-  }
-}
-
-(grep "^AM_PROG_LIBTOOL" $srcdir/configure.in >/dev/null) && {
-  (libtool --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`libtool' installed."
-    echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
-    DIE=1
-  }
-}
-
-(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.in >/dev/null) && {
-  (grep "sed.*POTFILES" $srcdir/configure.in) > /dev/null || \
-  (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have \`glib' installed."
-    echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
-    DIE=1
-  }
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: You must have \`automake' installed."
-  echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-  NO_AUTOMAKE=yes
-}
-
-
-# if no automake, don't bother testing for aclocal
-test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
-  echo
-  echo "**Error**: Missing \`aclocal'.  The version of \`automake'"
-  echo "installed doesn't appear recent enough."
-  echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
-  DIE=1
-}
-
-if test "$DIE" -eq 1; then
-  exit 1
-fi
-
-if test -z "$*"; then
-  echo "**Warning**: I am going to run \`configure' with no arguments."
-  echo "If you wish to pass any to it, please specify them on the"
-  echo \`$0\'" command line."
-  echo
-fi
-
-case $CC in
-xlc )
-  am_opt=--include-deps;;
-esac
-
-for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.in -print`
-do 
-  dr=`dirname $coin`
-  if test -f $dr/NO-AUTO-GEN; then
-    echo skipping $dr -- flagged as no auto-gen
-  else
-    echo processing $dr
-    ( cd $dr
-
-      aclocalinclude="$ACLOCAL_FLAGS"
-
-      if grep "^AM_GLIB_GNU_GETTEXT" configure.in >/dev/null; then
-	echo "Creating $dr/aclocal.m4 ..."
-	test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
-	echo "Running glib-gettextize...  Ignore non-fatal messages."
-	echo "no" | glib-gettextize --force --copy
-	echo "Making $dr/aclocal.m4 writable ..."
-	test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
-      fi
-      if grep "^AC_PROG_INTLTOOL" configure.in >/dev/null; then
-        echo "Running intltoolize..."
-	intltoolize --copy --force --automake
-      fi
-      if grep "^AM_PROG_XML_I18N_TOOLS" configure.in >/dev/null; then
-        echo "Running xml-i18n-toolize..."
-	xml-i18n-toolize --copy --force --automake
-      fi
-      if grep "^AM_PROG_LIBTOOL" configure.in >/dev/null; then
-	if test -z "$NO_LIBTOOLIZE" ; then 
-	  echo "Running libtoolize..."
-	  libtoolize --force --copy
-	fi
-      fi
-      echo "Running aclocal $aclocalinclude ..."
-      aclocal $aclocalinclude
-      if grep "^AM_CONFIG_HEADER" configure.in >/dev/null; then
-	echo "Running autoheader..."
-	autoheader
-      fi
-      echo "Running automake --gnu $am_opt ..."
-      automake --add-missing --gnu $am_opt
-      echo "Running autoconf ..."
-      autoconf
-    )
-  fi
-done
-
-conf_flags="--enable-maintainer-mode"
-
-if test x$NOCONFIGURE = x; then
-  echo Running $srcdir/configure $conf_flags "$@" ...
-  $srcdir/configure $conf_flags "$@" \
-  && echo Now type \`make\' to compile. || exit 1
-else
-  echo Skipping configure process.
-fi

Deleted: trunk/geanylatex/configure.in
===================================================================
--- trunk/geanylatex/configure.in	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/configure.in	2009-08-13 20:24:06 UTC (rev 896)
@@ -1,61 +0,0 @@
-# Process this file with autoconf to produce a configure script.
-
-AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(geanylatex, 0.4)
-
-AM_CONFIG_HEADER(config.h)
-
-AC_PROG_CC
-
-AC_DISABLE_STATIC
-AM_PROG_LIBTOOL
-LIBTOOL="$LIBTOOL --silent"
-
-AC_PROG_INSTALL
-
-# checking for Geany
-PKG_CHECK_MODULES(GEANY, [geany >= 0.17])
-AC_SUBST(GTK_CFLAGS)
-AC_SUBST(GTK_LIBS)
-
-GEANY_VERSION=`$PKG_CONFIG --modversion geany`
-GTK_VERSION=`$PKG_CONFIG --modversion gtk+-2.0`
-
-# i18n
-GETTEXT_PACKAGE=geanylatex
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.])
-
-ALL_LINGUAS="`sed -e '/^#/d' $srcdir/po/LINGUAS`" # take all languages found in file po/LINGUAS
-
-AM_GLIB_GNU_GETTEXT
-# workaround for intltool bug (http://bugzilla.gnome.org/show_bug.cgi?id=490845)
-if test "x$MSGFMT" = "xno"; then
-	AC_MSG_ERROR([msgfmt not found. Please install the gettext package.])
-fi
-
-# intltool hack to define install_sh on Debian/Ubuntu systems
-if test "x$install_sh" = "x"; then
-	install_sh="`pwd`/install-sh"
-	AC_SUBST(install_sh)
-fi
-
-# get the plugin installed at the correct location for Geany
-# TODO find a way to NOT override --libdir command line option if given
-libdir="`$PKG_CONFIG --variable=libdir geany`/geany"
-
-
-AC_OUTPUT([
-Makefile
-src/Makefile
-po/Makefile.in
-])
-
-echo "----------------------------------------"
-echo "Install geanylatex plugin binary in   : ${libdir}"
-echo "Install geanylatex in                 : ${prefix}"
-echo "Using Geany version                   : ${GEANY_VERSION}"
-echo "Using GTK version                     : ${GTK_VERSION}"
-echo ""
-echo "Configuration is done OK."
-echo ""

Modified: trunk/geanylatex/doc/geanylatex.tex
===================================================================
--- trunk/geanylatex/doc/geanylatex.tex	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/doc/geanylatex.tex	2009-08-13 20:24:06 UTC (rev 896)
@@ -99,6 +99,7 @@
 		  \texttt{description}
 	\item Some general bugfixes and improvments. As always, see
 		  ChangeLog or svn log.
+	\item Switch to waf for building the plugin
 \end{itemize}
 
 \subsection*{GeanyLaTeX{} 0.4 -- 2009-05-26}
@@ -130,8 +131,8 @@
 or geany-devel. Please note that in order to compile and use this
 plugin, you need Geany 0.17 or later (Geany Plugin API v147 or higher).
 
-Furthermore you need, of course, a C compiler and the Make tool. The
-GNU versions of these tools are recommended. Also there should be a
+Furthermore you need, of course, a C compiler and python installed. The
+GNU version of the C compiler is recommended. Also there should be a
 working \LaTeX-environment on your System.
 
 There is no special need in RAM or CPU so the plugin should compile and
@@ -147,13 +148,13 @@
 
 \begin{figure}[h!]
 \begin{lstlisting}
-$ ./configure
-$ make
-$ make install %$
+$ ./waf configure
+$ ./waf build
+$ ./waf install %$
 \end{lstlisting}
 \end{figure}
 
-For more configuration details run \texttt{./configure --help}
+For more configuration details run \texttt{./waf --help}
 
 By default the plugin is getting installed into the lib subfolder of
 your found Geany installation. So if you have installed Geany to

Deleted: trunk/geanylatex/indent-all.sh
===================================================================
--- trunk/geanylatex/indent-all.sh	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/indent-all.sh	2009-08-13 20:24:06 UTC (rev 896)
@@ -1,4 +0,0 @@
-#!/bin/sh
-indent -bli0 -i8 -cli8 -npcs -l100 *.c
-rm *~
-

Deleted: trunk/geanylatex/makefile.win32
===================================================================
--- trunk/geanylatex/makefile.win32	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/makefile.win32	2009-08-13 20:24:06 UTC (rev 896)
@@ -1,60 +0,0 @@
-#
-# localwin32.mk is an optional file to override make variables.
-# Use localwin32.mk instead of editing variables as it is included in sub
-# makefiles.
-# localwin32.mk to set PREFIX instead of the default C:\libs
-# For MSYS use localwin32.mk to set CP and RM.
-# By default this will work in a Windows command prompt.
-
-CC = gcc
-CP = copy
-RM = del
-PREFIX = C:\libs
-
-GEANY_SRC = c:\geany_svn
-TARGET = geanylatex.dll
-.SUFFIXES: .c .o
--include localwin32.mk
-
-
-OBJS =	geanylatex.o
-INCLUDEDIRS=  -I. \
-              -I$(GEANY_SRC) \
-              -I$(GEANY_SRC)\src \
-              -I$(GEANY_SRC)\plugins \
-              -I$(GEANY_SRC)\tagmanager\include \
-              -I$(GEANY_SRC)\scintilla\include \
-              -I$(PREFIX)/include/gtk-2.0 \
-              -I$(PREFIX)/lib/gtk-2.0/include \
-              -I$(PREFIX)/include/atk-1.0 \
-              -I$(PREFIX)/include/pango-1.0 \
-              -I$(PREFIX)/include/cairo \
-              -I$(PREFIX)/include/glib-2.0 \
-              -I$(PREFIX)/lib/glib-2.0/include \
-              -I$(PREFIX)/include/gettext \
-              -I$(PREFIX)/include \
-              -I$(ASPELL_PREFIX)/interfaces/cc
-              
-ALL_GTK_LIBS= \
-	-L"$(PREFIX)/lib" \
-	-lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lpangowin32-1.0 -lgdi32 \
-	-lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl -liconv
-CCFLAGS=-Wall -O2 -mms-bitfields -DHAVE_CONFIG_H
-
-
-all: $(TARGET)
-
-deps.mak:
-	$(CC) -MM $(CCFLAGS) $(INCLUDEDIRS) src/*.c >deps.mak
-
-spellcheck.o:
-	$(CC) $(CCFLAGS) $(INCLUDEDIRS) -c $<
-
-$(TARGET): deps.mak $(OBJS)
-	$(CC) -shared $(OBJS) $(ALL_GTK_LIBS) -o $(TARGET)
-
-clean:
-	-$(RM) deps.mak *.o *.dll
-
-# Generate header dependencies with "make deps.mak"
-include deps.mak

Deleted: trunk/geanylatex/src/Makefile.am
===================================================================
--- trunk/geanylatex/src/Makefile.am	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/src/Makefile.am	2009-08-13 20:24:06 UTC (rev 896)
@@ -1,7 +0,0 @@
-lib_LTLIBRARIES = geanylatex.la
-geanylatex_la_SOURCES = geanylatex.c geanylatex.h datatypes.h latexencodings.c latexencodings.h letters.c letters.h bibtex.h bibtex.c bibtexlabels.c reftex.c reftex.h latexutils.c latexutils.h formatutils.c formatutils.h formatpatterns.c latexenvironments.h latexenvironments.c latexkeybindings.h latexkeybindings.c latexstructure.h latexstructure.c
-
-geanylatex_la_LDFLAGS = -module -avoid-version
-geanylatex_la_LIBADD  = @GEANY_LIBS@  $(INTLLIBS)
-
-AM_CFLAGS = @GEANY_CFLAGS@ -DLOCALEDIR=\""$(localedir)"\"

Modified: trunk/geanylatex/src/geanylatex.h
===================================================================
--- trunk/geanylatex/src/geanylatex.h	2009-08-13 10:47:14 UTC (rev 895)
+++ trunk/geanylatex/src/geanylatex.h	2009-08-13 20:24:06 UTC (rev 896)
@@ -25,7 +25,7 @@
 #ifndef GEANYLATEX_H
 #define GEANYLATEX_H
 
-#include <geanyplugin.h>
+#include "geanyplugin.h"
 #include <gtk/gtk.h>
 #include "datatypes.h"
 #include "letters.h"

Added: trunk/geanylatex/waf
===================================================================
--- trunk/geanylatex/waf	                        (rev 0)
+++ trunk/geanylatex/waf	2009-08-13 20:24:06 UTC (rev 896)
@@ -0,0 +1,153 @@
+#!/usr/bin/env python
+# encoding: utf-8
+# Thomas Nagy, 2005-2009
+
+"""
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+"""
+
+import os, sys
+if sys.hexversion<0x203000f: raise ImportError("Waf requires Python >= 2.3")
+
+if 'PSYCOWAF' in os.environ:
+	try:import psyco;psyco.full()
+	except:pass
+
+VERSION="1.5.7"
+REVISION="8edda22ed216daab7aed3d430dc291cf"
+INSTALL=''
+C1='#+'
+C2='#)'
+cwd = os.getcwd()
+join = os.path.join
+
+WAF='waf'
+def b(x):
+	return x
+
+if sys.hexversion>0x300000f:
+	WAF='waf3'
+	def b(x):
+		return x.encode()
+
+def err(m):
+	print(('\033[91mError: %s\033[0m' % m))
+	sys.exit(1)
+
+def unpack_wafdir(dir):
+	f = open(sys.argv[0],'rb')
+	c = "corrupted waf (%d)"
+	while 1:
+		line = f.readline()
+		if not line: err("run waf-light from a folder containing wafadmin")
+		if line == b('#==>\n'):
+			txt = f.readline()
+			if not txt: err(c % 1)
+			if f.readline()!=b('#<==\n'): err(c % 2)
+			break
+	if not txt: err(c % 3)
+	txt = txt[1:-1].replace(b(C1), b('\n')).replace(b(C2), b('\r'))
+
+	import shutil, tarfile
+	try: shutil.rmtree(dir)
+	except OSError: pass
+	try: os.makedirs(join(dir, 'wafadmin', 'Tools'))
+	except OSError: err("Cannot unpack waf lib into %s\nMove waf into a writeable directory" % dir)
+
+	os.chdir(dir)
+	tmp = 't.tbz2'
+	t = open(tmp,'wb')
+	t.write(txt)
+	t.close()
+
+	try:
+		t = tarfile.open(tmp)
+		for x in t: t.extract(x)
+		t.close()
+	except:
+		os.chdir(cwd)
+		try: shutil.rmtree(dir)
+		except OSError: pass
+		err("Waf cannot be unpacked, check that bzip2 support is present")
+
+	os.chmod(join('wafadmin','Tools'), 493)
+
+	os.unlink(tmp)
+
+	if sys.hexversion>0x300000f:
+		sys.path = [join(dir, 'wafadmin')] + sys.path
+		import py3kfixes
+		py3kfixes.fixdir(dir)
+
+	os.chdir(cwd)
+
+def test(dir):
+	try: os.stat(join(dir, 'wafadmin')); return os.path.abspath(dir)
+	except OSError: pass
+
+def find_lib():
+	name = sys.argv[0]
+	base = os.path.dirname(os.path.abspath(name))
+
+	#devs use $WAFDIR
+	w=test(os.environ.get('WAFDIR', ''))
+	if w: return w
+
+	#waf-light
+	if name.endswith('waf-light'):
+		w = test(base)
+		if w: return w
+		err("waf-light requires wafadmin -> export WAFDIR=/folder")
+
+	dir = "/lib/%s-%s-%s/" % (WAF, VERSION, REVISION)
+	for i in [INSTALL,'/usr','/usr/local','/opt']:
+		w = test(i+dir)
+		if w: return w
+
+	#waf-local
+	s = '.%s-%s-%s'
+	if sys.platform == 'win32': s = s[1:]
+	dir = join(base, s % (WAF, VERSION, REVISION))
+	w = test(dir)
+	if w: return w
+
+	#unpack
+	unpack_wafdir(dir)
+	return dir
+
+wafdir = find_lib()
+w = join(wafdir, 'wafadmin')
+t = join(w, 'Tools')
+sys.path = [w, t] + sys.path
+
+import Scripting
+Scripting.prepare(t, cwd, VERSION, wafdir)
+sys.exit(0)
+
+#==>

@@ Diff output truncated at 100000 characters. @@

This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Plugins-Commits mailing list