Parent Directory
|
Revision Log
Revision 1207 - (view) (download)
1 : | edgomez | 1207 | INSTALL |
2 : | ======= | ||
3 : | |||
4 : | edgomez | 1181 | 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 : | edgomez | 1191 | 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 : | edgomez | 1196 | - GNU make (other make programs may have problem with shell expansion) |
125 : | edgomez | 1191 | |
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 : | edgomez | 1181 | # cd ${xvidcore}/vfw/bin |
130 : | edgomez | 1191 | # make CC=i386-mingw32-gcc WINDRES=i386-mingw32-windres |
131 : | edgomez | 1181 | |
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 : | edgomez | 1191 | - W: file |
153 : | Compiling the Win32 resource 'file' | ||
154 : | edgomez | 1181 | |
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 : | edgomez | 1191 | 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 : | edgomez | 1207 | |
216 : | Last edited: $Date: 2003-11-15 01:53:22 $ |
No admin address has been configured | ViewVC Help |
Powered by ViewVC 1.0.4 |