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