# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# $Log: Makefile,v $
+# Revision 1.64 2005/10/25 23:55:47 cheshire
+# Add tiger to list of target platforms
+#
+# Revision 1.63 2005/10/11 21:30:44 cheshire
+# Add "-Wunreachable-code" (commented out for now)
+#
+# Revision 1.62 2005/06/30 21:46:55 cheshire
+# <rdar://problem/4167287> Solaris should use unix domain sockets, not loopback
+#
+# Revision 1.61 2005/06/30 20:46:05 cheshire
+# Added Makefile rule to build threadsafe object files where necessary using "-D_REENTRANT".
+#
+# Revision 1.60 2005/06/30 10:42:38 cheshire
+# Turn on "-Werror" and "-O" for better error reporting
+#
+# Revision 1.59 2005/04/14 21:07:10 rpantos
+# Bug #: 4089257, Clean build broken for Java support on POSIX
+# Submitted by: Roger Pantos
+# Reviewed by: Kiren Sekar
+#
+# Revision 1.58 2005/04/08 21:37:57 ksekar
+# <rdar://problem/3792767> get_ifi_info doesn't return IPv6 interfaces on Linux
+#
+# Revision 1.57 2005/03/17 04:02:28 cheshire
+# <rdar://problem/3986419> mDNSResponder won't compile with gcc4 on Tiger
+# Changed Makefile to link using gcc instead of libtool
+#
# Revision 1.56 2005/02/02 02:25:21 cheshire
# <rdar://problem/3980388> /var/run/mDNSResponder should be /var/run/mdnsd on Linux
#
LN = ln -s -f
CFLAGS_COMMON = -I. -I$(COREDIR) -I$(SHAREDDIR) -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
LIBFLAGS =
-DNSEXT_FLAGS = -D_REENTRANT -g -Wall -lpthread
LDSUFFIX = so
JAVACFLAGS_OS = -fPIC -shared -ldns_sd
BUILDDIR = build/debug
STRIP = echo
else
-CFLAGS_DEBUG = -O0 -DMDNS_DEBUGMSGS=0
+# We use -Os for two reasons:
+# 1. We want to make small binaries, suitable for putting into hardware devices
+# 2. Some of the code analysis warnings only work when some form of optimization is enabled
+CFLAGS_DEBUG = -Os -DMDNS_DEBUGMSGS=0
OBJDIR = objects/prod
BUILDDIR = build/prod
STRIP = strip -S
# Configure per-OS peculiarities
ifeq ($(os),solaris)
CFLAGS_OS = -DNOT_HAVE_DAEMON -DNOT_HAVE_SA_LEN -DNOT_HAVE_SOCKLEN_T -DNOT_HAVE_IF_NAMETOINDEX \
- -DLOG_PERROR=0 -D_XPG4_2 -D__EXTENSIONS__ -DHAVE_BROKEN_RECVIF_NAME -DUSE_TCP_LOOPBACK
+ -DLOG_PERROR=0 -D_XPG4_2 -D__EXTENSIONS__ -DHAVE_BROKEN_RECVIF_NAME
CC = gcc
LD = gcc -shared
LIBFLAGS = -lsocket -lnsl -lresolv
else
ifeq ($(os),linux)
-CFLAGS_OS = -DNOT_HAVE_SA_LEN -DUSES_NETLINK
+CFLAGS_OS = -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX
JAVACFLAGS_OS += -I$(JDK)/include/linux
OPTIONALTARG = nss_mdns
OPTINSTALL = InstalledNSS
else
ifeq ($(os),jaguar)
-CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp -DNOT_HAVE_SOCKLEN_T
+CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp -Werror -DNOT_HAVE_SOCKLEN_T
LD = libtool -dynamic
LIBFLAGS = -lSystem
LDSUFFIX = dylib
else
ifeq ($(os),panther)
-CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp #-pedantic
+CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp -Werror
LD = libtool -dynamic
LIBFLAGS = -lSystem
LDSUFFIX = dylib
else
ifeq ($(os),tiger)
-CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp -Wdeclaration-after-statement
+CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp -Werror -Wdeclaration-after-statement #-Wunreachable-code
CC = @gcc-4.0
-LD = libtool -dynamic
+LD = $(CC) -dynamiclib
LIBFLAGS = -lSystem
LDSUFFIX = dylib
JDK = /System/Library/Frameworks/JavaVM.framework/Home
else
$(error ERROR: Must specify target OS on command-line, e.g. "make os=tiger [target]".\
-Supported operating systems include: jaguar, panther, linux, netbsd, freebsd, openbsd, solaris)
+Supported operating systems include: jaguar, panther, tiger, linux, netbsd, freebsd, openbsd, solaris)
endif
endif
endif
JAVASRC = $(SHAREDDIR)/Java
JARCONTENTS = $(OBJDIR)/com/apple/dnssd/DNSSDService.class \
- $(OBJDIR)/com/apple/dnssd/DNSRecord.class \
$(OBJDIR)/com/apple/dnssd/DNSSDException.class \
+ $(OBJDIR)/com/apple/dnssd/DNSRecord.class \
$(OBJDIR)/com/apple/dnssd/TXTRecord.class \
$(OBJDIR)/com/apple/dnssd/DNSSDRegistration.class \
$(OBJDIR)/com/apple/dnssd/BaseListener.class \
$(BUILDDIR)/mDNSNetMonitor: $(SPECIALOBJ) $(OBJDIR)/NetMonitor.c.o
$(CC) $+ -o $@ $(LIBFLAGS)
-$(BUILDDIR)/dnsextd: $(SPECIALOBJ) $(OBJDIR)/dnsextd.c.o
- $(CC) $+ -o $@ $(LIBFLAGS) $(DNSEXT_FLAGS)
+$(BUILDDIR)/dnsextd: $(SPECIALOBJ) $(OBJDIR)/dnsextd.c.threadsafe.o
+ $(CC) $+ -o $@ $(LIBFLAGS) -lpthread
#############################################################################
$(OBJDIR)/%.c.o: $(SHAREDDIR)/%.c
$(CC) $(CFLAGS) -c -o $@ $<
+$(OBJDIR)/%.c.threadsafe.o: %.c
+ $(CC) $(CFLAGS) -D_REENTRANT -c -o $@ $<
+
$(OBJDIR)/%.c.so.o: %.c
$(CC) $(CFLAGS) -c -fPIC -o $@ $<