dnl
-dnl "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $"
+dnl "$Id: cups-compiler.m4 6649 2007-07-11 21:46:42Z mike $"
dnl
dnl Compiler stuff for the Common UNIX Printing System (CUPS).
dnl
-dnl Copyright 1997-2006 by Easy Software Products, all rights reserved.
+dnl Copyright 2007 by Apple Inc.
+dnl Copyright 1997-2007 by Easy Software Products, all rights reserved.
dnl
dnl These coded instructions, statements, and computer programs are the
-dnl property of Easy Software Products and are protected by Federal
-dnl copyright law. Distribution and use rights are outlined in the file
-dnl "LICENSE.txt" which should have been included with this file. If this
-dnl file is missing or damaged please contact Easy Software Products
-dnl at:
-dnl
-dnl Attn: CUPS Licensing Information
-dnl Easy Software Products
-dnl 44141 Airport View Drive, Suite 204
-dnl Hollywood, Maryland 20636 USA
-dnl
-dnl Voice: (301) 373-9600
-dnl EMail: cups-info@cups.org
-dnl WWW: http://www.cups.org
+dnl property of Apple Inc. and are protected by Federal copyright
+dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
+dnl which should have been included with this file. If this file is
+dnl file is missing or damaged, see the license at "http://www.cups.org/".
dnl
dnl Clear the debugging and non-shared library options unless the user asks
dnl for them...
-ARCHFLAGS=""
OPTIM=""
-AC_SUBST(ARCHFLAGS)
AC_SUBST(OPTIM)
AC_ARG_WITH(optim, [ --with-optim="flags" set optimization flags ])
-AC_ARG_WITH(archflags, [ --with-arch="flags" set default architecture flags ])
-
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging, default=no],
[if test x$enable_debug = xyes; then
OPTIM="-g"
fi])
-dnl Setup support for separate 32/64-bit library generation...
-AC_ARG_ENABLE(32bit, [ --enable-32bit generate 32-bit libraries on 32/64-bit systems, default=no])
-AC_ARG_WITH(arch32flags, [ --with-arch32="flags" specifies 32-bit architecture flags])
+dnl Setup general architecture flags...
+AC_ARG_WITH(archflags, [ --with-archflags="flags"
+ set default architecture flags ])
-ARCH32FLAGS=""
-INSTALL32=""
-LIB32CUPS=""
-LIB32CUPSIMAGE=""
-LIB32DIR=""
-UNINSTALL32=""
+if test -z "$with_archflags"; then
+ ARCHFLAGS=""
+ LDARCHFLAGS=""
+else
+ ARCHFLAGS="$with_archflags"
+ if test "$uname" = Darwin; then
+ # Only link 32-bit programs - 64-bit is for the shared
+ # libraries...
+ LDARCHFLAGS="`echo $ARCHFLAGS | sed -e '1,$s/-arch x86_64//' -e '1,$s/-arch ppc64//'`"
+ else
+ LDARCHFLAGS="$ARCHFLAGS"
+ fi
+fi
-AC_SUBST(ARCH32FLAGS)
-AC_SUBST(INSTALL32)
-AC_SUBST(LIB32CUPS)
-AC_SUBST(LIB32CUPSIMAGE)
-AC_SUBST(LIB32DIR)
-AC_SUBST(UNINSTALL32)
+AC_SUBST(ARCHFLAGS)
+AC_SUBST(LDARCHFLAGS)
-AC_ARG_ENABLE(64bit, [ --enable-64bit generate 64-bit libraries on 32/64-bit systems, default=no])
-AC_ARG_WITH(arch64flags, [ --with-arch64="flags" specifies 64-bit architecture flags])
+dnl Setup support for separate 32/64-bit library generation...
+AC_ARG_WITH(arch32flags, [ --with-arch32flags="flags"
+ specifies 32-bit architecture flags])
+ARCH32FLAGS=""
+AC_SUBST(ARCH32FLAGS)
+AC_ARG_WITH(arch64flags, [ --with-arch64flags="flags"
+ specifies 64-bit architecture flags])
ARCH64FLAGS=""
-INSTALL64=""
-LIB64CUPS=""
-LIB64CUPSIMAGE=""
-LIB64DIR=""
-UNINSTALL64=""
-
AC_SUBST(ARCH64FLAGS)
-AC_SUBST(INSTALL64)
-AC_SUBST(LIB64CUPS)
-AC_SUBST(LIB64CUPSIMAGE)
-AC_SUBST(LIB64DIR)
-AC_SUBST(UNINSTALL64)
-dnl Position-Independent Executable support on Linux and *BSD...
+dnl Position-Independent Executable support on Linux...
AC_ARG_ENABLE(pie, [ --enable-pie use GCC -fPIE option, default=no])
+dnl Read-only data/program support on Linux...
+AC_ARG_ENABLE(relro, [ --enable-relro use GCC relro option, default=no])
+
dnl Update compiler options...
CXXLIBS=""
AC_SUBST(CXXLIBS)
PIEFLAGS=""
AC_SUBST(PIEFLAGS)
+RELROFLAGS=""
+AC_SUBST(RELROFLAGS)
+
if test -n "$GCC"; then
+ # Add GCC-specific compiler options...
if test -z "$OPTIM"; then
if test "x$with_optim" = x; then
# Default to optimize-for-size and debug
if test x$enable_pie = xyes; then
PIEFLAGS="-pie -fPIE"
fi
+
+ if test x$enable_relro = xyes; then
+ RELROFLAGS="-Wl,-z,relro"
+ fi
;;
*)
fi
case "$uname" in
- Darwin*)
- if test -z "$with_archflags"; then
- if test "x`uname -m`" = xi386; then
- # Build universal binaries for OSX on Intel...
- ARCHFLAGS="-arch i386 -arch ppc"
+ HP-UX*)
+ if test "x$enable_32bit" = xyes; then
+ # Build 32-bit libraries, 64-bit base...
+ if test -z "$with_arch32flags"; then
+ ARCH32FLAGS="-milp32"
+ else
+ ARCH32FLAGS="$with_arch32flags"
+ fi
+
+ if test -z "$with_archflags"; then
+ if test -z "$with_arch64flags"; then
+ ARCHFLAGS="-mlp64"
+ else
+ ARCHFLAGS="$with_arch64flags"
+ fi
+ fi
+ fi
+
+ if test "x$enable_64bit" = xyes; then
+ # Build 64-bit libraries, 32-bit base...
+ if test -z "$with_arch64flags"; then
+ ARCH64FLAGS="-mlp64"
+ else
+ ARCH64FLAGS="$with_arch64flags"
+ fi
+
+ if test -z "$with_archflags"; then
+ if test -z "$with_arch32flags"; then
+ ARCHFLAGS="-milp32"
+ else
+ ARCHFLAGS="$with_arch32flags"
+ fi
fi
- else
- ARCHFLAGS="$with_archflags"
fi
;;
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$prefix/lib32"
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCHFLAGS="$with_arch64flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$prefix/lib64"
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
else
ARCHFLAGS="$with_arch32flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
;;
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$exec_prefix/lib"
- if test -d /usr/lib32; then
- LIB32DIR="${LIB32DIR}32"
- fi
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCHFLAGS="$with_arch64flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$exec_prefix/lib"
- if test -d /usr/lib64; then
- LIB64DIR="${LIB64DIR}64"
- fi
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
else
ARCHFLAGS="$with_arch32flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
;;
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$exec_prefix/lib/32"
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCHFLAGS="$with_arch64flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$exec_prefix/lib/64"
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
else
ARCHFLAGS="$with_arch32flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
;;
esac
else
+ # Add vendor-specific compiler options...
case $uname in
AIX*)
if test -z "$OPTIM"; then
# Warning 829 is passing constant string as char *
CXXFLAGS="+W336,829 $CXXFLAGS"
- if test -z "$with_archflags"; then
- # Build portable binaries for all HP systems...
- ARCHFLAGS="+DAportable"
- else
- ARCHFLAGS="$with_archflags"
- fi
-
if test $PICFLAG = 1; then
OPTIM="+z $OPTIM"
fi
else
ARCH32FLAGS="$with_arch32flags"
fi
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$prefix/lib32"
- UNINSTALL32="uninstall32bit"
if test -z "$with_archflags"; then
if test -z "$with_arch64flags"; then
else
ARCHFLAGS="$with_arch64flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
else
ARCH64FLAGS="$with_arch64flags"
fi
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$prefix/lib64"
- UNINSTALL64="uninstall64bit"
if test -z "$with_archflags"; then
if test -z "$with_arch32flags"; then
else
ARCHFLAGS="$with_arch32flags"
fi
+ fi
+ fi
+ ;;
+ OSF*)
+ # Tru64 UNIX aka Digital UNIX aka OSF/1
+ if test -z "$OPTIM"; then
+ if test "x$with_optim" = x; then
+ OPTIM="-O"
else
- ARCHFLAGS="$with_archflags"
+ OPTIM="$with_optim"
fi
fi
;;
# Solaris
if test -z "$OPTIM"; then
if test "x$with_optim" = x; then
- OPTIM="-xO4"
+ OPTIM="-xO2"
else
OPTIM="$with_optim $OPTIM"
fi
# Compiling on a Solaris system, build 64-bit
# binaries with separate 32-bit libraries...
ARCH32FLAGS="-xarch=generic"
- INSTALL32="install32bit"
- LIB32CUPS="32bit/libcups.so.2"
- LIB32CUPSIMAGE="32bit/libcupsimage.so.2"
- LIB32DIR="$exec_prefix/lib/32"
- UNINSTALL32="uninstall32bit"
if test "x$with_optim" = x; then
# Suppress all of Sun's questionable
else
ARCHFLAGS="$with_arch64flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
else
if test "x$enable_64bit" = xyes; then
# Build 64-bit libraries...
ARCH64FLAGS="-xarch=generic64"
- INSTALL64="install64bit"
- LIB64CUPS="64bit/libcups.so.2"
- LIB64CUPSIMAGE="64bit/libcupsimage.so.2"
- LIB64DIR="$exec_prefix/lib/64"
- UNINSTALL64="uninstall64bit"
fi
if test "x$with_optim" = x; then
else
ARCHFLAGS="$with_arch32flags"
fi
- else
- ARCHFLAGS="$with_archflags"
fi
fi
;;
esac
fi
-if test $uname = HP-UX; then
- # HP-UX 10.20 (at least) needs this definition to get the
- # h_errno global...
- OPTIM="$OPTIM -D_XOPEN_SOURCE_EXTENDED"
-
- # HP-UX 11.00 (at least) needs this definition to get the
- # u_short type used by the IP headers...
- OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
-fi
+# Add general compiler options per platform...
+case $uname in
+ HP-UX*)
+ # HP-UX 10.20 (at least) needs this definition to get the
+ # h_errno global...
+ OPTIM="$OPTIM -D_XOPEN_SOURCE_EXTENDED"
+
+ # HP-UX 11.00 (at least) needs this definition to get the
+ # u_short type used by the IP headers...
+ OPTIM="$OPTIM -D_INCLUDE_HPUX_SOURCE"
+
+ # HP-UX 11.23 (at least) needs this definition to get the
+ # IPv6 header to work...
+ OPTIM="$OPTIM -D_HPUX_SOURCE"
+ ;;
+
+ OSF*)
+ # Tru64 UNIX aka Digital UNIX aka OSF/1 need to be told
+ # to be POSIX-compliant...
+ OPTIM="$OPTIM -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D_OSF_SOURCE"
+ ;;
+esac
dnl
-dnl End of "$Id: cups-compiler.m4 5566 2006-05-22 01:10:11Z mike $".
+dnl End of "$Id: cups-compiler.m4 6649 2007-07-11 21:46:42Z mike $".
dnl