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