1 # 2 # 3 # Copyright 2009 Sun Microsystems, Inc. All rights reserved. 4 # Use is subject to license terms. 5 # 6 # Copyright (c) 2018, Joyent, Inc. 7 8 ROUTEDPROG= in.routed 9 ROUTEDOBJS= common.o if.o input.o main.o output.o parms.o radix.o \ 10 rdisc.o table.o trace.o 11 ROUTEDSRCS= $(ROUTEDOBJS:.o=.c) 12 RTQUERYPROG= rtquery 13 RTQUERYOBJS= common.o rtquery.o 14 RTQUERYSRCS= $(RTQUERYOBJS:.o=.c) 15 POFILEOBJS= $(ROUTEDOBJS) $(RTQUERYOBJS) 16 17 PROG= $(ROUTEDPROG) $(RTQUERYPROG) 18 SRCS= $(ROUTEDSRCS) $(RTQUERYSRCS) 19 20 MANIFEST= route.xml 21 SVCMETHOD= svc-route 22 23 include ../../../Makefile.cmd 24 25 ROOTMANIFESTDIR= $(ROOTSVCNETWORKROUTING) 26 27 # 28 # in.routed uses ancillary data features available through 29 # the Open Group's Networking Services standard. The following 30 # pre-processor definitions enable these features. 31 # 32 _D_XOPEN_EXTN = -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ 33 34 # Turning on __EXTENSIONS__ breaks lint, and we need __EXTENSIONS__. 35 # This is really a lint problem, so around the breakage. 36 LINTFLAGS += -erroff=E_FUNC_DECL_VAR_ARG2 -erroff=E_INCONS_VAL_TYPE_DECL2 \ 37 -erroff=E_INCONS_ARG_DECL2 -erroff=E_INCONS_ARG_USED2 38 39 CPPFLAGS += $(_D_XOPEN_EXTN) 40 CFLAGS += $(CCVERBOSE) 41 CERRWARN += -_gcc=-Wno-parentheses 42 CERRWARN += -_gcc=-Wno-uninitialized 43 # not linted 44 SMATCH=off 45 46 LDLIBS += -lxnet -lmd -lsocket 47 CLEAN_FILES += $(ROUTEDOBJS) $(RTQUERYOBJS) 48 CLOBBERFILES += $(ROUTEDPROG) $(RTQUERYPROG) 49 # 50 # Message catalog 51 # 52 POFILE= in.routed.po 53 POFILES= $(POFILEOBJS:.o=.po) 54 # 55 $(ROUTEDPROG):= LDLIBS += -lkstat 56 lint := LDLIBS += -lkstat 57 58 # This needs to be done because of SPARC/x86 differences. On x86, 59 # double has required alignment of only 4 bytes, but on SPARC it's 8 60 # bytes. This means that sockaddr_in can be casted to 61 # sockaddr_storage without complaint on x86, but requires a 62 # suppression directive on SPARC. 63 LINTFLAGS += -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED 64 65 CTFCONVERT_HOOK = && $(CTFCONVERT_O) 66 CTFMERGE_HOOK = && $(CTFMERGE) -L VERSION -o $@ $(ROUTEDOBJS) 67 $(ROUTEDOBJS) := CFLAGS += $(CTF_FLAGS) 68 $(RTQUERYOBJS) := CFLAGS += $(CTF_FLAGS) 69 70 .KEEP_STATE: 71 72 .PARALLEL: $(ROUTEDPROG) $(RTQUERYOBJS) 73 74 all: $(PROG) 75 76 $(POFILE): $(POFILES) 77 $(RM) $@ 78 cat $(POFILES) > $@ 79 80 $(ROUTEDPROG): $(ROUTEDOBJS) 81 $(LINK.c) -o $@ $(ROUTEDOBJS) $(LDLIBS) $(CTFMERGE_HOOK) 82 $(POST_PROCESS) 83 84 $(RTQUERYPROG): $(RTQUERYOBJS) 85 $(LINK.c) -o $@ $(RTQUERYOBJS) $(LDLIBS) -lresolv $(CTFMERGE_HOOK) 86 $(POST_PROCESS) 87 88 lint: 89 $(LINT.c) $(ROUTEDSRCS) $(LDLIBS) 90 $(LINT.c) $(RTQUERYSRCS) $(LDLIBS) 91 92 install: all $(ROOTUSRSBINPROG) $(ROOTMANIFEST) $(ROOTSVCMETHOD) 93 94 check: $(CHKMANIFEST) 95 96 clean: 97 $(RM) $(CLEAN_FILES) 98 99 include ../../../Makefile.targ