summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2006-01-19 01:00:17 +0000
committerLennart Poettering <lennart@poettering.net>2006-01-19 01:00:17 +0000
commit56b9485f26d6811e9afe9e45ccecd5bfeb33c1a7 (patch)
treea4987e89659deb80eef55bea315fd4b0987350b4
parenta69693bfd3b9a1a278a35387f77f1e186af580ef (diff)
add autoconf stuff
git-svn-id: file:///home/lennart/svn/public/mod_dnssd/trunk@11 634eccf8-0006-0410-930e-e16565b0b7de
-rw-r--r--Makefile30
-rw-r--r--Makefile.am39
-rwxr-xr-xbootstrap.sh58
-rw-r--r--configure.ac119
-rw-r--r--src/Makefile.in39
-rw-r--r--src/mod_dnssd.c (renamed from mod_dnssd.c)23
6 files changed, 267 insertions, 41 deletions
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 4156e3b..0000000
--- a/Makefile
+++ /dev/null
@@ -1,30 +0,0 @@
-# $Id$
-
-APXS=/usr/bin/apxs2
-APACHECTL=apache2ctl
-LIBS=$(shell pkg-config --libs avahi-client)
-CFLAGS=$(shell pkg-config --cflags avahi-client)
-
-all: mod_dnssd.la
-
-mod_dnssd.la: mod_dnssd.c
- $(APXS) -c $(CFLAGS) $(LIBS) mod_dnssd.c
-
-install: mod_dnssd.la
- $(APXS) -i -a mod_dnssd.la
-
-clean:
- rm -rf *.o *.so *.loT .deps/ *.la *.lo *.slo .libs
-
-reload: install restart
-
-start:
- $(APACHECTL) start
-
-restart:
- $(APACHECTL) restart
-
-stop:
- $(APACHECTL) stop
-
-.PHONY: all install clean reload start restart stop
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..bc9e28c
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,39 @@
+# $Id$
+
+# Copyright 2006 Lennart Poettering
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you
+# may not use this file except in compliance with the License. You
+# may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+EXTRA_DIST=bootstrap.sh LICENSE src/mod_dnssd.c src/Makefile.in
+SUBDIRS=src
+# doc
+
+#MAINTAINERCLEANFILES = README
+#noinst_DATA = README LICENSE
+
+#README:
+# rm -f README
+# $(MAKE) -C doc README
+# cd $(srcdir) && ln -s doc/README README
+
+#homepage: all dist
+# test -d $$HOME/homepage/private
+# mkdir -p $$HOME/homepage/private/projects/mod_mime_xattr
+# cp *.tar.gz $$HOME/homepage/private/projects/mod_mime_xattr
+# cp doc/README.html doc/style.css $$HOME/homepage/private/projects/mod_mime_xattr
+# cp $$HOME/homepage/private/projects/mod_mime_xattr/README.html $$HOME/homepage/private/projects/mod_mime_xattr/index.html
+
+#distcleancheck:
+# @:
+
+#.PHONY: homepage distcleancheck
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000..db38ffb
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+# $Id$
+
+# Copyright 2006 Lennart Poettering
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you
+# may not use this file except in compliance with the License. You
+# may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+VERSION=1.9
+
+run_versioned() {
+ local P
+ local V
+
+ V=$(echo "$2" | sed -e 's,\.,,g')
+
+ if [ -e "`which $1$V`" ] ; then
+ P="$1$V"
+ else
+ if [ -e "`which $1-$2`" ] ; then
+ P="$1-$2"
+ else
+ P="$1"
+ fi
+ fi
+
+ shift 2
+ "$P" "$@"
+}
+
+set -ex
+
+if [ "x$1" = "xam" ] ; then
+ run_versioned automake "$VERSION" -a -c --foreign
+ ./config.status
+else
+ rm -rf autom4te.cache
+ rm -f config.cache
+
+ run_versioned aclocal "$VERSION"
+ run_versioned autoconf 2.59 -Wall
+ run_versioned autoheader 2.59
+ run_versioned automake "$VERSION" -a -c --foreign
+
+ if test "x$NOCONFIGURE" = "x"; then
+ CFLAGS="-g -O0" ./configure --sysconfdir=/etc "$@"
+ make clean
+ fi
+fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..a4651ff
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,119 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+# $Id$
+
+# Copyright 2006 Lennart Poettering
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you
+# may not use this file except in compliance with the License. You
+# may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# permissions and limitations under the License.
+
+AC_PREREQ(2.57)
+AC_INIT([mod_dnssd],[0.1],[mzzbqqaffq (at) 0pointer (dot) net])
+AC_CONFIG_SRCDIR([src/mod_dnssd.c])
+AC_CONFIG_HEADERS([config.h])
+AM_INIT_AUTOMAKE([foreign 1.9 -Wall])
+
+AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/mod_dnssd/])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_MAKE_SET
+
+test_gcc_flag() {
+ AC_LANG_CONFTEST([int main() {}])
+ $CC -c conftest.c $CFLAGS $@ > /dev/null 2> /dev/null
+ ret=$?
+ rm -f conftest.o
+ return $ret
+}
+
+# If using GCC specify some additional parameters
+if test "x$GCC" = "xyes" ; then
+
+ DESIRED_FLAGS="-Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Winline"
+
+ if test "x$HAVE_NETLINK" = "xyes" ; then
+ # Test whether rtnetlink.h can be included when compiled with -std=c99
+ # some distributions (e.g. archlinux) have broken headers that dont
+ # define __u64 with -std=c99
+ AC_MSG_CHECKING([checking whether rtnetlink.h can be included with -std=c99])
+ OLDCFLAGS="$CFLAGS"
+ CFLAGS="-std=c99"
+ AC_TRY_COMPILE([#include <linux/rtnetlink.h>], [],
+ use_stdc99=yes, use_stdc99=no)
+
+ if test x"$use_stdc99" = xyes; then
+ DESIRED_FLAGS="-std=c99 $DESIRED_FLAGS"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+
+ CFLAGS="$OLDCFLAGS"
+ else
+ DESIRED_FLAGS="-std=c99 $DESIRED_FLAGS"
+ fi
+
+ for flag in $DESIRED_FLAGS ; do
+ AC_MSG_CHECKING([whether $CC accepts $flag])
+ if test_gcc_flag $flag ; then
+ CFLAGS="$CFLAGS $flag"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ done
+fi
+
+AC_ARG_WITH(apxs,
+ AS_HELP_STRING(--with-apxs=PATH,/path/to/apxs),
+ [ AC_PATH_PROGS(APXS, [apxs2 apxs], "notfound", "$withval:$PATH") ],
+ [ AC_PATH_PROGS(APXS, [apxs2 apxs], "notfound", "/usr/local/apache/bin:/usr/local/bin:/usr/sbin:$PATH")])
+
+if test "x$APXS" = "xnotfound" ; then
+ AC_MSG_ERROR([*** Sorry, could not find apxs ***])
+fi
+
+AC_ARG_WITH(apachectl,
+ AS_HELP_STRING(--with-apachectl=PATH,/path/to/apachectl),
+ [ AC_PATH_PROGS(APACHECTL, [apache2ctl apachectl], "notfound", "$withval:$PATH") ],
+ [ AC_PATH_PROGS(APACHECTL, [apache2ctl apachectl], "notfound", "/usr/local/apache/bin:/usr/local/bin:/usr/sbin:$PATH")])
+
+PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6 ])
+AC_SUBST(AVAHI_CFLAGS)
+AC_SUBST(AVAHI_LIBS)
+
+# LYNX documentation generation
+AC_ARG_ENABLE(lynx,
+ AS_HELP_STRING(--disable-lynx,Turn off lynx usage for documentation generation),
+[case "${enableval}" in
+ yes) lynx=yes ;;
+ no) lynx=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-lynx) ;;
+esac],[lynx=yes])
+
+if test x$lynx = xyes ; then
+ AC_CHECK_PROG(have_lynx, lynx, yes, no)
+
+ if test x$have_lynx = xno ; then
+ AC_MSG_ERROR([*** Sorry, you have to install lynx or use --disable-lynx ***])
+ fi
+fi
+
+AM_CONDITIONAL([USE_LYNX], [test "x$lynx" = xyes])
+
+AC_CONFIG_FILES([src/Makefile Makefile])
+dnl AC_CONFIG_FILES([src/Makefile Makefile doc/Makefile doc/README.html])
+AC_OUTPUT
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 0000000..c16ff43
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,39 @@
+# $Id$
+
+APXS=@APXS@
+APACHECTL=@APACHECTL@
+LIBS=-Wl,"@LIBS@" @AVAHI_LIBS@
+CFLAGS=-Wc,"@CFLAGS@" @AVAHI_CFLAGS@
+
+all: mod_dnssd.la
+
+mod_dnssd.la: mod_dnssd.c
+ $(APXS) -c $(CFLAGS) $(LIBS) mod_dnssd.c
+
+install: mod_dnssd.la
+ $(APXS) -i -a mod_dnssd.la
+
+clean:
+ rm -rf *.o *.so *.loT .deps/ *.la *.lo *.slo .libs/
+
+reload: install restart
+
+start:
+ $(APACHECTL) start
+
+restart:
+ $(APACHECTL) restart
+
+stop:
+ $(APACHECTL) stop
+
+mostlyclean: clean
+distclean: clean
+maintainer-clean: clean
+ rm -f Makefile
+
+Makefile: Makefile.in
+ (cd .. && ../configure.status )
+
+
+.PHONY: all install clean reload start restart stop mostlyclean distclean maintainer-clean
diff --git a/mod_dnssd.c b/src/mod_dnssd.c
index 37992b6..96206b9 100644
--- a/mod_dnssd.c
+++ b/src/mod_dnssd.c
@@ -32,6 +32,7 @@
#include <avahi-common/domain.h>
#include <avahi-common/error.h>
#include <avahi-common/alternative.h>
+#include <avahi-common/gccmacro.h>
#include <avahi-client/publish.h>
#define MOD_DNSSD_USERDATA_KEY "mod-dnssd"
@@ -269,7 +270,7 @@ static void assemble_services(struct runtime_data *r) {
static void create_service(struct service_data *j);
-void service_callback(AvahiEntryGroup *g, AvahiEntryGroupState state, void *userdata) {
+static void service_callback(AVAHI_GCC_UNUSED AvahiEntryGroup *g, AvahiEntryGroupState state, void *userdata) {
struct service_data *j = userdata;
switch (state) {
@@ -479,7 +480,7 @@ static void client_callback(AvahiClient *c, AvahiClientState state, void *userda
}
-static void sigterm(int s) {
+static void sigterm(AVAHI_GCC_UNUSED int s) {
const char c = 'x';
write(sigterm_pipe_fds[1], &c, sizeof(c));
}
@@ -609,8 +610,8 @@ static int start_child_process(apr_pool_t *p, server_rec *server, struct global_
static int post_config(
apr_pool_t *pconf,
- apr_pool_t *plog,
- apr_pool_t *ptemp,
+ AVAHI_GCC_UNUSED apr_pool_t *plog,
+ AVAHI_GCC_UNUSED apr_pool_t *ptemp,
server_rec *s) {
void *flag;
@@ -630,11 +631,11 @@ static int post_config(
return OK;
}
-static void register_hooks(apr_pool_t *p){
+static void register_hooks(AVAHI_GCC_UNUSED apr_pool_t *p){
ap_hook_post_config(post_config, NULL, NULL, APR_HOOK_LAST);
}
-static void *create_server_config(apr_pool_t *p, server_rec *s) {
+static void *create_server_config(apr_pool_t *p, AVAHI_GCC_UNUSED server_rec *s) {
struct global_config_data *d;
d = apr_palloc(p, sizeof(struct global_config_data));
@@ -649,7 +650,7 @@ static void *create_server_config(apr_pool_t *p, server_rec *s) {
static const char *cmd_dnssd_enable(
cmd_parms *cmd,
- void *mconfig,
+ AVAHI_GCC_UNUSED void *mconfig,
int enable) {
struct global_config_data *d = GET_CONFIG_DATA(cmd->server);
@@ -664,7 +665,7 @@ static const char *cmd_dnssd_enable(
static const char *cmd_dnssd_enable_user_dir(
cmd_parms *cmd,
- void *mconfig,
+ AVAHI_GCC_UNUSED void *mconfig,
int enable) {
struct global_config_data *d = GET_CONFIG_DATA(cmd->server);
@@ -679,7 +680,7 @@ static const char *cmd_dnssd_enable_user_dir(
static const char *cmd_dnssd_enable_vhost(
cmd_parms *cmd,
- void *mconfig,
+ AVAHI_GCC_UNUSED void *mconfig,
int enable) {
struct global_config_data *d = GET_CONFIG_DATA(cmd->server);
@@ -694,7 +695,7 @@ static const char *cmd_dnssd_enable_vhost(
static const char *cmd_dnssd_service_name(
cmd_parms *cmd,
- void *mconfig,
+ AVAHI_GCC_UNUSED void *mconfig,
const char *value) {
const char *err;
@@ -710,7 +711,7 @@ static const char *cmd_dnssd_service_name(
static const char *cmd_dnssd_service_type(
cmd_parms *cmd,
- void *mconfig,
+ AVAHI_GCC_UNUSED void *mconfig,
const char *value) {
const char *err;