]> git.ipfire.org Git - thirdparty/cups.git/blame - config-scripts/cups-sharedlibs.m4
Add support for cross-compilation (Issue #4897)
[thirdparty/cups.git] / config-scripts / cups-sharedlibs.m4
CommitLineData
ef416fc2 1dnl
5a1d7a17 2dnl Shared library support for CUPS.
ef416fc2 3dnl
105922ec 4dnl Copyright 2007-2017 by Apple Inc.
5a1d7a17 5dnl Copyright 1997-2005 by Easy Software Products, all rights reserved.
ef416fc2 6dnl
5a1d7a17
MS
7dnl These coded instructions, statements, and computer programs are the
8dnl property of Apple Inc. and are protected by Federal copyright
9dnl law. Distribution and use rights are outlined in the file "LICENSE.txt"
10dnl which should have been included with this file. If this file is
57b7b66b 11dnl missing or damaged, see the license at "http://www.cups.org/".
ef416fc2 12dnl
13
14PICFLAG=1
15DSOFLAGS="${DSOFLAGS:=}"
16
bf3816c7 17AC_ARG_ENABLE(shared, [ --disable-shared do not create shared libraries])
ef416fc2 18
f8b3a85b
MS
19cupsbase="cups"
20LIBCUPSBASE="lib$cupsbase"
21LIBCUPSSTATIC="lib$cupsbase.a"
22
ef416fc2 23if test x$enable_shared != xno; then
105922ec
MS
24 case "$host_os_name" in
25 sunos*)
f8b3a85b 26 LIBCUPS="lib$cupsbase.so.2"
dd1abb6b 27 LIBCUPSCGI="libcupscgi.so.1"
dd1abb6b
MS
28 LIBCUPSIMAGE="libcupsimage.so.2"
29 LIBCUPSMIME="libcupsmime.so.1"
30 LIBCUPSPPDC="libcupsppdc.so.1"
31 DSO="\$(CC)"
32 DSOXX="\$(CXX)"
33 DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G \$(OPTIM)"
34 ;;
105922ec 35 linux | gnu | *bsd*)
f8b3a85b 36 LIBCUPS="lib$cupsbase.so.2"
50fe7201 37 LIBCUPSCGI="libcupscgi.so.1"
ef416fc2 38 LIBCUPSIMAGE="libcupsimage.so.2"
50fe7201
MS
39 LIBCUPSMIME="libcupsmime.so.1"
40 LIBCUPSPPDC="libcupsppdc.so.1"
ef416fc2 41 DSO="\$(CC)"
50fe7201 42 DSOXX="\$(CXX)"
f301802f 43 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
ef416fc2 44 ;;
105922ec 45 darwin*)
f8b3a85b 46 LIBCUPS="lib$cupsbase.2.dylib"
50fe7201 47 LIBCUPSCGI="libcupscgi.1.dylib"
ef416fc2 48 LIBCUPSIMAGE="libcupsimage.2.dylib"
50fe7201
MS
49 LIBCUPSMIME="libcupsmime.1.dylib"
50 LIBCUPSPPDC="libcupsppdc.1.dylib"
ef416fc2 51 DSO="\$(CC)"
50fe7201 52 DSOXX="\$(CXX)"
f301802f 53 DSOFLAGS="$DSOFLAGS -dynamiclib -single_module -lc"
ef416fc2 54 ;;
ef416fc2 55 *)
56 echo "Warning: shared libraries may not be supported. Trying -shared"
57 echo " option with compiler."
f8b3a85b 58 LIBCUPS="lib$cupsbase.so.2"
50fe7201 59 LIBCUPSCGI="libcupscgi.so.1"
ef416fc2 60 LIBCUPSIMAGE="libcupsimage.so.2"
50fe7201
MS
61 LIBCUPSMIME="libcupsmime.so.1"
62 LIBCUPSPPDC="libcupsppdc.so.1"
ef416fc2 63 DSO="\$(CC)"
50fe7201 64 DSOXX="\$(CXX)"
f301802f 65 DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared \$(OPTIM)"
ef416fc2 66 ;;
67 esac
68else
69 PICFLAG=0
f8b3a85b 70 LIBCUPS="lib$cupsbase.a"
50fe7201 71 LIBCUPSCGI="libcupscgi.a"
ef416fc2 72 LIBCUPSIMAGE="libcupsimage.a"
50fe7201
MS
73 LIBCUPSMIME="libcupsmime.a"
74 LIBCUPSPPDC="libcupsppdc.a"
ef416fc2 75 DSO=":"
50fe7201 76 DSOXX=":"
ef416fc2 77fi
78
79AC_SUBST(DSO)
50fe7201 80AC_SUBST(DSOXX)
ef416fc2 81AC_SUBST(DSOFLAGS)
82AC_SUBST(LIBCUPS)
f8b3a85b 83AC_SUBST(LIBCUPSBASE)
50fe7201 84AC_SUBST(LIBCUPSCGI)
ef416fc2 85AC_SUBST(LIBCUPSIMAGE)
50fe7201
MS
86AC_SUBST(LIBCUPSMIME)
87AC_SUBST(LIBCUPSPPDC)
f8b3a85b 88AC_SUBST(LIBCUPSSTATIC)
ef416fc2 89
90if test x$enable_shared = xno; then
f8b3a85b 91 LINKCUPS="../cups/lib$cupsbase.a"
ef416fc2 92 LINKCUPSIMAGE="../filter/libcupsimage.a"
c7017ecc
MS
93
94 EXTLINKCUPS="-lcups"
c7017ecc 95 EXTLINKCUPSIMAGE="-lcupsimage"
ef416fc2 96else
5a1d7a17
MS
97 LINKCUPS="-l${cupsbase}"
98 LINKCUPSIMAGE="-lcupsimage"
c7017ecc 99
5a1d7a17
MS
100 EXTLINKCUPS="-lcups"
101 EXTLINKCUPSIMAGE="-lcupsimage"
ef416fc2 102fi
103
c7017ecc 104AC_SUBST(EXTLINKCUPS)
c7017ecc 105AC_SUBST(EXTLINKCUPSIMAGE)
ef416fc2 106AC_SUBST(LINKCUPS)
107AC_SUBST(LINKCUPSIMAGE)
108
109dnl Update libraries for DSOs...
110EXPORT_LDFLAGS=""
111
112if test "$DSO" != ":"; then
113 # When using DSOs the image libraries are linked to libcupsimage.so
114 # rather than to the executables. This makes things smaller if you
115 # are using any static libraries, and it also allows us to distribute
116 # a single DSO rather than a bunch...
a4845881 117 DSOLIBS="\$(LIBZ)"
ef416fc2 118 IMGLIBS=""
119
f301802f 120 # Tell the run-time linkers where to find a DSO. Some platforms
121 # need this option, even when the library is installed in a
122 # standard location...
105922ec
MS
123 case $host_os_name in
124 sunos*)
f301802f 125 # Solaris...
126 if test $exec_prefix != /usr; then
ed486911 127 DSOFLAGS="-R$libdir $DSOFLAGS"
ed486911 128 LDFLAGS="$LDFLAGS -R$libdir"
129 EXPORT_LDFLAGS="-R$libdir"
f301802f 130 fi
131 ;;
105922ec 132 *bsd*)
f301802f 133 # *BSD...
134 if test $exec_prefix != /usr; then
ed486911 135 DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
ed486911 136 LDFLAGS="$LDFLAGS -Wl,-R$libdir"
137 EXPORT_LDFLAGS="-Wl,-R$libdir"
f301802f 138 fi
139 ;;
105922ec 140 linux | gnu)
3dd9c340 141 # Linux, and HURD...
f301802f 142 if test $exec_prefix != /usr; then
ed486911 143 DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
ed486911 144 LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
145 EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
f301802f 146 fi
147 ;;
ef416fc2 148 esac
149else
150 DSOLIBS=""
a4845881 151 IMGLIBS="\$(LIBZ)"
ef416fc2 152fi
153
154AC_SUBST(DSOLIBS)
155AC_SUBST(IMGLIBS)
156AC_SUBST(EXPORT_LDFLAGS)