• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

MSVC/H03-May-2022-12,97812,705

Xcode/H03-May-2022-10,0909,660

data/H03-May-2022-51,08638,171

include/H27-Feb-2021-23,38514,356

m4/H27-Feb-2021-11,51610,258

man/H27-Feb-2021-4,4564,144

misc/H03-May-2022-34,38526,900

package/H27-Feb-2021-5,0284,263

plugins/H27-Feb-2021-48,62842,109

src/H27-Feb-2021-204,167151,786

tools/H27-Feb-2021-8,1586,722

.editorconfigH A D22-Dec-2020207 1410

AUTHORSH A D22-Dec-20209.2 KiB375318

COPYINGH A D22-Dec-2020623 1611

COPYING.LGPLH A D22-Dec-202025.9 KiB503418

COPYING.MPLH A D22-Dec-202016.3 KiB374293

ChangeLogH A D27-Feb-202172.7 KiB1,4571,315

DEVINFOH A D22-Dec-202019 KiB506390

INSTALLH A D27-Feb-202115.4 KiB369287

Makefile.amH A D12-Feb-20211.4 KiB8167

Makefile.inH A D27-Feb-202127.8 KiB934830

NEWSH A D22-Dec-202032 31

PORTINGH A D22-Dec-20203 KiB6859

READMEH A D27-Feb-202115.7 KiB414316

README.BeOSH A D22-Dec-2020992 2922

README.IRIXH A D22-Dec-20202.9 KiB6449

README.LinuxH A D12-Feb-20212.1 KiB5942

README.MINGW32H A D22-Dec-20205.8 KiB12996

README.MacOSXH A D22-Dec-20206.7 KiB137112

README.SOLARISH A D22-Dec-20201.7 KiB4735

README.WINDOWSH A D22-Dec-20202 KiB4335

aclocal.m4H A D27-Feb-202151.3 KiB1,4261,292

autogen.shH A D22-Dec-202044.1 KiB1,492986

bzflag.specH A D27-Feb-20212.1 KiB7444

bzflag.spec.inH A D27-Feb-20212.1 KiB7462

configureH A D27-Feb-2021792.5 KiB26,97722,716

configure.acH A D03-May-202236.4 KiB1,2231,072

README

1			    BZFlag 2.4.22
2			 http://BZFlag.org/
3		Copyright (c) 1993-2021 Tim Riker
4
5BZFlag is an Open Source OpenGL multiplayer multiplatform Battle Zone
6capture the Flag game.  At its heart, the game is a 3D first person
7tank simulation where opposing teams battle for dominance.  The game
8was originally written for SGI computers running Irix, but now runs
9and is actively maintained on Windows, Linux, Mac OS X, and other
10platforms.
11
12BZFlag may be redistributed under either the LGPL or MPL licenses.
13
14This is the BZFlag README file.  This file includes introductory build
15instructions, user community interaction references, information for
16getting involved in BZFlag development, a manifest of the source code
17layout, basic usage expectations, contact information, and more.
18
19
20Table of Contents
21=================
22    Introduction
23    Table of Contents
24    Obtaining BZFlag
25    Compiling and Installation
26	Short Version
27	Long Version
28    Communication
29	Internet Relay Chat
30	Forums
31    Bug Reports and Support
32    Providing Contributions
33    Source Tree Organization
34    Public Internet Servers and the "list server"
35    Notes on "CHEAT" servers and network abuse
36    Project History and Contributions
37    Contact
38
39
40Obtaining BZFlag
41================
42
43Main BZFlag Website:  http://BZFlag.org
44BZFlag Github Site:  https://github.com/BZFlag-Dev/bzflag
45
46The main BZFlag website provides access to most all of the resources
47available for the game.  The binary and source distributions of BZFlag
48are, however, provided on the GitHub project site.  Compiled versions
49are distributed as installable packages, disk images, and more, with
50details varying depending on the platform.  Source code distributions
51are provided and archived in various formats as well. See the project
52site for the download links.
53
54BZFlag is also available directly from GitHub.  To obtain BZFlag from
55git, a bit more familiarity with software development is expected.
56If you're familiar enough, anonymous GIT access is provided from the
57repository:
58
59  https://github.com/BZFlag-Dev/bzflag.git
60
61
62Compiling and Installation
63==========================
64
65To compile a playable BZFlag, the following steps should get you up
66and running quickly if everything external to BZFlag is properly
67installed:
68
69  ./autogen.sh
70  ./configure
71  make
72  ./src/bzflag/bzflag
73
74If configure detected everything it needed to build the BZFlag client,
75after make the client will be sitting in src/bzflag as 'bzflag'.  The
76game can be run from there, though you will probably want to "sudo
77make install" or otherwise become a privileged user and install the
78game properly for your system.
79
80If you're building on a platform that has a README.* file, you should
81consult that file as they usually contain additional instructions or
82details specific for building on that platform.  There are often hints
83for common problems specific to those platforms as well.
84
85The Longer Version:
86
87To build sources directly from a git clone you need to create a
88configure script. You can skip this step if you grab a distribution of
89BZFlag that already has a ./configure script in it, such as from a
90source distribution tarball.  To generate the configure script, you
91need to run the provided autogen.sh script:
92
93  ./autogen.sh
94
95The script will report whether sufficient versions of the GNU Build
96System tools (i.e. autoconf, automake, and libtool) that were detected
97and if successful, a configure script will be generated.  If the
98script fails, submit a report to the developers containing the output
99of "sh autogen.sh -v". This will run autogen.sh in verbose mode.  One
100of the most common failures is having insufficient versions or
101mismatched combinations of the GNU Build System tools, so make sure
102your tools are recent.
103
104If the previous step was successful you now have a script for
105configuring BZFlag.  This command:
106
107  ./configure --help
108
109will list the variety of configuration options.  The script adapts
110well to various system configurations, so it may be enough to simply
111run it as:
112
113  ./configure
114
115You may want to create a 'work' directory and configure from there to
116have all the build products and binary executables get placed in a
117directory separate from the sources.  To do this, simply create a
118directory then run configure and make from there instead.
119
120After configure completes, it will report whether all the requisite
121packages were found that it needs in order to build the client and the
122server.  The client is reliant upon the following external
123dependencies that should be installed before running configure:
124
125  OpenGL 1.0+
126  libSDL 1.2+
127
128If you're on an operating system that uses a packaging system
129(e.g. apt, portage, ports, etc), be sure to install the development
130kit versions of each of those (e.g. xlibmesa-gl-dev package) so that
131headers are made available.  You may also want to manually install
132other dependencies that BZFlag automatically provides if you do not
133have them pre-installed:
134
135  c-ares
136  libCURL
137  libregex (usually provided as part of libc)
138  zlib
139
140The README.Linux file includes a detailed list of of the packages
141needed to compile and run BZFlag on some popular Linux distributions.
142
143The final summary at the end of running configure will report whether
144the client will be built or not.  Once configure has been run, you may
145compile by simply running 'make'.  If you have GNU Make and are on a
146multiprocessor system, you can build in parallel with the -j option:
147
148  make -j4
149
150If compilation was successful, the client will be in src/bzflag and
151the server will be in src/bzfs as 'bzflag' and 'bzfs' respectively.
152You can run the client or the server directly from those locations
153with or without installing:
154
155  src/bzflag/bzflag
156
157BZFlag looks for data files in a path defined during compile, in
158./data/ , or in the previously specified data path only.  As part of
159the tarball/git clone, the base data library is located in
160<installed-locale>/bzflag/data.  This means that to test in a working
161directory you need to tell bzflag where to find these files if there
162is not a 'data' directory in your current directory.  This can be done
163with a symbolic link:
164
165  ln -s ./path/to/bzflag/data
166
167After testing you can install BZFlag by running 'make install' with
168sufficient system installation privileges.  Use 'sudo', 'su', or
169similar methods to elevate your privileges when installing BZFlag
170system-wide:
171
172  sudo make install
173
174You should now have BZFlag in the system directory ready to run.
175
176If you do not have admin privileges on your platform, you can install
177files in a directory that you own; for this to work, you have to
178append to the configure command the prefix option:
179
180  ./configure --prefix=YourHomeDirectoryHere
181
182You will then be able to perform a "make install" without needing to
183elevate your privileges, and all bzflag executable files will be
184installed in the subdir bin of the specified path.
185
186For additional information on installing, see INSTALL file.
187
188Again, some platforms may be different.  See the README file
189appropriate to your system for more information.
190
191You can also build an installable package using:
192
193  make package
194
195The package will be placed in ./dist; the exact form of the package
196depends on the platform.
197
198There are three cleanup targets: clean, distclean, and
199maintainer-clean.
200
201`make clean' removes intermediate files but leaves bzflag and other
202programs and any man pages.
203
204`make distclean' removes everything clean does and also programs and
205man pages. This should get things back to a tarball state.
206
207`make maintainer-clean' removes everything distclean does and also
208packages, directories created during the build, and the platform
209configuration; this should get the source tree back to its state in
210the Git repository.
211
212To build BZFlag for an unsupported platform, see PORTING.
213
214The ./configure script has a number of build options that you may find
215interesting.
216
217
218Communication
219=============
220
221The BZFlag project has several resources set up for communicating both
222with other developers and with the community.  There is an IRC
223channel and forums.
224
225Internet Relay Chat
226-------------------
227Most of the BZFlag development activity and discussions occur over
228IRC.  Join the #bzflag IRC channel on the Freenode network
229(irc.freenode.net, port 6667) to get involved.
230
231See https://webchat.freenode.net for a web based interface for
232first-time users.  Individuals that intend to stay in the channel are
233expected to get a non-web-based IRC client.  See http://irchelp.org or
234search the web for IRC clients for your operating system.
235
236Forums
237---------------
238There are extensive and active forums used by players, server
239operators, administrators, and others available here:
240
241https://forums.bzflag.org
242
243Registering an account on the forums presently also registers your callsign
244for use inside of BZFlag.  Some servers require registration in order to
245play.  See the Getting Started page on our site for more about registration.
246
247
248Bug Reports and Support
249=======================
250
251For reporting bugs and unexpected behavior, please go to BZFlag bug
252tracking system at:
253
254https://github.com/BZFlag-Dev/bzflag/issues
255
256If you require assistance with some issue, please visit the BZFlag
257IRC channel at #bzflag at irc.freenode.net
258
259Alternatively, discussion forums are also available for resolving issues.
260
261
262Providing Contributions
263=======================
264
265Pull Requests should be entered submitted via the GitHub pull system:
266
267https://github.com/BZFlag-Dev/bzflag/pulls
268
269Contributions are gladly accepted for modifications that do not
270affect the core gameplay.  Interacting with the other developers in
271the IRC channel is recommended for any changes which will affect
272gameplay.
273
274
275Source Tree Organization
276========================
277
278After unpacking a source distribution, you should have at least the
279following files in the new 'bzflag' directory:
280
281  README	- this file
282  README.*	- platform specific details
283  AUTHORS	- project contributors
284  COPYING	- the license for BZFlag
285  ChangeLog	- source code changes since previous release
286  DEVINFO       - information for developers
287  NEWS		- history of visible changes for each release
288  PORTING	- a guide for porting BZFlag
289  autogen.sh	- build system preparation script
290  configure.ac	- build system configuration script template
291  data/		- data files (sounds, images, etc.)
292  include/	- include headers for libraries
293  man/		- man pages
294  misc/		- miscellaneous goo
295  MSVC/		- stuff for building on the Windows platform
296  package/	- stuff to build installable packages
297  plugins/	- bzfs plugins
298  src/		- bzflag, bzfs, etc. source code
299    3D/		  - 3D code including texture manager
300    bzadmin/      - bzadmin app source code (text admin/chat client)
301    bzflag/	  - bzflag app source code (game client)
302    bzfs/	  - bzfs app source code (game server)
303    common/	  - general purpose classes
304    date/         - unified version and build date stamping for apps
305    game/	  - game library used by both the server and client(s)
306    geometry/	  - geometry rendering classes
307    mediafile/	  - classes for reading resources
308    net/	  - networking classes and functions
309    obstacle/	  - collision detection stuff
310    ogl/	  - OpenGL utility classes
311    platform/	  - platform dependent code
312    scene/	  - high level rendering algorithms
313  tools/	- various helper utilities
314  Xcode	        - Mac OS X Xcode project and associated files
315
316Note that include/ does not have all the include files.  If a header
317is used entirely within a library (i.e. it doesn't directly provide
318functionality outside the library) then the header is found in the
319library's directory under src/.  An include file goes in include/ only
320if it's required by another library or libraries or executables.
321While this complicates locating a header file (it can be in one of two
322places instead of just one place), you can instantly tell if a header
323file is (can be) used by clients of the library.
324
325
326Public Internet Servers and the "list server"
327=============================================
328
329The bzflag project offers a public server listing service that allows
330players to find servers to play on. This service is run for the
331benefit of the project. As of Version 2.4, BZFlag servers that wish to
332be listed on the public list server must provide an authentication key
333that ties the server to a specific global user. This is done to
334provide contact information for players and project
335staff. Authentication keys are automatically generated at
336https://my.bzflag.org/listkeys/
337
338
339Notes on "CHEAT" servers and network abuse
340==========================================
341
342While the license for BZFlag certainly allows users to run any server
343modification that they wish or to modify the code in any way, we ask
344that people do not publish or host "cheat" clients or servers to the
345general public for use.  We also expect that users will abide by basic
346usage guidelines of reasonable and tolerable behavior that are not
347detrimental to the game's heritage of a fun gaming environment for
348all.
349
350We understand the desire to expand, modify, and improve the game and
351its sources including the ability to test out new features publicly.
352These modified clients and servers generally provide some advantage
353over unmodified clients and are generally discouraged for widespread
354use.  As such, we ask that anyone wishing to host or otherwise
355participate in a game that involves a modified client or server to
356register under a different network protocol than the current public
357release by modifying BZ_PROTO_VERSION in the src/date/buildDate.cxx
358file.  This will let modified games be played and prevent modified
359clients from being used on public unmodified servers.
360
361Any individuals that are found to be contributing to abuse of the
362public services being provided may be subject to bans or other access
363restrictions.  Abuse generally consists of any disruption to one of
364BZFlag's network services including denial of service attacks,
365spamming of BZFlag web sites or servers, disruptive gameplay on
366multiple public servers, intrusion attempts, password sniffing, or any
367other behavior that is deemed inappropriate.
368
369The BZFlag project administrators reserve the right to remove public
370listings of any game servers for any reason whatsoever, including
371removal of servers or banning of individuals that do not follow this
372request.  Similarly, the BZFlag project administrators also reserve
373the right to limit access or otherwise block any players from public
374service access at any time.  These actions may include the suspension
375or removal of global accounts and limiting access to the web site
376services including web site services, list server access, forum access,
377and any league resources.
378
379In general, the entire network is provided by the community for the
380community as an entirely volunteer and contributed effort.  We ask
381that all players recognize and respect the time, effort, and resources
382involved and that we're all generally here to have a good time.
383
384
385Project History and Contributions
386=================================
387
388BZFlag was primarily originally authored by Chris Schoeneman
389<crs23@bigfoot.com> in the early 1990's.  After several years of
390development, Chris turned over copyright and maintainership of the
391game to Tim Riker.
392
393BZFlag continues today to be maintained and developed by the Open
394Source community by a project administration team with contributions coming
395in from all over the world.  See the AUTHORS file for more details on
396contributions to the project.
397
398
399Contact
400=======
401
402Any of the core developers listed in the AUTHORS file are generally
403receptive to being contacted for most matters relating to the game.
404Internet Relay Chat (IRC) or e-mail is generally the expected method
405of interaction with IRC being generally preferred.  The project
406maintainer Tim Riker <Tim@Rikers.org> is available for most legal matters,
407but day to day development is handled by the Project Administrators:
408
409Scott Wichser (blast007) <blast007@users.sourceforge.net>
410Jeff Makey (BulletCatcher) <bullet_catcher@users.sourceforge.net>
411
412Happy Shooting!
413The BZFlag Development Team
414

README.BeOS

1README for BeOS platforms
2-------------------------
3
4(Fran�ois Revol - 26/02/2004)
5
6BZFlag should now compile on BeOS R5 BONE, using the software
7renderer. It also works fine with MESA 6. It can also built for
8the "new" OpenGL kit that was to be in R5.1d0, the configure
9detects libGL2, though one should then have to replace
10src/platform/BeOSWindow.cxx by src/platform/BeOSWindow2.cxx.
11Note there are many issues with this beta GL stuff, and it's
12totally unsupported. I keep this one in SVN because I don't
13know which API will survive the other.
14
15net_server isn't supported yet, and I don't think it will ever
16be, though the configure script only links to BONE libs if they
17are present.
18
19I usually use:
20configure --prefix=/boot/home/config --enable-debug
21
22Current limitations include:
23- windowed mode only, and fixed size window.
24- buggy audio (samples get played in a loop, giving a headache
25after some minutes.
26
27SDL build (= without the native ui) under BeOS hasn't been
28investigated yet.
29

README.IRIX

1BZFlag README for IRIX
2----------------------
3
4NOTE: BZFlag likely no longer builds successfully on IRIX. However,
5we will keep this README file for now as a possible reference in case
6someone wants to try.
7
8
9Building on IRIX will work with either the SGI MIPS compiler or the
10GNU gcc3 compiler.  The GNU compiler is available for download from
11SGI freeware.
12
13Note that the gcc-3.2.2 version picked up some 6.5.18-isms, so you may
14need to track down the older 3.1 release, or obtain a newer version
15yourself, if you are using gcc and are unable to compile.
16
17If both the GNU compiler and the SGI MIPS compiler are installed on
18the same system, the GNU compiler will be used by default.  To use the
19SGI MIPS compiler, you will need to inform the configuration script of
20your preference.  You can set the variables as environment variables,
21or provide them directly to configure as is shown (and preferred)
22below:
23
24# to use the MIPSPro compiler
25./configure  CC="cc" CXX="CC" CXXFLAGS="-O2 -OPT:Olimit=32768 -DEFAULT:abi=o32:isa=mips3:proc=r5k -LANG:std -FE:template_in_elf_section -ptused -prelink" CFLAGS="-O2 -OPT:Olimit=32768 -DEFAULT:abi=o32:isa=mips3:proc=r5k -LANG:std -ptused -prelink"
26make
27
28If you try to boost the optimization to -O3, it is likely that the
29compiler will crash or hang.  The -OPT:Olimit option helps mitigate
30any crashes, but some may still be experienced and need to be compiled
31by hand with no optimization.  Some files will simply take a very long
32time to compile no matter what optimization level, so be patient. ;)
33
34The -LANG:std, -ptused, and -prelink options are necessary for it to
35build properly.  Without them, there will be serious problems linking
36the binaries with the template instantiations.  The options are not
37strictly necessary on the CFLAGS variable (they are required for
38CXXFLAGS), but don't hurt.
39
40You may want to use the -no_autoinclude option on the CXXFLAGS and
41CFLAGS if your version of the compiler supports that option if you run
42into an error, but it should not be necessary.
43
44The last problem that you may encounter on older IRIX systems is a
45problem in the curses.h header.  This problem will cause bzadmin to
46fail to build properly.  If you have no need for bzadmin, you can
47ignore the failure as bzfs and bzflag will have completed before
48bzadmin.  Otherwise if you do want bzadmin, the workaround is simple..
49The header uses a symbol name that is not valid with the C++ compiler:
50
51cc-1084 CC: ERROR File = /usr/include/curses.h, Line = 611
52  The indicated declaration has an invalid combination of type specifiers.
53
54		syncok(WINDOW *, int bool),
55
56The relatively simple work around involves actually editing the
57curses.h file.  Copy the /usr/include/curses.h file to the bzflag
58include/ directory.  Edit the file and replace "int bool" with "int
59b".  The edited file should take precedence over the system header.
60Save the file, and restart make and the build should succeed.  Best of
61luck.
62
63See the generic install instructions in README for more details.
64

README.Linux

1BZFlag README for Linux
2=======================
3
4BZFlag is an online multiplayer 3D tank battle game. You can play against
5other people anywhere on a TCP/IP based network, including the Internet.
6BZFlag is free and open source. Please read the file COPYING in the
7bzflag-<version> directory of the standard doc directory (probably
8/usr/share/doc).
9
10Hardware accelerated OpenGL is *highly* recommended. Intel graphics chipsets
11are well supported on Linux, with the exception of the few PowerVR-based
12versions. AMD graphics cards are also well supported on Linux, but may require
13additional firmware to be installed for 3D accelerated graphics to function.
14For instance, on Debian this is accomplished by enabling the contrib and
15non-free repositories and installing the firmware-amd-graphics package. For
16nVidia, there is an open-source Nouveau driver, but you might find this does
17not function well enough and may instead need the proprietary nVidia drivers.
18Install those through your package/driver manager (or, less ideally, from
19nvidia.com).
20
21More information about BZFlag is available in the man pages for bzflag, bzfs,
22bzadmin, and bzw. Also check:
23
24  http://www.BZFlag.org/
25
26Different Linux distributions use different naming conventions for the packages
27that provide the dependencies needed to compile and run BZFlag. Known build
28requirements include:
29
30  Debian & Ubuntu:
31
32    apt-get install g++ libtool automake autoconf libsdl2-dev libcurl3-dev \
33    libc-ares-dev zlib1g-dev libncurses-dev libglew-dev make
34
35  Fedora:
36
37    dnf install SDL2-devel c-ares-devel libcurl-devel gcc-c++ libtool \
38    ncurses-devel zlib-devel glew-devel
39
40After any development packages are installed, execute the following commands
41from the top-level BZFlag source directory:
42
43  ./autogen.sh
44  ./configure
45  make
46
47This will build BZFlag. The autogen.sh step can be skipped if the source code
48was received from the tarball package, but must be included if the source came
49directly from a git clone.
50
51If you wish to install the executables to the usr directory after the build,
52then execute as root:
53
54  make install
55
56
57Submit bug reports and comments on the GitHub site
58https://github.com/BZFlag-Dev/bzflag/issues
59

README.MINGW32

1To build bzflag on Windows Intel you can use MinGW and MSYS, both Open Source
2and freely available from http://www.mingw.org
3
4There's a troubleshooting section at the end of this file in case you run into
5problems.
6
7*** Part I: Obtain MingW and MSYS
8
9MinGW stands for Minimalistic GNU for Windows
10  it is a collection of library, header and a collection of GNU tools
11MSYS stands for Minimal SYStem
12  it gives the ability to run shell based program (like configure)
13The MSYS DTK stands for the Developer's Toolkit
14  it lets you use GNU autotools, and other utilities, on windows
15
16MinGW gives the ability to generate a truly native windows program, without any
17posix layer emulation (like the one in use by cygwin).
18
19Now, to build bzflag, you have to procure MinGW and MSYS. Get the
20whole MinGW, including the MSYS DTK (Development ToolKit), follow the instruction
21to install it and stay updated.
22
23*** Part II: Obtain necessary platform files
24
25If you would like to build BZAdmin in curses mode, you need to download PDCurses
26from http://pdcurses.sourceforge.net/.  Build it according to their instructions
27for MingW, and rename the resulting library from pdcurses.a to libpdcurses.a.
28Then copy libpdcurses.a and curses.h to the appropriate subdirectories of your
29MingW32 install (lib and include respectively).
30
31If you want to build using SDL support, you should get SDL at libsdl.org and
32follow their instructions to install it under MinGW before configuring bzflag.
33Then move on to Part III.  This is the suggested way of building BZFlag.
34
35If you want to build without using SDL, you have to get yourself a couple of
36header files to interface the MS DirectX subsystem. They are normally part
37of any Microsoft development kit; you can get from your Visual C installation
38if you have one, or from MSDN on internet.
39Any way you got these files, you should copy either on the MinGW installation,
40under the include directory or, if you don't like to clutter the MinGW
41installation, just put under src/platform.
42
43The files in question are dsound.h, dinput.h and ddraw.h.
44
45To get the needed DirectX header files from the Microsoft DirectX SDK:
46    * Go to http://msdn.microsoft.com/downloads/
47    * Select the DirectX 9.0 Software Development Kit
48    * Click on the Download link on the right
49    * This is a 227 MB file!
50    * Run the downloaded program
51    * Click Unzip to extract it to the default location (C:\mssdk\temp)
52    * Click "OK" and "Close" when the program finishes extracting the files
53    * Copy ddraw.h, dinput.h and dsound.h from the SDK's include directory
54
55Note that we cannot redistribute these files separate of the entire SDK.
56
57*** Part III: Obtain BZFlag
58
59Make sure that your BZFlag sources have correct line endings.  Use the source
60tarballs rather than zipfiles if you're building from a release.  If you are
61using subversion, the line endings should be correct automatically except for
62src/date/buildDate.cxx, which you will need to convert with dos2unix or a
63similar tool before attempting to run ./configure.
64
65It's easiest to check out BZFlag into a subdirectory of wherever you installed
66MSYS, such as <MSYS>/bzflag.
67
68*** Part IV: Compile and Install BZFlag
69
70Once you have the files checked out correctly, you should run this command
71
72sh autogen.sh
73
74from the top bzflag directory, from inside the MSYS shell (run msys.bat from
75the MSYS directory).
76
77You should have all the automake, autoconf, m4, perl stuff - they
78are in DTK kit.  They may not be up to date; there are sometimes more updated
79versions available if autogen refuses to run.
80
81If you are able to find a bzflag dist kit, just run the configure script,
82looking at the help (configure --help) for options.
83
84Then run
85
86./configure (with any desired arguments, such as --without-sdl)
87make
88make install
89
90Compiled executable files are found in src/bzflag (bzflag.exe), src/bzfs/bzfs
91(bzfs.exe), and src/bzadmin (bzadmin.exe).
92
93When you are confident of the compilation result you can run make install and
94then make a link to the application (e.g. on your Desktop) to run this bejoux.
95
96
97--- Troubleshooting:
98
99Q. When I run autogen.sh, I get a message like "sh: aclocal: command not found"
100A. aclocal and associated programs are part of the GNU autotools package.  This
101   is included in the MSYS Developer's Tool Kit (DTK), which can be downloaded
102   from http://www.mingw.org.  BZFlag requires the autotools to build.
103
104Q. When I run ./configure, it reports "No C Compiler found" or similar.
105A. Make sure you install MingW32 before MSYS, and when installing MSYS, be sure
106   to tell it where MingW32 is.  If this does not work (or you don't want
107   to reinstall), copy the MingW32 directory into the MSYS directory as mingw.
108   E.g. if you have MingW installed to c:\MingW32 and MSYS to c:\msys\1.0, copy
109   the MingW32 directory to c:\msys\1.0 and rename it mingw, so you have
110   c:\msys\1.0\mingw with all the MingW files in it.
111
112Q. When I run ./configure, sed dumps the contents of version.h, configure
113   continues normally for a while, and then I get repeated sed errors like
114   "sed: <file>: unterminated `s' command" and others.  Make fails with
115   "*** No targets.  Stop." or similar.
116A. When checking out the bzflag sources from a git clone, you must check them
117   out with UNIX line breaks. If you're using a source package, you need to use
118   the tarball (.tar.bz2) not the zip package.  You can extract it from within
119   MSYS with "bunzip2 <file>" and "tar -xvf <file>".
120
121Q. When I run make, it reports an error about not being able to find dsound.h.
122A. Follow the above directions to get the needed DirectX headers from the MS DX SDK,
123   or follow the above instructions for "If you want to build using SDL support"
124
125Q. I get errors not mentioned in this file.
126A. File a support request at http://sourceforge.net/projects/bzflag or jump on
127   #bzflag on irc.freenode.net and ask for help compiling on MingW.  Be sure to
128   include the first few lines of error if you file a support request.
129

README.MacOSX

1BZFlag README for Mac OS X
2==========================
3
4BZFlag is supported on Mac OS X 10.7 and later. Included below are
5instructions on installing BZFlag both from a binary and from a released
6source distribution.
7
8Binary Distribution
9-------------------
10
11See the project site downloads of BZFlag at
12https://github.com/BZFlag-Dev/bzflag/releases to obtain the latest binary
13distribution.
14
15Once you've obtained a binary distribution of BZFlag, installation should be a
16simple matter of decompressing the downloaded file and then copying the
17program to your Applications folder. If you cannot run the client at all (i.e.
18it starts to a black screen, or the icon bounces but then nothing happeys),
19you can try several things:
20
21  1) Move or delete the BZFlag directory in your personal application support
22     folder at ~/Library/Application Support/BZFlag. As of Mac OS X 10.7, the
23     ~/Library directory is hidden by default. You can open it by navigating
24     to your home directory, entering the Command-Shift-G key sequence, then
25     typing "Library" and clicking "Go." Note that this directory contains
26     your saved configuration, screenshots, and map files, so you may want to
27     move or delete only your configuration file (stored in the directory with
28     the BZFlag version number).
29
30  2) Check your console for error messages. Open your console application at
31     /Utilities/Console.app, and expand the "User Diagnostic Reports" list in
32     the sidebar under "Diagnostic and Usage Information." Any crash reports
33     should be listed there and will start with "BZFlag."
34
35  3) Run the binary directly by using Terminal:
36       /Applications/BZFlag-#.#.#.app/Contents/MacOS/BZFlag
37       (replace "#.#.#" with your actual BZFlag version number)
38
39Source Distribution
40-------------------
41
42You can build BZFlag from source using Xcode version 7 and later (You may also
43be able to build with Xcode versions as early as 4.2, but you will need to
44update the locations of libncurses, libcurl, and libz since those changed in
45the Mac OS X 10.11 SDK). As of BZFlag version 2.4.4, BZFlag has a fully native
46Xcode project file. The earlier method of using the Xcode project file as a
47wrapper for autotools is no longer supported. If you have a version of Xcode
48which includes autotools, or have installed autotools yourself, you may
49additionally be able to build using the traditional autotools method. See the
50README file for further information. You will still need to install the SDL 2
51framework as detailed below.
52
53BZFlag has three external dependencies: SDL 2, GLEW, and c-ares.
54
55Download the latest version of the SDL 2 framework from
56https://www.libsdl.org/download-2.0.php. Version 2.0.3 or later is required,
57but version 2.0.4 or later is highly recommended because it includes a new
58function for capturing mouse input to help address a mouse warping problem.
59If you obtained a binary release of SDL 2, mount the disk image and place the
60file "SDL2.framework" in your /Library/Frameworks directory (an administrator's
61account may be required). If you built SDL 2 from source, locate the file
62"SDL2.framework" and copy it into that same location.
63
64This project expects the GLEW and c-ares libraries and header files to be
65located in /usr/local. If you install them elsewhere, you must update the
66library and header search paths in this project file appropriately.
67
68Download the latest version of GLEW from
69https://github.com/nigels-com/glew/releases. Extract the package, and then
70build it with the following commands (WARNING: this will remove all shared
71libraries for GLEW under /usr/local, even older versions you may have
72installed; this is necessary because it appears there is currently no way to
73configure GLEW to build without shared libraries):
74
75$ export MACOSX_DEPLOYMENT_TARGET=10.7
76$ export GLEW_DEST=/usr/local
77$ make glew.lib
78$ sudo make install
79$ sudo rm /usr/local/lib/libGLEW*.dylib
80
81Download the latest version of c-ares from http://c-ares.haxx.se.
82Extract the package, and then build it with the following commands:
83
84$ export MACOSX_DEPLOYMENT_TARGET=10.7
85$ ./configure --disable-shared
86$ make
87$ sudo make install
88
89Obtain the latest BZFlag source archive from GitHub at
90https://github.com/BZFlag-Dev/bzflag. Once you have obtained the source code,
91open the BZFlag.xcodeproj file located in the Xcode/ directory.
92
93The default behavior is to build a debug client. If you want a standard
94client, click the "BZFlag" scheme button at the top left corner of the screen,
95scroll down, and click "Edit Scheme..." at the bottom of the pop-up menu. In
96the left sidebar, click the Run phase, and in the right area select the
97Info tab. Under Build Configuration, select the desired scheme of Debug or
98Release.
99
100To build the client, select Build from the Product menu or enter the Command-B
101key sequence. Note that the BZFlag version is no longer automatically
102appended to the build product.
103
104If the build was successful, you can run the application from Xcode selecting
105the Product menu and clicking Run or by entering the Command-R key sequence.
106You will also want to locate the application you just built. Make sure the
107Navigator pane is visible and select the Project Navigator, then expand the
108"BZFlag" project container and the "Targets" group within it. Click the
109"BZFlag.app" target. Make sure the Utilities pane is visible, and under
110the Identity and Type panel it will show the full path to the application.
111Click the small grey right arrow at the bottom right corner of the path to
112reveal the application in the Finder.
113
114NOTICE: If you're compiling from source, it is expected that you have
115sufficient/proficient understanding of how to compile applications on the
116command line or using XCode and how to perform compilation troubleshooting
117without assistance.  This holds particularly true for all alpha/beta testing
118releases as well as for any sources pulled directly from the Subversion source
119repository checkout. If you have problems building from a checkout, you should
120try building from an official release that we have posted to GitHub to
121see if you can duplicate the issue, and then ask us for assistance.
122
123Usage
124-----
125
126To install BZFlag, copy the application you obtained as a binary distribution
127or built from source into your /Applications directory, or use it from another
128location of your choice. Different client versions may exist simultaneously on
129any system without issue.
130
131To access the bzadmin text client or the bzflag server bzfs, right click the
132application, click "Show Package Contents," and navigate to Contents/MacOS.
133Server plugins are located at Contents/PlugIns. Note that while the plugin
134names are different from Windows and Linux (something like "<name>.dylib"
135instead of "<name>.dll or "<name>.so"), bzfs will still load them when you
136specify the full plugin path.
137

README.SOLARIS

1The software included in Solaris 10 is inadequate to build BZFlag.
2The version of gcc (3.4) in Solaris 10 is too old to support C++0x
3features used by BZFlag, and the c-ares and cURL packages are simply
4not provided.
5
6The easiest way to fill the gaps is to use packages built by the
7OpenCSW project at https://www.opencsw.org/ .  Follow the directions at
8https://www.opencsw.org/manual/for-administrators/getting-started.html
9to initialize the OpenCSW package management system and then run the
10
11 /opt/csw/bin/pkgutil -i gcc4g++ libcares_dev libcurl_dev
12
13command (as root) to install the required packages and their many
14dependencies.  Applying this small patch will simplify the process of
15building BZFlag:
16
17--- /opt/csw/bin/curl-config~	Wed Aug 12 11:02:25 2015
18+++ /opt/csw/bin/curl-config	Sun Sep 27 12:00:00 2015
19@@ -148,7 +148,7 @@
20            CURLLIBDIR=""
21         fi
22         if test "Xyes" = "Xyes"; then
23-          echo ${CURLLIBDIR}-lcurl -lcares -lidn -lrtmp -lssh2 -lssl -lcrypto -lssl -lcrypto -L/opt/csw/lib -R/opt/csw/lib -mcpu=v9 -L/opt/csw/lib -lintl -L/opt/csw/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -llber -lldap -lz -lrt -lsocket -lnsl
24+          echo ${CURLLIBDIR}-lcurl -R/opt/csw/lib -lnsl
25         else
26           echo ${CURLLIBDIR}-lcurl
27         fi
28
29Any of these "make" programs will get the job done:
30
31  path               package
32 /usr/ccs/bin/make  SUNWsprot
33 /usr/sfw/bin/gmake SUNWgmake
34 /opt/csw/bin/gmake CSWgmake
35
36Other required programs, such as /usr/ccs/bin/ld from SUNWtoo, are all
37available in standard Solaris packages.
38
39Now put the CSW tools directory at the front of your PATH:
40
41PATH=/opt/csw/bin:$PATH
42export PATH
43
44and run configure:
45
46CPPFLAGS='-I/opt/csw/include' LDFLAGS='-L/opt/csw/lib -R/opt/csw/lib' ./configure --disable-client
47

README.WINDOWS

1README for Windows (32- and 64-bit) platforms
2---------------------------------------------
3
4**Compilers**
5BZFlag uses Microsoft Visual C++ for its prebuilt binary releases and project
6files are provided for it. The current compiler used is Visual C++ 2017 (VC15).
7You can download Visual Studio Community 2017 for free from here:
8https://www.visualstudio.com/downloads/
9
10**Targets**
11There are a total of 4 build targets in the VC projects. There are targets
12for Release and Debug, and each has a 32-bit and 64-bit version. At this time,
13only 32-bit is supported. Our dependencies don't build correctly on 64-bit with
14our current script. Also, there's no real performance advantage in having a
1564-bit BZFlag client as the game doesn't use much RAM.
16
17**Required Libraries**
18
19Various third-party libraries are needed, which are packaged in our
20bzflag-dependencies repository. Either grab a pre-built binary package from
21the releases section, or build the dependencies from source as described at
22the repository. The BZFlag build expects that an environment variable called
23BZ_DEPS exist and point to dependencies repository directory (the one that
24would contain the one or more output directories and src directory containing
25the third-party libraries)
26  https://github.com/BZFlag-Dev/bzflag-dependencies
27
28NSIS 3.03 is needed to build an installer, which is built as part of a release
29build.
30  http://nsis.sourceforge.net/
31
32**Running and Debugging**
33By default the compiler will copy the compiled executables to the root level
34of the source drive ( the same place that the data dir is at). From there
35you can simply double click the application to run it. If you wish to debug
36the program, you must set the debug executable path and working directory
37inside VC to use this executable and path.
38
39**Installer**
40If you wish to build the full release package using the fullbuild solution,
41you will need to have NSIS installed. The built installer will be placed in
42the bin_Release folder for the target in the root of the source tree.
43