Igor Zlatkovic | ac97f6e | 2002-03-24 21:00:26 +0000 | [diff] [blame] | 1 | |
| 2 | Windows port |
| 3 | ------------ |
| 4 | |
| 5 | This directory contains the files required to build this software on the |
| 6 | native Windows platform. |
| 7 | |
| 8 | As a rule of thumb, the root of this directory contains files needed |
| 9 | to build the library using the command-line tools, while various |
| 10 | subdirectories contain project files for various IDEs. |
| 11 | |
| 12 | |
| 13 | 1. Building from the command-line |
| 14 | ================================= |
| 15 | |
| 16 | This is the easiest, preferred and currently supported method. |
| 17 | |
| 18 | In order to build from the command-line you need to make sure that |
| 19 | your compiler works from the command line. This is not always the |
| 20 | case, often the required environment variables are missing. If you are |
| 21 | not sure, test if this works first. If it doesn't, you will first have |
| 22 | to configure your compiler suite to run from the command-line - please |
| 23 | refer to your compiler's documentation regarding that. |
| 24 | |
| 25 | The first thing you want to do is configure the source. You can have |
| 26 | the configuration script do this automatically for you. The |
| 27 | configuration script is written in JScript, a Microsoft's |
Igor Zlatkovic | a6f2d90 | 2002-04-16 17:57:17 +0000 | [diff] [blame] | 28 | implementation of the ECMA scripting language. Almost every Windows |
Igor Zlatkovic | ac97f6e | 2002-03-24 21:00:26 +0000 | [diff] [blame] | 29 | machine can execute this through the Windows Scripting Host. If your |
| 30 | system lacks the ability to execute JScript for some reason, you must |
| 31 | perform the configuration manually. |
| 32 | |
| 33 | The second step is compiling the source and, optionally, installing it |
| 34 | to the location of your choosing. |
| 35 | |
| 36 | |
| 37 | 1.1 Configuring the source automatically |
| 38 | ---------------------------------------- |
| 39 | |
| 40 | The configuration script accepts numerous options. Some of these |
| 41 | affect features which will be available in the compiled software, |
| 42 | others affect the way the software is built and installed. To see a |
| 43 | full list of options supported by the configuration script, run |
| 44 | |
| 45 | cscript configure.js help |
| 46 | |
| 47 | from the win32 subdirectory. The configuration script will present you |
| 48 | the options it accepts and give a biref explanation of these. In every |
| 49 | case you will have two sets of options. The first set is specific to |
| 50 | the software you are building and the second one is specific to the |
| 51 | Windows port. |
| 52 | |
| 53 | Once you have decided which options suit you, run the script with that |
| 54 | options. Here is an example: |
| 55 | |
| 56 | cscript configure.js prefix=c:\opt include=c:\opt\include |
| 57 | lib=c:\opt\lib debug=yes |
| 58 | |
| 59 | The previous example will configure the process to install the library |
| 60 | in c:\opt, use c:\opt\include and c:\opt\lib as additional search |
| 61 | paths for the compiler and the linker and build executables with debug |
| 62 | symbols. |
| 63 | |
| 64 | Note: Please do not use path names which contain spaces. This will |
| 65 | fail. Allowing this would require me to put almost everything in the |
| 66 | Makefile in quotas and that looks quite ugly with my |
| 67 | syntax-highlighting engine. If you absolutely must use spaces in paths |
| 68 | send me an email and tell me why. If there are enough of you out there |
| 69 | who need this, or if a single one has a very good reason, I will |
| 70 | modify the Makefile to allow spaces in paths. |
| 71 | |
| 72 | |
| 73 | 1.2 (Not) Configuring the source manually |
| 74 | ----------------------------------------- |
| 75 | |
| 76 | The manual configuration is pretty straightforward, but I would |
| 77 | suggest rather to get a JScript engine and let the configure script do |
| 78 | it for you. This process involves editing the apropriate Makefile to |
| 79 | suit your needs, as well as manually generating certain *.h files from |
| 80 | their *.h.in sources. |
| 81 | |
| 82 | If you really have no idea what I am talking about and ask yourself |
| 83 | what in Gods name do I mean with '*.h files and their *.h.in sources', |
| 84 | then you really should do an automatic configuration. Which files must |
| 85 | be generated and what needs to be done with their sources in order to |
| 86 | generate them is something people who have built this software before |
| 87 | allready know. You will not find any explanations for that |
| 88 | here. Please configure the source manually only if you allready know |
| 89 | what you must do. Otherwise, you have the choice of either getting a |
| 90 | precompiled binary distribution, or performing the automatic |
| 91 | configuration. |
| 92 | |
| 93 | |
| 94 | 1.3 Compiling |
| 95 | ------------- |
| 96 | |
| 97 | After the configuration stage has been completed, you want to build |
| 98 | the software. To do that, type |
| 99 | |
| 100 | nmake |
| 101 | |
| 102 | in the win32 subdirectory.When the building completes, you will find |
| 103 | the executable files in win32\binaries directory. |
| 104 | |
| 105 | You can install the software into the directory you specified to the |
| 106 | configure script during the configure stage by typing |
| 107 | |
| 108 | nmake install |
| 109 | |
| 110 | That would be it, enjoy. |
| 111 | |
| 112 | |
| 113 | 2. Building with the IDE |
| 114 | ======================== |
| 115 | |
| 116 | Each supported IDE has its project files placed in a subdirectory of |
| 117 | win32. If you use a particular IDE, you should be able to |
| 118 | instinctively recognise its project files. When you have found your |
| 119 | favourites, load them into the IDE and do whatever you would do with |
| 120 | any other project files. If you are a novice and puzzled about how to |
| 121 | use particular project files with a particular IDE, check for a readme |
| 122 | file in that IDEs subdirectory. I won't discuss any particular IDE |
| 123 | here, because I would like to keep this document as general as |
| 124 | possible, and there is also a chance that support exists for IDEs |
| 125 | which I have never seen. |
| 126 | |
| 127 | |
| 128 | March 2002, Igor Zlatkovic <igor@stud.fh-frankfurt.de> |
| 129 | |