Skip to content

Commit 1ef648c

Browse files
committed
I find that an out-of-the-box installation of OSSP uuid 1.6.0 installs
itself as libuuid, not libossp-uuid which was the only case expected by our build support. Install a configure test to determine which name to use (and to check that the library is present at all).
1 parent 2ce1a60 commit 1ef648c

File tree

4 files changed

+163
-5
lines changed

4 files changed

+163
-5
lines changed

configure

Lines changed: 148 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ ac_includes_default="\
314314
# include <unistd.h>
315315
#endif"
316316

317-
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug enable_profiling DTRACE DTRACEFLAGS enable_dtrace CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_gssapi with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_ossp_uuid XML2_CONFIG with_libxml with_libxslt with_system_tzdata with_zlib EGREP ELF_SYS LDFLAGS_SL LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB TAR LN_S AWK YACC YFLAGS FLEX FLEXFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS LDAP_LIBS_FE LDAP_LIBS_BE HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
317+
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS configure_args build build_cpu build_vendor build_os host host_cpu host_vendor host_os PORTNAME docdir enable_nls WANTED_LANGUAGES default_port enable_shared enable_rpath enable_debug enable_profiling DTRACE DTRACEFLAGS enable_dtrace CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP GCC TAS autodepend INCLUDES enable_thread_safety with_tcl with_perl with_python with_gssapi with_krb5 krb_srvtab with_pam with_ldap with_bonjour with_openssl with_ossp_uuid XML2_CONFIG with_libxml with_libxslt with_system_tzdata with_zlib EGREP ELF_SYS LDFLAGS_SL LD with_gnu_ld ld_R_works RANLIB ac_ct_RANLIB STRIP ac_ct_STRIP STRIP_STATIC_LIB STRIP_SHARED_LIB TAR LN_S AWK YACC YFLAGS FLEX FLEXFLAGS PERL perl_archlibexp perl_privlibexp perl_useshrplib perl_embed_ldflags PYTHON python_version python_configdir python_includespec python_libdir python_libspec python_additional_libs OSSP_UUID_LIBS HAVE_IPV6 LIBOBJS acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS LDAP_LIBS_FE LDAP_LIBS_BE HAVE_POSIX_SIGNALS MSGFMT MSGMERGE XGETTEXT localedir TCLSH TCL_CONFIG_SH TCL_INCLUDE_SPEC TCL_LIB_FILE TCL_LIBS TCL_LIB_SPEC TCL_SHARED_BUILD TCL_SHLIB_LD_LIBS NSGMLS JADE have_docbook DOCBOOKSTYLE COLLATEINDEX SGMLSPL vpath_build LTLIBOBJS'
318318
ac_subst_files=''
319319

320320
# Initialize some variables set by options.
@@ -7948,6 +7948,152 @@ fi
79487948

79497949
fi
79507950

7951+
# for contrib/uuid-ossp
7952+
if test "$with_ossp_uuid" = yes ; then
7953+
echo "$as_me:$LINENO: checking for uuid_export in -lossp-uuid" >&5
7954+
echo $ECHO_N "checking for uuid_export in -lossp-uuid... $ECHO_C" >&6
7955+
if test "${ac_cv_lib_ossp_uuid_uuid_export+set}" = set; then
7956+
echo $ECHO_N "(cached) $ECHO_C" >&6
7957+
else
7958+
ac_check_lib_save_LIBS=$LIBS
7959+
LIBS="-lossp-uuid $LIBS"
7960+
cat >conftest.$ac_ext <<_ACEOF
7961+
/* confdefs.h. */
7962+
_ACEOF
7963+
cat confdefs.h >>conftest.$ac_ext
7964+
cat >>conftest.$ac_ext <<_ACEOF
7965+
/* end confdefs.h. */
7966+
7967+
/* Override any gcc2 internal prototype to avoid an error. */
7968+
#ifdef __cplusplus
7969+
extern "C"
7970+
#endif
7971+
/* We use char because int might match the return type of a gcc2
7972+
builtin and then its argument prototype would still apply. */
7973+
char uuid_export ();
7974+
int
7975+
main ()
7976+
{
7977+
uuid_export ();
7978+
;
7979+
return 0;
7980+
}
7981+
_ACEOF
7982+
rm -f conftest.$ac_objext conftest$ac_exeext
7983+
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
7984+
(eval $ac_link) 2>conftest.er1
7985+
ac_status=$?
7986+
grep -v '^ *+' conftest.er1 >conftest.err
7987+
rm -f conftest.er1
7988+
cat conftest.err >&5
7989+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
7990+
(exit $ac_status); } &&
7991+
{ ac_try='test -z "$ac_c_werror_flag"
7992+
|| test ! -s conftest.err'
7993+
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
7994+
(eval $ac_try) 2>&5
7995+
ac_status=$?
7996+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
7997+
(exit $ac_status); }; } &&
7998+
{ ac_try='test -s conftest$ac_exeext'
7999+
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8000+
(eval $ac_try) 2>&5
8001+
ac_status=$?
8002+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
8003+
(exit $ac_status); }; }; then
8004+
ac_cv_lib_ossp_uuid_uuid_export=yes
8005+
else
8006+
echo "$as_me: failed program was:" >&5
8007+
sed 's/^/| /' conftest.$ac_ext >&5
8008+
8009+
ac_cv_lib_ossp_uuid_uuid_export=no
8010+
fi
8011+
rm -f conftest.err conftest.$ac_objext \
8012+
conftest$ac_exeext conftest.$ac_ext
8013+
LIBS=$ac_check_lib_save_LIBS
8014+
fi
8015+
echo "$as_me:$LINENO: result: $ac_cv_lib_ossp_uuid_uuid_export" >&5
8016+
echo "${ECHO_T}$ac_cv_lib_ossp_uuid_uuid_export" >&6
8017+
if test $ac_cv_lib_ossp_uuid_uuid_export = yes; then
8018+
OSSP_UUID_LIBS="-lossp-uuid"
8019+
else
8020+
echo "$as_me:$LINENO: checking for uuid_export in -luuid" >&5
8021+
echo $ECHO_N "checking for uuid_export in -luuid... $ECHO_C" >&6
8022+
if test "${ac_cv_lib_uuid_uuid_export+set}" = set; then
8023+
echo $ECHO_N "(cached) $ECHO_C" >&6
8024+
else
8025+
ac_check_lib_save_LIBS=$LIBS
8026+
LIBS="-luuid $LIBS"
8027+
cat >conftest.$ac_ext <<_ACEOF
8028+
/* confdefs.h. */
8029+
_ACEOF
8030+
cat confdefs.h >>conftest.$ac_ext
8031+
cat >>conftest.$ac_ext <<_ACEOF
8032+
/* end confdefs.h. */
8033+
8034+
/* Override any gcc2 internal prototype to avoid an error. */
8035+
#ifdef __cplusplus
8036+
extern "C"
8037+
#endif
8038+
/* We use char because int might match the return type of a gcc2
8039+
builtin and then its argument prototype would still apply. */
8040+
char uuid_export ();
8041+
int
8042+
main ()
8043+
{
8044+
uuid_export ();
8045+
;
8046+
return 0;
8047+
}
8048+
_ACEOF
8049+
rm -f conftest.$ac_objext conftest$ac_exeext
8050+
if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
8051+
(eval $ac_link) 2>conftest.er1
8052+
ac_status=$?
8053+
grep -v '^ *+' conftest.er1 >conftest.err
8054+
rm -f conftest.er1
8055+
cat conftest.err >&5
8056+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
8057+
(exit $ac_status); } &&
8058+
{ ac_try='test -z "$ac_c_werror_flag"
8059+
|| test ! -s conftest.err'
8060+
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8061+
(eval $ac_try) 2>&5
8062+
ac_status=$?
8063+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
8064+
(exit $ac_status); }; } &&
8065+
{ ac_try='test -s conftest$ac_exeext'
8066+
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
8067+
(eval $ac_try) 2>&5
8068+
ac_status=$?
8069+
echo "$as_me:$LINENO: \$? = $ac_status" >&5
8070+
(exit $ac_status); }; }; then
8071+
ac_cv_lib_uuid_uuid_export=yes
8072+
else
8073+
echo "$as_me: failed program was:" >&5
8074+
sed 's/^/| /' conftest.$ac_ext >&5
8075+
8076+
ac_cv_lib_uuid_uuid_export=no
8077+
fi
8078+
rm -f conftest.err conftest.$ac_objext \
8079+
conftest$ac_exeext conftest.$ac_ext
8080+
LIBS=$ac_check_lib_save_LIBS
8081+
fi
8082+
echo "$as_me:$LINENO: result: $ac_cv_lib_uuid_uuid_export" >&5
8083+
echo "${ECHO_T}$ac_cv_lib_uuid_uuid_export" >&6
8084+
if test $ac_cv_lib_uuid_uuid_export = yes; then
8085+
OSSP_UUID_LIBS="-luuid"
8086+
else
8087+
{ { echo "$as_me:$LINENO: error: library 'ossp-uuid' or 'uuid' is required for OSSP-UUID" >&5
8088+
echo "$as_me: error: library 'ossp-uuid' or 'uuid' is required for OSSP-UUID" >&2;}
8089+
{ (exit 1); exit 1; }; }
8090+
fi
8091+
8092+
fi
8093+
8094+
fi
8095+
8096+
79518097

79528098
##
79538099
## Header files
@@ -25818,6 +25964,7 @@ s,@python_includespec@,$python_includespec,;t t
2581825964
s,@python_libdir@,$python_libdir,;t t
2581925965
s,@python_libspec@,$python_libspec,;t t
2582025966
s,@python_additional_libs@,$python_additional_libs,;t t
25967+
s,@OSSP_UUID_LIBS@,$OSSP_UUID_LIBS,;t t
2582125968
s,@HAVE_IPV6@,$HAVE_IPV6,;t t
2582225969
s,@LIBOBJS@,$LIBOBJS,;t t
2582325970
s,@acx_pthread_config@,$acx_pthread_config,;t t

configure.in

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
dnl Process this file with autoconf to produce a configure script.
2-
dnl $PostgreSQL: pgsql/configure.in,v 1.535 2007/11/05 17:43:20 momjian Exp $
2+
dnl $PostgreSQL: pgsql/configure.in,v 1.536 2007/11/13 00:13:19 tgl Exp $
33
dnl
44
dnl Developers, please strive to achieve this order:
55
dnl
@@ -793,6 +793,16 @@ if test "$with_libxslt" = yes ; then
793793
AC_CHECK_LIB(xslt, xsltLibxmlVersion, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])])
794794
fi
795795

796+
# for contrib/uuid-ossp
797+
if test "$with_ossp_uuid" = yes ; then
798+
AC_CHECK_LIB(ossp-uuid, uuid_export,
799+
[OSSP_UUID_LIBS="-lossp-uuid"],
800+
[AC_CHECK_LIB(uuid, uuid_export,
801+
[OSSP_UUID_LIBS="-luuid"],
802+
[AC_MSG_ERROR([library 'ossp-uuid' or 'uuid' is required for OSSP-UUID])])])
803+
fi
804+
AC_SUBST(OSSP_UUID_LIBS)
805+
796806

797807
##
798808
## Header files

contrib/uuid-ossp/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
# $PostgreSQL: pgsql/contrib/uuid-ossp/Makefile,v 1.3 2007/11/10 23:59:51 momjian Exp $
1+
# $PostgreSQL: pgsql/contrib/uuid-ossp/Makefile,v 1.4 2007/11/13 00:13:19 tgl Exp $
22

33
MODULE_big = uuid-ossp
44
OBJS = uuid-ossp.o
55
DATA_built = uuid-ossp.sql
66
DATA = uninstall_uuid-ossp.sql
77

8-
SHLIB_LINK += -lossp-uuid
8+
SHLIB_LINK += $(OSSP_UUID_LIBS)
99

1010
ifdef USE_PGXS
1111
PG_CONFIG = pg_config

src/Makefile.global.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*-makefile-*-
2-
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.239 2007/09/28 22:25:49 tgl Exp $
2+
# $PostgreSQL: pgsql/src/Makefile.global.in,v 1.240 2007/11/13 00:13:19 tgl Exp $
33

44
#------------------------------------------------------------------------------
55
# All PostgreSQL makefiles include this file and use the variables it sets,
@@ -228,6 +228,7 @@ DTRACEFLAGS = @DTRACEFLAGS@
228228
LIBS = @LIBS@
229229
LDAP_LIBS_FE = @LDAP_LIBS_FE@
230230
LDAP_LIBS_BE = @LDAP_LIBS_BE@
231+
OSSP_UUID_LIBS = @OSSP_UUID_LIBS@
231232
LD = @LD@
232233
with_gnu_ld = @with_gnu_ld@
233234
ld_R_works = @ld_R_works@

0 commit comments

Comments
 (0)