Skip to content

How to compile under Windows

thiagoarrais edited this page Sep 13, 2010 · 6 revisions

Install the MinGW’s compilers

Download and run the automated MinGW installer from http://sourceforge.net/project/showfiles.php?group_id=2435

The package to be installed should be “Current” and the components should include at least “MinGW base tools”, “g++ compiler” and “MinGW make”

Install Perl and Python

Download and run the ActivePerl installer from http://www.activestate.com/activeperl/

Download and run a Python installer from http://www.python.org/download/ (you will probably be happier if you stick to the 2.6 series)

Install MSYS

Download and run the installer from http://downloads.sourceforge.net/mingw/MSYS-1.0.10.exe

When the post-install script kicks in asking if you want to run it, say yes and enter the location where you installed MinGW. Remember you shoudn’t use backslashes, but plain old slashes. Most people will have installed MinGW to the default location and will have to enter c:/mingw here.

Before running MSYS, you’ll need to adjust some of its environment variables at c:\msys\1.0\etc\profile (considering you used the default install location):

    export PATH=$PATH:/c/Python26:/opt/bin
    export INTLTOOL_PERL="/c/Perl/bin/perl"
    export PKG_CONFIG_PATH="/opt/lib/pkgconfig"
    export ACLOCAL_FLAGS="-I /opt/share/aclocal"

Please note that you may need to adjust the path to Python and to the Perl binary if you did not install them to the standard locations.

Install MSYS libraries

Download the built for MSYS (binary) versions of autoconf, automake, crypt, regex and perl from the MSYS supplementary tools package at http://sourceforge.net/project/showfiles.php?group_id=2435. autoconf2.5-2.61-1-bin.tar.bz2, automake1.10-1.10-1-bin.tar.bz2, crypt-1.1-1-MSYS-1.0.11-1.tar.bz2, regex-0.12-MSYS-1.0.11-1.tar.bz2 and perl-5.6.1-MSYS-1.0.11-1.tar.bz2 are good, but feel free to go with newer versions if available.

Download also the updated m4 from http://downloads.sourceforge.net/mingw/m4-1.4.7-MSYS.tar.bz2

Extract all archives to / from the MSYS shell (with tar xvjf). Change to directory /usr/local/bin and create symbolic links from the versioned files to their canonical names:

    cd /usr/local/bin
    ln -s autoconf-2.61 autoconf
    ln -s autoreconf-2.61 autoreconf
    ln -s autoheader-2.61 autoheader
    ln -s autom4te-2.61 autom4te
    ln -s automake-1.10 automake
    ln -s aclocal-1.10 aclocal

Remember to adjust the version suffixes as needed.

Compile and install gperf and intltool

Download gperf (sources) from http://www.gnu.org/software/gperf/

Download intltool (sources) from http://ftp.gnome.org/pub/gnome/sources/intltool/

Download gnome-common (sources) from http://ftp.acc.umu.se/pub/gnome/sources/gnome-common/

Extract, compile and install them:

    tar xvzf /c/temp/gperf-3.0.3.tar.gz
    cd gperf-3.0.3/
    ./configure --prefix=/opt
    make
    make install

    cd ..
    tar xvzf /c/temp/intltool-0.40.5.tar.gz
    cd intltool-0.40.5/
    PERL=$INTLTOOL_PERL ./configure --prefix=/opt
    make
    make install

    cd ..
    tar xvzf /c/temp/gnome-common-2.24.0.tar.gz
    cd gnome-common-2.24.0/
    ./configure --prefix=/opt
    make
    make install

Just remember to update the file names in case you downloaded other versions.

Install GTK+ libraries and dependencies

Download the binaries and dev files for GLib, GTK+, Pango, ATK, cairo, GNU libiconv, gettext-runtime, libpng and pkg-config from http://www.gtk.org/download-windows.html.

Download the binaries and dev files of libtool from http://gnuwin32.sourceforge.net/packages/libtool.htm

Download gettext-tools and proxy-libintl from http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/

Unpack everything to c:\msys\1.0\opt (again, your particular path may be different if you didn’t install MSYS to the standard location). After unpacking, edit bin/libtoolize and change prefix from c:/progra~1/LibTool to /opt

Fake a gtk-doc installation

gtk-doc cannot (or is difficult to) be built under Windows, so we need to fake it. Download the sources from http://ftp.gnome.org/pub/GNOME/sources/gtk-doc/ (version 1.11 works, but you may want to use a later one if available) and extract the archive somewhere.

Copy gtkdocize.in to gtkdocize and edit the copy changing the following:

    @PACKAGE@ to gtk-doc
    @VERSION@ to 1.11
    @prefix@ to /opt
    @datarootdir@ to /opt/share
    @datadir@ to /opt/share

Everything should be near the top of the file, just search and replace to make sure that you’ve got everything done. Then copy gtk-doc.m4 to /opt/share/aclocal, the newly created gtkdocize to /opt/bin and gtk-doc.make to /opt/share/gtk-doc/data:

    cp gtk-doc.m4 /opt/share/aclocal
    cp gtkdocize /opt/bin
    mkdir -p /opt/share/gtk-doc/data/
    cp gtk-doc.make /opt/share/gtk-doc/data

Finally, compile and install vte-lite itself

All dependencies should be covered by this point and you can safely build and install vte-lite from the dev repo. Start by generating the files needed for the build:

    ./autogen.sh

In case the autotools complain about the AM_NLS and autogen terminates with an error, just repeat the execution and everything should be ok. The next step is to run the generated configure script that generates the Makefiles:

    ./configure --prefix=/opt

Before running make, edit src/Makefile adding -lregex to VTE_LIBS and -I/include -I/opt/include to VTE_CFLAGS and GTK_CFLAGS. After that you should be ready to finish the build and install:

    make
    make install

At this point, you should be able to test your installation by running a sample program. Just try the echo program at http://gist.github.com/73839:

    gcc vtelite-echo.c -o vtelite-echo.exe `pkg-config --cflags --libs vte`
    ./vtelite-echo
Clone this wiki locally