PIKApp/build/windows/jhbuild/README.md

2.5 KiB

Doing a Simple Build

To begin with, you need to install jhbuild, mingw-w64, and a few other build-related dependencies.

If you're using debian, install these packages:

sudo apt-get install build-essential mingw-w64 git jhbuild automake autoconf libtool libgtk2.0-dev ragel bison flex gperf gtk-doc-tools nasm ruby cmake libxml-simple-perl

From there, in theory, you can simply clone this repo, cd into it, and run:

./build

That will build the development version of the pika.

If you'd rather build the stable version of the pika, run this instead:

MODULE=pika-stable ./build

If you'd like to build with debigging information, run:

BUILD_FLAVOUR=dbg ./build

What if it doesn't work out of the box?

I've actually never had that work out of the box, so chances are you'll need to adjust things a bit.

If you get an error along the lines of no: command not found while building GTK+, then that means gdk-pixbuf-csource can't be found. You can fix this by installing your distro's GTK+ 2 development package. (libgtk2.0-dev on debian)

If you get an error that looks like this while building cairo:

In file included from getline.c:31:0:
cairo-missing.h:45:17: error: conflicting types for 'ssize_t'
In file included from /usr/lib/gcc/i486-mingw32/4.7.0/../../../../i486-mingw32/include/stdio.h:534:0,
	             from cairo-missing.h:36,
	             from getline.c:31:
/usr/lib/gcc/i486-mingw32/4.7.0/../../../../i486-mingw32/include/sys/types.h:118:18: note: previous declaration of 'ssize_t' was here
In file included from strndup.c:31:0:
cairo-missing.h:45:17: error: conflicting types for 'ssize_t'
In file included from /usr/lib/gcc/i486-mingw32/4.7.0/../../../../i486-mingw32/include/stdio.h:534:0,
	             from cairo-missing.h:36,
	             from strndup.c:31:
/usr/lib/gcc/i486-mingw32/4.7.0/../../../../i486-mingw32/include/sys/types.h:118:18: note: previous declaration of 'ssize_t' was here

Then you need to add -D_SSIZE_T_DEFINED to your MINGW_CFLAGS, like this:

export MINGW_CFLAGS="-D_SSIZE_T_DEFINED"

Other Scripts

There are a few other scripts included in this repo:

  • ./clean will remove all build artifacts (but leave the downloaded tarballs), leaving you with a clean setup.
  • ./mkarchive will create self extracting archives of the pika.
  • ./split-build will do a special build where it builds both pika-dev and pika-stable but the two builds share the same dependencies. The directories then needs to be merged using ./mkarchive.