|
From: <ai...@us...> - 2019-02-13 02:49:17
|
Revision: 225
http://sourceforge.net/p/lasi/code/225
Author: airwin
Date: 2019-02-13 02:49:15 +0000 (Wed, 13 Feb 2019)
Log Message:
-----------
Complete rewrite of the website index.html page
When this webpage was originally written in the first decade of the
21st century, building LASi was an adventure because of problematic
support within free software distributions for its many dependencies.
And the use of CMake to configure the build was a pretty new concept
back then as well. And this web page reflected that era with many
possible workarounds recommended for the problems that were expected.
However, using CMake to build LASi should now be absolutely routine
for essentially all free software distributions. Therefore, in this
rewrite I tried to emphasize the calm certainty that everything would
work properly. And as a result this webpage is much shorter, but I
hope also much less confusing to libLASi users.
Tested by: Alan W. Irwin <ai...@us...> on Linux
(Debian Testing) by the following steps:
* Spell checking the page.
* Validating the rewritten page at <https://validator.w3.org/#validate-by-upload> as XHTML 1.0 Transitional.
* Viewing the LASi website (with updated index.html) using a local apache server to check
the rewrite for good grammar and sticking to the above motivation for the rewrite. I
also checked by manually clicking all links on the index.html page that there currently are
no bad external or internal links.
Modified Paths:
--------------
trunk/www/index.html
Modified: trunk/www/index.html
===================================================================
--- trunk/www/index.html 2019-02-11 18:54:10 UTC (rev 224)
+++ trunk/www/index.html 2019-02-13 02:49:15 UTC (rev 225)
@@ -15,13 +15,13 @@
</div>
<div id="menu">
- <a href="#newrelease">New Release Announcement</a>
<a href="#introduction">Introduction</a>
<a href="#motivation">Motivation</a>
- <a href="#download">Download</a>
+ <a href="#status">Status</a>
+ <a href="#resources">Resources</a>
<a href="#fonts">Fonts</a>
- <a href="#prereqs">Prerequisites</a>
- <a href="#cmake">Build Instructions</a>
+ <a href="#free_software_distributions">Distributions</a>
+ <a href="#cmake">Build</a>
<a href="#platform">Platform Notes</a>
<a href="#trouble">If you have trouble ...</a>
<a href="#api">API Docs</a>
@@ -36,56 +36,6 @@
<a name="top"/>
<p><a href="../index.html">unifont.org</a> >> LASi</p>
- <h1 id="newrelease">2011-10-03 New Release Announcement: libLASi-1.1.1</h1>
-
- <p>
- Our <a href="http://sourceforge.net/project/memberlist.php?group_id=187113">development team</a> is proud to announce the release of libLASi-1.1.1 which incorporates several bug fixes for the previous (1.1.0) release. The most important of these is a correction for the positioning of diacritical marks that has been suggested by Yotam Medini. Most of this change is internal, but it does require a backwards-incompatible change to part of our public API that is rarely used externally. So most users of libLASi will just need to recompile the applications that link to libLASi (as forced by our SOVERSION bump) without actually having to change those applications.
- </p>
- <p>
- The libLASi-1.1.1 file release area (including release notes, a detailed ChangeLog, the source tarball, and a detached gpg signature for that tarball) is located at <a href="http://sourceforge.net/projects/lasi/files/lasi/1.1.1%20Source">http://sourceforge.net/projects/lasi/files/lasi/1.1.1%20Source</a>.
- </p>
- <p>
- Enjoy using libLASi-1.1.1 to make some very nice looking PostScript results. Your feedback on the <a href="http://lists.sourceforge.net/lists/listinfo/lasi-devel">lasi-devel mailing list</a> is welcome.
- </p>
- <p>
- Alan W. Irwin on behalf of the libLASi developers.
- </p>
-
- <h1>2008-02-08 Previous Release Announcement: libLASi-1.1.0</h1>
-
- <p>
- The
- <a href="http://sourceforge.net/project/memberlist.php?group_id=187113">LASi development team</a>
- is proud to
- announce the release of <b>libLASi-1.1.0</b> which has significant
- improvements (a new build system based on CMake and some small code updates to
- make libLASi more robust) compared to prior releases.
- </p>
- <p>
- The new CMake-based build system allows building libLASi on both Unix and
- Windows platforms and automatically detects freetype version so split
- releases to cater to different freetype versions are no longer necessary.
- </p>
- <p>
- The robustness improvements mean that libLASi now renders an empty box
- rather than erroring out in those rare cases where glyph information
- returned by pango/cairo/fontconfig is not available or else is in a glyph
- form that is unusable by libLASi.
- </p>
- <p>
- The file release area (including release notes, a detailed ChangeLog, the
- source tarball for version 1.1.0, and an md5 checksum for that tarball) is
- located at <a href="http://sourceforge.net/project/showfiles.php?group_id=187113">
- http://sourceforge.net/project/showfiles.php?group_id=187113</a>.
- </p>
- <p>
- Enjoy using libLASi to make some very nice looking PostScript results
- and your feedback is welcome.
- </p>
- <p>
- -- <i>Alan W. Irwin on behalf of the libLASi developers, 2008-02-08</i>.
- </p>
-
<h1 id="introduction">Introduction</h1>
<a href="images/LASiSample.png"><img class="floatLeft" src="images/SmallLASiSample.png" alt="Sample LASi-generated document" /></a>
@@ -95,8 +45,8 @@
( with operator <code><<</code> ) for creating Postscript documents that can
contain characters from any of the scripts and symbol blocks supported
in <a href="http://www.unicode.org">Unicode</a>
- and by Owen Taylor's <a href="http://www.pango.org">Pango</a> layout engine.
- The library accomodates right-to-left scripts such as Arabic and Hebrew as easily as
+ and by the <a href="http://www.pango.org">Pango</a> layout engine.
+ The library accommodates right-to-left scripts such as Arabic and Hebrew as easily as
left-to-right scripts. Indic and Indic-derived Complex Text Layout (CTL)
scripts, such as Devanagari, Thai, Lao, and Tibetan are supported to the extent
provided by Pango and by the OpenType fonts installed on your system.
@@ -108,18 +58,12 @@
Although the capability to produce Unicode-based multilingual Postscript documents
exists in large Open Source application framework libraries such as
<a href="http://www.gtk.org"><b>GTK+</b></a>,
- <a href="http://www.trolltech.com/products/qt/index.html"><b>QT</b></a>, and
+ <a href="https://www.qt.io/"><b>Qt</b></a>, and
<a href="http://www.kde.org"><b>KDE</b></a>,
<b>libLASi</b> was designed for projects which require
the ability to produce Postscript independent of any one application framework.
</p>
- <p>
- <b>libLASi</b> is now a Sourceforge project -- Please visit
- <a href="http://sourceforge.net/projects/lasi">http://sourceforge.net/projects/lasi</a>
- to find out the latest development information.
- </p>
-
<h1 id="motivation">Motivation</h1>
<p>
@@ -127,359 +71,232 @@
of <b>LASi</b>.
</p>
-<h1 id="download">Download</h1>
+<h1 id="status">Development Status and Latest Release</h1>
- <h2 class="h15" >libLASi-1.1.0 Latest Stable Release</h2>
+ <p>
+ We have no plans to add features to <b>LASi</b>, but because
+ of sustained user interest over the years we still actively
+ maintain it. For example, we highly recommend the latest release of
+ <b>LASi</b> because of the bug fixes that release contains. For more
+ details about that release (version 1.1.3 released on 2019-02-01)
+ please
+ see <a href="https://sourceforge.net/p/lasi/news/2019/02/liblasi-113-has-been-released/">the
+ news item</a>
+ and <a href="https://sourceforge.net/projects/lasi/files/lasi/1.1.3%20Source/">file
+ release area (including release notes)</a> for that release.
+ </p>
- <p>
- Download the latest stable release, libLASi-1.1.0, from
- <a href="http://sourceforge.net/project/showfiles.php?group_id=187113">
- http://sourceforge.net/project/showfiles.php?group_id=187113</a>.
- </p>
+<h1 id="resources">SourceForge Resources</h1>
- <h2 class="h15" >Sourceforge SVN Repository</h2>
-
<p>
- For the latest development version of the library,
- visit <a href="http://sourceforge.net/projects/lasi">http://sourceforge.net/projects/lasi</a>
- to learn more about accessing <b>libLASi</b>'s
- <a href="http://lasi.svn.sourceforge.net/viewvc/lasi/">SVN repository</a>. To check out the
- latest code from the repository, you can use the following command line:
+ The following SourceForge resources should be of interest to <b>LASi</b> users.
</p>
+<ul>
+ <li><a href="http://sourceforge.net/projects/lasi">Project Page</a></li>
+ <li><a href="http://sourceforge.net/p/lasi/news">News</a></li>
+ <li><a href="https://sourceforge.net/projects/lasi/files/">Releases</a></li>
+ <li><a href="https://sourceforge.net/p/lasi/code/HEAD/tree/">Subversion repository</a></li>
+ <li><a href="http://sourceforge.net/p/lasi/mailman/">Mailing Lists</a></li>
+ <li><a href="http://sourceforge.net/p/lasi/bugs/">Bug Tracker</a></li>
+</ul>
-<p class="code">
- svn co https://lasi.svn.sourceforge.net/svnroot/lasi/trunk lasi
-</p>
-
<h1 id="fonts">Font Resources</h1>
<p>
The example programs included with <b>LASi</b> contain Unicode text in various languages.
To obtain Open Source and otherwise liberally-licensed fonts required for proper
- generation of the example Postscript output, please visit Unifont.org's
- <a href="http://www.unifont.org/fontguide/">Unicode Font Guide For
+ generation of the example Postscript output, you will likely need to
+ install some additional font packages from your
+ <a href="#free_software_distributions">free software distribution</a>.
+ For a guide to what fonts are generally available for such distributions, please visit
+ <a href="http://www.unifont.org/fontguide/">The Unicode Font Guide For
Free/Libre Open Source Operating Systems</a>.
</p>
-<h1 id="prereqs">Prerequisites and Dependencies</h1>
+<h1 id="free_software_distributions">Free Software Distributions Provide the LASi Dependencies</h1>
<p>
- The code base in the Sourceforge SVN repository uses a <a href="http://www.cmake.org">CMake</a>
- build system. You will need at least version <b>2.4.5</b> to build LASi from SVN.
+ Free software distributions that are an integral part of any modern
+ Linux or similar free *nix operating system or which are add ons to
+ proprietary operating systems (e.g.,
+ the <a href="http://www.finkproject.org/">Fink</a>,
+ <a href="https://www.macports.org/">MacPorts</a>,
+ and <a href="https://brew.sh/">Homebrew</a> distributions for Mac
+ OS X and the the <a href="https://www.cygwin.com/">Cygwin</a>
+ and <a href="https://www.msys2.org/">MinGW-w64/MSYS2</a>
+ distributions for Windows) are the recommended way for users to
+ gain access to the <b>LASi</b> software dependencies. For such
+ distributions, users need to install packages
+ for <a href="http://www.cmake.org">CMake</a> (version 3.13.2 or
+ higher),
+ <a href="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a>,
+ native build tools that depend on the chosen CMake generator, a C++
+ compiler (likely g++, the C++ front end to
+ <a href="https://gcc.gnu.org/">the GNU compiler collection</a>),
+ <a href="#fonts">font</a> packages that allow rendering the
+ particular Unicode glyphs in the examples, and optionally (if the
+ user wants to build the <b>LASi</b> documentation)
+ <a href="http://www.doxygen.nl/index.html">doxygen</a>.
+ Users also need to install development packages for
+ the <a href="http://www.pango.org">Pango</a>
+ and <a href="http://www.freetype.org">FreeType</a> libraries which
+ are direct dependencies of the <b>LASi</b> library. They also need
+ to install all packages that are dependencies of the packages that
+ are named here, but the the package installation software provided
+ by the free software distributions should automatically take care
+ of that issue.
</p>
- <p>
- <b>LASi</b> uses Owen Taylor's <a href="http://www.pango.org">Pango</a> text layout engine.
- <b>Pango</b> itself depends on the <a href="http://www.gtk.org">glib infrastructure library
- of the GTK+ toolkit</a> and on the
- <a href="http://www.freetype.org">FreeType 2</a> font handling library.
- </p>
+<h1 id="cmake">General Build Instructions for LASi</h1>
- <p>
- Almost any modern Linux or similar free *nix operating system will already have the <b>FreeType2</b>
- library installed. If you have the <b>Gnome</b> desktop or <b>GTK+</b>-based software like
- the <b>Gimp</b> installed on your system, then you may be able to use the <b>glib</b> and <b>Pango</b>
- libraries already present on your system.
- </p>
-
- <p>
- If you decide to download <b>glib</b> and <b>Pango</b>, be sure to download "matched" libraries from
- the <a href="http://www.gnome.org">Gnome</a> web site.
- For example, if you go to the download area for
- <a href="http://ftp.gnome.org/pub/GNOME/platform/2.8/2.8.0/sources/">Gnome 2.8</a>, you will find
- <b>glib-2.4.6.tar.gz</b> and <b>pango-1.6.0.tar.gz</b>. <b>Glib-2.4.6</b> and <b>pango-1.6.0</b>
- are "matched" for building a stable version of Gnome and should thus provide you good results when
- used with <b>LASi</b>.
- </p>
-
-<h1 id="cmake">General CMake Build Instructions for libLASi</h1>
-
<p>
- As CMake is a new build system which many developers are not yet familiar with,
-we provide the following general CMake instructions to get you started:
+ The <b>LASi</b> source tree includes a CMake-based build system so
+ you can use a general cross-platform procedure to configure, build,
+ test the build, install, and test the install of this software.
+ This general procedure consists of using the <code>cmake</code>
+ executable to choose a
+ <a href="https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html">generator</a>,
+ installation prefix, and whether the library build will be shared or
+ static; configure build system targets; and for the chosen native
+ build system that is configured by the generator build the "all"
+ target, optionally test that result by running ctest (which is
+ distributed as part of the CMake software), and install the software
+ by building the "install" target. As an additional option that
+ install can be tested by building the installed examples that are
+ linked with the installed library and its dependencies using
+ pkg-config. To facilitate this test we configure and install a
+ special Makefile to implement building the examples this way. That Makefile
+ also implements targets for run-time testing the examples that are built.
</p>
-<p>
- 1) Create an empty build directory and <code>cd</code> to it:
+<p id="unix_makefiles">
+ Depending on the platform and chosen generator, there are many ways
+ that experienced CMake users should be able to implement the above
+ general procedure. However, for those less experienced with CMake,
+ we suggest they install cmake, pkg-config, the bash shell, the distribution
+ make command, and g++ and use the following "Unix Makefiles" specific
+ form of the above general procedure that should work well for all
+ platforms provided that you use the
+ <a href="#free_software_distributions">free software distributions</a>
+ available for those platforms.
</p>
+<ul>
-<p class="code">
- mkdir build_dir
- <br/>cd build_dir
-</p>
+ <li>Create an empty build directory and change your current directory to that directory:
+ <p class="code">
+ mkdir build_dir
+ <br/>cd build_dir
+ </p>
+ </li>
-<p>
- 2) Configure libLASi using <code>cmake</code> or <code>ccmake</code>:
-</p>
+ <li>Configure <b>LASi</b> using <code>cmake</code>:
+ <p class="code">
+ cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=<path to the install prefix> -DBUILD_SHARED=<ON or OFF> \
+ <br/> <path to the top-level directory of the source tree> >& cmake.out
+ </p>
-<p class="code">
- cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/prefix \
- <br/>-DCMAKE_VERBOSE_MAKEFILE=ON /path/to/lasi/source/code >& cmake.out
-</p>
+ <p>
+ The <code>-G</code> option lets the user choose a cmake
+ generator, the <code>-DCMAKE_INSTALL_PREFIX</code> option lets
+ the user choose an install prefix, and
+ the <code>-DBUILD_SHARED</code> option lets the user choose to
+ build <b>LASi</b> as a shared library (<code>ON</code>) or as a
+ static library (<code>OFF</code>).
+ </p>
+ </li>
-<p>
-OR:
-</p>
+ <li> Build <b>LASi</b>:
+ <p class="code">
+ make all >& all.out
+ </p>
+
+ <p>
+ Afterwards, use a good PostScript viewer to look at the
+ generated Encapsulated PostScript results
+ in <code>examples/*.eps</code> to check for missing glyphs
+ (designated by empty boxes) in all but
+ <code>examples/MissingGlyphExample.eps</code> which is the
+ result from an example that is designed to have missing glyphs
+ to test that empty boxes are rendered in that case. If any but
+ that example result have missing glyphs, then you should install
+ additional <a href="#fonts">font</a> packages from your
+ <a href="#free_software_distributions">free software
+ distribution</a> to address that issue.
+ </p>
+ </li>
-<p class="code">
- ccmake -DCMAKE_INSTALL_PREFIX=/path/to/install/prefix \
- <br/>-DCMAKE_VERBOSE_MAKEFILE=ON /path/to/lasi/source/code
-</p>
+ <li> Optionally test that build of <b>LASi</b>:
+ <p class="code">
+ ctest >& ctest.out
+ </p>
-<p>
-The <code>CMAKE_INSTALL_PREFIX</code> option lets the user specify the install prefix
-and <code>CMAKE_VERBOSE_MAKEFILE=ON</code> insures the subsequent make commands give
-verbose results. <code>ccmake</code> is a GUI frontend for <code>cmake</code> that gives you other
-annotated options you can set.
-</p>
+ <p>
+ Afterwards, use the <code>cmp</code> or <code>diff</code>
+ commands to verify that the generated ctest results
+ (in <code>examples/ctest_examples_output_dir/*.eps</code>) are
+ identical to the "make all" results (in <code>examples/*.eps</code>).
+ </p>
+ </li>
-<p>
- 3) Build and install libLASi:
-</p>
+ <li> Install <b>LASi</b>:
+ <p class="code">
+ make install >& install.out
+ </p>
+ </li>
-<p class="code">
- make >& make.out
- <br/>su -c "make install >& /tmp/make_install.out"
-</p>
+ <li> Optionally test that install of <b>LASi</b> using the specially configured installed Makefile:
+ <p class="code">
+ cd <path to the install prefix>/share/lasi<latest LASi version>/examples
+ <br/>make all >& all.out
+ </p>
-<p>
- <span class="NoteBene">Note:</span> '<code>su -c "<root command>"</code>' is the
-conventional way to execute a command requiring root privileges on Linux. On some other systems,
-such as OS X, you might invoke "<code>sudo</code>" instead, while on other systems you might need
-to start a root shell using the "<code>su</code>" command.
-</p>
+ <p>
+ Afterwards, use the <code>cmp</code> or <code>diff</code>
+ commands to verify that these "make all" results
+ (in <code>*.eps</code>) are
+ identical to the "make all" results in the build tree
+ (located in <code>examples/*.eps</code> in that tree).
+ </p>
+ </li>
-<h1 id="platform">Platform Specific Notes</h1>
-
-<p>
-Recent Linux distributions will already have most, if not all, of the
-tools and libraries that you need to build LASi already installed.
-This will likely not be the case on other platforms. Therefore, if
-you plan to build LASi on a non-Linux platform, be prepared to spend
-some time downloading and installing required tools like CMake and
-DOxygen, as well as dependent libraries like GLib and Pango.
-</p>
-
-<h2 class="h15">Linux</h2>
-
-<p>
- Development of LASi takes place primarily on Linux workstations with fairly recent distributions installed. As a result,
-most of the tool and library dependencies described in the preceding section will normally already be present on your machine.
-A possible exception is CMake : be sure to get at least version 2.4.5.
-</p>
-
-<h2 class="h15">OS X</h2>
-
-<p>
- We have achieved the best success with the least frustration by building the required tools and libraries directly from source code. However, if you don't really like this idea, you might want to try
- <a href="http://trac.macosforge.org/projects/macports/wiki">
-http://trac.macosforge.org/projects/macports/wiki</a>
- which provides a Gentoo-like build experience.
-</p>
-
-<p>
- Due to numerous problems encountered with Fink, we cannot recommend Fink at this time.
-</p>
-
-<p>
- Here then are build instructions for Apple OS X:
-</p>
-
-<p>
-1) Get CMake: Download the latest Darwin Universal (Tiger only
-installer) .dmg from <a href="http://www.cmake.org">www.cmake.org</a>. This will install cmake in
-/usr/bin.
-</p>
-<p>
-2) Get SVN: Matthew E. Porter provides SVN .dmg installers for OS X
-that do not require Fink. Importantly, these binaries are compiled
-with SSL support, which is required for checking out LASi from the
-Sourceforge SVN repository. The URL is
-<a href="http://metissian.com/projects/macosx/subversion/">
-http://metissian.com/projects/macosx/subversion/</a>. This binary will be
-installed in /usr/local/bin .
-</p>
-<p>
-3) Get PKG-CONFIG: Build from source.
-<a href="http://pkgconfig.freedesktop.org/releases/pkg-config-0.20.tar.gz">
-http://pkgconfig.freedesktop.org/releases/pkg-config-0.20.tar.gz</a>.
-If you install libraries using different prefixes, don't forget to
-"export PKG_CONFIG_PATH" as necessary so that pkg-config can find the
-installed libraries. For example:
-</p>
-<p class="code">
- export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
-</p>
-<p>
-4) Get DOXYGEN: Build it from source. Available from
-<a href="http://www.stack.nl/~dimitri/doxygen/">
-http://www.stack.nl/~dimitri/doxygen/</a> .
-DOxygen is needed to create the LASi documentation. Installs in
-/usr/local/bin by default.
-</p>
-<p>
-5) Get libxml2 from <a href="http://xmlsoft.org/">http://xmlsoft.org/</a> and build it from
-source. This library is required to compile fontconfig.
-</p>
-<p>
-6) Get fontconfig from <a href="http://www.fontconfig.org/wiki">http://www.fontconfig.org/wiki/</a> and
-build it from source.
-</p>
-<p>
-7) Get FREETYPE: Build Freetype from source. Available from
-<a href="http://freetype.sourceforge.net/">http://freetype.sourceforge.net/</a> .
-Using the defaults, Freetype will be installed in /usr/local/lib and
---importantly-- the freetype.pc file will be found by LASi's CMake
-build system.
-</p>
-<p>
-8) Get CAIRO from <a href="http://xmlsoft.org/">http://xmlsoft.org/</a> and build it from source.
-</p>
-<p>
-9) Get GLIB and PANGO from the Gnome project. At the time of this
-writing, the latest version was 2.16.13:
-<a href="http://ftp.gnome.org/pub/GNOME/platform/2.16/2.16.3/sources/">
-http://ftp.gnome.org/pub/GNOME/platform/2.16/2.16.3/sources/</a> .
-Download the latest versions of glib and pango. Be sure to build and
-install glib first. These will be installed in /usr/local/lib by
-default.
-</p>
-<p>
-10) Finally you should now be able to build LASi without any problems. :-)
-</p>
-
-<h2 class="h15">Other *Nix Systems</h2>
-
-<p>
- On other, non-Linux *Nix systems be prepared to spend some time chasing down
- missing dependencies. The instructions for OS X above will give you a fair idea
- of what may be required.
-</p>
-<p>
- You may find that your life is easier if you install a
- recent version of the <a href="http://gcc.gnu.org/">GCC</a> compiler suite
- along with GNU <a href="http://www.gnu.org/software/make/">gmake</a>.
-</p>
-
-<p>
- You will almost certainly need to use the C++ standard library that comes with
- the GCC compiler suite (Even compilers like Intel's
- <a href="http://www.intel.com/cd/software/products/asmo-na/eng/compilers/284132.htm">icpc</a>
- compiler uses the GNU C++ standard library when linking projects on Linux).
- Other C++ libraries, such as on Sun Solaris, may not be sufficiently up-to-date.
-</p>
-
-<p>
- Make utilities on some platforms, such as OpenBSD, do not have some of the capabilities
- of GNU gmake which are used frequently, so you will probably save yourself some trouble by
- using gmake.
-</p>
-
-<p>
- After carefully satisfying all dependencies by installing packages from the ports
- tree or from source, we encountered no problems building libLASi on
- <a href="http://www.openbsd.org">OpenBSD</a> version 4.0 on i386.
-</p>
-
-
-<h2 class="h15">Windows</h2>
-
-<p>
- These instructions from Werner Smekal should allow anybody to compile
- libLASi on Windows platforms with the MinGW and Visual C++ compiler:
-</p>
-
-<p>
- 1) Download the following from
- <a href="http://www.gimp.org/~tml/gimp/win32/downloads.html">
-http://www.gimp.org/~tml/gimp/win32/downloads.html
-</a>:
-</p>
-
-<ul>
- <li>glib-2.12.7.zip and glib-dev-2.12.7.zip</li>
- <li>pango-1.14.9.zip and pango-dev-1.14.9.zipy</li>
- <li>pkg-config-0.20-zip</li>
- <li>libiconv-1.9.1.bin.woe32.zip</li>
- <li>cairo-1.2.6.zip and cairo-dev-1.2.6.zip</li>
- <li>freetype-2.2.1.zip and freetype-dev-2.2.1.zip</li>
- <li>fontconfig-tml-2.3.2-20060825.zip and fontconfig-dev-2.3.2-tml-20060825.zip</li>
- <li>gettext-0.14.5.zip and gettext-dev-0.14.5.zip</li>
</ul>
-
<p>
- Unzip all packages in a directory, e.g. <code>C:\Dev\gtk</code> .
+ Note, that for most of the above steps, the combined stderr and
+ stdout output is captured in various <code>*.out</code> files. For
+ each such step the user should inspect those files for any warning
+ or error messages before proceeding to the next step.
</p>
+
-<p>
- 2) Download from <a href="ftp://ftp.jclark.com/pub/xml/expat.zip">ftp://ftp.jclark.com/pub/xml/expat.zip</a>:
-</p>
-<ul>
- <li>
- expat.zip
- </li>
-</ul>
+<h1 id="platform">Platform Specific Notes</h1>
<p>
- Unzip expat.zip and copy only the xmlparse.dll in the bin directory to
- <code>C:\Dev\gtk\bin</code>. Rename <code>xmlparse.dll</code> to <code>libexpat.dll</code>.
+ At this stage we have no platform-specific notes. The reason for
+ this is we are reasonably confident that if users follow the
+ <a href="#unix_makefiles">"Unix Makefiles"</a> procedure for most
+ any
+ <a href="#free_software_distributions">free software
+ distribution</a>, that procedure will "just work". This confidence
+ is based on years of experience building and
+ testing <a href="http://plplot.org/">PLplot</a> (whose build is much
+ more complex than that of <b>LASi</b> and whose <code>psttf</code>
+ device driver depends directly on the <b>LASi</b> library and
+ indirectly on its dependencies) on many free software distributions
+ (including the Mac OS X and Windows ones) using a procedure that is
+ quite similar to the
+ <a href="#unix_makefiles">"Unix Makefiles"</a> procedure; good test
+ results on Linux, Mac OS X, and Windows for older releases
+ of <b>LASi</b> using variants of the general <a href="#cmake">
+ CMake-based procedure above</a>; and good results on Linux
+ (specifically Debian Testing) for the recommended "Unix Makefiles"
+ procedure for the latest release of <b>LASi</b>. That said, if you
+ do not get good results for the latest release of <b>LASi</b> using
+ the above "Unix Makefiles" procedure for any free software
+ distribution, we would like to hear from you (preferably on
+ our <a href="https://sourceforge.net/projects/lasi/lists/lasi-devel/">mailing
+ list</a>).
</p>
-
-<p>
- 3) Some additional things need to be ironed out:
-</p>
-
-<ul><li>
-Change last 3 lines of <code>gtk/lib/pkg-config/pangoft2.pc</code> to (add freetype2
-as requirement and delete absolute directories in Cflags):
-</li></ul>
-
-<p class=".code">
-Requires: pango,freetype2
-<br/>Libs: -L${libdir} -lpangoft2-1.0
-<br/>Cflags: -I${includedir}/pango-1.0
-</p>
-
-
-<ul><li>
-The freetype import library for Visual C++ is missing and we need to create it
-(pexports is available here:
-<a href="http://www.emmestech.com/software/cygwin/pexports-0.43/download_pexports.html">http://www.emmestech.com/software/cygwin/pexports-0.43/download_pexports.html</a>)
- -- for MinGW omit this step:
-</li></ul>
-
-<p class="code">
-cd C:\Dev\gtk\lib
-<br/>pexports ..\bin\freetype6.dll > freetype.def
-<br/>lib /machine:i386 /def:freetype.def
-</p>
-
-<p>
-4) Set environment variables for cmake (<code>USER_ROOTDIR</code> is the
-development directory, e.g. <code>C:\Dev\gtk</code>):
-</p>
-
-<p class="code">
-rem setup glib, pango, cairo, freetype, pkg-config
-<br/>set PKG_CONFIG_PATH=%USER_ROOTDIR%\gtk\lib\pkgconfig
-<br/>set PATH=%USER_ROOTDIR%\gtk\bin;%PATH%
-</p>
-
-<p>
-5) Build libLASi in a command line environment:
-</p>
-
-<ul><li>
-Run the following commands (similar for Visual C++):
-</li></ul>
-
-<p class="code">
-mkdir build (we assume the lasi directory is in the same folder as the build)
-<br/>cd build
-<br/>make -G "MinGW Makefiles" -DBUILD_SHARED=ON -DCMAKE_INSTALL_PREFIX=C:\Dev\gtk ../lasi
-<br/>mingw32-make install (compiles and install into gtk directory)
-</p>
-
+
<h1 id="trouble">If you have trouble building LASi ...</h1>
<p>
If you have trouble building <b>LASi</b>, the usual culprits are:
@@ -488,43 +305,39 @@
<ul>
<li>
- <b>CMake or ccmake</b> problems. You need version 2.4-patch 6 or newer. As of this writing (2007.03.07), most
- distributions will only have an older version of CMake, if they have CMake at all. You will most likely have to
- download and build the
- latest version from a source code package.
- It is always best to start with a clean LASi source tree, a separate (initially empty) build directory,
- and be sure to specify "<code>-DCMAKE_INSTALL_PREFIX=<your installation path></code>" on the command line as
- recommended in the directions above.
- If you have trouble with the interactive <code>ccmake</code>, revert to using
- <code>cmake</code> instead. <code>cmake</code> caches results from the first run; Try "<code>rm CMakeCache.txt</code>"
- in order to start off again with a clean slate and no cached results.
+ <b>CMake version</b> problems. You need version 3.13.2 or later
+ to build <b>LASi</b>. (Otherwise, the <code>cmake</code> step in
+ the
+ <a href="#unix_makefiles">"Unix Makefiles"</a>
+ procedure will error out). The latest versions of most
+ <a href="#free_software_distributions">free software distributions</a>
+ should provide CMake version 3.13.2 or later, but if not or if you are
+ using an older distribution, then we recommend you build 3.13.2 or
+ later from
+ <a href="https://cmake.org/download/">CMake source code</a>
+ using the older version of <code>cmake</code> that your
+ distribution provides using the same "Unix Makefiles" procedure
+ that we recommend for <b>LASi</b>. Then follow up by
+ building <b>LASi</b> with your newly built version of CMake using
+ the same "Unix Makefiles" procedure.
</li>
- <li><b>pkg-config</b> problems. Sometimes your system has all of the required libraries installed, but
- the <b>pkg-config</b> utility doesn't have a clue where they are. Make sure you check <code>PKG_CONFIG_PATH</code>.
- For example, if <b>FreeType2</b> is installed in <code>/usr/X11R6/lib</code> and <b>Pango</b> is installed
- in <code>/opt/gnome/lib</code>, then you might have to execute
- "<code>export PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig:/opt/gnome/lib/pkgconfig</code>" from your shell in order
- to get <b>pkg-config</b> and, by extension, the <b>LASi</b> <code>cmake</code> build system to find these
- libraries.</li>
-
- <li><b>Multiple installed versions of FreeType, Pango, or glib</b>. This sort of issue is much harder to deal with.
- Theoretically, it should not matter that you have multiple versions of <b>FreeType2</b>,
- <b>Pango</b> or <b>Glib</b> installed. In the past we saw cases where the configure script detected one version of
- a library
- but at link time the linker linked against another version. With the new <code>cmake</code>-based build system,
- most of these kinds of problems should be a thing of the past. Nevertheless,
- the easiest way to avoid problems is to avoid having
- multiple versions of the dependent libraries present on your machine. If that is not an option, and you have a good idea of what you are
- doing, you can play around with <code>/etc/ld.so.conf</code> and <code>ldconfig</code> until you get it to work.
+ <li>
+ <b>pkg-config</b> problems. You must install pkg-config from your
+ distribution. (Otherwise, the <code>cmake</code> step in the
+ <a href="#unix_makefiles">"Unix Makefiles"</a> procedure will
+ error out). We anticipate no other issues with pkg-config since our
+ experience is it "just works" (if installed from a
+ <a href="#free_software_distributions">free software distribution</a>).
</li>
+
</ul>
<h1 id="api">API Documentation</h1>
<p>
- <span class="NoteBene">Note:</span> The DOxygen documentation generated when you build LASi will be more
- up-to-date than the documentation here. However as the API is already quite stable, the differences will
+ <span class="NoteBene">Note:</span> The doxygen documentation generated when you build <b>LASi</b> will be more
+ up-to-date than the documentation here. However the API changes very little so the differences will
be few:
</p>
@@ -535,10 +348,14 @@
<h1 id="examples">Examples</h1>
<p>
- Examples are provided in the <code>examples</code> subdirectory of the software distribution.
- The makefiles included with the examples illustrate how to link a program against <b>LASi</b>.
- <a href="examples/example.html">Here</a> is a simple example of what source code using <b>LASi</b>
- looks like.
+ Examples are provided in the <code>examples</code> subdirectory of
+ the <b>LASi</b> source tree. The
+ file <code>Makefile.examples.in</code> that appears in that
+ subdirectory is a configurable template for a Makefile (installed
+ with our installed examples) that illustrates how to link a program
+ against <b>LASi</b>.
+ <a href="examples/example.html">Here</a> is a simple example of what
+ source code using <b>LASi</b> looks like.
</p>
<h1 id="author">Original Author</h1>
@@ -581,9 +398,9 @@
Since this immediately delighted by own sense of vanity,
I had no trouble indulging Ed.
Out of concern that the name "Lasi" might invite ridicule
-by jeolous programming rivals
+by jealous programming rivals
who would no doubt take every opportunity to mock it's connection
-to the <a href="http://www.lassie.net" target="_blank">beloved TV canine hero</a>,
+to the <a href="https://en.wikipedia.org/wiki/Lassie">beloved TV canine hero</a>,
I changed it's spelling to the post-modern, hi-tech moniker "<b>LASi</b>".
</p>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|