X-Git-Url: https://git.saurik.com/apple/mdnsresponder.git/blobdiff_plain/7f0064bd55e3fa98568d2c359429ff8a38b23a6c..c71e3068dca7ed8b0536b4ce3fe0552e9f39d389:/Clients/Makefile diff --git a/Clients/Makefile b/Clients/Makefile index 709bd2b..9d62e99 100755 --- a/Clients/Makefile +++ b/Clients/Makefile @@ -1,43 +1,18 @@ -# Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. +# -*- tab-width: 4 -*- # -# @APPLE_LICENSE_HEADER_START@ +# Copyright (c) 2002-2004, 2015 Apple Computer, Inc. All rights reserved. +# +# 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 # -# This file contains Original Code and/or Modifications of Original Code -# as defined in and that are subject to the Apple Public Source License -# Version 2.0 (the 'License'). You may not use this file except in -# compliance with the License. Please obtain a copy of the License at -# http://www.opensource.apple.com/apsl/ and read it before using this -# file. +# http://www.apache.org/licenses/LICENSE-2.0 # -# The Original Code and all software distributed under the License are -# distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER -# EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, -# INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. -# Please see the License for the specific language governing rights and +# 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. -# -# @APPLE_LICENSE_HEADER_END@ -# -# $Log: Makefile,v $ -# Revision 1.6 2004/09/24 21:15:26 cheshire -# Library "libmdns" misnamed; should be "libdns_sd" -# -# Revision 1.5 2004/09/02 17:32:45 cheshire -# Look for headers in ../mDNSShared before we go to /usr/include -# -# Revision 1.4 2004/05/21 17:25:56 cheshire -# Fixes to make sample client work on Linux -# -# Revision 1.3 2004/03/12 08:05:32 cheshire -# Add a "make clean" target -# -# Revision 1.2 2004/02/11 20:59:26 cheshire -# Fix Makefile so it creates the "build" directory if necessary -# -# Revision 1.1 2004/02/06 03:19:09 cheshire -# Check in code to make command-line "dns-sd" testing tool -# # # Notes: # $@ means "The file name of the target of the rule" @@ -45,18 +20,32 @@ # $+ means "The names of all the prerequisites, with spaces between them, exactly as given" # For more magic automatic variables, see # +# +# This makefile uses $(CC) for compilation and linking, which is +# an automatic implicit gcc variable that defaults to "cc" +# ############################################################################# - -# If library /usr/lib/libdns_sd.* exists, then link it -ifneq "$(wildcard /usr/lib/libdns_sd.*)" "" -LIBS = -ldns_sd +# On OS X the dns_sd library functions are included in libSystem, which is implicitly linked with every executable +# If /usr/lib/libSystem.dylib exists, then we're on OS X, so we don't need also to link the "dns_sd" shared library +ifeq "$(DEBUG)" "1" +DEBUGFLAGS = -g +BUILDDIR = build/debug else +DEBUGFLAGS = -Os +BUILDDIR = build/prod +endif + +ifneq "$(wildcard /usr/lib/libSystem.dylib)" "" +TARGETS = build/dns-sd build/dns-sd64 LIBS = +else +TARGETS = build/dns-sd +LIBS = -L../mDNSPosix/$(BUILDDIR)/ -ldns_sd endif -targets: build/dns-sd +all: $(TARGETS) clean: rm -rf build @@ -64,5 +53,14 @@ clean: build: mkdir build -build/dns-sd: build dns-sd.c - cc $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -o $@ +build/dns-sd: build dns-sd.c ClientCommon.c + $(CC) $(SUPMAKE_CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ + +build/dns-sd64: build dns-sd.c ClientCommon.c + $(CC) $(SUPMAKE_CFLAGS) $(filter %.c %.o, $+) $(LIBS) -I../mDNSShared -Wall -o $@ -m64 + +# Note, we can make a 'fat' version of dns-sd using 'lipo', as shown below, but we +# don't, because we don't want or need a 'fat' version of dns-sd, because it will +# never need to access more than 4GB of data. We build the 64-bit version purely so +# we have a test tool for making sure that the APIs work properly from 64-bit clients. +# lipo -create dns-sd dns-sd64 -output dns-sd-fat