Port r13909 from the mainline.
[xiph/unicode.git] / oggdsf / README
blob7d0bfc95490054b43095991fd394ad17d5bd9320
1 Information for builds after 0.71 \r
2 =================================\r
3 \r
4 This project now uses VS2005. VS2003/2002/6.0 will *not*\r
5  be able to open or build this project.\r
6 \r
7 This also means it uses V8.0 of the run time libraries.\r
8 Depending if i have suppressed the warnings, you may\r
9 see lots of compiler warnings about things in the C\r
10 library being deprecated. As of V8.0 most of the standard\r
11 C library is marked deprecated and it is recommended to\r
12 use new and semantically different functions from the new\r
13 secure CRT. Since there are so many of these occurences,\r
14 and some of the code needs to be portable, these warnings\r
15 are mostly suppressed/ignored.\r
17 In order to fix unicode problems on modern systems without\r
18  dropping support for 9X/ME machines, a custom built\r
19  C runtime needs to be used. These are in the repository\r
20  in the bin directory. You need to overwrite some of your\r
21  Visual Studio files to build the version that can run\r
22  on the old versions. At this stage i haven't checked\r
23  whether it is now unbuildable without doing this (i don't\r
24  think it will be, just you will get a binary that only\r
25  works on NT/2K/XP systems)\r
27 (More info to come on this)  \r
29 You need to set up several things in your build environment\r
30  in order to build this project. It depends on several\r
31  Microsoft SDK's. Without these you cannot build this\r
32  project.\r
34 The directshow SDK is now part of the core platforms SDK.\r
35  You will need this as well as the DirectX SDK.\r
37 There are no longer hardcoded paths into the directx sdk,\r
38  all the projects now use the environment variables that\r
39  are created by installing the SDK's.\r
41 The main solution is in \sln\oggdsf_all\r
43 Some projects in the solution may not build. You should\r
44  build the distribution project called oggcodecs, to\r
45  ensure you are build all and only the projects that are\r
46  part of the core distribution. VS Express, may or may not\r
47  properly handle distribution project.\r
49 If you are using the distribution project from the IDE\r
50  it is important that before you\r
51  install using that installer, that you uninstall any\r
52  version of the official distribution. Similarly, if\r
53  you are going to install the official distribution\r
54  after you have used this feature, you need to unistall\r
55  the official distribution.\r
56  They use two different installer technologies, and each\r
57   will install over the other without the other one\r
58   knowing.\r
60 In order to build you need the following\r
61  * Visual Studio 2005 - I develop and test with the professional\r
62     edition. This is the recommended way to build.\r
64     It should/may also be possible to build with the\r
65     free Express edition. To build the directshow filters\r
66     core package, you'll need VC++ 2005 Express. Other\r
67     projects not part of the core distribution are in C#\r
68     so if you want to be able to open every project in the\r
69     solution you will also need this. I have not tested\r
70     using the express edition yet. If you try and it works\r
71     let me know, or tell me anything special you had to do.\r
73     You can download express edition for free from\r
74     http://msdn.microsoft.com/vstudio/express/visualc/default.aspx\r
76     \r
77  * Windows Server 2003 SP1 Platform SDK - Yes, even if you\r
78     are using XP or whatever operating system.\r
80     You can download it from (~400MB, getting the disk image is easiest)\r
81     http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en\r
83    You will need to update the build paths in VS2005, whether\r
84     you use express or the full version. The following link explains\r
85     how to do that (see step 3). If using express, you will need\r
86     to follow all the steps on this link.\r
88    http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/\r
90    See step 3. \r
92    eg. in the Executable files list *at the top* of the list\r
93     ad $(MSSdk)\Bin and in the include list $(MSSdk)\include\r
94    They must be at the top (or at least above the other\r
95     references to the built in platform sdk), \r
96     otherwise the compiler will\r
97     still use the old version it came with.\r
99    In the installer there is one item not checked at the top\r
100     This option adds the MSSdk environment variable. It\r
101     warns this could affect other programs that use older\r
102     versions of the platform sdk. It caused no problem for\r
103     me, but if you have development projects depending \r
104     on this variable and/or older versions of the platform\r
105     SDK, you'll have to work out what works for you. That\r
106     warning is pretty big and bold.\r
108    If you don't take this option, you'll need to hardcode in\r
109     the path you installed the platform sdk to as it does\r
110     suggest in step 3 of the link above, however this still\r
111     changes VS's global settings could also cause problems.\r
113    Alternatively, if you don't take this option, and later \r
114     realise that this issue will not affect you, you can\r
115     add the MSSdk user and system variable yourself if you\r
116     choose.\r
118    Hardcoding the path will force VS to always use this\r
119     version, and you'll have to update it if a new one\r
120     comes out. Using the environment variable will cause\r
121     it to always use the latest version (really whatever version\r
122     the variable points to). Each option has it's ups and\r
123     downs, depending on what other development work you do.\r
125    Also note: That big bold warning says you can register with\r
126     visual studio by using a link in the start menu. This\r
127     *does not* work for VS2005. The platform SDK was released\r
128     before VS2005, it's probably updating the build paths\r
129     in vs2003. This is the reason you have to manaully update\r
130     the paths in options. It's likely when a new platform\r
131     SDK is released it will work properly for VS2005.\r
132    \r
134    You mileage mary vary if you have the express edition.\r
136  * DirectX SDK February 2006 (or probably later will work too)\r
138     You can download it from (~350MB, validation required)\r
139     http://www.microsoft.com/downloads/details.aspx?FamilyID=EDB98FFA-A59C-4C23-9B92-BA304F188314&displaylang=en\r
141     You will also need to add to your include paths in\r
142      Visual Studio the path to the DX include files.\r
143     This DX SDK creates the environment variable DXSDK_DIR\r
145     So you need to add to the include list (as you did above)\r
146     $(DXSDK_DIR)include\r
148  * WMP 10 SDK - Need after 0.72 release.\r
150    You can download from here\r
151    http://msdn.microsoft.com/windowsmedia/downloads/default.aspx\r
153    You need to add the include path to visual studio. In\r
154    tools->options->projects and solutions->vC++ dirs\r
155  \r
157    Add the WMP include path to the include list (drop down at top)\r
158    default install path will be c:\WMSDK\WMPSDK10\include\r
160  * NASM 0.98.38/0.98.39 - This is required for flac. Best to\r
161     install it to it's default at C:\NASM. Where "best to"\r
162     means if you don't want to be screwing around.\r
164    You can download from here\r
165    http://sourceforge.net/projects/nasm\r
167  * Windows Mobile 5.0 Developer Resource Kit (~900MB)\r
168     http://www.microsoft.com/downloads/details.aspx?familyid=3BAA5B7D-04C1-4EC2-83DC-61B21EC5FE57&displaylang=en\r
170    The express edition can not do mobile development.\r
171    I have no idea whether it will let you open the project\r
172     and ignore the mobile configurations or whether\r
173     it will just refuse to let you. I'm not sure if\r
174     the professional edition will even let you open the\r
175     projects which have wm5 configs (most of them)\r
176     without installing this.\r
178  * Doxygen with DOT if you want to create the doc files\r
179    - Most recently used graphviz (DOT) V2.8 from\r
180      http://www.graphviz.org/Download_windows.php\r
181    - And doxygen version 1.4.7 from\r
182      http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc\r
184  * NSIS (currently using 2.17) to build the installers\r
188 You need all these things if you want to build this project.\r
189  If you already do directx/multimedia development you may already\r
190  have some or all of these sdk's. You only need them once to setup\r
191  your build environment.\r
193 It may seem excessive that you need to download 2 gigabytes of stuff\r
194  just to build. This project uses technologies from several sdk's, \r
195  and there is no way around that. Once you set up these things, the\r
196  project is very easy to build, with the professional edition and\r
197  above that is, possibly the standard edition. \r
199 The baseclasses library is no longer used from the platform\r
200  SDK (but you still need it). There is a modified version\r
201  of the baseclasses libraries that is part of this source.\r
202  The version in the platform SDK won't build in VS2005 as it\r
203  is, the modifed version that is part of this source has\r
204  fixes so that it builds correctly with the new compiler.\r
206 This project now uses V8 of the runtime libraries. As of\r
207  version 8, there are changes to the way the operating system\r
208  handles these libraries. The first release to use this is/will be\r
209  0.72.xxxx\r
211 The release distributions are built using NSIS. There is\r
212  an MSI installer project in the solution, this is only\r
213  for developer convenience. It is often not fully up to\r
214  date, and/or correct. It should *never* be used as a means\r
215  of distribution.\r
216    \r
218 ==========================================================\r
219 The below information is left for reference, where the \r
220  information above conflicts with this, the information\r
221  above should take precedence. Much of the information \r
222  below is no longer relevant.\r
223 ==========================================================\r
224 Updated after 0.62 release.\r
225 ==========================\r
227 These are probably not very build friendly at the moment.\r
228 I will make them a bit more user friendly in the future.\r
231 In order to build these...\r
234 You need visual studio 2003. There are no VC6 files or VS2002 files.\r
235  In theory you should be able to create VC2002 files... and in fact\r
236  out of date VC2002 files are generally found with .vcproj.bak \r
237  extensions. However some of the libraries will not build in VS2002,\r
238  there is a bug in the 2002 compilers imlpementation of mixed mode\r
239  dlls, which stops some of the .NET bridging libraries linking.\r
241 You need NASM for FLAC to build. (lifes easier if it's at C:\NASM)\r
242  you'll have to play around with that yourself... it's a real pain !\r
243  Also the vcproj files have hidden settings that don't show up\r
244  in visual studio... you'll have to figure it out (ie edit the vcproj)\r
245  I suggest once you get it to build, leave it built... don't clean\r
246  that project. The clean script it has for some reason tries to\r
247  delete some necessary header files. Don't ask me why !\r
248  Also ignore visual studio hassling you about sourcesafe for flac.\r
250 I've been using NASM 0.98.38 which you can find here\r
251  http://sourceforge.net/projects/nasm You want the win32 binaries.\r
253 If you do accidentally clean FLAC, you will get a message when you\r
254  try to build that says "ordinals.h" not found. You need to\r
255  go to the libFLAC directory and find the file called ordinals.h.bak\r
256  and *copy* it to the same directory without the .in extension.\r
257  Don't just rename it... you want to keep that file for next time\r
258  this happens !\r
260 You need DirectX 9 SDK installed (lifes easier if it's at C:\DXSDK)\r
261  Otherwise all projects prefixed with dsf you'll need to change the\r
262  absolute references to that path. I'll try to do something to make\r
263  this easier in future.\r
264  \r
265 If the baseclasses project shows up as not found, you need to find\r
266  it in the DXSDK directory tree, and load it from there.\r
267  By default it tries to build against Multithreaded static runtimes\r
268  You *must* change these to Multi Threaded DLL or Multi Threaded \r
269  debug DLL. Otherwise all sorts of chaos will occur. This project\r
270  is not part of the package. It is part of the DirectX SDK.\r
272 If you try to build the installer project, you need to change the paths\r
273  of the AUTHORS, COPYRIGHTS etc files... i can't make it accept a\r
274  relative path.\r
276 Probably other stuff i can't think of. These aren't really ready for\r
277  easy use yet.\r