From: Andy S. <And...@co...> - 2010-05-22 15:10:47
|
diffing dir... Sat May 22 10:25:12 EDT 2010 Jens Petersen <pet...@ha...> * update INSTALL Ignore-this: 91efe1d455ef4068f3381cf7619f10fa { hunk ./INSTALL 5 -The library currently wraps most functions from the Gtk+ 2.8 libraries. -Furthermore there is support for cairo, cairo svg loader, pango, the libglade -UI loader, the Gtk+ OpenGL extension, the SourceView widget, the GConf -configuration system, and the Mozilla rendering engine embedded in a widget. +Gtk2hs is a set of Haskell packages wrapping the GTK GUI stack: hunk ./INSTALL 7 -The GHC Haskell compiler, version 6.0 or greater, is required. -Gtk2Hs is known to compile on Linux, Windows, OSX, FreeBSD, and Solaris. - -These instruuctions are about building Gtk2Hs from source. If you would rather -install a binary (pre-compiled) package, please check the Gtk2Hs web site. - -Building --------- - -This section assumes that you are building a source distribution (.tar.gz). -If you are building on Windows, read "Building on Windows" first. If you -are using the darcs version, please read "Building from darcs". - -The following assumes that the sources are in ~/gtk2hs. - -1. Run the configure script. ----------------------------- - -The configure script has several useful options, particularly: - ---with-hc=<path to your ghc> - Uses the specified GHC for compilation and for installation of the package. - ---with-hcflags=<path to your ghc> - If you find that you need to pass any special flags to the Haskell compiler - then use this option to specify them. This overrides the default flags which - is just "-O" to compile using optimisations. Use -O0 for a quicker build. - ---enable-profiling - Build profiling versions of all the libraries in addition to the normal ones. - ---disable-split-objs - By default the libraries are built using GHC's 'split-objs' feature. This - makes for considerably smaller binaries since it allows the linker to - include only the functions needed. However split-objs doesn't work on every - platform so if you get linker errors then you can can try disabling it. - Building the Gtk2Hs libs with split-objs turned on is considerably - slower and uses more memory so you may prefer to turn it off. - ---with-user-pkgconf - Instead of registering Gtk2Hs with GHC's global package file, register in the - user's one instead. This is useful if you want to install to your own user - space rather than system wide. - ---enable-docs - This builds reference documentation in html format. These are also available - from the website but you may prefer to keep a local copy. You will need - haddock version 0.7 or later to build the documentation. - ---enable-PACKAGE {- substitute package name for PACKAGE -} ---disable-PACKAGE - Gtk2Hs contains bindings to some libraries that are not part of Gtk+ but - closely related. This option forces a particular package to be built or - not built. The default is to autodetect if a given package is installed - (except in --packager-mode where the default is --disable-PACKAGE for all - packages). At the time of writing the possible values for PACKAGE are: - - libglade : A library to load XML user interface descriptions that were - generated by the Glade user interface builder. - - gconf : A library to store configuration data in a Gnome-compatible way. - - sourceview : An enhancement of the TextView-widget of Gtk+. It adds features - useful for editing source code, e.g. syntax highlighting. - - firefox / seamonkey / xulrunner / mozilla : A widget that renders HTML. - - cairo : A library for rendering vector graphics. - - svg : SVG file rendering for cairo. - - opengl : Bindings for the Gtk OpenGL extension - ---disable-deprecated - There are many Gtk+ APIs that have been deprecated as new versions of Gtk+ - have come out. This option makes sure that no deprecated APIs are used. You - might want to use this option to make sure that you are not using deprecated - APIs in your new programs. - ---with-pkgconf=<path to a local .conf file> - Instead of registering Gtk2Hs with GHC's global package file, use a specific - file. If this file doesn't exit, it is created. - ---without-pkgreg - This option disables registering the packages with GHC at all. This - is useful to people building on one machine but wanting to install on - another, e.g. people packaging Gtk2Hs for use with a package management - system. +* gtk (GUI toolkit) +* cairo (graphics library) +* svgcairo (Cairo SVG loader) +* pango (text rendering) +* glade (libglade UI loader) +* glib (GLib2 library) +* gio (VFS library) +* gtkglext (Gtk+ OpenGL extension) +* gtksourceview2 (source code editor) +* gconf (GConf2 configuration system) +* gstreamer (media codec library) +* vte (terminal emulator) +* webkit (WebKit rendering engine) hunk ./INSTALL 21 ---enable-packager-mode - Enables --without-pkgreg and does not build any optional packages unless - these are specified with --enable-PACKAGE. On Windows it also does some - other stuff that helps with building an installer. +Also gtk2hs-buildtools and the soegtk library are provided. hunk ./INSTALL 23 +The following packages are deprecated: +* gnomevfs (replaced by gio) +* mozembed (replaced by webkit) hunk ./INSTALL 27 -If you want to do a quick build use: - -~/gtk2hs:$ ./configure --with-hcflags=-O0 --disable-split-objs +The GHC Haskell compiler, version 6.10.4 or greater, is required. +Gtk2Hs is known to compile on Linux, Windows, OSX, FreeBSD, and Solaris. hunk ./INSTALL 30 -If you want to install into your home directory rather than system-wide use: +These instruuctions are about building Gtk2Hs from source. If you would rather +install a binary (pre-compiled) package, please check the Gtk2Hs web site: +your distribution may also provide gtk2hs packages. hunk ./INSTALL 34 -~/gtk2hs:$ ./configure --prefix=$HOME --with-user-pkgconf hunk ./INSTALL 35 -2. Building the sources. +Building +-------- hunk ./INSTALL 38 -In the following "make" stands for GNU make. If your system has a program -called "gmake" then "make" is probably not GNU make. In this case use "gmake". +From version 0.11, gtk2hs is now distributed as separate packages on hackage. +So the easiest way to install it is using "cabal-install", eg +$ cabal install gtk hunk ./INSTALL 42 -To build the sources you issue: +This section assumes that you are building from a darcs checkout or snapshot. +If you are building on Windows, read "Building on Windows" first. hunk ./INSTALL 45 -~/gtk2hs:$ make +The following assumes that the sources are in ~/gtk2hs. hunk ./INSTALL 47 +Building from darcs +------------------- hunk ./INSTALL 50 -3. Install the libraries. -------------------------- +Building the latest sources from the darcs repository is normally straight +forward. In fact, since Gtk2Hs is only a wrapper around Gtk+, the development +version is usually not as "unstable" as it is for most software projects. +You must have all the appropriate development packages installed of course +(glib2, pango, gtk2, etc) for all the packages you wish to build. hunk ./INSTALL 56 -If you are installing system-wide then use: +You can get the latest development darcs source tree by running: hunk ./INSTALL 58 -~/gtk2hs:$ sudo make install +~:$ darcs get --lazy http://code/haskell.org/gtk2hs hunk ./INSTALL 60 -or if you use the 'su' command rather than 'sudo': +The easiest way to build everything is to run the script: hunk ./INSTALL 62 -~/gtk2hs:$ su -~/gtk2hs:# make install +~/gtk2hs:$ sh bootstrap.sh hunk ./INSTALL 64 -If you configured to install into your home directory then just say: +which build the tools and all the main supported libraries. hunk ./INSTALL 66 -~/gtk2hs:$ make install +Otherwise you can run "cabal install" by hand in a appropriate order +in a desired subset of the individual package directories. hunk ./INSTALL 70 -4. Compiling a program. ------------------------ +Running the demos. +------------------ hunk ./INSTALL 82 -The program should pop up a dialog box when you say +The program should pop up a dialog box when you run hunk ./INSTALL 87 -5. Documentation ----------------- +Documentation +------------- hunk ./INSTALL 90 -The documentation is avaliable on the website. You can also build the -documentation locally. You say +The documentation is available on the website and in hackage. +You can also build the documentation locally with cabal. hunk ./INSTALL 93 -~/gtk2hs:$ ./configure --enable-docs hunk ./INSTALL 94 - -6. Deinstallation +Deinstallation hunk ./INSTALL 96 +Alteratively, you can uninstall by unregistering the packages with ghc-pkg +and deleting the installed files. Eg reversing the order in bootstrap.sh: hunk ./INSTALL 99 -So long as you do not delete the source tree you can easily uninstall -everything that gtk2hs installed by saying - -~/gtk2hs:$ make uninstall - -in the root of the source tree. This will properly remove the package from -GHC and remove any installed file. - -Alteratively, if you do not keep the source tree around then you can -uninstall by unregistering the packages with ghc-pkg and deleting all the -installed files. Assuming that you installed in the default location -(ie did not specify --prefix= during ./configure) then that would mean -doing the following: - -# for pkg in glib gtk cairo glade gtkglext svgcairo gconf sourceview mozembed soegtk; \ +# for pkg in webkit vte svgcairo soegtk gtksourceview2 gtkglext gstreamer glade gconf gtk pango cairo gio glib gtk2hs-buildtools ; \ hunk ./INSTALL 101 -# rm -rf /usr/local/lib/gtk2hs/ -# rm -rf /usr/local/share/doc/gtk2hs/ #if you installed the docs hunk ./INSTALL 112 -Building from darcs -------------------- - -Building the latest sources from the darcs repository is normally straight -forward. In fact, since Gtk2Hs is only a wrapper around Gtk+, the development -version is usually not as "unstable" as it is for most software projects. - -Building the development version proceeds as normal building, except that you -need to run "autoreconf" first. You will need sufficiently new versions of the -automake/autoconf toolsuite installed. (automake 1.8.x, autoconf 2.59) - -Note that dependencies are generated only in a clean tree. Hence, if the -import structure of files change, the build might fail due to missing -dependencies. The easy way out is "make clean; make", the faster way is -to delete the lib*.deps files in each subdirectory. - - - } |