• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1dnl
2dnl Shared library support for CUPS.
3dnl
4dnl Copyright © 2020-2024 by OpenPrinting.
5dnl Copyright © 2007-2018 by Apple Inc.
6dnl Copyright © 1997-2005 by Easy Software Products, all rights reserved.
7dnl
8dnl Licensed under Apache License v2.0.  See the file "LICENSE" for more
9dnl information.
10dnl
11
12PICFLAG="1"
13DSOFLAGS="${DSOFLAGS:=}"
14
15AC_ARG_ENABLE([shared], AS_HELP_STRING([--disable-shared], [do not create shared libraries]))
16
17cupsbase="cups"
18LIBCUPSBASE="lib$cupsbase"
19LIBCUPSIMAGE=""
20LIBCUPSSTATIC="lib$cupsbase.a"
21
22AS_IF([test x$enable_shared != xno], [
23    AS_CASE(["$host_os_name"], [sunos*], [
24	LIBCUPS="lib$cupsbase.so.2"
25	AS_IF([test "x$cupsimagebase" != x], [
26	    LIBCUPSIMAGE="lib$cupsimagebase.so.2"
27	])
28	DSO="\$(CC)"
29	DSOXX="\$(CXX)"
30	DSOFLAGS="$DSOFLAGS -Wl,-h\`basename \$@\` -G"
31    ], [linux* | gnu* | *bsd* | solaris*], [
32	LIBCUPS="lib$cupsbase.so.2"
33	AS_IF([test "x$cupsimagebase" != x], [
34	    LIBCUPSIMAGE="lib$cupsimagebase.so.2"
35	])
36	DSO="\$(CC)"
37	DSOXX="\$(CXX)"
38	DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared"
39    ], [darwin*], [
40	LIBCUPS="lib$cupsbase.2.dylib"
41	AS_IF([test "x$cupsimagebase" != x], [
42	    LIBCUPSIMAGE="lib$cupsimagebase.2.dylib"
43	])
44	DSO="\$(CC)"
45	DSOXX="\$(CXX)"
46	DSOFLAGS="$DSOFLAGS -Wl,-no_warn_inits -dynamiclib -single_module -lc"
47    ], [aix*], [
48	LIBCUPS="lib$cupsbase.so.2"
49	AS_IF([test "x$cupsimagebase" != x], [
50	    LIBCUPSIMAGE="lib$cupsimagebase.so.2"
51	])
52	DSO="\$(CC)"
53	DSOXX="\$(CXX)"
54	DSOFLAGS="$DSOFLAGS -Wl,-G -o \`basename \$@\`"
55	LDFLAGS="$LDFLAGS $TLSFLAGS -liconv -lz -lm"
56    ], [*], [
57	AC_MSG_NOTICE([Warning: Shared libraries may not work, trying -shared option.])
58	LIBCUPS="lib$cupsbase.so.2"
59	AS_IF([test "x$cupsimagebase" != x], [
60	    LIBCUPSIMAGE="lib$cupsimagebase.so.2"
61	])
62	DSO="\$(CC)"
63	DSOXX="\$(CXX)"
64	DSOFLAGS="$DSOFLAGS -Wl,-soname,\`basename \$@\` -shared"
65    ])
66], [
67    PICFLAG=0
68    LIBCUPS="lib$cupsbase.a"
69    AS_IF([test "x$cupsimagebase" != x], [
70	LIBCUPSIMAGE="lib$cupsimagebase.a"
71    ])
72    DSO=":"
73    DSOXX=":"
74])
75
76AC_SUBST([DSO])
77AC_SUBST([DSOXX])
78AC_SUBST([DSOFLAGS])
79AC_SUBST([LIBCUPS])
80AC_SUBST([LIBCUPSBASE])
81AC_SUBST([LIBCUPSIMAGE])
82AC_SUBST([LIBCUPSSTATIC])
83
84AS_IF([test x$enable_shared = xno], [
85    LINKCUPS="../cups/lib$cupsbase.a \$(LIBS)"
86    EXTLINKCUPS="-lcups \$LIBS"
87], [test "$host_os_name" = aix], [
88    LINKCUPS="-L../cups -l${cupsbase} \$(LIBS)"
89    EXTLINKCUPS="-lcups \$LIBS"
90], [
91    LINKCUPS="-L../cups -l${cupsbase}"
92    EXTLINKCUPS="-lcups"
93])
94
95AC_SUBST([EXTLINKCUPS])
96AC_SUBST([LINKCUPS])
97
98dnl Update libraries for DSOs...
99EXPORT_LDFLAGS=""
100
101AS_IF([test "$DSO" != ":"], [
102    # Tell the run-time linkers where to find a DSO.  Some platforms
103    # need this option, even when the library is installed in a
104    # standard location...
105    AS_CASE([$host_os_name], [sunos* | solaris*], [
106	# Solaris...
107	AS_IF([test $exec_prefix != /usr], [
108	    DSOFLAGS="-R$libdir $DSOFLAGS"
109	    LDFLAGS="$LDFLAGS -R$libdir"
110	    EXPORT_LDFLAGS="-R$libdir"
111	])
112    ], [*bsd*], [
113	# *BSD...
114	AS_IF([test $exec_prefix != /usr], [
115	    DSOFLAGS="-Wl,-R$libdir $DSOFLAGS"
116	    LDFLAGS="$LDFLAGS -Wl,-R$libdir"
117	    EXPORT_LDFLAGS="-Wl,-R$libdir"
118	])
119    ], [linux* | gnu*], [
120	# Linux, and HURD...
121	AS_IF([test $exec_prefix != /usr], [
122	    DSOFLAGS="-Wl,-rpath,$libdir $DSOFLAGS"
123	    LDFLAGS="$LDFLAGS -Wl,-rpath,$libdir"
124	    EXPORT_LDFLAGS="-Wl,-rpath,$libdir"
125	])
126    ])
127])
128
129AC_SUBST([EXPORT_LDFLAGS])
130