[svn] / branches / release-1_0-branch / xvidcore / build / generic / configure.in Repository:
ViewVC logotype

Annotation of /branches/release-1_0-branch/xvidcore/build/generic/configure.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 828 - (view) (download)
Original Path: trunk/xvidcore/build/generic/configure.in

1 : edgomez 824 dnl ==========================================================================
2 :     dnl
3 :     dnl Autoconf script for XviD
4 :     dnl
5 :     dnl Copyright(C) 2003 Edouard Gomez <ed.gomez@free.fr>
6 :     dnl
7 :     dnl ==========================================================================
8 :    
9 :     AC_INIT([XviD], [0.9.1 (wip)], [xvid-devel@xvid.org])
10 :     AC_CONFIG_SRCDIR(configure.in)
11 :    
12 :     dnl NASM version requirement
13 :     minimum_nasm_patch_version=34
14 :     nasm_prog="nasm"
15 :    
16 :     dnl Default CFLAGS -- Big impact on overall speed
17 :     our_cflags_defaults="-Wall"
18 :     our_cflags_defaults="$our_cflags_defaults -O2"
19 :     our_cflags_defaults="$our_cflags_defaults -fPIC"
20 :     our_cflags_defaults="$our_cflags_defaults -fomit-frame-pointer"
21 :     our_cflags_defaults="$our_cflags_defaults -ffast-math"
22 :     our_cflags_defaults="$our_cflags_defaults -funroll-loops"
23 :     our_cflags_defaults="$our_cflags_defaults -fschedule-insns"
24 :     our_cflags_defaults="$our_cflags_defaults -fschedule-insns2"
25 :    
26 :     dnl ==========================================================================
27 :     dnl Features - configure options
28 :     dnl ==========================================================================
29 :    
30 :     FEATURES=""
31 :     DIVX4COMPAT_SOURCES=""
32 :    
33 :     dnl BIGLUT aka old VLC code
34 :     AC_ARG_ENABLE(oldvlc,
35 :     AC_HELP_STRING([--enable-oldvlc],
36 :     [Enable old VLC code (Needs much more memory ~10MB)]),
37 :     [if test "$enable_oldvlc" = "yes" ; then
38 :     FEATURES="$FEATURES -DBIGLUT"
39 :     fi])
40 :    
41 :     dnl Internal Debug
42 :     AC_ARG_ENABLE(idebug,
43 :     AC_HELP_STRING([--enable-idebug],
44 :     [Enable internal debug function]),
45 :     [if test "$enable_idebug" = "yes" ; then
46 :     FEATURES="$FEATURES -D_DEBUG"
47 :     fi])
48 :    
49 :     dnl Internal Profile
50 :     AC_ARG_ENABLE(iprofile,
51 :     AC_HELP_STRING([--enable-iprofile],
52 :     [Enable internal profiling]),
53 :     [if test "$enable_iprofile" = "yes" ; then
54 :     FEATURES="$FEATURES -D_PROFILING_"
55 :     fi])
56 :    
57 :     dnl Assembly code
58 :     AC_ARG_ENABLE(assembly,
59 :     AC_HELP_STRING([--disable-assembly],
60 :     [Disable assembly code]),
61 :     [if test "$enable_assembly" = "no" ; then
62 :     assembly="no"
63 :     else
64 :     if test "$enable_assembly" = "yes" ; then
65 :     assembly="yes"
66 :     fi
67 :     fi],
68 :     [assembly="yes"])
69 :    
70 :     dnl Internal Debug
71 :     AC_ARG_ENABLE(divx4compat,
72 :     AC_HELP_STRING([--enable-divx4compat],
73 :     [Enable DivX4 compatibility API]),
74 :     [if test "$enable_divx4compat" = "yes" ; then
75 :     DIVX4COMPAT_SOURCES="SRC_DIVX4COMPAT"
76 :     fi])
77 :    
78 :    
79 :     dnl ==========================================================================
80 :     dnl Default install prefix and checks build type
81 :     dnl ==========================================================================
82 :    
83 :     AC_PREFIX_DEFAULT("/usr/local")
84 :     AC_CANONICAL_BUILD
85 :     AC_CANONICAL_HOST
86 :     AC_CANONICAL_TARGET
87 :    
88 :     dnl ==========================================================================
89 :     dnl Check for the C compiler (could be passed on command line)
90 :     dnl ==========================================================================
91 :    
92 :     dnl
93 :     dnl First we test if CFLAGS have been passed on command line
94 :     dnl I do that because autoconf defaults (-g -O2) suck and they would kill
95 :     dnl performance. To prevent that we define a good defult CFLAGS at the end
96 :     dnl of the script if and only if CFLAGS has not been passed on the command
97 :     dnl line
98 :     dnl
99 :     AC_MSG_CHECKING(whether to use default CFLAGS)
100 :     if test x"$CFLAGS" = x"" ; then
101 :     force_default_cc_options="yes"
102 :     CFLAGS="$our_cflags_defaults"
103 :     AC_MSG_RESULT([yes])
104 :     else
105 :     force_default_cc_options="no"
106 :     AC_MSG_RESULT([no])
107 :     fi
108 :    
109 :     dnl Now we can safely check for the C compiler
110 :     AC_PROG_CC
111 :    
112 :     dnl ==========================================================================
113 :     dnl Check for the install program
114 :     dnl ==========================================================================
115 :    
116 :     AC_PROG_INSTALL
117 :    
118 :     dnl ==========================================================================
119 :     dnl
120 :     dnl This part looks for:
121 :     dnl
122 :     dnl ARCHITECTURE : The platform architecture
123 :     dnl - IA32 for mmx, mmx-ext, mmx2, sse assembly
124 :     dnl - IA64
125 :     dnl - PPC for PowerPC assembly routines
126 :     dnl - GENERIC for plain C sources only
127 :     dnl
128 :     dnl BUS: Address bus size (in bits)
129 :     dnl - 32
130 :     dnl - 64
131 :     dnl
132 :     dnl ENDIANNESS: I think you can guess what this thing means :-)
133 :     dnl - LITTLE_ENDIAN
134 :     dnl - BIG_ENDIAN
135 :     dnl
136 :     dnl ==========================================================================
137 :    
138 :     dnl
139 :     dnl Looking what sources have to be compiled according to the CPU type
140 :     dnl
141 :    
142 :     ARCHITECTURE=""
143 :    
144 :     AC_MSG_CHECKING([for whether to use assembly code])
145 :     if test x"$assembly" = x"yes" ; then
146 :     AC_MSG_RESULT([yes])
147 :     AC_MSG_CHECKING([for architecture type])
148 :     case "$target_cpu" in
149 :     i[[3456]]86)
150 :     AC_MSG_RESULT(ia32)
151 :     ARCHITECTURE="IA32"
152 :     ;;
153 :     powerpc)
154 :     AC_MSG_RESULT(PowerPC)
155 : edgomez 827 dnl ATM the ppc port is out of date
156 :     dnl ARCHITECTURE="PPC"
157 :     ARCHITECTURE="GENERIC"
158 : edgomez 824 ;;
159 :     ia64)
160 :     AC_MSG_RESULT(ia64)
161 :     ARCHITECTURE="IA64"
162 :     ;;
163 :     *)
164 :     AC_MSG_RESULT($target_cpu)
165 :     ARCHITECTURE="GENERIC"
166 :     ;;
167 :     esac
168 :     else
169 :     AC_MSG_RESULT([no])
170 :     ARCHITECTURE="GENERIC"
171 :     fi
172 :    
173 :     dnl
174 :     dnl Testing address bus length
175 :     dnl
176 :     BUS=""
177 :    
178 :     AC_CHECK_SIZEOF([int *])
179 :     case "$ac_cv_sizeof_int_p" in
180 :     4)
181 :     BUS="32BIT"
182 :     ;;
183 :     8)
184 :     BUS="64BIT"
185 :     ;;
186 :     *)
187 :     AC_MSG_ERROR([XviD supports only 32/64 bit architectures])
188 :     ;;
189 :     esac
190 :    
191 :     dnl
192 :     dnl Testing endianness
193 :     dnl
194 :     ENDIANNESS=""
195 :    
196 :     AC_C_BIGENDIAN(ENDIANNESS="BIG_ENDIAN", ENDIANNESS="LITTLE_ENDIAN")
197 :    
198 :     dnl ==========================================================================
199 :     dnl
200 :     dnl Check for OS specific variables
201 :     dnl - SHARED_EXTENSION, STATIC_EXTENSION, OBJECT_EXTENSION
202 :     dnl
203 :     dnl ==========================================================================
204 :    
205 :     AC_MSG_CHECKING(for build extensions)
206 :     SHARED_EXTENSION=""
207 :     STATIC_EXTENSION=""
208 :     OBJECT_EXTENSION=""
209 :     case "$target_os" in
210 :     *bsd*|linux*|beos|irix*|solaris*)
211 :     AC_MSG_RESULT([.so .a .o])
212 :     STATIC_EXTENSION="a"
213 :     SHARED_EXTENSION="so"
214 :     OBJECT_EXTENSION="o"
215 :     ;;
216 :     [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)
217 :     AC_MSG_RESULT([.dll .lib .obj])
218 :     STATIC_EXTENSION="lib"
219 :     SHARED_EXTENSION="dll"
220 :     OBJECT_EXTENSION="obj"
221 :     ;;
222 :     darwin*|raphsody*)
223 :     AC_MSG_RESULT([.dynlib .a .o])
224 :     STATIC_EXTENSION="a"
225 :     SHARED_EXTENSION="dylib"
226 :     OBJECT_EXTENSION="o"
227 :     ;;
228 :     *)
229 :     AC_MSG_RESULT([Unknown OS - Using .so .a .o])
230 :     STATIC_EXTENSION="a"
231 :     SHARED_EXTENSION="so"
232 :     OBJECT_EXTENSION="o"
233 :     ;;
234 :     esac
235 :    
236 :     AC_MSG_CHECKING(for platform specific LDFLAGS/CFLAGS)
237 :     OS_LDFLAGS=""
238 :     case "$target_os" in
239 :     *bsd*|linux*|irix*|solaris*)
240 :     AC_MSG_RESULT([-shared -lc -lm])
241 :     OS_LDFLAGS="-shared -lc -lm"
242 :     ;;
243 :     [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)
244 :     AC_MSG_RESULT([-shared -Wl,--dll,--out-implib,\$@.a])
245 :     OS_LDFLAGS="-shared -Wl,--dll,--out-implib,\$@.a libxvidcore.def"
246 :     CFLAGS="$CFLAGS -mno-cygwin"
247 :     ;;
248 :     darwin*|raphsody*)
249 :     AC_MSG_RESULT([-dynamiclib])
250 : edgomez 828 OS_LDFLAGS="-dynamiclib -flat_namespace"
251 : edgomez 824 CFLAGS="$CFLAGS -fno-common"
252 :     ;;
253 :     beos)
254 :     AC_MSG_RESULT([-nostart])
255 :     OS_LDFLAGS="-nostart"
256 :     ;;
257 :     *)
258 :     AC_MSG_RESULT([Unknown OS - -shared -lc -lm])
259 :     OS_LDFLAGS=""
260 :     ;;
261 :     esac
262 :    
263 :     dnl ==========================================================================
264 :     dnl
265 :     dnl Assembler stuff - AS, AFLAGS, ASSEMBLY_EXTENSION, SOURCES
266 :     dnl
267 :     dnl ==========================================================================
268 :    
269 :     AS=""
270 :     AFLAGS=""
271 :     ASSEMBLY_EXTENSION=""
272 :     GENERIC_SOURCES="SRC_GENERIC"
273 :     ASSEMBLY_SOURCES=""
274 :    
275 :     dnl
276 :     dnl IA32
277 :     dnl
278 :    
279 :     if test "$ARCHITECTURE" = "IA32" ; then
280 :    
281 :     dnl
282 :     dnl Checking nasm existence
283 :     dnl
284 :     AC_CHECK_PROG([ac_nasm], [$nasm_prog], [yes], [no], , [yes])
285 :     if test "$ac_nasm" = "yes" ; then
286 :    
287 :     dnl
288 :     dnl Checking nasm patch version
289 :     dnl
290 :     AC_MSG_CHECKING([for nasm patch version])
291 :     nasm_patch=`nasm -r | cut -d '.' -f 3 | cut -d ' ' -f 1`
292 :     AC_MSG_RESULT([$nasm_patch])
293 :    
294 :     if test "$nasm_patch" -lt "$minimum_nasm_patch_version" ; then
295 :     AC_MSG_WARN([nasm patch version too old - Compiling generic sources only])
296 :     ARCHITECTURE="GENERIC"
297 :     else
298 :    
299 :     dnl
300 :     dnl Checking nasm format - win32 or elf
301 :     dnl
302 :     AC_MSG_CHECKING([for nasm object format])
303 :     case "$target_os" in
304 :     *bsd*|linux*|beos|irix*|solaris*)
305 :     AC_MSG_RESULT([elf])
306 :     NASM_FORMAT="elf"
307 :     PREFIX=""
308 :     ;;
309 :     [[cC]][[yY]][[gG]][[wW]][[iI]][[nN]]|mingw32|mks)
310 :     AC_MSG_RESULT([win32])
311 :     NASM_FORMAT="win32"
312 :     PREFIX="-DPREFIX"
313 :     ;;
314 :     esac
315 :    
316 :     AS=nasm
317 :     AFLAGS="-I\$(<D) -f $NASM_FORMAT $PREFIX"
318 :     ASSEMBLY_EXTENSION="asm"
319 :     ASSEMBLY_SOURCES="SRC_IA32"
320 :     fi
321 :    
322 :     else
323 :     AC_MSG_WARN([nasm not found - Compiling generic sources only])
324 :     ARCHITECTURE="GENERIC"
325 :     fi
326 :    
327 :     fi
328 :    
329 :     dnl
330 :     dnl PPC
331 :     dnl
332 :    
333 :     if test "$ARCHITECTURE" = "PPC" ; then
334 :     AS="\$(CC)"
335 :     AFLAGS="-c"
336 :     ASSEMBLY_EXTENSION="s"
337 :     ASSEMBLY_SOURCES="SRC_PPC"
338 :     AC_MSG_CHECKING([for Altivec support])
339 :     cat > conftest.S << EOF
340 :     .text
341 :     vxor 0,0,0
342 :     EOF
343 :     if $CC -c conftest.S 2>/dev/null 1>/dev/null ; then
344 :     AC_MSG_RESULT(yes)
345 :     CFLAGS="$CFLAGS -DARCH_IS_PPC_ALTIVEC"
346 :     ASSEMBLY_SOURCES="SRC_ALTIVEC"
347 :     else
348 :     AC_MSG_RESULT(no)
349 :     fi
350 :     rm -f conftest.*
351 :     fi
352 :    
353 :     dnl
354 :     dnl IA64
355 :     dnl
356 :    
357 :     if test "$ARCHITECTURE" = "IA64" ; then
358 :     AS="\$(CC)"
359 :     AFLAGS="-c"
360 :     ASSEMBLY_EXTENSION="s"
361 :     ASSEMBLY_SOURCES="SRC_IA64"
362 :     fi
363 :    
364 :     dnl ==========================================================================
365 :     dnl
366 :     dnl Check for header files
367 :     dnl
368 :     dnl ==========================================================================
369 :    
370 :     AC_CHECK_HEADERS(
371 :     stdio.h \
372 :     signal.h \
373 :     , , AC_MSG_ERROR(Missing header file))
374 :    
375 :     dnl ==========================================================================
376 :     dnl
377 :     dnl Substitions
378 :     dnl
379 :     dnl ==========================================================================
380 :    
381 :     AC_SUBST(FEATURES)
382 :     AC_SUBST(ARCHITECTURE)
383 :     AC_SUBST(BUS)
384 :     AC_SUBST(ENDIANNESS)
385 :     AC_SUBST(SHARED_EXTENSION)
386 :     AC_SUBST(STATIC_EXTENSION)
387 :     AC_SUBST(OBJECT_EXTENSION)
388 :     AC_SUBST(NASM_FORMAT)
389 :     AC_SUBST(AS)
390 :     AC_SUBST(AFLAGS)
391 :     AC_SUBST(ASSEMBLY_EXTENSION)
392 :     AC_SUBST(GENERIC_SOURCES)
393 :     AC_SUBST(ASSEMBLY_SOURCES)
394 :     AC_SUBST(CC)
395 :     AC_SUBST(CFLAGS)
396 :     AC_SUBST(OS_LDFLAGS)
397 :     AC_SUBST(DIVX4COMPAT_SOURCES)
398 :    
399 :     dnl ==========================================================================
400 :     dnl
401 :     dnl Output files
402 :     dnl
403 :     dnl ==========================================================================
404 :    
405 :     AC_CONFIG_FILES(platform.inc)
406 :    
407 :     AC_OUTPUT

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4