ali@5: bookloupe ali@5: ========= ali@0: ali@0: General installation instructions can be found in INSTALL. The following ali@0: aim to give a quick overview and some help for specific systems. Documentation ali@5: for bookloupe itself can be found in doc/bookloupe.txt and for the test ali@5: framework in doc/loupe-test.txt. ali@0: ali@0: Linux ali@0: ----- ali@0: ali@0: You should be able to use the standard: ali@0: ali@0: % ./configure ali@0: % make ali@0: % sudo make install ali@0: ali@0: If you get an error about no package 'glib-2.0' found, then you need to ali@0: install the development package for glib2. Under Fedora, RHEL and friends ali@0: that would be: ali@0: ali@0: % sudo yum install gcc pkgconfig glib2-devel ali@0: ali@0: Under Debian, Ubuntu and friends that would be: ali@0: ali@0: % sudo apt-get install gcc pkgconfig glib2-devel ali@0: ali@0: Microsoft Windows ali@0: ----------------- ali@0: ali@19: It should be possible to use either MSYS (http://www.mingw.org/wiki/MSYS) ali@19: or cygwin (http://www.cygwin.com/) to build on a Windows machine. You'll ali@19: need a copy of the development package for glib and its dependencies ali@19: from http://www.gtk.org/download/win32.php. ali@0: ali@0: It's much easier to build using a cross-compiler from Linux, if you have ali@0: access to such a system. Under Fedora, RHEL and friends you can do this ali@0: with: ali@0: ali@0: % sudo yum install mingw32-gcc pkgconfig mingw32-glib2-static \ ali@0: mingw32-gettext-static mingw32-iconv-static ali@0: % ./configure --host=i686-w64-mingw32 --disable-shared \ ali@5: --bindir=/bookloupe --datadir=/ ali@0: % make ali@0: % mkdir build ali@0: % make install DESTDIR=`pwd`/build ali@0: ali@5: The contents of the build/bookloupe directory can then be copied to a ali@0: Microsoft Windows machine. ali@0: ali@0: Depending on the version of mingw32-gcc you use, you may need to specify a ali@0: different host type. If you're not sure look and see what the cross-compiler ali@0: is called (eg., i686-pc-mingw32-gcc) and use the prefix as the host type. ali@0: ali@0: Mac ali@0: --- ali@0: ali@95: You will need the command line tools for any of the procedures described ali@95: below. If you don't already have them, install Xcode (it's a free download). ali@95: ali@95: The simplest and least intrusive means to build on a Mac is to use Frau Sma's ali@95: Homebrew formula. However, Homebrew is not compatible with Fink so if you ali@95: have previously used Fink then you need an alternative solution, such as ali@95: MacPorts (see below). ali@95: ali@95: It may also be possible to use Fink itself. ali@95: ali@95: Mac using Frau Sma's Homebrew formula ali@95: ------------------------------------- ali@95: ali@95: https://github.com/frau-sma/homebrew-bookloupe ali@95: ali@95: The README will be displayed by default. Follow its instructions to ali@95: install bookloupe on your Mac. ali@95: ali@95: Creating statically linked binaries on a Mac using Homebrew ali@95: ----------------------------------------------------------- ali@95: ali@95: If you want to be able to distribute binaries of bookloupe to other Mac ali@95: users, then they need to be statically (rather than dynamically) linked. ali@95: Fundamentally this means that glib and its dependencies are included in ali@95: the binary rather than being linked into the program by the Operating ali@95: System each time it is run. ali@0: ali@10: http://mxcl.github.com/homebrew/ ali@0: ali@95: Install Homebrew according to its instructions. If you already had Homebrew ali@95: before, make sure it's all up to date and “raring to brew.” For that, you ali@95: want to run: ali@10: ali@95: $ brew update ali@10: ali@95: and ali@10: ali@95: $ brew doctor ali@10: ali@95: from your terminal. Then you need to edit the formula for glib and each of its ali@95: dependencies (gettext and libffi at the time of writing) using something like: ali@10: ali@10: $ brew edit gettext ali@10: ali@10: Each time find the args statement which includes --prefix and insert ali@10: --disable-shared,for example change: ali@10: ali@10: args = ["--disable-dependency-tracking", "--disable-rebuilds", ali@10: "--prefix=#{prefix}", ali@10: "--disable-dtrace"] ali@10: ali@10: to ali@10: ali@10: args = ["--disable-dependency-tracking", "--disable-rebuilds", ali@10: "--disable-shared", ali@10: "--prefix=#{prefix}", ali@10: "--disable-dtrace"] ali@10: ali@10: and then ali@10: ali@10: $ brew install glib ali@10: ali@10: before installing bookloupe as normal, but with the extra flag to configure: ali@10: ali@10: $ ./configure --disable-shared ali@10: $ make ali@10: $ make install ali@10: ali@10: Note that if you have previously used dynamic linking this may not work. ali@10: (Homebrew doesn't seem to create .la files in a form that libtool can use ali@10: when it is asked to prefer static libraries to dynamic ones.) Removing the ali@10: dynamic libraries first will solve this problem. ali@10: ali@95: Mac using MacPorts ali@95: ------------------ ali@95: ali@95: Install MacPorts from http://www.macports.org/. ali@95: ali@95: Install pkgconfig (required to build glib) and then glib itself: ali@95: ali@95: $ sudo port install pkgconfig ali@95: $ sudo port install glib2 ali@95: ali@95: Then install bookloupe as normal, telling configure where to find glib's ali@95: package configuration file: ali@95: ali@95: $ ./configure PKG_CONFIG_PATH=/opt/local/lib/pkgconfig ali@95: $ make ali@95: $ make install