5 This file describes how to compile and install Freeciv. Last time we
6 made sure this file is up to date was 16-Jul-06.
7 Last minor update was 21-Apr-15.
9 There may be a localized version of this file in the ./doc directory,
10 named INSTALL.<locale> (e.g., INSTALL.de).
12 This document contains sections and subsections as follows:
14 1. Prerequisites for the clients:
15 1a. Prerequisites for the Gtk2 client:
16 1b. Prerequisites for the Gtk3 client:
17 1c. Prerequisites for the Gtk3.22 client:
18 1d. Prerequisites for the SDL client:
19 1e. Prerequisites for the SDL2 client:
20 1f. Prerequisites for the Xaw client:
21 1g. Prerequisites for the Qt client:
22 2. Generating Makefiles
23 2a. Generating the Makefile for svn versions:
24 2b. Generating the Makefile for release versions:
27 5. Native Language Support:
29 7. Reinier's Solaris Installation Notes:
30 8. Reinier's libXpm Solaris Installation Notes:
31 9. Mac OS X and Darwin notes:
32 10. Debian GNU/Linux notes:
39 Freeciv has a number of prerequisites. Note, that apart from the first
40 prerequisite, the Freeciv configuration process is smart enough to work
41 out whether your system is suitable. If in doubt, just try it.
45 The Unix operating system, a work-alike such as Linux or FreeBSD,
46 or some OS that provides a very Unix-like personality or mode, like
47 EMX under OS/2 or the Cygnus Cygwin toolkit under Windows.
48 (See http://sourceware.cygnus.com/cygwin/). Support for
49 BSD-style TCP/IP sockets is essential, as is a Bourne-shell
50 compatible shell, such as GNU "bash". (Most Unixes fit the bill...)
54 Freeciv is written in very portable (almost) ANSI C. Both 32- and 64-
55 bit machines are supported. You cannot use a "K&R C" compiler, or
58 Development of Freeciv is primarily done with "gcc", the GNU
59 project's excellent C compiler. Releases can be compiled with gcc
60 or most other compilers (such as the unbundled Solaris C compiler).
61 Note that there have been reports that gcc with -O3 miscompiled
66 Freeciv developers generally use "gmake", the GNU make program.
68 Officially released versions of Freeciv are designed to have
69 makefiles which work with most make programs.
71 You can check if you have GNU make installed on your system by
74 % make -v [and if this doesn't work, try "gmake -v"]
76 The output should include "GNU Make" somewhere.
78 - libcurl version 7.12.1 or better
80 Libcurl takes care of http communication with the metaserver, and
81 file transfers of modpack installers
85 The svn version has additional requirements. A release version
86 contains the generated files.
88 - The programs from GNU gettext version 0.14 or better
90 Especial the xgettext program is required to create the *.gmo
91 files which aren't included in the svn tree.
93 - GNU autoconf version 2.61 or better
95 Autoconf is required to create configure from configure.ac.
97 - GNU automake version 1.10 or better
99 Automake is required to create the various Makefile.in from
102 1. Prerequisites for the clients:
103 =================================
105 The Freeciv client comes in the following forms:
106 * Gtk+ 2.0 widget library ("Gtk+ 2.0").
107 * Gtk+ 3.0 widget library ("Gtk+ 3.0").
108 * X Athena Widgets library ("Xaw").
112 These forms have different prerequisites, explained separately below.
114 Your system will need to satisfy at least one of these sets of prerequisites.
116 Note that most Linux systems have separate library packages for "runtime"
117 library support and for development support (for compiling programs
118 which use those libraries). To compile Freeciv on such systems you
119 will need to have the appropriate "development" packages installed.
122 1a. Prerequisites for the Gtk+ 2.0 client:
123 ==========================================
127 "pkg-config" is a system for managing library compile/link flags that
128 works with automake and autoconf. You may obtain it at:
130 http://pkgconfig.freedesktop.org/releases/pkg-config-0.26.tar.gz
132 - The "Glib" utility library.
134 The "Glib" utility library provides non-graphical functions used by the
135 "Gdk" and "Gtk+" libraries, like hash tables, single linked lists, etc.
137 Freeciv requires a version of "Glib" greater or equal to 2.6.0.
139 If the Freeciv configure process tells you that you don't have the
140 Glib library installed, then it may be obtained from here:
142 http://ftp.gnome.org/pub/gnome/sources/glib/2.30/glib-2.30.2.tar.xz
144 - The "Atk" accessibility library.
146 The "Atk" library provides a set of interfaces for accessibility.
147 It allows people with disabilities to utilize all the functionality
148 provided by Gtk+ apps. You may obtain it at:
150 http://ftp.gnome.org/pub/gnome/sources/atk/2.2/atk-2.2.0.tar.xz
152 - The "Pango" text layout and rendering library.
154 "Pango" is library for layout and rendering of text, with an emphasis
155 on internationalization. You may obtain it at:
157 http://ftp.acc.umu.se/pub/gnome/sources/pango/1.28/pango-1.28.4.tar.bz2
159 - The "Gtk+" widget library.
161 The "Gtk+" widget library was designed for the GIMP graphics program.
162 Since then it has gained popularity as an easy to program, free toolkit.
164 The "Gtk+" library comes with two companion libraries:
167 Provides an abstraction layer over X-Windows/LinuxFB/Win32 to implement
168 basic drawing functions, windows, clipping, etc.
171 Provides image loading/saving facilities.
173 Freeciv requires a version of "Gtk+" greater or equal to 2.12.0.
174 At least 2.16.0 is recommended; some minor UI features will be
175 missing with earlier versions.
177 If the Freeciv configure process tells you that you don't have the
178 Gtk+ library installed, then it may be obtained from here:
180 http://ftp.acc.umu.se/pub/gnome/sources/gtk+/2.24/gtk+-2.24.9.tar.xz
182 "Gtk+" depends on the "Glib", "Atk" and "Pango" libraries.
184 If you are going to make these yourself, build and install them in the
185 following order: pkg-config, Glib, Atk, Pango, Gtk+.
187 1b. Prerequisites for the Gtk+ 3.0 client:
188 ==========================================
192 "pkg-config" is a system for managing library compile/link flags that
193 works with automake and autoconf. You may obtain it at:
195 http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz
197 - The "Glib" utility library.
199 The "Glib" utility library provides non-graphical functions used by the
200 "Gdk" and "Gtk+" libraries, like hash tables, single linked lists, etc.
202 Freeciv requires a version of "Glib" greater or equal to 2.36
204 If the Freeciv configure process tells you that you don't have the
205 Glib library installed, then it may be obtained from here:
207 http://ftp.gnome.org/pub/gnome/sources/glib/2.36/glib-2.36.1.tar.xz
209 - The "Atk" accessibility library.
211 The "Atk" library provides a set of interfaces for accessibility.
212 It allows people with disabilities to utilize all the functionality
213 provided by Gtk+ apps. You may obtain it at:
215 http://ftp.gnome.org/pub/gnome/sources/atk/2.8/atk-2.8.0.tar.xz
217 - The "Pango" text layout and rendering library.
219 "Pango" is library for layout and rendering of text, with an emphasis
220 on internationalization. You may obtain it at:
222 http://ftp.gnome.org/pub/gnome/sources/pango/1.34/pango-1.34.0.tar.xz
224 - The "Gdk-Pixbuf" image loading/saving library
226 "Gdk-Pixbuf" used to be part of "Gtk+" itself, but is now separate
227 project. It may be obtained from:
229 http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.28/gdk-pixbuf-2.28.1.tar.xz
231 - The "Gtk+" widget library.
233 The "Gtk+" widget library was designed for the GIMP graphics program.
234 Since then it has gained popularity as an easy to program, free toolkit.
236 "Gtk+ 3" is the default client. If you don't specify any client with
237 "--enable-client" to configure, you will get "Gtk+ 3" client.
239 The "Gtk+" library comes with one companion libraries:
242 Provides an abstraction layer over X-Windows/LinuxFB/Win32 to implement
243 basic drawing functions, windows, clipping, etc.
245 Freeciv requires a version of "Gtk+" greater or equal to 3.8.0.
247 If the Freeciv configure process tells you that you don't have the
248 Gtk+ library installed, then it may be obtained from here:
250 http://ftp.gnome.org/pub/gnome/sources/gtk+/3.12/gtk+-3.12.2.tar.xz
252 "Gtk+" depends on the "Glib", "Atk", "Gdk-Pixbuf", and "Pango" libraries.
254 If you are going to make these yourself, build and install them in the
255 following order: pkg-config, Glib, Atk, Pango, Gdk-Pixbuf, Gtk+.
257 1c. Prerequisites for the Gtk+ 3.22 client:
258 ==========================================
262 "pkg-config" is a system for managing library compile/link flags that
263 works with automake and autoconf. You may obtain it at:
265 http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.1.tar.gz
267 - The "Glib" utility library.
269 The "Glib" utility library provides non-graphical functions used by the
270 "Gdk" and "Gtk+" libraries, like hash tables, single linked lists, etc.
272 Freeciv requires a version of "Glib" greater or equal to 2.50
274 If the Freeciv configure process tells you that you don't have the
275 Glib library installed, then it may be obtained from here:
277 http://ftp.gnome.org/pub/gnome/sources/glib/2.50/glib-2.50.1.tar.xz
279 - The "Atk" accessibility library.
281 The "Atk" library provides a set of interfaces for accessibility.
282 It allows people with disabilities to utilize all the functionality
283 provided by Gtk+ apps. You may obtain it at:
285 http://ftp.gnome.org/pub/gnome/sources/atk/2.22/atk-2.22.0.tar.xz
287 - The "Pango" text layout and rendering library.
289 "Pango" is library for layout and rendering of text, with an emphasis
290 on internationalization. You may obtain it at:
292 http://ftp.gnome.org/pub/gnome/sources/pango/1.40/pango-1.40.3.tar.xz
294 - The "Gdk-Pixbuf" image loading/saving library
296 "Gdk-Pixbuf" used to be part of "Gtk+" itself, but is now separate
297 project. It may be obtained from:
299 http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.36/gdk-pixbuf-2.36.0.tar.xz
301 - The "Gtk+" widget library.
303 The "Gtk+" widget library was designed for the GIMP graphics program.
304 Since then it has gained popularity as an easy to program, free toolkit.
306 The "Gtk+" library comes with one companion libraries:
309 Provides an abstraction layer over X-Windows/LinuxFB/Win32 to implement
310 basic drawing functions, windows, clipping, etc.
312 Freeciv requires a version of "Gtk+" greater or equal to 3.22.0.
314 If the Freeciv configure process tells you that you don't have the
315 Gtk+ library installed, then it may be obtained from here:
317 http://ftp.gnome.org/pub/gnome/sources/gtk+/3.22/gtk+-3.22.1.tar.xz
319 "Gtk+" depends on the "Glib", "Atk", "Gdk-Pixbuf", and "Pango" libraries.
321 If you are going to make these yourself, build and install them in the
322 following order: pkg-config, Glib, Atk, Pango, Gdk-Pixbuf, Gtk+.
324 1d. Prerequisites for the SDL client:
325 =====================================
329 "Simple DirectMedia Layer is a cross-platform multimedia library designed
330 to provide low level access to audio, keyboard, mouse, joystick, 3D hardware
331 via OpenGL, and 2D video framebuffer." (http://www.libsdl.org)
333 These features make it a good choice for portable games. You may obtain it
336 http://www.libsdl.org/release/SDL-1.2.11.tar.gz
338 To compile the client using the "SDL" library add "--enable-client=sdl"
339 to the Freeciv configure script. See the section below for more
340 information about the configure script.
342 - The "SDL_image" library.
344 This library loads the PNG images (with the help of libpng) and converts
345 them to "SDL surfaces" that can be handled by the "SDL" library. You may
348 http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz
350 - The "SDL_gfx" library.
352 http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-2.0.25.tar.gz
354 - The "SDL_ttf" library.
356 http://www.libsdl.org/projects/SDL_ttf/release/SDL_ttf-2.0.11.tar.gz
358 - The "freetype" library.
360 This library helps to render text for the SDL client, using an externally
361 provided TrueType font. You may obtain it at:
363 http://download.savannah.gnu.org/releases/freetype/freetype-2.3.2.tar.gz
365 1e. Prerequisites for the SDL2 client:
366 =====================================
368 - The "SDL2" library.
370 "Simple DirectMedia Layer is a cross-platform multimedia library designed
371 to provide low level access to audio, keyboard, mouse, joystick, 3D hardware
372 via OpenGL, and 2D video framebuffer." (http://www.libsdl.org)
374 These features make it a good choice for portable games. You may obtain it
377 http://www.libsdl.org/release/SDL2-2.0.3.tar.gz
379 To compile the client using the "SDL2" library add "--enable-client=sdl2"
380 to the Freeciv configure script. See the section below for more
381 information about the configure script.
383 - The "SDL2_image" library.
385 This library loads the PNG images (with the help of libpng) and converts
386 them to "SDL surfaces" that can be handled by the "SDL" library. You may
389 http://www.libsdl.org/projects/SDL_image/release/SDL2_image-2.0.0.tar.gz
391 - The "SDL2_gfx" library.
393 http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-1.0.1.tar.gz
395 - The "SDL2_ttf" library.
397 http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-2.0.25.tar.gz
399 - The "freetype" library.
401 This library helps to render text for the SDL2 client, using an externally
402 provided TrueType font. You may obtain it at:
404 http://download.savannah.gnu.org/releases/freetype/freetype-2.5.4.tar.bz2
406 1f. Prerequisites for the Xaw client:
407 =====================================
411 The Freeciv Xaw client is an X-Windows program, so you'll need
412 some way of running X-Windows programs. (Most Unixes can...)
414 If the Freeciv configuration program can't find X Windows on
415 your system, you may need to use the --x-includes=DIR
416 and --x-libraries=DIR options.
418 - The "Athena" widget library.
420 This library (also known as "Xaw") is usually supplied standard
421 with the rest of X Windows, but some platforms (HP-UX 10 for
422 example) only provide it in a limited form.
424 To compile the client using the "Xaw" library add "--enable-client=xaw"
425 to the Freeciv configure script. See the section below for more
426 information about the configure script.
428 Many modern Unix systems (such as Linux) ship with a variant called
429 "Xaw3d", which has a more modern "3D" look. If you'd like to try
430 compiling with Xaw3d, then add "--with-xaw3d" to the Freeciv
433 There are also other variants of Xaw, such as Nextaw. Freeciv
434 does not work with these, although it should be possible to modify
435 it in the same fashion as for Xaw3d. Another tool which may help
436 is called "xaw_wrappers", although how to use it is beyond the
441 This library is essential for icon and bitmap handling. It is in
442 wide use, and is supplied standard on most modern Unix machines,
443 although it may be missing on traditional or older Unixes, eg,
446 When you run the Freeciv configure script, it may be necessary for
447 you to use the "--with-xpm-prefix=DIR" command-line option, where
448 DIR is the name of the directory containing the "include" and "lib"
449 subdirectories where Xpm may be found.
451 If the Freeciv configure process tells you that you don't have the
452 Xpm library installed, then it may be obtained from here:
454 ftp://koala.inria.fr/pub/xpm/xpm-3.4k.tar.gz
455 ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz
457 Install it as you would any other package. If you can't install
458 it in a standard system directory, then use the --with-xpm-prefix
459 option, as described above.
461 If you have problems installing libXpm on Solaris, or don't want to
462 install it as root, see Reinier's libXpm Solaris Installation Notes
463 section near the end of this file.
467 To run the Xaw client a suitable font is required. The X fonts should do.
468 If the Xaw client complains about not being able to open a font your X
469 installation probably don't have them. X fonts can be obtained from:
471 http://xorg.freedesktop.org/releases/individual/font/
473 If you use Debian you can install the package named xfonts-base in stead.
474 After installing a suitable font and restarting X the problem should go
477 1g. Prerequisites for the Qt client:
478 ====================================
482 Qt-client is written in C++, so you need appropriate compiler.
483 In Freeciv development, g++ has been used.
485 - Qt5Core, Qt5Gui, and Qt5Widgets libraries and headers
488 2. Generating Makefiles
489 =======================
490 This section contains two parts, one for generating makefiles from svn
491 versions and one for generating makefiles from release versions.
493 2a. Generating the Makefile for svn versions:
494 =============================================
496 This step is only needed for svn versions.
498 To create the makefile just type
502 This will create the configure script and will run it. All parameters
503 of autogen.sh are passed to configure. Read the next section about the
504 parameters which can be passed to configure.
506 2b. Generating the Makefile for release versions:
507 =================================================
509 Before you compile Freeciv, you must generate a Makefile. This makefile
510 is configured to suit the features available on your machine.
512 This configuration is done using the GNU "configure" script.
514 To use "configure", "cd" into the top directory containing the Freeciv
519 This script will then attempt to determine the relevant features (and
520 misfeatures!!) of your system. It should print a page or two of
521 diagnostics about your machine, then stop gracefully.
523 If you'd like help on the various options supported by the configure
524 script, try the --help option, like this:
528 By default the configure script will choose the Gtk+ client if the
529 required libraries are found. If you prefer to override this default,
530 you can give configure the "--enable-client=xaw" option.
532 If you want to change the compiler options, set the CFLAGS environment
533 variable in your shell before running "configure". For example:
535 % CFLAGS="-O -g -pipe" ./configure [for people using Bourne shell or bash]
539 % setenv CFLAGS "-O -g -pipe"
540 % ./configure [for people using C shell or tcsh]
542 If you're tracking down a "core dump", we suggest that you use
543 a value of "-g" for CFLAGS.
545 When you install Freeciv (later), the game components will be copied into
546 subdirectories of /usr/local by default. If you would like to use some
547 other installation prefix besides /usr/local, you should specify it now:
549 % ./configure --prefix=/opt/freeciv
551 If for some reason using "configure" gives you trouble, follow these steps:
553 - Read the prerequisites section carefully, to determine if your
554 system meets all the requirements.
556 - If you are compiling the Xaw version of the client: Ensure that
557 you have both the Xpm and Xaw libraries installed on your system.
558 Make sure that the configure script can find them, either by
559 installing them in the standard places on your system, or by
560 instructing the configure script with the appropriate command-line
561 options. (See ./configure --help).
563 - If the problem is with "gettext", please read the Native Language
564 Support section, below, for possible work-arounds.
566 - Let us know, so that we can fix it for the next release!!
568 Send mail to the freeciv-dev mailing list, telling us what you did,
569 and what the result is. It would be helpful to include the output
570 of the configure script, and the contents of the "config.status",
571 "config.cache" and "config.log" files, which are generated by the
574 You can find out about the freeciv-dev mailing list on our web
575 site, at http://www.freeciv.org/
578 3. Compiling Freeciv:
579 =====================
581 If all has gone well previous to this point, then compiling Freeciv
582 should be as easy as typing "make" (or preferably, "gmake").
584 If you have problems, read the file BUGS, and follow the advice
585 carefully. If the problem is with "gettext", please read the Native
586 Language Support section, below, for possible work-arounds.
588 After compilation, the important results are:
590 - The "client/freeciv-<GUI>" and "server/freeciv-server" binaries.
591 - The "data/" directory, which contains the graphics and scenarios.
592 - The "translations/" directory, which contains the localization files.
593 - The "fcgui" and "fcser" scripts.
595 It's perfectly feasible to play Freeciv in this directory, without
596 installing it. If you do this, the "fcgui" and "fcser" scripts may be
597 useful, although they are not as necessary as they used to be.
599 See the README file for more information.
601 (However you cannot use Internationalization when playing Freeciv from
602 the source directory; you must install Freeciv for that.)
608 Installing Freeciv involves installing the components mentioned in the
609 Compiling Freeciv section. These need to be copied to a directory such
610 as /usr/local (the default), /usr/games, /usr/games/freeciv,
611 /usr/local/freeciv, or some other suitable directory.
613 Typing "make install" should install everything correctly on your machine.
614 You may like to use the --prefix=DIR configure option (see the Generating
615 the Makefile section) to ensure the files get placed where you want.
617 When the Freeciv client and Freeciv server are run they both need to
618 find some files from the "data" directory. By default freeciv looks
619 in the following directories, in order, for any data files: the current
620 directory; the "data" subdirectory of the current directory; the
621 subdirectory ".freeciv" in the user's home directory; and the directory
622 where the files are placed by running "make install". You can override
623 this search patch by setting the FREECIV_PATH environment variable, to
624 a single directory or a list of directories separated by colons.
628 % setenv FREECIV_PATH "/usr/games/freeciv/data:./data"
629 (for users of csh, tcsh, etc.)
631 % FREECIV_PATH="/usr/games/freeciv/data:./data"; export FREECIV_PATH
632 (for users of sh, bash, ksh, zsh, etc.)
634 Also, note that you generally must install Freeciv if you wish to use
635 its Native Language Support. See the README file for more information.
637 Finally, if you've chosen to use the Xaw client and you have permission
638 to log in as the 'root' user, you should consider copying the resource
639 file data/Freeciv into your app-defaults directory. (Usually this is
640 /usr/lib/X11/app-defaults).
643 5. Native Language Support:
644 ===========================
646 Freeciv uses the "gettext" system for Native Language Support.
648 If you experience problems with gettext in either configuring or compiling
649 Freeciv, there are a few work-arounds you can try:
651 1. If you don't need Native Language Support, disable it using the
652 "--disable-nls" ./configure option:
654 % ./configure --disable-nls
657 2. You can try to install the latest version of GNU gettext.
658 It may be obtained from here:
660 ftp://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.2.tar.xz
666 Freeciv has optional support for the readline library.
668 Readline support is what makes the server command line behave sensibly,
669 making it possible to
670 - Use the backspace key.
671 - Use the cursor to move back and forth on the line you have written.
672 - Use TAB completion of commands and command arguments. Ie, when you
673 push tab the server will finish the word for you if there is only one
675 - Use the up and down cursor to scroll through the history of previously
679 The configure script will check if you have the readline library correctly
680 installed. If so it will automatically set up the makefiles so that readline
681 is compiled into the server. If not then it will just silently configure
682 without readline support.
683 You can force configure to include readline or die trying by giving
684 configure the --with-readline option:
686 % ./configure --with-readline
688 Some linux distributions (and possibly other operating systems) have
689 readline version 4 incorrectly installed, so that readline is not
690 set up to declare it's dynamic dependencies. In that case configure
691 will try to guess which extra libs it should link against and add them.
692 The configure script will give a warning if it had to add extra libs
693 to make readline work. This should be harmless, and is just meant as
694 a reminder to the folks who distribute readline. :)
696 7. Reinier's Solaris Installation Notes:
697 ========================================
699 Solaris (2.5 and up) has its own version of X in /usr/openwin, its own
700 version of make in /usr/ccs/bin/make, and its own compiler (to be purchased
701 separately) which, if you have it, is available in /opt/SUNWspro/bin.
702 Solaris does not provide the XPM library, which is required for the Xaw
703 client; it doesn't provide any of the stuff required for imlib, gdk and gtk,
704 either, which is required to build the GTK+ client. However, with some
705 patience, everything can be compiled without problems.
707 For information on how to install XPM on Solaris, see the next section.
709 Many Solaris installations also have MIT X (usually, in /usr/X11), GNU make,
710 the gcc compiler, and the XPM library installed somewhere. The standard
711 command "./configure && make" may not be able to find your XPM library and
712 it is likely to confuse the different versions.
714 Make sure your environment variables, especially $PATH and $LD_LIBRARY_PATH,
715 and the ./configure options do not point to an inconsistent set of software,
716 and compiling will be fine.
718 A simple recipe to compile with Sun X, Sun make and Sun cc, assuming the xpm
719 libraries are on their own in the nonstandard location /path/to/xpm:
721 % setenv PATH /opt/SUNWspro/bin:/usr/ccs/bin:/bin
722 % unsetenv LD_LIBRARY_PATH
723 % ./configure --with-xpm-prefix=/path/to/xpm
726 You can set up your $PATH and ./configure to use only GNU
727 tools. Furthermore, Freeciv is known to compile with MIT X, and with
728 certain combinations of GNU and Sun tools. The exact recipes depend on your
732 8. Reinier's libXpm Solaris Installation Notes:
733 ===============================================
735 When I was root on my Solaris system, I *still* didn't want to install
736 third-party software as root. It's bad practice.
738 Unfortunately, the libXpm installation procedure assumes installation
739 in /usr/openwin, which is owned by root. But it's not all that hard to
744 - Make sure /usr/ucb/install is in your $PATH before /usr/bin/install,
745 otherwise 'make install' will break with strange error messages.
747 - The destination you want to install to can be specified with $DESTDIR;
748 however, installation will actually take place in $DESTDIR/$OPENWINDIR,
749 so the additional $OPENWINDIR subdir must be stripped afterwards
750 (changing the value of $OPENWINHOME doesn't work).
754 - Get the source from somewhere, untar it, cd into the source directory,
757 % setenv MYXPMDEST /usr/local # or wherever you want to install it
758 % xmkmf; make Makefiles includes depend; make
759 % setenv PATH /usr/local/bin:/usr/ucb:$PATH
760 % make DESTDIR=$MYXPMDEST install
761 % make DESTDIR=$MYXPMDEST install.man
762 % cd $MYXPMDEST; mv ./$OPENWINHOME/* .; rm -rf ./$OPENWINHOME
764 (If you use sh, bash, ksh, zsh, etc., the "setenv"s above should be:
765 % MYXPMDEST=/usr/local; export MYXPMDEST
766 % PATH=/usr/local/bin:/usr/ucb:$PATH
769 - You can now configure Freeciv with
771 % ./configure --with-xpm-prefix=$MYXPMDEST
773 which will add the proper -I/-L/-R options to the compile and link
777 9. Mac OS X and Darwin notes:
778 =============================
780 Apple's version of GCC uses precompiled headers that does not support
781 vararg macros (a GCC extension). This causes GCC to fail when
782 compiling Freeciv since the compiler is otherwise (mostly)
783 indistinguishable from vanilla GCC. So instead of the usual
787 you should use either
790 $ CC="gcc -no-cpp-precomp" ./configure <...>
795 % env CC="gcc -no-cpp-precomp" ./configure <...>
797 depending on whether your shell is a Bourne or C shell variant. (If
798 in doubt, just try both to see which one will work.)
800 Replace <...> with whatever additional arguments you want to give to
804 10. Debian GNU/Linux notes:
805 ===========================
807 To compile freeciv on a debian system you need the following packages:
820 If you want to compile the xaw client you should give configure the
821 argument --with-xaw3d, ie
823 % ./configure --with-xaw3d
825 If you need to run aclocal (if you don't know what aclocal is then you
826 don't need it) you also need to install imlib-dev to get the
827 AM_PATH_GDK_IMLIB macro. It is a bug in debian that this macro isn't
828 in gdk-imlib-dev, and it will hopefully be fixed in future debian
834 Windows version of Freeciv can be built either with MinGW or Cygwin.
835 Official Windows binaries are built with MinGW, and they are self-contained
836 packages. For using Cygwin version, you need Cygwin environment installed.
838 Build instructions for MinGW versions are documented on top of file
839 win32/installer/Makefile
841 Cygwin specific installation notes can be found in doc/INSTALL.Cygwin.