1#
2# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
3# Use is subject to license terms.
4#
5
6#  Copyright (c) 1988, 1989, 1990, 1991, 1992, 1995, 1996, 1997
7#	The Regents of the University of California.  All rights reserved.
8#
9#  Redistribution and use in source and binary forms, with or without
10#  modification, are permitted provided that: (1) source code distributions
11#  retain the above copyright notice and this paragraph in its entirety, (2)
12#  distributions including binary code include the above copyright notice and
13#  this paragraph in its entirety in the documentation or other materials
14#  provided with the distribution, and (3) all advertising materials mentioning
15#  features or use of this software display the following acknowledgement:
16#  ``This product includes software developed by the University of California,
17#  Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
18#  the University nor the names of its contributors may be used to endorse
19#  or promote products derived from this software without specific prior
20#  written permission.
21#  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
22#  WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
23#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
24#
25
26PROG=		traceroute
27OBJS=		traceroute.o traceroute_aux.o traceroute_aux6.o
28SRCS=		$(OBJS:.o=.c)
29
30include	../../../Makefile.cmd
31
32$(ROOTUSRSBIN)/traceroute	:=	FILEMODE= 04555
33
34# Traceroute uses the ancillary data feature which is available only through
35# UNIX 98 standards version of Socket interface. This interface is supposed to
36# be accessed by -lxnet. In addition -lsocket is used to
37# capture new not-yet-standard interfaces. Someday -lxnet alone should be enough
38# when IPv6 inspired new interfaces are part of standards.
39LDLIBS +=	-lxnet -lsocket -linetutil
40
41# These #defines are required to use UNIX 98 interfaces
42CPPFLAGS += -D_XOPEN_SOURCE=500 -D__EXTENSIONS__
43
44#
45# Setting the above defines to use the UNIX98 ancillary data feature
46# causes lint to output warnings about lint library declarations
47# conflicting with those in the header files. Since we need these
48# features, the best course of action is to switch the types of the
49# resulting warnings off when running lint.
50#
51LINTFLAGS +=	-erroff=E_FUNC_DECL_VAR_ARG2 -erroff=E_INCONS_ARG_DECL2 \
52		-erroff=E_INCONS_ARG_USED2 -erroff=E_INCONS_VAL_TYPE_DECL2
53
54CERRWARN +=	$(CNOWARN_UNINIT)
55CERRWARN +=	-_gcc=-Wno-clobbered
56
57.KEEP_STATE:
58
59all:	$(PROG)
60
61$(PROG): $(OBJS)
62	$(LINK.c) -o $@ $(OBJS) $(LDLIBS)
63	$(POST_PROCESS)
64
65install: all $(ROOTUSRSBINPROG)
66
67clean:
68	$(RM) $(OBJS)
69
70lint:	lint_SRCS
71
72include ../../../Makefile.targ
73