X-Git-Url: https://git.saurik.com/apple/mdnsresponder.git/blobdiff_plain/263eeeabe5fb4d3daa8a9134371ca9a3e45875b0..95d7a4a31d5b4557b29fba1e0cdd09f1216ada8c:/mDNSPosix/Makefile diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile index 9390f72..817a377 100755 --- a/mDNSPosix/Makefile +++ b/mDNSPosix/Makefile @@ -1,6 +1,6 @@ # -*- tab-width: 4 -*- # -# Copyright (c) 2002-2004, Apple Computer, Inc. All rights reserved. +# Copyright (c) 2002-2004, 2015, Apple Computer, Inc. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: @@ -30,8 +30,8 @@ # If "make os=xxx" gives lots of errors like "Missing dependency operator", # then try typing "gmake os=xxx" instead. # -# This Makefile builds an mDNSResponder daemon and a libdns_sd.so shared library -# for Linux. It also builds several example programs for embedded systems. +# This Makefile builds an mDNSResponder daemon and a libdns_sd.so shared library +# for Linux. It also builds several example programs for embedded systems. # # Make with no arguments to build all production targets. # 'make DEBUG=1' to build debugging targets. @@ -57,6 +57,7 @@ JDK = /usr/jdk CC = @cc BISON = @bison FLEX = @flex +ST = @strip LD = ld -shared CP = cp RM = rm @@ -71,18 +72,18 @@ JAVACFLAGS_OS = -fPIC -shared -ldns_sd # Set up diverging paths for debug vs. prod builds DEBUG=0 ifeq ($(DEBUG),1) -CFLAGS_DEBUG = -g -DMDNS_DEBUGMSGS=2 +CFLAGS_DEBUG = -g -DMDNS_DEBUGMSGS=2 OBJDIR = objects/debug BUILDDIR = build/debug -STRIP = echo +STRIP = echo else # 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 +CFLAGS_DEBUG = -Os -DMDNS_DEBUGMSGS=0 OBJDIR ?= objects/prod BUILDDIR ?= build/prod -STRIP = strip -S +STRIP = $(ST) -S endif # Configure per-OS peculiarities @@ -95,16 +96,22 @@ LD = gcc -shared LINKOPTS = -lsocket -lnsl -lresolv JAVACFLAGS_OS += -I$(JDK)/include/solaris ifneq ($(DEBUG),1) -STRIP = strip +STRIP = $(ST) endif else -ifeq ($(os),linux) -CFLAGS_OS = -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX +# any target that contains the string "linux" +ifeq ($(findstring linux,$(os)),linux) +CFLAGS_OS = -D_GNU_SOURCE -DHAVE_IPV6 -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX -fno-strict-aliasing +LD = $(CC) -shared FLEXFLAGS_OS = -l JAVACFLAGS_OS += -I$(JDK)/include/linux + +# uClibc does not support Name Service Switch +ifneq ($(os),linux-uclibc) OPTIONALTARG = nss_mdns OPTINSTALL = InstalledNSS +endif else ifeq ($(os),netbsd) @@ -114,11 +121,9 @@ else ifeq ($(os),freebsd) # If not already defined, set LOCALBASE to /usr/local -# FreeBSD requires the startup script to end in ".sh" LOCALBASE?=/usr/local INSTBASE=$(LOCALBASE) -STARTUPSCRIPTNAME=mdns.sh -CFLAGS_OS = +CFLAGS_OS = -DHAVE_IPV6 # FreeBSD 4 requires threaded code to be compiled and linked using the "-pthread" option, # and requires that the "-lpthread" link option NOT be used # This appies only to FreeBSD -- "man cc" on FreeBSD says: @@ -140,17 +145,18 @@ ifeq ($(os),x) # We have to define __MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_10_4 or on Leopard # we get build failures: ‘daemon’ is deprecated (declared at /usr/include/stdlib.h:283) CFLAGS_OS = -DHAVE_IPV6 -no-cpp-precomp -Werror -Wdeclaration-after-statement \ - -D__MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_10_4 #-Wunreachable-code -CC = @gcc-4.0 + -D__MAC_OS_X_VERSION_MIN_REQUIRED=__MAC_OS_X_VERSION_10_4 \ + -D__APPLE_USE_RFC_2292 #-Wunreachable-code +CC = gcc LD = $(CC) -dynamiclib LINKOPTS = -lSystem LDSUFFIX = dylib JDK = /System/Library/Frameworks/JavaVM.framework/Home -JAVACFLAGS_OS = -dynamiclib -I/System/Library/Frameworks/JavaVM.framework/Headers -framework JavaVM +JAVACFLAGS_OS = -dynamiclib -I/System/Library/Frameworks/JavaVM.framework/Headers -framework JavaVM else $(error ERROR: Must specify target OS on command-line, e.g. "make os=x [target]".\ -Supported operating systems include: x, linux, netbsd, freebsd, openbsd, solaris) +Supported operating systems include: x, linux, linux-uclibc, netbsd, freebsd, openbsd, solaris) endif endif endif @@ -229,11 +235,13 @@ clean: # daemon target builds the daemon DAEMONOBJS = $(OBJDIR)/PosixDaemon.c.o $(OBJDIR)/mDNSPosix.c.o $(OBJDIR)/mDNSUNP.c.o $(OBJDIR)/mDNS.c.o \ $(OBJDIR)/DNSDigest.c.o $(OBJDIR)/uDNS.c.o $(OBJDIR)/DNSCommon.c.o $(OBJDIR)/uds_daemon.c.o \ - $(OBJDIR)/mDNSDebug.c.o $(OBJDIR)/dnssd_ipc.c.o $(OBJDIR)/GenLinkedList.c.o $(OBJDIR)/PlatformCommon.c.o + $(OBJDIR)/mDNSDebug.c.o $(OBJDIR)/dnssd_ipc.c.o $(OBJDIR)/GenLinkedList.c.o $(OBJDIR)/PlatformCommon.c.o \ + $(OBJDIR)/CryptoAlg.c.o $(OBJDIR)/anonymous.c.o # dnsextd target build dnsextd DNSEXTDOBJ = $(OBJDIR)/mDNSPosix.c.o $(OBJDIR)/mDNSUNP.c.o $(OBJDIR)/mDNSDebug.c.o $(OBJDIR)/GenLinkedList.c.o $(OBJDIR)/DNSDigest.c.o \ - $(OBJDIR)/DNSCommon.c.o $(OBJDIR)/PlatformCommon.c.o $(OBJDIR)/dnsextd_parser.y.o $(OBJDIR)/dnsextd_lexer.l.o + $(OBJDIR)/DNSCommon.c.o $(OBJDIR)/PlatformCommon.c.o $(OBJDIR)/dnsextd_parser.y.o $(OBJDIR)/dnsextd_lexer.l.o \ + $(OBJDIR)/CryptoAlg.c.o Daemon: setup $(BUILDDIR)/mdnsd @echo "Responder daemon done" @@ -438,7 +446,8 @@ JavaDoc: Java setup # The following targets build embedded example programs SPECIALOBJ = $(OBJDIR)/mDNSPosix.c.o $(OBJDIR)/mDNSUNP.c.o $(OBJDIR)/mDNSDebug.c.o $(OBJDIR)/GenLinkedList.c.o \ - $(OBJDIR)/DNSDigest.c.o $(OBJDIR)/uDNS.c.o $(OBJDIR)/DNSCommon.c.o $(OBJDIR)/PlatformCommon.c.o + $(OBJDIR)/DNSDigest.c.o $(OBJDIR)/uDNS.c.o $(OBJDIR)/DNSCommon.c.o $(OBJDIR)/PlatformCommon.c.o \ + $(OBJDIR)/CryptoAlg.c.o $(OBJDIR)/anonymous.c.o COMMONOBJ = $(SPECIALOBJ) $(OBJDIR)/mDNS.c.o APPOBJ = $(COMMONOBJ) $(OBJDIR)/ExampleClientApp.c.o