* [PATCH] configure/make basics
@ 2012-02-27 15:17 Jens Rehsack
2012-02-27 17:23 ` Marcel Holtmann
0 siblings, 1 reply; 2+ messages in thread
From: Jens Rehsack @ 2012-02-27 15:17 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 823 bytes --]
Hi,
while hacking on a plugin for mmsd to deal with supl push
messages, I ran into a few "not so nice" solved things
in configure.ac / Makefile.am
1) libtool handling
libtool configuration is meanwhile done using LT_INIT(options)
instead of AC_PROC_LIBTOOL and alike
==> because of libtool stores some of the configuration
in the generated libtool shell script, it's reasonable
to run LT_INIT as late as possible (painfully learned
while writing and porting c++ software for many OS)
2) additional libraries
do no require explicit libraries (like -lresolv), always
let a devop in doubt invoke configure with
LIBS="-lmyspecialwrapper" to wrap between available
libs/functions and requirements
See pkgsrc's nbcompat library for example
Best regards,
Jens
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0002-changing-depreciated-libtool-initialization-to-moder.patch --]
[-- Type: text/x-patch, Size: 1649 bytes --]
>From f2f5c911c0ac71ae0cdb0d7f54bbc0232ca001a1 Mon Sep 17 00:00:00 2001
From: Jens Rehsack <jr_extern@vfnet.de>
Date: Mon, 27 Feb 2012 15:41:34 +0100
Subject: [PATCH 2/3] changing depreciated libtool initialization to modern
one
---
Makefile.am | 4 ++++
configure.ac | 10 ++++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index c3a4486..bebcb90 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,10 @@
AM_MAKEFLAGS = --no-print-directory
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+libtool: $(LIBTOOL_DEPS)
+ $(SHELL) ./config.status libtool
+
gdbus_sources = gdbus/gdbus.h gdbus/mainloop.c gdbus/watch.c \
gdbus/object.c gdbus/polkit.c
diff --git a/configure.ac b/configure.ac
index 34cc526..d82569b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,8 +31,8 @@ AC_PROG_INSTALL
m4_define([_LT_AC_TAGCONFIG], [])
m4_ifdef([AC_LIBTOOL_TAGS], [AC_LIBTOOL_TAGS([])])
-AC_DISABLE_STATIC
-AC_PROG_LIBTOOL
+dnl AC_DISABLE_STATIC
+dnl AC_PROG_LIBTOOL
AC_ARG_ENABLE(optimization, AC_HELP_STRING([--disable-optimization],
[disable code optimization through compiler]), [
@@ -58,6 +58,12 @@ AC_ARG_ENABLE(pie, AC_HELP_STRING([--enable-pie],
fi
])
+dnl LT_INIT should be invoked after all compiler flags checks, because
+dnl of LT_INIT remembers the RPATH stored in test targets which might
+dnl be different for different compiler flags (known issue on AIX)
+LT_INIT([dlopen,disable-static])
+AC_SUBST([LIBTOOL_DEPS])
+
AC_CHECK_HEADERS(resolv.h, dummy=yes,
AC_MSG_ERROR(resolver header files are required))
AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
--
1.7.9.1
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0003-let-configure-find-required-libs.patch --]
[-- Type: text/x-patch, Size: 2413 bytes --]
>From 47383148c76675da9965a4d54e0e1b985da22a6a Mon Sep 17 00:00:00 2001
From: Jens Rehsack <jr_extern@vfnet.de>
Date: Mon, 27 Feb 2012 16:07:18 +0100
Subject: [PATCH 3/3] let configure find required libs
---
Makefile.am | 2 +-
configure.ac | 24 +++++++++++++++++-------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index bebcb90..178def4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -28,7 +28,7 @@ src_mmsd_SOURCES = $(gdbus_sources) $(gweb_sources) $(builtin_sources) \
src/push.h src/push.c src/store.h src/store.c \
src/wsputil.h src/wsputil.c src/mmsutil.h src/mmsutil.c
-src_mmsd_LDADD = $(builtin_libadd) @GLIB_LIBS@ @DBUS_LIBS@ -lresolv -ldl
+src_mmsd_LDADD = $(builtin_libadd) @GLIB_LIBS@ @DBUS_LIBS@
src_mmsd_LDFLAGS = -Wl,--export-dynamic
diff --git a/configure.ac b/configure.ac
index d82569b..883b59c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -64,15 +64,25 @@ dnl be different for different compiler flags (known issue on AIX)
LT_INIT([dlopen,disable-static])
AC_SUBST([LIBTOOL_DEPS])
+dnl check how we can use the resolver. while resolv.h comes with bind,
+dnl it's probably reasonable to use a combined search macro like
+dnl smart-snmpd's ACX_CHECK_LIB_FLAGS
AC_CHECK_HEADERS(resolv.h, dummy=yes,
AC_MSG_ERROR(resolver header files are required))
-AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
- AC_CHECK_LIB(resolv, __ns_initparse, dummy=yes,
- AC_MSG_ERROR(resolver library support is required))
-])
-
-AC_CHECK_LIB(dl, dlopen, dummy=yes,
- AC_MSG_ERROR(dynamic linking loader is required))
+dnl ns_initparse is libresolv internal use only - limited usage intended?
+AC_SEARCH_LIBS(ns_initparse, resolv, ,
+ AC_MSG_ERROR(resolver support is required))
+dnl AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
+dnl AC_CHECK_LIB(resolv, __ns_initparse, dummy=yes,
+dnl AC_MSG_ERROR(resolver library support is required))
+dnl ])
+
+dnl search how we can load dynamic libraries
+dnl TODO use libltdl, which would work on BeOS (Haiku), Darwin (MacOS X) or
+dnl for debugging purposes with libtool's dlpreopen
+AC_SEARCH_LIBS(dlopen, dl, , AC_MSG_ERROR(dynamic linking loader is required))
+dnl AC_CHECK_LIB(dl, dlopen, dummy=yes,
+dnl AC_MSG_ERROR(dynamic linking loader is required))
PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.16, dummy=yes,
AC_MSG_ERROR(GLib >= 2.16 is required))
--
1.7.9.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] configure/make basics
2012-02-27 15:17 [PATCH] configure/make basics Jens Rehsack
@ 2012-02-27 17:23 ` Marcel Holtmann
0 siblings, 0 replies; 2+ messages in thread
From: Marcel Holtmann @ 2012-02-27 17:23 UTC (permalink / raw)
To: ofono
[-- Attachment #1: Type: text/plain, Size: 918 bytes --]
Hi Jens,
> while hacking on a plugin for mmsd to deal with supl push
> messages, I ran into a few "not so nice" solved things
> in configure.ac / Makefile.am
>
> 1) libtool handling
> libtool configuration is meanwhile done using LT_INIT(options)
> instead of AC_PROC_LIBTOOL and alike
> ==> because of libtool stores some of the configuration
> in the generated libtool shell script, it's reasonable
> to run LT_INIT as late as possible (painfully learned
> while writing and porting c++ software for many OS)
> 2) additional libraries
> do no require explicit libraries (like -lresolv), always
> let a devop in doubt invoke configure with
> LIBS="-lmyspecialwrapper" to wrap between available
> libs/functions and requirements
> See pkgsrc's nbcompat library for example
one patch per email please and all inline. Thanks.
Regards
Marcel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-02-27 17:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-27 15:17 [PATCH] configure/make basics Jens Rehsack
2012-02-27 17:23 ` Marcel Holtmann
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.