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