2 dnl "$Id: cups-compiler.m4 6976 2007-09-18 20:39:31Z mike $"
4 dnl Compiler stuff for the Common UNIX Printing System (CUPS).
6 dnl Copyright 2007 by Apple Inc.
7 dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
9 dnl These coded instructions, statements, and computer programs are the
10 dnl property of Apple Inc. and are protected by Federal copyright
11 dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
12 dnl which should have been included with this file. If this file is
13 dnl file is missing or damaged, see the license at "http://www.cups.org/".
16 dnl Clear the debugging and non-shared library options unless the user asks
21 AC_ARG_WITH(optim, [ --with-optim="flags" set optimization flags ])
22 AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging, default=no],
23 [if test x$enable_debug = xyes; then
27 dnl Setup general architecture flags...
28 AC_ARG_WITH(archflags, [ --with-archflags="flags"
29 set default architecture flags ])
31 if test -z "$with_archflags"; then
35 ARCHFLAGS="$with_archflags"
36 if test "$uname" = Darwin; then
37 # Only link 32-bit programs - 64-bit is for the shared
39 LDARCHFLAGS="`echo $ARCHFLAGS | sed -e '1,$s/-arch x86_64//' -e '1,$s/-arch ppc64//'`"
41 LDARCHFLAGS="$ARCHFLAGS"
48 dnl Setup support for separate 32/64-bit library generation...
49 AC_ARG_WITH(arch32flags, [ --with-arch32flags="flags"
50 specifies 32-bit architecture flags])
54 AC_ARG_WITH(arch64flags, [ --with-arch64flags="flags"
55 specifies 64-bit architecture flags])
59 dnl Position-Independent Executable support on Linux...
60 AC_ARG_ENABLE(pie, [ --enable-pie use GCC -fPIE option, default=no])
62 dnl Read-only data/program support on Linux...
63 AC_ARG_ENABLE(relro, [ --enable-relro use GCC relro option, default=no])
65 dnl Update compiler options...
75 LIBCUPSORDER="libcups.order"
76 AC_ARG_WITH(libcupsorder, [ --with-libcupsorder libcups secorder file, default=libcups.order],
77 if test -f "$withval"; then
78 LIBCUPSORDER="$withval"
80 AC_SUBST(LIBCUPSORDER)
82 LIBCUPSIMAGEORDER="libcupsimage.order"
83 AC_ARG_WITH(libcupsimageorder, [ --with-libcupsimagesorder
84 libcupsimage secorder file, default=libcupsimage.order],
85 if test -f "$withval"; then
86 LIBCUPSIMAGEORDER="$withval"
88 AC_SUBST(LIBCUPSIMAGEORDER)
90 if test -n "$GCC"; then
91 # Add GCC-specific compiler options...
92 if test -z "$OPTIM"; then
93 if test "x$with_optim" = x; then
94 # Default to optimize-for-size and debug
97 OPTIM="$with_optim $OPTIM"
101 if test $PICFLAG = 1 -a $uname != AIX; then
107 if test x$enable_pie = xyes; then
108 PIEFLAGS="-pie -fPIE"
111 if test x$enable_relro = xyes; then
112 RELROFLAGS="-Wl,-z,relro"
117 if test x$enable_pie = xyes; then
118 echo "Sorry, --enable-pie is not supported on this OS!"
123 if test "x$with_optim" = x; then
124 # Add useful warning options for tracking down problems...
125 OPTIM="-Wall -Wno-format-y2k $OPTIM"
126 # Additional warning options for alpha testing...
127 OPTIM="-Wshadow -Wunused $OPTIM"
132 if test "x$enable_32bit" = xyes; then
133 # Build 32-bit libraries, 64-bit base...
134 if test -z "$with_arch32flags"; then
135 ARCH32FLAGS="-milp32"
137 ARCH32FLAGS="$with_arch32flags"
140 if test -z "$with_archflags"; then
141 if test -z "$with_arch64flags"; then
144 ARCHFLAGS="$with_arch64flags"
149 if test "x$enable_64bit" = xyes; then
150 # Build 64-bit libraries, 32-bit base...
151 if test -z "$with_arch64flags"; then
154 ARCH64FLAGS="$with_arch64flags"
157 if test -z "$with_archflags"; then
158 if test -z "$with_arch32flags"; then
161 ARCHFLAGS="$with_arch32flags"
168 if test "x$enable_32bit" = xyes; then
169 # Build 32-bit libraries, 64-bit base...
170 if test -z "$with_arch32flags"; then
171 ARCH32FLAGS="-n32 -mips3"
173 ARCH32FLAGS="$with_arch32flags"
176 if test -z "$with_archflags"; then
177 if test -z "$with_arch64flags"; then
178 ARCHFLAGS="-64 -mips4"
180 ARCHFLAGS="$with_arch64flags"
185 if test "x$enable_64bit" = xyes; then
186 # Build 64-bit libraries, 32-bit base...
187 if test -z "$with_arch64flags"; then
188 ARCH64FLAGS="-64 -mips4"
190 ARCH64FLAGS="$with_arch64flags"
193 if test -z "$with_archflags"; then
194 if test -z "$with_arch32flags"; then
195 ARCHFLAGS="-n32 -mips3"
197 ARCHFLAGS="$with_arch32flags"
204 if test "x$enable_32bit" = xyes; then
205 # Build 32-bit libraries, 64-bit base...
206 if test -z "$with_arch32flags"; then
209 ARCH32FLAGS="$with_arch32flags"
212 if test -z "$with_archflags"; then
213 if test -z "$with_arch64flags"; then
216 ARCHFLAGS="$with_arch64flags"
221 if test "x$enable_64bit" = xyes; then
222 # Build 64-bit libraries, 32-bit base...
223 if test -z "$with_arch64flags"; then
226 ARCH64FLAGS="$with_arch64flags"
229 if test -z "$with_archflags"; then
230 if test -z "$with_arch32flags"; then
233 ARCHFLAGS="$with_arch32flags"
240 if test "x$enable_32bit" = xyes; then
241 # Build 32-bit libraries, 64-bit base...
242 if test -z "$with_arch32flags"; then
245 ARCH32FLAGS="$with_arch32flags"
248 if test -z "$with_archflags"; then
249 if test -z "$with_arch64flags"; then
252 ARCHFLAGS="$with_arch64flags"
257 if test "x$enable_64bit" = xyes; then
258 # Build 64-bit libraries, 32-bit base...
259 if test -z "$with_arch64flags"; then
262 ARCH64FLAGS="$with_arch64flags"
265 if test -z "$with_archflags"; then
266 if test -z "$with_arch32flags"; then
269 ARCHFLAGS="$with_arch32flags"
276 # Add vendor-specific compiler options...
279 if test -z "$OPTIM"; then
280 if test "x$with_optim" = x; then
281 OPTIM="-O2 -qmaxmem=6000"
283 OPTIM="$with_optim $OPTIM"
288 if test -z "$OPTIM"; then
289 if test "x$with_optim" = x; then
292 OPTIM="$with_optim $OPTIM"
297 # Warning 336 is "empty translation unit"
298 # Warning 829 is passing constant string as char *
299 CXXFLAGS="+W336,829 $CXXFLAGS"
301 if test $PICFLAG = 1; then
305 if test "x$enable_32bit" = xyes; then
306 # Build 32-bit libraries, 64-bit base...
307 if test -z "$with_arch32flags"; then
310 ARCH32FLAGS="$with_arch32flags"
313 if test -z "$with_archflags"; then
314 if test -z "$with_arch64flags"; then
317 ARCHFLAGS="$with_arch64flags"
322 if test "x$enable_64bit" = xyes; then
323 # Build 64-bit libraries, 32-bit base...
324 if test -z "$with_arch64flags"; then
327 ARCH64FLAGS="$with_arch64flags"
330 if test -z "$with_archflags"; then
331 if test -z "$with_arch32flags"; then
334 ARCHFLAGS="$with_arch32flags"
340 if test -z "$OPTIM"; then
341 if test "x$with_optim" = x; then
344 OPTIM="$with_optim $OPTIM"
348 if test "x$with_optim" = x; then
349 OPTIM="-fullwarn -woff 1183,1209,1349,1506,3201 $OPTIM"
352 if test "x$enable_32bit" = xyes; then
353 # Build 32-bit libraries, 64-bit base...
354 if test -z "$with_arch32flags"; then
355 ARCH32FLAGS="-n32 -mips3"
357 ARCH32FLAGS="$with_arch32flags"
360 if test -z "$with_archflags"; then
361 if test -z "$with_arch64flags"; then
362 ARCHFLAGS="-64 -mips4"
364 ARCHFLAGS="$with_arch64flags"
369 if test "x$enable_64bit" = xyes; then
370 # Build 64-bit libraries, 32-bit base...
371 if test -z "$with_arch64flags"; then
372 ARCH64FLAGS="-64 -mips4"
374 ARCH64FLAGS="$with_arch64flags"
377 if test -z "$with_archflags"; then
378 if test -z "$with_arch32flags"; then
379 ARCHFLAGS="-n32 -mips3"
381 ARCHFLAGS="$with_arch32flags"
387 # Tru64 UNIX aka Digital UNIX aka OSF/1
388 if test -z "$OPTIM"; then
389 if test "x$with_optim" = x; then
398 if test -z "$OPTIM"; then
399 if test "x$with_optim" = x; then
402 OPTIM="$with_optim $OPTIM"
406 if test $PICFLAG = 1; then
410 if test "x$enable_32bit" = xyes; then
411 # Compiling on a Solaris system, build 64-bit
412 # binaries with separate 32-bit libraries...
413 ARCH32FLAGS="-xarch=generic"
415 if test "x$with_optim" = x; then
416 # Suppress all of Sun's questionable
417 # warning messages, and default to
418 # 64-bit compiles of everything else...
422 if test -z "$with_archflags"; then
423 if test -z "$with_arch64flags"; then
424 ARCHFLAGS="-xarch=generic64"
426 ARCHFLAGS="$with_arch64flags"
430 if test "x$enable_64bit" = xyes; then
431 # Build 64-bit libraries...
432 ARCH64FLAGS="-xarch=generic64"
435 if test "x$with_optim" = x; then
436 # Suppress all of Sun's questionable
437 # warning messages, and default to
438 # 32-bit compiles of everything else...
442 if test -z "$with_archflags"; then
443 if test -z "$with_arch32flags"; then
444 ARCHFLAGS="-xarch=generic"
446 ARCHFLAGS="$with_arch32flags"
453 if test -z "$OPTIM"; then
454 if test "x$with_optim" = x; then
457 OPTIM="$with_optim $OPTIM"
461 if test $PICFLAG = 1; then
466 # Running some other operating system; inform the user they
467 # should contribute the necessary options to
468 # cups-support@cups.org...
469 echo "Building CUPS with default compiler optimizations; contact"
470 echo "cups-bugs@cups.org with uname and compiler options needed"
471 echo "for your platform, or set the CFLAGS and CXXFLAGS"
472 echo "environment variable before running configure."
477 # Add general compiler options per platform...
480 # HP-UX 10.20 (at least) needs this definition to get the
482 OPTIM="$OPTIM -D_XOPEN_SOURCE_EXTENDED"
484 # HP-UX 11.00 (at least) needs this definition to get the
485 # u_short type used by the IP headers...
486 OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
488 # HP-UX 11.23 (at least) needs this definition to get the
489 # IPv6 header to work...
490 OPTIM="$OPTIM -D_HPUX_SOURCE"
494 # Tru64 UNIX aka Digital UNIX aka OSF/1 need to be told
495 # to be POSIX-compliant...
496 OPTIM="$OPTIM -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_OSF_SOURCE"
501 dnl End of "$Id: cups-compiler.m4 6976 2007-09-18 20:39:31Z mike $".