1 |
|
INSTALL |
2 |
|
======= |
3 |
|
|
4 |
|
Table of contents: |
5 |
|
================== |
6 |
|
|
7 |
|
1/ Generic install procedure for Unix based systems |
8 |
|
1.a/ Requirements. |
9 |
|
1.b/ How to build from a release tarball. |
10 |
|
1.c/ How to build from CVS. |
11 |
|
1.d/ Cross compiling xvidcore. |
12 |
|
1.e/ What is the meaning of the xvidcore Makefile output. |
13 |
|
1.f/ Building a Debian package. |
14 |
|
|
15 |
|
2/ Generic install procedure for Win32/MSVC. |
16 |
|
2.a/ Requirements. |
17 |
|
2.b/ How to build the VFW frontend from a release tarball. |
18 |
|
2.c/ How to build from CVS. |
19 |
|
|
20 |
|
|
21 |
|
1/ Generic install procedure for Unix based systems |
22 |
|
=================================================== |
23 |
|
|
24 |
|
This build process works for most common Unix based systems, including |
25 |
|
GNU/Linux, (Free|Open|Net)BSD, Solaris and faked unix environments |
26 |
|
like cygwin and minsys on Win32 platforms. |
27 |
|
|
28 |
|
1.a/ Requirements |
29 |
|
----------------- |
30 |
|
- ANSI C compiler (gcc) |
31 |
|
- make (GNU make, BSD make, Solaris make) |
32 |
|
- a C library providing ANSI C functions like malloc/free/realloc |
33 |
|
and some other standard functions. |
34 |
|
- nasm on ia32 platforms for MMX/SSE optimized code. |
35 |
|
|
36 |
|
|
37 |
|
1.b/ How to build from a release tarball |
38 |
|
---------------------------------------- |
39 |
|
|
40 |
|
Get the latest version on http://www.xvid.org/, and uncompress it on |
41 |
|
your disk. Let's name the resulting source directory ${xvidcore}. |
42 |
|
|
43 |
|
The next step allows you to configure the xvid sources. |
44 |
|
# cd ${xvidcore}/build/generic |
45 |
|
# ./configure |
46 |
|
|
47 |
|
Some building options can be tuned thanks to the ./configure tool. You |
48 |
|
can use your own CC and CFLAGS variables in order to override xvid's |
49 |
|
default ones. To have a list of known options: |
50 |
|
# ./configure --help |
51 |
|
|
52 |
|
Now xvidcore is configured according to your specific platform. You |
53 |
|
can still handwrite the platform.inc file in order to add/remove |
54 |
|
specific flags that ./configure may have set them wrong. |
55 |
|
|
56 |
|
It is time to build xvidcore: |
57 |
|
# make |
58 |
|
|
59 |
|
That creates a =build directory where all object files go, and where |
60 |
|
the build targets are linked. If no error was reported by the build |
61 |
|
process, then you can install it on your system: |
62 |
|
# make install |
63 |
|
|
64 |
|
This copies the shared and static libraries to the prefix location |
65 |
|
passed to the ./configure tool (/usr/local by default). The xvid.h |
66 |
|
include file is also copied during the "make install" run. |
67 |
|
|
68 |
|
Voila, xvidcore is installed on your system, make sure your runtime |
69 |
|
linker knows about the xvidcore prefix lib dir where it is |
70 |
|
installed. And make also sure that it generates a symlink to its |
71 |
|
SONAME. In case it would do not take care of the symlink itself: |
72 |
|
# cd ${prefix}/lib |
73 |
|
# ls libxvidcore.so.* |
74 |
|
ls should list at least one libxvidcore.so.MAJOR.MINOR file |
75 |
|
# ln -s libxvidcore.so.MAJOR.MINOR libxvidcore.so.MAJOR |
76 |
|
|
77 |
|
You may also add a .so link to .so.MAJOR, so that applications linked |
78 |
|
against .so are in fact linked to .so.MAJOR and thus ensures better |
79 |
|
binary compatibility as we take care not changing the MAJOR number |
80 |
|
until there is an incompatible ABI change. |
81 |
|
# ln -s libxvidcore.so.MAJOR libxvidcore.so |
82 |
|
|
83 |
|
|
84 |
|
1.c/ How to build from CVS |
85 |
|
-------------------------- |
86 |
|
|
87 |
|
In order to build from CVS, you need some more requirements compared |
88 |
|
to the release building process: |
89 |
|
- GNU autoconf >= 2.5 |
90 |
|
- GNU automake (no specific version) |
91 |
|
- GNU libtool (no specific version) |
92 |
|
|
93 |
|
Grab the desired CVS version you want to build. |
94 |
|
# cvs -d:pserver:anonymous@cvs.xvid.org:/xvid login |
95 |
|
(just type enter) |
96 |
|
# cvs -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore |
97 |
|
(read the CVS documentation if you want details about branch |
98 |
|
checking outs) |
99 |
|
|
100 |
|
You now need to bootstrap the build files: |
101 |
|
# cd xvidcore/build/generic |
102 |
|
# ./bootstrap.sh |
103 |
|
|
104 |
|
A configure script has been bootstraped, you're now able to follow |
105 |
|
the "Build from release tarballs" steps. |
106 |
|
|
107 |
|
|
108 |
|
1.d/ Cross compiling xvidcore. |
109 |
|
------------------------------ |
110 |
|
|
111 |
|
The configure script allows an easy handling of cross compilation. You |
112 |
|
have just to specify the host and build platform values. |
113 |
|
|
114 |
|
e.g: building Win32 libxvidcore.dll from a gnu/linux systems |
115 |
|
# cd ${xvidcore}/build/generic |
116 |
|
# ./configure --host=i386-mingw32 --build=i386-pc-linux-gnu |
117 |
|
|
118 |
|
And then build as usual. |
119 |
|
|
120 |
|
As the example uses the Win32 target, we can even build the vfw frontend. |
121 |
|
Additional requirements are: |
122 |
|
- Resource compiler (the Makefile uses the syntax of windres from the |
123 |
|
GNU CC suite, but you can easily modify the cmd line) |
124 |
|
- GNU make (other make programs may have problem with shell expansion) |
125 |
|
|
126 |
|
So to cross compile the VFW frontend, you just need to override the |
127 |
|
Makefile variables pointing to the compiler and the resource compiler. |
128 |
|
These variables are CC and WINDRES. |
129 |
|
# cd ${xvidcore}/vfw/bin |
130 |
|
# make CC=i386-mingw32-gcc WINDRES=i386-mingw32-windres |
131 |
|
|
132 |
|
|
133 |
|
1.e/ What is the meaning of xvidcore Makefile output. |
134 |
|
----------------------------------------------------- |
135 |
|
|
136 |
|
The makefile available in ${xvidcore}/build/generic is handwritten and |
137 |
|
outputs uncommon building progress strings to the terminal. You may |
138 |
|
want to understanding their meaning. Here is a brief explaination. |
139 |
|
|
140 |
|
- A: a/dir/file.(asm|s) |
141 |
|
This an assembling rule assembling 'a/dir/file.(asm|s)' |
142 |
|
- C: a/dir/file.c |
143 |
|
This is a compilation rule compiling 'a/dir/file.c' |
144 |
|
- Cl: Stuff |
145 |
|
This is a cleaning rule in action |
146 |
|
- D: Directory |
147 |
|
This is a rule creating 'Directory' |
148 |
|
- I: a/dir/file |
149 |
|
Installing 'file' in 'a/dir' |
150 |
|
- L: file |
151 |
|
Linking 'file' |
152 |
|
- W: file |
153 |
|
Compiling the Win32 resource 'file' |
154 |
|
|
155 |
|
|
156 |
|
1.f/ Building a Debian package. |
157 |
|
------------------------------- |
158 |
|
|
159 |
|
Release tarballs contain a debian dir so that you can easily build a |
160 |
|
debian package. Just execute the usual steps. They may be sumed up to: |
161 |
|
# cd ${xvidcore} |
162 |
|
# dpkg-buildpackage -rfakeroot |
163 |
|
|
164 |
|
If all went right, you're now able to install the package: |
165 |
|
# cd .. |
166 |
|
# dpkg -i libxvidcore... |
167 |
|
|
168 |
|
|
169 |
|
|
170 |
|
2/ Generic install procedure for Win32/MSVC. |
171 |
|
============================================ |
172 |
|
|
173 |
|
|
174 |
|
|
175 |
|
2.a/ Requirements. |
176 |
|
------------------ |
177 |
|
|
178 |
|
- MS VisualDev 6 Processor Pack 5 or MS VisualDev 7 |
179 |
|
- nasm installed as 'nasm' in the msvc binary search paths. |
180 |
|
|
181 |
|
2.b/ How to build the VFW frontend from a release tarball. |
182 |
|
---------------------------------------------------------- |
183 |
|
|
184 |
|
Download the latest source distribution from http://www.xvid.org/ and |
185 |
|
uncompress it on your disk. Let's call this directory ${xvidcore}. |
186 |
|
|
187 |
|
- Open the workspace xvidcore.dsw located in |
188 |
|
${xvidcore}/build/win32. |
189 |
|
- Then choose the libxvidcore project as the Active project of the |
190 |
|
workspace. |
191 |
|
- Make sure the Active configuration is |
192 |
|
'libxvidcore Win32 Release' |
193 |
|
- Build the project (F7) |
194 |
|
- Open the project vfw.dsp file located in ${xvidcore}/vfw. |
195 |
|
- Make sure the Active configuration is |
196 |
|
'vfw Win32 Release' |
197 |
|
- Build the project (F7) |
198 |
|
- Install the resulting VFW frontend using the xvid.inf file |
199 |
|
provided in ${xvidcore}/vfw/bin. Right click on the file, and |
200 |
|
then click 'Install' |
201 |
|
|
202 |
|
2.c/ How to build from CVS. |
203 |
|
--------------------------- |
204 |
|
|
205 |
|
You have first to retrieve the sources from the xvid CVS repository |
206 |
|
using a tool like WinCVS. Then follow the normal steps explained in |
207 |
|
the previous section. |
208 |
|
|
209 |
|
NB: your CVS program may not convert text files to the cr/lf windows |
210 |
|
text. In that case opening project files in MSVC will result in |
211 |
|
some weird error messages from MSVC. To fix that, you have to |
212 |
|
convert all .dsp files to the cr/lf format. You can do that |
213 |
|
opening the .dsp file in WordPad and saving it. It should now be |
214 |
|
in cr/lf format. |
215 |
|
|
216 |
|
Last edited: $Date$ |