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