Home | History | Annotate | Line # | Download | only in ServiceRegistration
      1 BUILDDIR = build
      2 OBJDIR = objects
      3 GENKEY=\"/usr/local/bin/mbedtls_gen_key\"
      4 CERTWRITE=\"/usr/local/bin/mbedtls_cert_write\"
      5 
      6 ifndef os
      7   SYSTEM := $(shell uname -s)
      8   ifeq ($(SYSTEM), Darwin)
      9     os=x
     10   else ifeq ($(SYSTEM), Linux)
     11     os_id := $(shell sed -n -e 's/^ID=//p' < /etc/os-release)
     12     ifeq ($(os_id), raspbian)
     13       os=raspbian
     14     else
     15       os=linux
     16     endif
     17   endif
     18 endif
     19 
     20 ifdef INSTBASE
     21   INSTALL_PREFIX=$(INSTBASE)
     22 else
     23   INSTALL_PREFIX=$(DESTDIR)/usr
     24 endif
     25 
     26 INSTALL?=install
     27 
     28 INCLUDEDIRS=-I../mDNSShared -I../mDNSMacOSX/xpc_services -I../DSO -I../mDNSCore -I../mDNSShared/utilities
     29 ifeq ($(os),x)
     30 SRPCFLAGS = -O0 -g -Wall -Werror -I../mDNSCore -I/usr/local/include -I. -I../mDNSMacOSX/Private $(INCLUDEDIRS) -I../DSO -MMD -MF .depfile-${notdir $@} -DUSE_KQUEUE -DHAVE_SOCKADDR_DL -DGENKEY_PROGRAM=$(GENKEY) -DCERTWRITE_PROGRAM=$(CERTWRITE) -DEXCLUDE_TLS -DPOSIX_BUILD -D__APPLE_USE_RFC_3542 -DSTANDALONE
     31 SRPLDOPTS = -framework CoreServices -framework Security -framework CoreFoundation -framework Network
     32 HMACOBJS     = $(OBJDIR)/hmac-macos.o
     33 SIGNOBJS     = $(OBJDIR)/sign-macos.o $(OBJDIR)/srp-filedata.o
     34 VERIFYOBJS   = $(OBJDIR)/verify-macos.o
     35 TLSOBJS      = $(OBJDIR)/tls-macos.o
     36 IOOBJS       = $(OBJDIR)/ioloop.o $(OBJDIR)/posix.o $(OBJDIR)/ioloop-common.o
     37 IOWOTLSOBJS  = $(OBJDIR)/ioloop.o $(OBJDIR)/posix.o
     38 else ifeq ($(os), linux)
     39 SRPCFLAGS = -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" -O0 -g -Wall -Werror -DSTANDALONE -I../mDNSCore -I/usr/local/include -I. -I../mDNSMacOSX/Private $(INCLUDEDIRS) -I../DSO -MMD -MF .depfile-${notdir $@} -DNOT_HAVE_SA_LEN -DUSE_SELECT -DUSE_INOTIFY -DGENKEY_PROGRAM=$(GENKEY) -DCERTWRITE_PROGRAM=$(CERTWRITE) -DLINUX -DSRP_CRYPTO_MBEDTLS -DPOSIX_BUILD -DMDNS_NO_STRICT
     40 #SRPLDOPTS = /usr/local/lib/libmbedtls.a /usr/local/lib/libmbedx509.a /usr/local/lib/libmbedcrypto.a -lbsd
     41 SRPLDOPTS = -lmbedcrypto -lmbedtls -lmbedx509
     42 HMACOBJS     = $(OBJDIR)/hmac-mbedtls.o
     43 SIGNOBJS     = $(OBJDIR)/sign-mbedtls.o $(OBJDIR)/srp-filedata.o
     44 VERIFYOBJS   = $(OBJDIR)/verify-mbedtls.o
     45 TLSOBJS      = $(OBJDIR)/tls-mbedtls.o
     46 IOOBJS       = $(OBJDIR)/ioloop.o $(OBJDIR)/posix.o $(TLSOBJS) $(OBJDIR)/ioloop-common.o
     47 IOWOTLSOBJS  = $(OBJDIR)/ioloop-notls.o $(OBJDIR)/posix.o
     48 else ifeq ($(os), linux-uclibc)
     49 SRPCFLAGS = -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" -O0 -g -Wall -Werror -DSTANDALONE -I../mDNSCore -I/usr/local/include -I. -I../mDNSMacOSX/Private $(INCLUDEDIRS) -I../DSO -MMD -MF .depfile-${notdir $@} -DNOT_HAVE_SA_LEN -DUSE_SELECT -DLINUX_GETENTROPY -DGENKEY_PROGRAM=$(GENKEY) -DCERTWRITE_PROGRAM=$(CERTWRITE) -DLINUX -DSRP_CRYPTO_MBEDTLS -DPOSIX_BUILD -DMDNS_NO_STRICT
     50 SRPLDOPTS = -lmbedcrypto -lmbedtls -lmbedx509 -lbsd
     51 HMACOBJS     = $(OBJDIR)/hmac-mbedtls.o
     52 SIGNOBJS     = $(OBJDIR)/sign-mbedtls.o $(OBJDIR)/srp-filedata.o
     53 VERIFYOBJS   = $(OBJDIR)/verify-mbedtls.o
     54 TLSOBJS      = $(OBJDIR)/tls-mbedtls.o
     55 IOOBJS       = $(OBJDIR)/ioloop.o $(OBJDIR)/posix.o $(TLSOBJS) $(OBJDIR)/ioloop-common.o
     56 IOWOTLSOBJS  = $(OBJDIR)/ioloop-notls.o $(OBJDIR)/posix.o
     57 else ifeq ($(os), raspbian)
     58 ifdef ASAN
     59 SRPCFLAGS    = -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" -O0 -g -Wall -Werror -DSTANDALONE -I../mDNSCore -I/usr/local/include -I. -I../mDNSMacOSX/Private $(INCLUDEDIRS) -I../DSO -MMD -MF .depfile-${notdir $@} -DNOT_HAVE_SA_LEN -DUSE_SELECT -DGENKEY_PROGRAM=$(GENKEY) -DCERTWRITE_PROGRAM=$(CERTWRITE) -DLINUX -DRPI -DSRP_CRYPTO_MBEDTLS -DPOSIX_BUILD -fsanitize=address -DMDNS_NO_STRICT
     60 SRPLDOPTS    = -lasan -lmbedtls -lmbedx509 -lmbedcrypto -lbsd
     61 else
     62 SRPCFLAGS    = -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\" -O0 -g -Wall -Werror -DSTANDALONE -I../mDNSCore -I/usr/local/include -I. -I../mDNSMacOSX/Private $(INCLUDEDIRS) -I../DSO -MMD -MF .depfile-${notdir $@} -DNOT_HAVE_SA_LEN -DUSE_SELECT -DGENKEY_PROGRAM=$(GENKEY) -DCERTWRITE_PROGRAM=$(CERTWRITE) -DLINUX -DRPI -DSRP_CRYPTO_MBEDTLS -DPOSIX_BUILD -DMDNS_NO_STRICT
     63 SRPLDOPTS    = -lmbedtls -lmbedx509 -lmbedcrypto -lbsd
     64 endif
     65 HMACOBJS     = $(OBJDIR)/hmac-mbedtls.o
     66 SIGNOBJS     = $(OBJDIR)/sign-mbedtls.o $(OBJDIR)/srp-filedata.o
     67 VERIFYOBJS   = $(OBJDIR)/verify-mbedtls.o
     68 TLSOBJS      = $(OBJDIR)/tls-mbedtls.o
     69 IOOBJS       = $(OBJDIR)/ioloop.o $(OBJDIR)/posix.o $(TLSOBJS) $(OBJDIR)/ioloop-common.o
     70 IOWOTLSOBJS  = $(OBJDIR)/ioloop-notls.o $(OBJDIR)/posix.o
     71 else
     72 SRPCFLAGS=$(os) $(os_id)
     73 endif
     74 
     75 all:	setup $(BUILDDIR)/srp-client $(BUILDDIR)/srp-mdns-proxy $(BUILDDIR)/keydump $(BUILDDIR)/dnssd-proxy $(BUILDDIR)/cti-server $(BUILDDIR)/srputil # $(BUILDDIR)/srp-dns-proxy $(BUILDDIR)/dnssd-relay
     76 
     77 install: all
     78 	$(INSTALL) -D $(BUILDDIR)/srp-client $(INSTALL_PREFIX)/sbin/srp-client
     79 	$(INSTALL) -D $(BUILDDIR)/srp-mdns-proxy $(INSTALL_PREFIX)/sbin/srp-mdns-proxy
     80 	$(INSTALL) -D $(BUILDDIR)/keydump $(INSTALL_PREFIX)/bin/keydump
     81 	$(INSTALL) -D $(BUILDDIR)/dnssd-proxy $(INSTALL_PREFIX)/sbin/dnssd-proxy
     82 	$(INSTALL) -D $(BUILDDIR)/srp-dns-proxy $(INSTALL_PREFIX)/sbin/srp-dns-proxy
     83 #	$(INSTALL) -D $(BUILDDIR)/dnssd-relay $(INSTALL_PREFIX)/sbin/dnssd-relay
     84 
     85 # 'setup' sets up the build directory structure the way we want
     86 setup:
     87 	@if test ! -d $(OBJDIR)   ; then mkdir -p $(OBJDIR)   ; fi
     88 	@if test ! -d $(BUILDDIR) ; then mkdir -p $(BUILDDIR) ; fi
     89 
     90 # clean removes targets and objects
     91 clean:
     92 	@if test -d $(OBJDIR)   ; then rm -r $(OBJDIR)   ; fi
     93 	@if test -d $(BUILDDIR) ; then rm -r $(BUILDDIR) ; fi
     94 
     95 SIMPLEOBJS   = $(OBJDIR)/towire.o $(SIGNOBJS)
     96 DSOOBJS      = $(OBJDIR)/dso.o $(OBJDIR)/dso-utils.o
     97 MDNSOBJS     = $(OBJDIR)/dnssd_clientstub.o $(OBJDIR)/dnssd_ipc.o $(OBJDIR)/dnssd_clientlib.o
     98 FROMWIREOBJS = $(OBJDIR)/fromwire.o $(VERIFYOBJS) $(OBJDIR)/wireutils.o
     99 CFOBJS       = $(OBJDIR)/config-parse.o
    100 CTIOBJS      = $(OBJDIR)/cti-services.o $(OBJDIR)/cti-proto.o
    101 $(BUILDDIR)/dnssd-relay:  $(OBJDIR)/dnssd-relay.o $(DSOOBJS) $(IOOBJS) $(CFOBJS)
    102 	$(CC) -o $@ $+ $(SRPLDOPTS)
    103 
    104 $(BUILDDIR)/dnssd-proxy:  $(OBJDIR)/dnssd-proxy.o $(SIMPLEOBJS) $(DSOOBJS) $(MDNSOBJS) $(FROMWIREOBJS) $(IOOBJS) $(CFOBJS) $(OBJDIR)/srp-log.o
    105 	$(CC) -o $@ $+ $(SRPLDOPTS)
    106 
    107 $(BUILDDIR)/srp-client:	$(OBJDIR)/srp-ioloop.o $(OBJDIR)/srp-client.o $(OBJDIR)/dnssd_clientlib.o $(CTIOBJS) $(SIMPLEOBJS) $(IOWOTLSOBJS) $(CFOBJS) $(DSOOBJS) $(FROMWIREOBJS)
    108 	$(CC) -o $@ $+ $(SRPLDOPTS)
    109 
    110 $(BUILDDIR)/srp-dns-proxy:	$(OBJDIR)/srp-dns-proxy.o $(OBJDIR)/srp-parse.o $(SIMPLEOBJS) $(FROMWIREOBJS) $(IOOBJS) $(HMACOBJS) $(CFOBJS)
    111 	$(CC) -o $@ $+ $(SRPLDOPTS)
    112 
    113 $(BUILDDIR)/srp-mdns-proxy:	$(OBJDIR)/srp-mdns-proxy.o $(OBJDIR)/srp-parse.o $(OBJDIR)/route.o $(OBJDIR)/omr-watcher.o $(OBJDIR)/adv-ctl-server.o $(OBJDIR)/combined-dnssd-proxy.o $(OBJDIR)/srp-replication.o $(OBJDIR)/srp-log.o $(CTIOBJS) $(MDNSOBJS) $(SIMPLEOBJS) $(DSOOBJS) $(FROMWIREOBJS) $(IOOBJS) $(HMACOBJS) $(CFOBJS)
    114 	$(CC) -o $@ $+ $(SRPLDOPTS)
    115 
    116 $(BUILDDIR)/keydump:	$(OBJDIR)/keydump.o $(MDNSOBJS) $(SIMPLEOBJS) $(FROMWIREOBJS) $(IOOBJS)
    117 	$(CC) -o $@ $+ $(SRPLDOPTS)
    118 
    119 $(BUILDDIR)/cti-server:	$(OBJDIR)/cti-server.o $(OBJDIR)/cti-proto-noioloop.o
    120 	$(CC) -o $@ $+ $(SRPLDOPTS)
    121 
    122 $(BUILDDIR)/srputil:	$(OBJDIR)/srputil.o $(OBJDIR)/advertising_proxy_services.o $(CTIOBJS) $(MDNSOBJS) $(SIMPLEOBJS) $(FROMWIREOBJS) $(IOOBJS)
    123 	$(CC) -o $@ $+ $(SRPLDOPTS)
    124 
    125 $(OBJDIR)/dso.o:	../DSO/dso.c
    126 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -c -I. $(INCLUDEDIRS) $<
    127 
    128 $(OBJDIR)/dnssd_clientstub.o:  ../mDNSShared/dnssd_clientstub.c
    129 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -c -I. $(INCLUDEDIRS) $<
    130 
    131 $(OBJDIR)/dnssd_clientlib.o:  ../mDNSShared/dnssd_clientlib.c
    132 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -c -I. $(INCLUDEDIRS) $<
    133 
    134 $(OBJDIR)/dnssd_ipc.o:  ../mDNSShared/dnssd_ipc.c
    135 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -c -I. $(INCLUDEDIRS) $<
    136 
    137 $(OBJDIR)/srputil.o: ../Clients/srputil/srputil.c
    138 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -c -I. $(INCLUDEDIRS) $<
    139 
    140 $(OBJDIR)/ioloop-notls.o: ioloop.c
    141 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -DEXCLUDE_TLS -DEXCLUDE_DNSSD_TXN_SUPPORT -c  $<
    142 
    143 $(OBJDIR)/cti-proto-noioloop.o: cti-proto.c
    144 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -DNO_IOLOOP -c  $<
    145 
    146 $(OBJDIR)/cti-server.o: cti-server.c
    147 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -DNO_IOLOOP -c  $<
    148 
    149 $(OBJDIR)/dnssd-proxy.o: dnssd-proxy.c
    150 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -DSRP_FEATURE_DYNAMIC_CONFIGURATION=0 -DSRP_FEATURE_COMBINED_SRP_DNSSD_PROXY=0 -DTHREAD_BORDER_ROUTER=0 -DSRP_FEATURE_REPLICATION=0 -c  $<
    151 
    152 $(OBJDIR)/combined-dnssd-proxy.o: dnssd-proxy.c
    153 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -c  $<
    154 
    155 $(OBJDIR)/%.o:	%.c
    156 	$(CC) -o $@ $(SRPCFLAGS) $(CFLAGS) -c  $<
    157 
    158 -include .depfile-adv-ctl-server.o
    159 -include .depfile-advertising_proxy_services.o
    160 -include .depfile-combined-dnssd-proxy.o
    161 -include .depfile-config-parse.o
    162 -include .depfile-cti-proto-noioloop.o
    163 -include .depfile-cti-proto.o
    164 -include .depfile-cti-server.o
    165 -include .depfile-cti-services.o
    166 -include .depfile-dnssd_clientlib.o
    167 -include .depfile-dnssd_clientstub.o
    168 -include .depfile-dnssd_ipc.o
    169 -include .depfile-dnssd_clientlib.o
    170 -include .depfile-dnssd-proxy.o
    171 -include .depfile-dso.o
    172 -include .depfile-fromwire.o
    173 -include .depfile-hmac-mbedtls.o
    174 -include .depfile-ioloop-common.o
    175 -include .depfile-ioloop-notls.o
    176 -include .depfile-ioloop.o
    177 -include .depfile-keydump.o
    178 -include .depfile-posix.o
    179 -include .depfile-route.o
    180 -include .depfile-sign-mbedtls.o
    181 -include .depfile-srp-client.o
    182 -include .depfile-srp-filedata.o
    183 -include .depfile-srp-ioloop.o
    184 -include .depfile-srp-mdns-proxy.o
    185 -include .depfile-srp-parse.o
    186 -include .depfile-srp-replication.o
    187 -include .depfile-srputil.o
    188 -include .depfile-tls-mbedtls.o
    189 -include .depfile-towire.o
    190 -include .depfile-verify-mbedtls.o
    191 -include .depfile-wireutils.o
    192