slouken@465
|
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
slouken@465
|
2 |
<html>
|
slouken@465
|
3 |
<head>
|
slouken@465
|
4 |
<title>Building SDL with Borland's C++ compilers</title>
|
slouken@642
|
5 |
|
slouken@465
|
6 |
<meta name="author"
|
slouken@465
|
7 |
content="David Snopek and updated by Dominique Louis.">
|
slouken@465
|
8 |
</head>
|
slouken@465
|
9 |
<body>
|
slouken@642
|
10 |
<xevol @newtonave.net=""> </xevol>
|
slouken@465
|
11 |
<h1>Building SDL with Borland's C++ compilers. </h1>
|
slouken@642
|
12 |
<b> by <a href="mailto:xevol@users.sourceforge.net"> David Snopek</a></b>
|
slouken@642
|
13 |
and updated by <b><a href="mailto:Dominique@SavageSoftware.com.au">Dominique
|
slouken@642
|
14 |
Louis</a></b> ( Last updated : 30th June 2003 ).<br>
|
slouken@642
|
15 |
<br>
|
slouken@642
|
16 |
These instructions cover how to compile SDL and its included test
|
slouken@642
|
17 |
programs using either Borland <a href="#bcbwin">C++ Builder 5, 6 for Windows</a>,
|
slouken@642
|
18 |
<a href="#k3">C++ Builder for Linux ( AKA Kylix 3 )</a> or the free <a
|
slouken@465
|
19 |
href="#bccc">Borland C++ command-line compiler</a>. <br>
|
slouken@642
|
20 |
|
slouken@465
|
21 |
<h3> <b> Extract the files </b> </h3>
|
slouken@642
|
22 |
|
slouken@465
|
23 |
<p> Unzip the Borland.zip archive into <b>this</b> directory. Do not unzip
|
slouken@642
|
24 |
it into any other directory because the makefiles ( *.mak ) and project
|
slouken@642
|
25 |
files ( *.bpr ) use relative paths to refer to the SDL sources. This should
|
slouken@642
|
26 |
create a directory named "Borland" inside of the top level SDL source directory.
|
slouken@642
|
27 |
</p>
|
slouken@642
|
28 |
|
slouken@465
|
29 |
<h3> <b><a name="bcbwin"></a> Using Borland C++ Builder 5, 6 for Windows </b>
|
slouken@465
|
30 |
</h3>
|
slouken@642
|
31 |
|
slouken@465
|
32 |
<p> Inside of the "Borland" directory there is a "bcb6" directory that contains
|
slouken@642
|
33 |
a number of Builder project files. Double-click on the "libSDL.bpg" file
|
slouken@642
|
34 |
icon. Once Builder has started click on the "<u>P</u>rojects" menu on
|
slouken@642
|
35 |
the menu-bar and go down to "B<u>u</u>ild All Projects" option. <br>
|
slouken@642
|
36 |
This will proceed to build SDL ( with Borland's calling convention ),
|
slouken@642
|
37 |
SDLmain, and all the <a href="#tests">test programs</a>. Currently, all
|
slouken@642
|
38 |
the <a href="#tests">test programs</a> are dynamically linked to Sam Lantinga's
|
slouken@642
|
39 |
SDL.dll.</p>
|
slouken@642
|
40 |
|
slouken@465
|
41 |
<p><b>NOTE :</b> Borland's "lib" format and Microsoft's "lib" format are incompatible.
|
slouken@465
|
42 |
<br>
|
slouken@642
|
43 |
If you wish to dynamically link to the SDL library supplied by Sam Lantinga
|
slouken@642
|
44 |
in each release, I have created the correct *.libs for SDL 1.2.4 and they
|
slouken@642
|
45 |
exist in the "/lib" directory.<br>
|
slouken@642
|
46 |
If you would like to create the *.lib files yourself, you will need to
|
slouken@642
|
47 |
make use of Borland's "implib.exe" utility.<br>
|
slouken@642
|
48 |
</p>
|
slouken@642
|
49 |
|
slouken@465
|
50 |
<p><tt>IMPLIB</tt> works like this: </p>
|
slouken@642
|
51 |
|
slouken@465
|
52 |
<pre> IMPLIB (destination lib name) (source dll)<br></pre>
|
slouken@642
|
53 |
|
slouken@465
|
54 |
<p> For example,</p>
|
slouken@642
|
55 |
|
slouken@465
|
56 |
<pre> IMPLIB SDL.lib SDL.dll<br></pre>
|
slouken@642
|
57 |
|
slouken@465
|
58 |
<p>This assumes that SDL.dll was compiled with Visual C++ or similar.<br>
|
slouken@642
|
59 |
</p>
|
slouken@642
|
60 |
|
slouken@465
|
61 |
<p>To learn more about the difference between Borland's and Microsoft's *.lib
|
slouken@642
|
62 |
format please read the article <a
|
slouken@465
|
63 |
href="http://www.bcbdev.com/articles/vcdll.htm">here</a>.<br>
|
slouken@642
|
64 |
</p>
|
slouken@642
|
65 |
|
slouken@465
|
66 |
<p> <b><br>
|
slouken@642
|
67 |
NOTE :</b> The C++ Builder for Windows project format, is not compatible
|
slouken@642
|
68 |
with the Kylix 3 project format, hence the reason why they are in separate
|
slouken@642
|
69 |
directories.</p>
|
slouken@642
|
70 |
|
slouken@465
|
71 |
<h3> <b><a name="bccc"></a> Using the free Borland C++ command-line compiler
|
slouken@642
|
72 |
</b> </h3>
|
slouken@642
|
73 |
|
slouken@465
|
74 |
<p> The free Borland compiler can be downloaded at no charge from <a
|
slouken@465
|
75 |
href="http://www.borland.com/bcppbuilder/freecompiler/"> the Borland website
|
slouken@642
|
76 |
</a>. Make sure that it is installed and properly configured. </p>
|
slouken@642
|
77 |
|
slouken@465
|
78 |
<p> Open an MS-DOS Prompt. Change to the "Borland\freebcc" directory under
|
slouken@642
|
79 |
the SDL source directory. Type "make -f SDL.mak" to build SDL and "make
|
slouken@642
|
80 |
-f SDLmain.mak". There are also makefiles for all of the <a
|
slouken@642
|
81 |
href="#tests">test programs</a>, if you wish to build them. All .exes and
|
slouken@642
|
82 |
DLLs are created in the "test" SDL directory. Ify ou would like to create
|
slouken@642
|
83 |
the DLL and all the test applications, I have thrown together a basic batchfile
|
slouken@642
|
84 |
called "makeall.bat" which should create everything in the right order. </p>
|
slouken@642
|
85 |
|
slouken@465
|
86 |
<h3> <b> Output files </b> </h3>
|
slouken@642
|
87 |
No matter which compiler you used, three important files should have
|
slouken@642
|
88 |
been produced:
|
slouken@465
|
89 |
<ul>
|
slouken@642
|
90 |
<li> SDL.dll ( Borland format ) </li>
|
slouken@642
|
91 |
<li> SDL.lib ( Borland format ) </li>
|
slouken@642
|
92 |
<li> SDLmain.lib ( Borland format ) </li>
|
slouken@642
|
93 |
|
slouken@465
|
94 |
</ul>
|
slouken@642
|
95 |
Both of the *.lib files will need to be added to all the projects
|
slouken@642
|
96 |
that use SDL and SDL.dll must be placed some where the Windows dynamic
|
slouken@642
|
97 |
linker can find it (either in your project directory or on the system
|
slouken@642
|
98 |
path, C:\WINDOWS\SYSTEM).
|
slouken@465
|
99 |
<h3> <b><a name="k3"></a> Using Borland C++ Builder for Linux ( AKA Kylix
|
slouken@642
|
100 |
3 ) </b> </h3>
|
slouken@642
|
101 |
|
slouken@465
|
102 |
<p> Inside of the "Borland" directory there is a "k3" directory that contains
|
slouken@642
|
103 |
a number of Builder project files. Double-click on the "libSDL.bpg" file
|
slouken@642
|
104 |
icon. Once Builder has started click on the "<u>P</u>rojects" menu on
|
slouken@642
|
105 |
the menu-bar and go down to "B<u>u</u>ild All Projects" option. This will
|
slouken@642
|
106 |
proceed to build all the <a href="#tests">test programs</a>. <br>
|
slouken@642
|
107 |
Linux users do not need *.lib files as the Shared Object is linked right
|
slouken@642
|
108 |
into the project ( very neat actually, Windows should do this sort of thing
|
slouken@642
|
109 |
as it is a lot easier for the developer ). <br>
|
slouken@642
|
110 |
<b>NOTE :</b> The C++ Builder for Windows project format, is not
|
slouken@642
|
111 |
compatible with the Kylix 3 project format, hence the reason why they are
|
slouken@642
|
112 |
in separate directories.</p>
|
slouken@642
|
113 |
|
slouken@465
|
114 |
<p> On Mandrake 8.1 the shared objects for SDL are located in the /usr/lib
|
slouken@642
|
115 |
directory as libSDL_*.so and the Mesa OpenGL shared objects are located
|
slouken@642
|
116 |
in /usr/X11R6/lib as libGL*.so<br>
|
slouken@642
|
117 |
<br>
|
slouken@642
|
118 |
So if your setup is different you may need to change the project file
|
slouken@642
|
119 |
so that they re-link to the ones on your system.<br>
|
slouken@642
|
120 |
<br>
|
slouken@642
|
121 |
On Mandrake 8.1 the headers files are located at /usr/include/SDL/.
|
slouken@642
|
122 |
So if you you have not installed the development RPMs ( usually named libSDL-devel*
|
slouken@642
|
123 |
) for SDL ( not included ) you may have to change the include directory
|
slouken@642
|
124 |
within some of the projects.<br>
|
slouken@642
|
125 |
</p>
|
slouken@642
|
126 |
|
slouken@642
|
127 |
<h3> Known Problems</h3>
|
slouken@642
|
128 |
The only known problem is that I ( Dominique Louis ), was unable to
|
slouken@642
|
129 |
create the projects that rebuilt the SDL shared objects under Linux, due
|
slouken@642
|
130 |
to time constraints and my lack of intimate knowledge of Linux.
|
slouken@642
|
131 |
<h3><a name="tests"><b> Test programs </b> </a></h3>
|
slouken@642
|
132 |
Some of the test programs require included media files ( *.wav; *.bmp
|
slouken@642
|
133 |
etc ). All the test programs are now created in the "test" directory, where
|
slouken@642
|
134 |
the media files are ( usually ) so they should be ready to go. <br>
|
slouken@465
|
135 |
<br>
|
slouken@642
|
136 |
<br>
|
slouken@642
|
137 |
<br>
|
slouken@465
|
138 |
</body>
|
slouken@465
|
139 |
</html>
|