Borland.html
author Sam Lantinga <slouken@libsdl.org>
Mon, 08 Dec 2008 00:27:32 +0000
changeset 2859 99210400e8b9
parent 642 de622b7108bf
permissions -rw-r--r--
Updated copyright date
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
&nbsp;<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&nbsp;( Borland format ) </li>
slouken@642
    92
      	<li> SDLmain.lib&nbsp;( 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>.&nbsp;<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>&nbsp;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>