From 8870e48b9df1a15280244be32a81d1eb7e5186e9 Mon Sep 17 00:00:00 2001 From: yanmorin <yanmorin> Date: Tue, 6 Sep 2005 17:57:36 +0000 Subject: [PATCH] Zeroconf integration --- src/zeroconf/DNSQueryThread.cpp | 69 +++ src/zeroconf/DNSQueryThread.h | 40 ++ src/zeroconf/DNSService.cpp | 234 +++++++++ src/zeroconf/DNSService.h | 86 ++++ src/zeroconf/DNSServiceTXTRecord.cpp | 76 +++ src/zeroconf/DNSServiceTXTRecord.h | 41 ++ src/zeroconf/INSTALL | 24 + src/zeroconf/Makefile | 741 +++++++++++++++++++++++++++ src/zeroconf/Makefile.am | 12 + src/zeroconf/Makefile.in | 741 +++++++++++++++++++++++++++ src/zeroconf/configure.in.bot | 10 + src/zeroconf/configure.in.in | 38 ++ 12 files changed, 2112 insertions(+) create mode 100644 src/zeroconf/DNSQueryThread.cpp create mode 100644 src/zeroconf/DNSQueryThread.h create mode 100644 src/zeroconf/DNSService.cpp create mode 100644 src/zeroconf/DNSService.h create mode 100644 src/zeroconf/DNSServiceTXTRecord.cpp create mode 100644 src/zeroconf/DNSServiceTXTRecord.h create mode 100644 src/zeroconf/INSTALL create mode 100644 src/zeroconf/Makefile create mode 100644 src/zeroconf/Makefile.am create mode 100644 src/zeroconf/Makefile.in create mode 100644 src/zeroconf/configure.in.bot create mode 100644 src/zeroconf/configure.in.in diff --git a/src/zeroconf/DNSQueryThread.cpp b/src/zeroconf/DNSQueryThread.cpp new file mode 100644 index 0000000000..4fc0975d14 --- /dev/null +++ b/src/zeroconf/DNSQueryThread.cpp @@ -0,0 +1,69 @@ +/** + * Copyright (C) 2005 Savoir-Faire Linux inc. + * Author: Yan Morin <yan.morin@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "DNSQueryThread.h" +#include "DNSService.h" + +/** + * Construct a DNSQueryThread and initialize the cancel to deferred + */ +DNSQueryThread::DNSQueryThread(DNSService *parent, const char *regtype) : ost::Thread() +{ + _parent = parent; + _regtype = regtype; + _serviceRef = NULL; + setCancel(cancelDeferred); +} + +/** + * Destruct a DNSQueryThread + */ +DNSQueryThread::~DNSQueryThread() +{ + if (_serviceRef) { + DNSServiceRefDeallocate(_serviceRef); + } + terminate(); + _parent = NULL; + _regtype = NULL; + _serviceRef = NULL; +} + +/** + * Running loop + */ +void +DNSQueryThread::run() { + DNSServiceErrorType theErr=0; // NULL; + DNSServiceFlags resultFlags=0; + + theErr = DNSServiceBrowse(&_serviceRef, + resultFlags, + 0, // all interfaces + _regtype, + NULL, + DNSServiceAddServicesCallback, + (void*)_parent); + + if (theErr == kDNSServiceErr_NoError) { + while(true) { + DNSServiceProcessResult(_serviceRef); // blockage if none... + } + } +} diff --git a/src/zeroconf/DNSQueryThread.h b/src/zeroconf/DNSQueryThread.h new file mode 100644 index 0000000000..3d67d653e3 --- /dev/null +++ b/src/zeroconf/DNSQueryThread.h @@ -0,0 +1,40 @@ +/** + * Copyright (C) 2005 Savoir-Faire Linux inc. + * Author: Yan Morin <yan.morin@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __DNSSD_DNSQUERYTHREAD_H__ +#define __DNSSD_DNSQUERYTHREAD_H__ + +#include <cc++/thread.h> +#include <dns_sd.h> + +class DNSService; +class DNSQueryThread : public ost::Thread +{ +public: + DNSQueryThread(DNSService *parent, const char *regtype); + ~DNSQueryThread(); + virtual void run(); // looking for services + +private: + DNSService *_parent; // parent service + DNSServiceRef _serviceRef; // service reference + const char *_regtype; // service type and socket type (_sip._udp by example) +}; + + +#endif // __DNSSD_DNSQUERYTHREAD_H__ diff --git a/src/zeroconf/DNSService.cpp b/src/zeroconf/DNSService.cpp new file mode 100644 index 0000000000..ffa3fbd5f2 --- /dev/null +++ b/src/zeroconf/DNSService.cpp @@ -0,0 +1,234 @@ +/** + * Copyright (C) 2005 Savoir-Faire Linux inc. + * Author: Yan Morin <yan.morin@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + /** + * Inspired by http://braden.machacking.net/zerobrowse.cpp and + * http://developer.kde.org/documentation/library/3.4-api/dnssd/html/remoteservice_8cpp-source.html + */ +#include "DNSService.h" +#include "DNSServiceTXTRecord.h" +#include "DNSQueryThread.h" +#include "../global.h" // for _debug() + +#include <cc++/thread.h> + +/** + * Simple Empty Constructor + */ +DNSService::DNSService() +{ + _regtypeList.push_back("_sip._udp"); +#ifdef USE_IAX2 + _regtypeList.push_back("_iax._udp"); +#endif + + // for the thread, the ifdef add a dynamic _regtypeList problem + int iThread=0; // _queryThread index for the loop + for (std::list<std::string>::iterator iterThread=_regtypeList.begin(); + iterThread!=_regtypeList.end(); + iterThread++) { + _queryThread.push_back(new DNSQueryThread(this, (*iterThread).c_str())); + iThread++; + } +} + +/** + * Simple Empty Destructor + */ +DNSService::~DNSService() +{ + int cntThread = _queryThread.size(); + for (int iThread=0;iThread<cntThread;iThread++) { + delete _queryThread[iThread]; + _queryThread[iThread] = NULL; + } +} + +/** + * Look for zeroconf services and add them to _services + */ +void +DNSService::scanServices() +{ + for (std::vector<DNSQueryThread *>::iterator iter = _queryThread.begin();iter!=_queryThread.end();iter++) { + (*iter)->start(); + } +} + +/** + * Add one service to the list of actual services + * @param service Service to add to the list + */ +void DNSService::addService(const std::string &service) +{ + // does push_back do a copy and I can use a reference & instead as service argument + DNSServiceTXTRecord txtRecord; + _mutex.enterMutex(); + _services[service] = txtRecord; + // we leave before the queryService since, each + // thread will modify a DNSServiceTXTRecord of a difference services + _mutex.leaveMutex(); + queryService(service); +} + +/** + * Remove one service to the list of actual services + * @param service Service to remove to the list + */ +void DNSService::removeService(const std::string &service) +{ + _mutex.enterMutex(); + _services.erase(service); + _mutex.leaveMutex(); +} + +/** + * Display the list of available services + * run() method should be call before + */ +void +DNSService::listServices() +{ + _debug("Number of services detected: %d\n", _services.size()); + std::map<std::string, DNSServiceTXTRecord>::iterator iterTR; + for (iterTR = _services.begin(); iterTR != _services.end(); iterTR++) { + _debug("name: %s\n", iterTR->first.c_str()); + _debug("size: %d\n", iterTR->second.size()); + iterTR->second.listValue(); + } +} + +/** + * Query a service and wait for the anwser + * the queryCallback will show the result + * @param service The service full adress + */ +void +DNSService::queryService(const std::string &service) +{ + DNSServiceErrorType theErr=0; + DNSServiceRef myServRef=0; + DNSServiceFlags resultFlags=0; + + theErr = DNSServiceQueryRecord(&myServRef, resultFlags, 0, service.c_str(), kDNSServiceType_TXT, kDNSServiceClass_IN, DNSServiceQueryRecordCallback, (void*)this); + if (theErr == kDNSServiceErr_NoError) { + DNSServiceProcessResult(myServRef); // blockage... + DNSServiceRefDeallocate(myServRef); + } +} + +/** + * Overloadding queryService + * @param service service name + * @param regtype registred type of service + * @param domain domain (habitually local.) + */ +void +DNSService::queryService(const char *service, const char *regtype, const char *domain) +{ + char serviceName[kDNSServiceMaxDomainName+1]; + DNSServiceConstructFullName(serviceName, service, regtype, domain); + queryService(std::string(serviceName)); +} + +/** + * Add a txt record with the queryService callback answser data + * @param rdlen the length of the txt record data + * @param rdata txt record data + */ +void +DNSService::addTXTRecord(const char *fullname, uint16_t rdlen, const void *rdata) +{ + char key[256]; + + const char *value; + uint8_t valueLen; // 0 to 256 by type restriction + char valueTab[256]; + + + uint16_t keyCount = TXTRecordGetCount(rdlen, rdata); + for (int iKey=0; iKey<keyCount; iKey++) { + TXTRecordGetItemAtIndex (rdlen, rdata, iKey, 256, key, &valueLen, (const void **)(&value)); + if (value) { + bcopy(value, valueTab, valueLen); + valueTab[valueLen]='\0'; + _services[std::string(fullname)].addKeyValue(std::string(key), std::string(valueTab)); + } else { + _services[std::string(fullname)].addKeyValue(std::string(key), std::string("")); + } + } + + // TODO: remove this call, when we do not debug.. + // addTXTRecord is a good function to know changes... + listServices(); +} + + +void +DNSServiceAddServicesCallback(DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *serviceName, + const char *replyType, + const char *replyDomain, + void *context) +{ + if (errorCode==kDNSServiceErr_NoError) { + + if (flags) { + DNSService *service = (DNSService*)context; + std::string tempService; + tempService = std::string(serviceName) + "." + std::string(replyType) + std::string(replyDomain); + if (flags&kDNSServiceFlagsAdd) { + service->addService(tempService); + } else { + service->removeService(tempService); + } + } + } else { + // TODO: error handling + } +} + +void +DNSServiceQueryRecordCallback( + DNSServiceRef DNSServiceRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata, + uint32_t ttl, + void *context) +{ + if (errorCode==kDNSServiceErr_NoError) { + if (flags) { + if (flags&kDNSServiceFlagsAdd) { + ((DNSService *)context)->addTXTRecord(fullname, rdlen, rdata); + } + } + if (!(flags&kDNSServiceFlagsMoreComing)) { + // TODO: stoping, if no blocking process here + } + } +} diff --git a/src/zeroconf/DNSService.h b/src/zeroconf/DNSService.h new file mode 100644 index 0000000000..0b3eea18ca --- /dev/null +++ b/src/zeroconf/DNSService.h @@ -0,0 +1,86 @@ +/** + * Copyright (C) 2005 Savoir-Faire Linux inc. + * Author: Yan Morin <yan.morin@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __DNSSD_DNSSERVICE_H__ +#define __DNSSD_DNSSERVICE_H__ + +#include <string> +#include <map> +#include <list> +#include <vector> + +#include <dns_sd.h> +#include <cc++/thread.h> + +class DNSQueryThread; +class DNSServiceTXTRecord; + +class DNSService +{ +public: + DNSService(); + ~DNSService(); + + void scanServices(); // looking for services + void addService(const std::string &service); // adding every services + void removeService(const std::string &service); // remove a service + void listServices(); // listing services (call addService before) + void stop(); // after the browsing loop stop + + void queryService(const std::string &service); // query the TXT record of a service + void queryService(const char *service, const char *regtype, const char *domain); + void addTXTRecord(const char *fullname, uint16_t rdlen, const void *rdata); + +private: + std::map<std::string, DNSServiceTXTRecord> _services; //map + + std::vector<DNSQueryThread *> _queryThread; + /** + * Mutex to protect access to _services on add/erase + */ + ost::Mutex _mutex; + /** + * RegType List contains zeroconf services to register, like sip, iax2, ... + * It will be use to initialize the DNSQueryThread + */ + std::list<std::string> _regtypeList; +}; + + +void DNSServiceAddServicesCallback(DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *serviceName, + const char *replyType, + const char *replyDomain, + void *context); + +void DNSServiceQueryRecordCallback(DNSServiceRef DNSServiceRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char *fullname, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void *rdata, + uint32_t ttl, + void *context); + +#endif // __DNSSD_DNSSERVICE_H__ diff --git a/src/zeroconf/DNSServiceTXTRecord.cpp b/src/zeroconf/DNSServiceTXTRecord.cpp new file mode 100644 index 0000000000..45c79c6012 --- /dev/null +++ b/src/zeroconf/DNSServiceTXTRecord.cpp @@ -0,0 +1,76 @@ +/** + * Copyright (C) 2005 Savoir-Faire Linux inc. + * Author: Yan Morin <yan.morin@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#include "DNSServiceTXTRecord.h" +#include "../global.h" // for _debug + + +/** + * Simple constructor + */ +DNSServiceTXTRecord::DNSServiceTXTRecord() +{ +} + +/** + * Simple destructor + */ +DNSServiceTXTRecord::~DNSServiceTXTRecord() +{ +} + +/** + * add a pair of key/value inside the associative std::map + * @param key unique key inside the std::map + * @param value value associated to the key + */ +void +DNSServiceTXTRecord::addKeyValue(const std::string &key, const std::string &value) +{ + _map[key] = value; +} +/** + * get a value from a key + * @param key unique key inside the std::map + * @return the value or empty + */ +const std::string & +DNSServiceTXTRecord::getValue(const std::string &key) +{ + return _map[key]; // return std::string("") if it's not there +} + +/** + * get a value from a key + * @param key unique key inside the std::map + * @return the value or empty + */ +const std::string & +DNSServiceTXTRecord::getValue(const char* key) +{ + return getValue(std::string(key)); +} + +void +DNSServiceTXTRecord::listValue() +{ + std::map<std::string, std::string>::iterator iter; + for (iter=_map.begin(); iter != _map.end(); iter++) { + _debug ( "\t%s:%s\n", iter->first.c_str(), iter->second.c_str()); + } +} diff --git a/src/zeroconf/DNSServiceTXTRecord.h b/src/zeroconf/DNSServiceTXTRecord.h new file mode 100644 index 0000000000..f38848bd6c --- /dev/null +++ b/src/zeroconf/DNSServiceTXTRecord.h @@ -0,0 +1,41 @@ +/** + * Copyright (C) 2005 Savoir-Faire Linux inc. + * Author: Yan Morin <yan.morin@savoirfairelinux.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ +#ifndef __DNSSD_DNSSERVICETXTRECORD_H__ +#define __DNSSD_DNSSERVICETXTRECORD_H__ + +#include <string> +#include <map> + +class DNSServiceTXTRecord +{ +public: + DNSServiceTXTRecord(); + ~DNSServiceTXTRecord(); + void addKeyValue(const std::string &key, const std::string &value); + const std::string &getValue(const std::string &key); + const std::string &getValue(const char *key); + inline void clear(void) { _map.clear(); }; + inline int size(void) { return _map.size(); }; + void listValue(); + +private: + std::map<std::string, std::string> _map; +}; + +#endif // __DNSSD_DNSSERVICETXTRECORD_H__ diff --git a/src/zeroconf/INSTALL b/src/zeroconf/INSTALL new file mode 100644 index 0000000000..85a836c46b --- /dev/null +++ b/src/zeroconf/INSTALL @@ -0,0 +1,24 @@ +Installing Apple mDNSResponder: + +WARNING: this is NOT Howl's mDNSResponder and it does not come in Debian package called mdnsresponder. +You can see the difference by checking daemon's name: Apple's one (the correct one) is named 'mdnsd' +Howl's one is named 'mDNSResponder'. + +1) download mDNSResponder + - from Apple site (http://www.opensource.apple.com/darwinsource/tarballs/apsl/mDNSResponder-98.tar.gz) + - or you can get tarball from: http://helios.et.put.poznan.pl/~jstachow/pub/mDNSResponder-98.tar.gz + (for those who don't like registration) + - you can also use the last mDNSResponder + +2) compile and install + Build system for mDNSResponder is quite weird so here are instructions: + + cd mDNSPosix + make os=linux (make without parameters gives list of supported systems) + now as root: + make os=linux install + + make sure that mdnsd.sh init script is properly installed and will be executed at boot time + + +Inspired by kdelibs/dnssd/INSTALL diff --git a/src/zeroconf/Makefile b/src/zeroconf/Makefile new file mode 100644 index 0000000000..a2c05d80f9 --- /dev/null +++ b/src/zeroconf/Makefile @@ -0,0 +1,741 @@ +# Makefile.in generated by automake 1.7.9 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision$ +# src/zeroconf/Makefile. Generated from Makefile.in by configure. + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +srcdir = . +top_srcdir = ../.. + +pkgdatadir = $(datadir)/sflphone +pkglibdir = $(libdir)/sflphone +pkgincludedir = $(includedir)/sflphone +top_builddir = ../.. + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = /usr/bin/install -c -p +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = i686-pc-linux-gnu +host_triplet = i686-pc-linux-gnu +target_triplet = i686-pc-linux-gnu +ACLOCAL = ${SHELL} /home/ymorin/sflphone/sflphone_avant/missing --run aclocal-1.7 +AMDEP_FALSE = # +AMDEP_TRUE = +AMTAR = ${SHELL} /home/ymorin/sflphone/sflphone_avant/missing --run tar +AR = ar +AUTOCONF = ${SHELL} /home/ymorin/sflphone/sflphone_avant/missing --run autoconf +AUTOHEADER = ${SHELL} /home/ymorin/sflphone/sflphone_avant/missing --run autoheader +AUTOMAKE = ${SHELL} /home/ymorin/sflphone/sflphone_avant/missing --run automake-1.7 +AWK = gawk +CC = gcc +CCDEPMODE = depmode=gcc3 +CFLAGS = -std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -O2 -g -O2 -Wformat-security -Wmissing-format-attribute +CPP = gcc -E +CPPFLAGS = -DQT_THREAD_SUPPORT -I/opt/include +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wno-non-virtual-dtor -O2 -I/opt/include -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -fexceptions +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEPDIR = .deps +ECHO = echo +ECHO_C = +ECHO_N = -n +ECHO_T = +EGREP = grep -E +ENABLE_PERMISSIVE_FLAG = -fpermissive +EXEEXT = +F77 = g77 +FFLAGS = -g -O2 +FRAMEWORK_COREAUDIO = +HAVE_GCC_VISIBILITY = 0 +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} $(INSTALL_STRIP_FLAG) +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s +KDE_MT_LDFLAGS = +KDE_MT_LIBS = -lpthread +KDE_NO_UNDEFINED = -Wl,--no-undefined -Wl,--allow-shlib-undefined +KDE_USE_CLOSURE_FALSE = +KDE_USE_CLOSURE_TRUE = # +KDE_USE_FINAL_FALSE = +KDE_USE_FINAL_TRUE = # +KDE_USE_NMCHECK_FALSE = +KDE_USE_NMCHECK_TRUE = # +LDFLAGS = -L/opt/lib +LDFLAGS_AS_NEEDED = +LDFLAGS_NEW_DTAGS = +LIBCOMPAT = +LIBCRYPT = -lcrypt +LIBDL = -ldl +LIBJPEG = -ljpeg +LIBOBJS = +LIBPNG = -lpng -lz -lm +LIBPTHREAD = -lpthread +LIBQT = -lqt-mt -lpng -lz -lm -ljpeg -ldl -lXext -lX11 -lSM -lICE +LIBRESOLV = -lresolv +LIBS = -lstdc++ +LIBSM = -lSM -lICE +LIBSOCKET = +LIBTOOL = $(SHELL) $(top_builddir)/libtool --silent +LIBUCB = +LIBUTIL = -lutil +LIBZ = -lz +LIB_DNSSD = -ldns_sd +LIB_POLL = +LIB_QPE = +LIB_QT = -lqt-mt $(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM) -lpthread +LIB_X11 = -lX11 $(LIBSOCKET) +LIB_XEXT = -lXext +LIB_XRENDER = +LN_S = ln -s +LTLIBOBJS = +MAINTENER_CODE_FALSE = +MAINTENER_CODE_TRUE = # +MAKEINFO = ${SHELL} /home/ymorin/sflphone/sflphone_avant/missing --run makeinfo +MOC = /usr/lib/qt-3.3/bin/moc +NOOPT_CFLAGS = -O0 +NOOPT_CXXFLAGS = -O0 +NO_UNDEFINED_FALSE = +NO_UNDEFINED_TRUE = # +OBJEXT = o +PACKAGE = sflphone +PACKAGE_BUGREPORT = +PACKAGE_NAME = +PACKAGE_STRING = +PACKAGE_TARNAME = +PACKAGE_VERSION = +PATH_SEPARATOR = : +PERL = /usr/bin/perl +PKGADD_NAME = SFLPhone - a SIP client +PKGADD_PKG = SFLPhone +PKGADD_VENDOR = http://www.sflphone.org +PKG_CONFIG = /usr/bin/pkg-config +QTE_NORTTI = +QT_INCLUDES = -I/usr/lib/qt-3.3/include +QT_LDFLAGS = -L/usr/lib/qt-3.3/lib +RANLIB = ranlib +RPM_VERSION = 0.4.1pre1 +SET_MAKE = +SFLPHONE_CXXFLAGS = = -D_GNU_SOURCE -I/usr/include/cc++2 -D_GNU_SOURCE -I/usr/include/cc++2 -I/usr/include/libxml2 -D_GNU_SOURCE -I/usr/include/cc++2 -DOSIP_MT -DAUDIO_PORTAUDIO +SFLPHONE_LIBS = -pthread -lccgnu2 -ldl -lrt -pthread -lccext2 -lccgnu2 -ldl -lrt -lxml2 -lpthread -lz -lm -pthread -lccrtp1 -lccgnu2 -ldl -lrt -losipparser2 -losip2 -leXosip2 -lportaudio +SHELL = /bin/sh +STRIP = strip +UIC = /usr/lib/qt-3.3/bin/uic -L $(kde_widgetdir) -nounload +UIC_TR = tr2i18n +USER_INCLUDES = +USER_LDFLAGS = +USE_EXCEPTIONS = -fexceptions +USE_RTTI = +USE_THREADS = +USE_ZEROCONF_FALSE = # +USE_ZEROCONF_TRUE = +VERSION = 0.4.1-pre1 +WOVERLOADED_VIRTUAL = +X_EXTRA_LIBS = +X_INCLUDES = -I/usr/X11R6/include +X_LDFLAGS = -L/usr/X11R6/lib +X_PRE_LIBS = +ac_ct_AR = ar +ac_ct_CC = gcc +ac_ct_CXX = g++ +ac_ct_F77 = g77 +ac_ct_RANLIB = ranlib +ac_ct_STRIP = strip +am__fastdepCC_FALSE = # +am__fastdepCC_TRUE = +am__fastdepCXX_FALSE = # +am__fastdepCXX_TRUE = +am__include = include +am__leading_dot = . +am__quote = +bindir = ${exec_prefix}/bin +build = i686-pc-linux-gnu +build_alias = +build_cpu = i686 +build_os = linux-gnu +build_vendor = pc +datadir = ${prefix}/share +exec_prefix = ${prefix} +host = i686-pc-linux-gnu +host_alias = +host_cpu = i686 +host_os = linux-gnu +host_vendor = pc +include_x11_FALSE = # +include_x11_TRUE = +includedir = ${prefix}/include +infodir = ${prefix}/info +install_sh = /home/ymorin/sflphone/sflphone_avant/install-sh +kde_qtver = 3 +libccext2_CFLAGS = -D_GNU_SOURCE -I/usr/include/cc++2 -I/usr/include/libxml2 +libccext2_LIBS = -pthread -lccext2 -lccgnu2 -ldl -lrt -lxml2 -lpthread -lz -lm +libccgnu2_CFLAGS = -D_GNU_SOURCE -I/usr/include/cc++2 +libccgnu2_LIBS = -pthread -lccgnu2 -ldl -lrt +libccrtp1_CFLAGS = -D_GNU_SOURCE -I/usr/include/cc++2 +libccrtp1_LIBS = -pthread -lccrtp1 -lccgnu2 -ldl -lrt +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +libosip2_CFLAGS = -DOSIP_MT +libosip2_LIBS = -losipparser2 -losip2 +localstatedir = ${prefix}/var +mandir = ${prefix}/man +oldincludedir = /usr/include +portaudio_CFLAGS = -DAUDIO_PORTAUDIO +portaudio_LIB = +prefix = /home/ymorin/opt/sflphone_avant +program_transform_name = s,x,x, +qt_includes = /usr/lib/qt-3.3/include +qt_libraries = /usr/lib/qt-3.3/lib +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +sysconfdir = ${prefix}/etc +target = i686-pc-linux-gnu +target_alias = +target_cpu = i686 +target_os = linux-gnu +target_vendor = pc +unsermake_enable_pch_FALSE = +unsermake_enable_pch_TRUE = # +x_includes = /usr/X11R6/include +x_libraries = /usr/X11R6/lib +SUBDIRS = + +noinst_LTLIBRARIES = libzeroconf.la + +libzeroconf_la_SOURCES = \ + DNSQueryThread.cpp DNSQueryThread.h \ + DNSService.cpp DNSService.h \ + DNSServiceTXTRecord.cpp DNSServiceTXTRecord.h + + +AM_CXXFLAGS = $(libccext2_CFLAGS) +libzeroconf_la_LIBADD = $(LIB_DNSSD) +subdir = src/zeroconf +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) + +libzeroconf_la_LDFLAGS = +libzeroconf_la_DEPENDENCIES = +am_libzeroconf_la_OBJECTS = DNSQueryThread.lo DNSService.lo \ + DNSServiceTXTRecord.lo +#>- libzeroconf_la_OBJECTS = $(am_libzeroconf_la_OBJECTS) +#>+ 5 +libzeroconf_la_final_OBJECTS = libzeroconf_la.all_cpp.lo +libzeroconf_la_nofinal_OBJECTS = DNSQueryThread.lo DNSService.lo \ + DNSServiceTXTRecord.lo +libzeroconf_la_OBJECTS = $(libzeroconf_la_nofinal_OBJECTS) +#libzeroconf_la_OBJECTS = $(libzeroconf_la_final_OBJECTS) + +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +#>- DEP_FILES = ./$(DEPDIR)/DNSQueryThread.Plo \ +#>- ./$(DEPDIR)/DNSService.Plo \ +#>- ./$(DEPDIR)/DNSServiceTXTRecord.Plo +#>+ 6 +#DEP_FILES = $(DEPDIR)/libzeroconf_la.all_cpp.P ./$(DEPDIR)/DNSQueryThread.Plo \ +# ./$(DEPDIR)/DNSService.Plo \ +# ./$(DEPDIR)/DNSServiceTXTRecord.Plo +DEP_FILES = ./$(DEPDIR)/DNSQueryThread.Plo \ + ./$(DEPDIR)/DNSService.Plo \ + ./$(DEPDIR)/DNSServiceTXTRecord.Plo +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ +#>- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ +#>- $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --mode=compile --tag=CXX $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ +#>- $(AM_LDFLAGS) $(LDFLAGS) -o $@ +#>+ 2 +CXXLINK = $(LIBTOOL) --mode=link --tag=CXX $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ + $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DIST_SOURCES = $(libzeroconf_la_SOURCES) + +#>- RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ +#>- ps-recursive install-info-recursive uninstall-info-recursive \ +#>- all-recursive install-data-recursive install-exec-recursive \ +#>- installdirs-recursive install-recursive uninstall-recursive \ +#>- check-recursive installcheck-recursive +#>+ 5 +RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ + ps-recursive install-info-recursive uninstall-info-recursive \ + all-recursive install-data-recursive install-exec-recursive \ + installdirs-recursive install-recursive uninstall-recursive \ + check-recursive installcheck-recursive nmcheck-recursive bcheck-recursive +DIST_COMMON = $(srcdir)/Makefile.in INSTALL Makefile.am +DIST_SUBDIRS = $(SUBDIRS) +SOURCES = $(libzeroconf_la_SOURCES) + +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu src/zeroconf/Makefile +#>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/zeroconf/Makefile + cd $(top_srcdir) && perl admin/am_edit src/zeroconf/Makefile.in +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" = "$$p" && dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libzeroconf.la: $(libzeroconf_la_OBJECTS) $(libzeroconf_la_DEPENDENCIES) + $(CXXLINK) $(libzeroconf_la_LDFLAGS) $(libzeroconf_la_OBJECTS) $(libzeroconf_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +include ./$(DEPDIR)/DNSQueryThread.Plo +include ./$(DEPDIR)/DNSService.Plo +include ./$(DEPDIR)/DNSServiceTXTRecord.Plo + +.cpp.o: + if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ + then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + fi +# source='$<' object='$@' libtool=no \ +# depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \ +# $(CXXDEPMODE) $(depcomp) \ +# $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +.cpp.obj: + if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ + then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ + else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + fi +# source='$<' object='$@' libtool=no \ +# depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' \ +# $(CXXDEPMODE) $(depcomp) \ +# $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` + +.cpp.lo: + if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ + -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ + then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ + else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ + fi +# source='$<' object='$@' libtool=yes \ +# depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' \ +# $(CXXDEPMODE) $(depcomp) \ +# $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ETAGS = etags +ETAGSFLAGS = + +CTAGS = ctags +CTAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if (etags --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + else \ + include_option=--include; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" \ + distdir=../$(distdir)/$$subdir \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LTLIBRARIES) +installdirs: installdirs-recursive +installdirs-am: + +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ + clean-generic clean-libtool clean-noinstLTLIBRARIES \ + clean-recursive ctags ctags-recursive distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-recursive distclean-tags distdir dvi dvi-am \ + dvi-recursive info info-am info-recursive install install-am \ + install-data install-data-am install-data-recursive \ + install-exec install-exec-am install-exec-recursive \ + install-info install-info-am install-info-recursive install-man \ + install-recursive install-strip installcheck installcheck-am \ + installdirs installdirs-am installdirs-recursive \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-recursive mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ + pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ + tags-recursive uninstall uninstall-am uninstall-info-am \ + uninstall-info-recursive uninstall-recursive + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=configure.in.bot configure.in.in Makefile.in + +#>+ 2 +docs-am: + +#>+ 6 +force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/zeroconf/Makefile + cd $(top_srcdir) && perl admin/am_edit src/zeroconf/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libzeroconf_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/DNSQueryThread.cpp $(srcdir)/DNSService.cpp $(srcdir)/DNSServiceTXTRecord.cpp + @echo 'creating libzeroconf_la.all_cpp.cpp ...'; \ + rm -f libzeroconf_la.all_cpp.files libzeroconf_la.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libzeroconf_la.all_cpp.final; \ + for file in DNSQueryThread.cpp DNSService.cpp DNSServiceTXTRecord.cpp ; do \ + echo "#include \"$$file\"" >> libzeroconf_la.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libzeroconf_la.all_cpp.final; \ + done; \ + cat libzeroconf_la.all_cpp.final libzeroconf_la.all_cpp.files > libzeroconf_la.all_cpp.cpp; \ + rm -f libzeroconf_la.all_cpp.final libzeroconf_la.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libzeroconf_la.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_nofinal_OBJECTS)" install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/src/zeroconf/Makefile.am b/src/zeroconf/Makefile.am new file mode 100644 index 0000000000..d2ed5b4e4a --- /dev/null +++ b/src/zeroconf/Makefile.am @@ -0,0 +1,12 @@ +SUBDIRS = + +noinst_LTLIBRARIES = libzeroconf.la + +libzeroconf_la_SOURCES = \ + DNSQueryThread.cpp DNSQueryThread.h \ + DNSService.cpp DNSService.h \ + DNSServiceTXTRecord.cpp DNSServiceTXTRecord.h + +AM_CXXFLAGS = $(libccext2_CFLAGS) +libzeroconf_la_LIBADD = $(LIB_DNSSD) + diff --git a/src/zeroconf/Makefile.in b/src/zeroconf/Makefile.in new file mode 100644 index 0000000000..d516771d1b --- /dev/null +++ b/src/zeroconf/Makefile.in @@ -0,0 +1,741 @@ +# Makefile.in generated by automake 1.7.9 from Makefile.am. +# KDE tags expanded automatically by am_edit - $Revision$ +# @configure_input@ + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +# Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = ../.. + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +target_triplet = @target@ +ACLOCAL = @ACLOCAL@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@ +HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@ +KDE_MT_LIBS = @KDE_MT_LIBS@ +KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@ +KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@ +KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@ +KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@ +KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@ +KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@ +KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@ +LDFLAGS = @LDFLAGS@ +LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@ +LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@ +LIBCOMPAT = @LIBCOMPAT@ +LIBCRYPT = @LIBCRYPT@ +LIBDL = @LIBDL@ +LIBJPEG = @LIBJPEG@ +LIBOBJS = @LIBOBJS@ +LIBPNG = @LIBPNG@ +LIBPTHREAD = @LIBPTHREAD@ +LIBQT = @LIBQT@ +LIBRESOLV = @LIBRESOLV@ +LIBS = @LIBS@ +LIBSM = @LIBSM@ +LIBSOCKET = @LIBSOCKET@ +LIBTOOL = @LIBTOOL@ +LIBUCB = @LIBUCB@ +LIBUTIL = @LIBUTIL@ +LIBZ = @LIBZ@ +LIB_DNSSD = @LIB_DNSSD@ +LIB_POLL = @LIB_POLL@ +LIB_QPE = @LIB_QPE@ +LIB_QT = @LIB_QT@ +LIB_X11 = @LIB_X11@ +LIB_XEXT = @LIB_XEXT@ +LIB_XRENDER = @LIB_XRENDER@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINTENER_CODE_FALSE = @MAINTENER_CODE_FALSE@ +MAINTENER_CODE_TRUE = @MAINTENER_CODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MOC = @MOC@ +NOOPT_CFLAGS = @NOOPT_CFLAGS@ +NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@ +NO_UNDEFINED_FALSE = @NO_UNDEFINED_FALSE@ +NO_UNDEFINED_TRUE = @NO_UNDEFINED_TRUE@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PERL = @PERL@ +PKGADD_NAME = @PKGADD_NAME@ +PKGADD_PKG = @PKGADD_PKG@ +PKGADD_VENDOR = @PKGADD_VENDOR@ +PKG_CONFIG = @PKG_CONFIG@ +QTE_NORTTI = @QTE_NORTTI@ +QT_INCLUDES = @QT_INCLUDES@ +QT_LDFLAGS = @QT_LDFLAGS@ +RANLIB = @RANLIB@ +RPM_VERSION = @RPM_VERSION@ +SET_MAKE = @SET_MAKE@ +SFLPHONE_CXXFLAGS = @SFLPHONE_CXXFLAGS@ +SFLPHONE_LIBS = @SFLPHONE_LIBS@ +SHELL = @SHELL@ +STRIP = @STRIP@ +UIC = @UIC@ +UIC_TR = @UIC_TR@ +USER_INCLUDES = @USER_INCLUDES@ +USER_LDFLAGS = @USER_LDFLAGS@ +USE_EXCEPTIONS = @USE_EXCEPTIONS@ +USE_RTTI = @USE_RTTI@ +USE_THREADS = @USE_THREADS@ +USE_ZEROCONF_FALSE = @USE_ZEROCONF_FALSE@ +USE_ZEROCONF_TRUE = @USE_ZEROCONF_TRUE@ +VERSION = @VERSION@ +WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_INCLUDES = @X_INCLUDES@ +X_LDFLAGS = @X_LDFLAGS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +ac_ct_RANLIB = @ac_ct_RANLIB@ +ac_ct_STRIP = @ac_ct_STRIP@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ +am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +include_x11_FALSE = @include_x11_FALSE@ +include_x11_TRUE = @include_x11_TRUE@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +kde_qtver = @kde_qtver@ +libccext2_CFLAGS = @libccext2_CFLAGS@ +libccext2_LIBS = @libccext2_LIBS@ +libccgnu2_CFLAGS = @libccgnu2_CFLAGS@ +libccgnu2_LIBS = @libccgnu2_LIBS@ +libccrtp1_CFLAGS = @libccrtp1_CFLAGS@ +libccrtp1_LIBS = @libccrtp1_LIBS@ +libdir = @libdir@ +libexecdir = @libexecdir@ +libosip2_CFLAGS = @libosip2_CFLAGS@ +libosip2_LIBS = @libosip2_LIBS@ +localstatedir = @localstatedir@ +mandir = @mandir@ +oldincludedir = @oldincludedir@ +portaudio_CFLAGS = @portaudio_CFLAGS@ +portaudio_LIB = @portaudio_LIB@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +qt_includes = @qt_includes@ +qt_libraries = @qt_libraries@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +target = @target@ +target_alias = @target_alias@ +target_cpu = @target_cpu@ +target_os = @target_os@ +target_vendor = @target_vendor@ +unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@ +unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@ +x_includes = @x_includes@ +x_libraries = @x_libraries@ +SUBDIRS = + +noinst_LTLIBRARIES = libzeroconf.la + +libzeroconf_la_SOURCES = \ + DNSQueryThread.cpp DNSQueryThread.h \ + DNSService.cpp DNSService.h \ + DNSServiceTXTRecord.cpp DNSServiceTXTRecord.h + + +AM_CXXFLAGS = $(libccext2_CFLAGS) +libzeroconf_la_LIBADD = $(LIB_DNSSD) +subdir = src/zeroconf +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) + +libzeroconf_la_LDFLAGS = +libzeroconf_la_DEPENDENCIES = +am_libzeroconf_la_OBJECTS = DNSQueryThread.lo DNSService.lo \ + DNSServiceTXTRecord.lo +#>- libzeroconf_la_OBJECTS = $(am_libzeroconf_la_OBJECTS) +#>+ 5 +libzeroconf_la_final_OBJECTS = libzeroconf_la.all_cpp.lo +libzeroconf_la_nofinal_OBJECTS = DNSQueryThread.lo DNSService.lo \ + DNSServiceTXTRecord.lo +@KDE_USE_FINAL_FALSE@libzeroconf_la_OBJECTS = $(libzeroconf_la_nofinal_OBJECTS) +@KDE_USE_FINAL_TRUE@libzeroconf_la_OBJECTS = $(libzeroconf_la_final_OBJECTS) + +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +#>- @AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/DNSQueryThread.Plo \ +#>- @AMDEP_TRUE@ ./$(DEPDIR)/DNSService.Plo \ +#>- @AMDEP_TRUE@ ./$(DEPDIR)/DNSServiceTXTRecord.Plo +#>+ 6 +@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@DEP_FILES = $(DEPDIR)/libzeroconf_la.all_cpp.P ./$(DEPDIR)/DNSQueryThread.Plo \ +@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/DNSService.Plo \ +@AMDEP_TRUE@@KDE_USE_FINAL_TRUE@ @AMDEP_TRUE@ ./$(DEPDIR)/DNSServiceTXTRecord.Plo +@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@DEP_FILES = ./$(DEPDIR)/DNSQueryThread.Plo \ +@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/DNSService.Plo \ +@AMDEP_TRUE@@KDE_USE_FINAL_FALSE@ @AMDEP_TRUE@ ./$(DEPDIR)/DNSServiceTXTRecord.Plo +#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ +#>- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 2 +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +#>- LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \ +#>- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ +#>- $(AM_CXXFLAGS) $(CXXFLAGS) +#>+ 3 +LTCXXCOMPILE = $(LIBTOOL) --mode=compile --tag=CXX $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) +CXXLD = $(CXX) +#>- CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \ +#>- $(AM_LDFLAGS) $(LDFLAGS) -o $@ +#>+ 2 +CXXLINK = $(LIBTOOL) --mode=link --tag=CXX $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ + $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DIST_SOURCES = $(libzeroconf_la_SOURCES) + +#>- RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ +#>- ps-recursive install-info-recursive uninstall-info-recursive \ +#>- all-recursive install-data-recursive install-exec-recursive \ +#>- installdirs-recursive install-recursive uninstall-recursive \ +#>- check-recursive installcheck-recursive +#>+ 5 +RECURSIVE_TARGETS = info-recursive dvi-recursive pdf-recursive \ + ps-recursive install-info-recursive uninstall-info-recursive \ + all-recursive install-data-recursive install-exec-recursive \ + installdirs-recursive install-recursive uninstall-recursive \ + check-recursive installcheck-recursive nmcheck-recursive bcheck-recursive +DIST_COMMON = $(srcdir)/Makefile.in INSTALL Makefile.am +DIST_SUBDIRS = $(SUBDIRS) +SOURCES = $(libzeroconf_la_SOURCES) + +#>- all: all-recursive +#>+ 1 +all: docs-am all-recursive + +.SUFFIXES: +.SUFFIXES: .cpp .lo .o .obj +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) +#>- cd $(top_srcdir) && \ +#>- $(AUTOMAKE) --gnu src/zeroconf/Makefile +#>+ 3 + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/zeroconf/Makefile + cd $(top_srcdir) && perl admin/am_edit src/zeroconf/Makefile.in +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" = "$$p" && dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libzeroconf.la: $(libzeroconf_la_OBJECTS) $(libzeroconf_la_DEPENDENCIES) + $(CXXLINK) $(libzeroconf_la_LDFLAGS) $(libzeroconf_la_OBJECTS) $(libzeroconf_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DNSQueryThread.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DNSService.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/DNSServiceTXTRecord.Plo@am__quote@ + +.cpp.o: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCXX_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +.cpp.obj: +@am__fastdepCXX_TRUE@ if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCXX_TRUE@ -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi`; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; \ +@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCXX_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` + +.cpp.lo: +@am__fastdepCXX_TRUE@ if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" \ +@am__fastdepCXX_TRUE@ -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<; \ +@am__fastdepCXX_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; \ +@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \ +@am__fastdepCXX_TRUE@ fi +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo' @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +mostlyclean-recursive clean-recursive distclean-recursive \ +maintainer-clean-recursive: + @set fnord $$MAKEFLAGS; amf=$$2; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ETAGS = etags +ETAGSFLAGS = + +CTAGS = ctags +CTAGSFLAGS = + +tags: TAGS + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + mkid -fID $$unique + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + if (etags --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + else \ + include_option=--include; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -f $$subdir/TAGS && \ + tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + tags=; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) ' { files[$$0] = 1; } \ + END { for (i in files) print i; }'`; \ + test -z "$(CTAGS_ARGS)$$tags$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +#>+ 1 +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d $(distdir)/$$subdir \ + || mkdir $(distdir)/$$subdir \ + || exit 1; \ + (cd $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" \ + distdir=../$(distdir)/$$subdir \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LTLIBRARIES) +installdirs: installdirs-recursive +installdirs-am: + +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +#>- clean: clean-recursive +#>+ 1 +clean: kde-rpo-clean clean-recursive + +#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ +#>- mostlyclean-am +#>+ 2 +clean-am: clean-bcheck clean-final clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-exec-am: + +install-info: install-info-recursive + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-info-am + +uninstall-info: uninstall-info-recursive + +.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am clean \ + clean-generic clean-libtool clean-noinstLTLIBRARIES \ + clean-recursive ctags ctags-recursive distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-recursive distclean-tags distdir dvi dvi-am \ + dvi-recursive info info-am info-recursive install install-am \ + install-data install-data-am install-data-recursive \ + install-exec install-exec-am install-exec-recursive \ + install-info install-info-am install-info-recursive install-man \ + install-recursive install-strip installcheck installcheck-am \ + installdirs installdirs-am installdirs-recursive \ + maintainer-clean maintainer-clean-generic \ + maintainer-clean-recursive mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool mostlyclean-recursive \ + pdf pdf-am pdf-recursive ps ps-am ps-recursive tags \ + tags-recursive uninstall uninstall-am uninstall-info-am \ + uninstall-info-recursive uninstall-recursive + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: + +#>+ 2 +KDE_DIST=configure.in.bot configure.in.in Makefile.in + +#>+ 2 +docs-am: + +#>+ 6 +force-reedit: + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu src/zeroconf/Makefile + cd $(top_srcdir) && perl admin/am_edit src/zeroconf/Makefile.in + + +#>+ 21 +clean-bcheck: + rm -f *.bchecktest.cc *.bchecktest.cc.class a.out + +bcheck: bcheck-recursive + +bcheck-am: + @for i in ; do \ + if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \ + echo "int main() {return 0;}" > $$i.bchecktest.cc ; \ + echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \ + echo "$$i"; \ + if ! $(CXXCOMPILE) --dump-class-hierarchy -c $$i.bchecktest.cc; then \ + rm -f $$i.bchecktest.cc; exit 1; \ + fi ; \ + echo "" >> $$i.bchecktest.cc.class; \ + perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \ + rm -f a.out; \ + fi ; \ + done + + +#>+ 11 +libzeroconf_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/DNSQueryThread.cpp $(srcdir)/DNSService.cpp $(srcdir)/DNSServiceTXTRecord.cpp + @echo 'creating libzeroconf_la.all_cpp.cpp ...'; \ + rm -f libzeroconf_la.all_cpp.files libzeroconf_la.all_cpp.final; \ + echo "#define KDE_USE_FINAL 1" >> libzeroconf_la.all_cpp.final; \ + for file in DNSQueryThread.cpp DNSService.cpp DNSServiceTXTRecord.cpp ; do \ + echo "#include \"$$file\"" >> libzeroconf_la.all_cpp.files; \ + test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libzeroconf_la.all_cpp.final; \ + done; \ + cat libzeroconf_la.all_cpp.final libzeroconf_la.all_cpp.files > libzeroconf_la.all_cpp.cpp; \ + rm -f libzeroconf_la.all_cpp.final libzeroconf_la.all_cpp.files + +#>+ 3 +clean-final: + -rm -f libzeroconf_la.all_cpp.cpp + +#>+ 3 +final: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_final_OBJECTS)" all-am + +#>+ 3 +final-install: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_final_OBJECTS)" install-am + +#>+ 3 +no-final: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_nofinal_OBJECTS)" all-am + +#>+ 3 +no-final-install: + $(MAKE) libzeroconf_la_OBJECTS="$(libzeroconf_la_nofinal_OBJECTS)" install-am + +#>+ 3 +kde-rpo-clean: + -rm -f *.rpo + +#>+ 3 +nmcheck: +nmcheck-am: nmcheck diff --git a/src/zeroconf/configure.in.bot b/src/zeroconf/configure.in.bot new file mode 100644 index 0000000000..30992cd219 --- /dev/null +++ b/src/zeroconf/configure.in.bot @@ -0,0 +1,10 @@ +# inspired by kdelibs/dnssd/configure.in.bot +if test "$have_libdns_sd" = "no"; then + echo "" + echo "You're missing Apple mDNSResponder 85 or later, therefore" + echo "dnssd will be compiled as stub, without any real functionality." + echo "If you want zeroconf support (www.zeroconf.org), you should install mDNSResponder first." + echo "See src/zeroconf/INSTALL for details." + echo "" + all_tests=bad +fi diff --git a/src/zeroconf/configure.in.in b/src/zeroconf/configure.in.in new file mode 100644 index 0000000000..3fd827d89d --- /dev/null +++ b/src/zeroconf/configure.in.in @@ -0,0 +1,38 @@ +#MIN_CONFIG + +AC_ARG_ENABLE(USE_ZEROCONF, [ --disable-zeroconf don't require libdns_sd (browsing and publishing DNS-SD services will not be possible) ], with_zeroconf=$enableval, with_zeroconf=yes) +if test "$with_zeroconf" = "yes"; then +AC_MSG_CHECKING(for DNS-SD support) +save_dnssdtest_LIBS="$LIBS" +save_dnssdtest_LDFLAGS="$LDFLAGS" +save_dnssdtest_CPPFLAGS="$CPPFLAGS" +LDFLAGS="$all_libraries $LDFLAGS" +CPPFLAGS="$CPPFLAGS $all_includes" +case $host_os in + darwin*) LIBS="" ;; + *) LIBS="-ldns_sd" ;; +esac +have_libdns_sd="no" +AC_TRY_LINK( [ + #include <dns_sd.h> + ],[ + DNSServiceRefDeallocate( (DNSServiceRef*) 0); + TXTRecordDeallocate( (TXTRecordRef*) 0); + ],[ + AC_DEFINE(HAVE_DNSSD,1,[Define if dns-sd is available]) + case $host_os in + darwin*) LIB_DNSSD="" ;; + *) LIB_DNSSD="-ldns_sd" ;; + esac + have_libdns_sd="yes" + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + LIB_DNSSD="" +]) +CPPFLAGS=$save_dnssdtest_CPPFLAGS +LDFLAGS=$save_dnssdtest_LDFLAGS +LIBS=$save_dnssdtest_LIBS +fi +AC_SUBST(LIB_DNSSD) +AM_CONDITIONAL(HAVE_ZEROCONF, test "$have_libdns_sd" = "yes") -- GitLab