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