Makefile.in revision 106163
1#  Copyright (c) 1993, 1994, 1995, 1996
2# 	The Regents of the University of California.  All rights reserved.
3#
4#  Redistribution and use in source and binary forms, with or without
5#  modification, are permitted provided that: (1) source code distributions
6#  retain the above copyright notice and this paragraph in its entirety, (2)
7#  distributions including binary code include the above copyright notice and
8#  this paragraph in its entirety in the documentation or other materials
9#  provided with the distribution, and (3) all advertising materials mentioning
10#  features or use of this software display the following acknowledgement:
11#  ``This product includes software developed by the University of California,
12#  Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
13#  the University nor the names of its contributors may be used to endorse
14#  or promote products derived from this software without specific prior
15#  written permission.
16#  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17#  WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19#
20# @(#) $Header: /tcpdump/master/libpcap/Makefile.in,v 1.88 2001/01/18 04:05:12 guy Exp $ (LBL)
21
22#
23# Various configurable paths (remember to edit Makefile.in, not Makefile)
24#
25
26# Top level hierarchy
27prefix = @prefix@
28exec_prefix = @exec_prefix@
29# Pathname of directory to install the include files
30includedir = @includedir@
31# Pathname of directory to install the library
32libdir =  @libdir@
33# Pathname of directory to install the man page
34mandir = @mandir@
35
36# VPATH
37srcdir = @srcdir@
38VPATH = @srcdir@
39
40#
41# You shouldn't need to edit anything below.
42#
43
44CC = @CC@
45CCOPT = @V_CCOPT@
46INCLS = -I. @V_INCLS@
47DEFS = @DEFS@
48
49# Standard CFLAGS
50CFLAGS = $(CCOPT) $(INCLS) $(DEFS)
51
52INSTALL = @INSTALL@
53INSTALL_PROGRAM = @INSTALL_PROGRAM@
54INSTALL_DATA = @INSTALL_DATA@
55RANLIB = @RANLIB@
56
57#
58# Flex and bison allow you to specify the prefixes of the global symbols
59# used by the generated parser.  This allows programs to use lex/yacc
60# and link against libpcap.  If you don't have flex or bison, get them.
61#
62LEX = @V_LEX@
63YACC = @V_YACC@
64
65# Explicitly define compilation rule since SunOS 4's make doesn't like gcc.
66# Also, gcc does not remove the .o before forking 'as', which can be a
67# problem if you don't own the file but can write to the directory.
68.c.o:
69	@rm -f $@
70	$(CC) $(CFLAGS) -c $(srcdir)/$*.c
71
72PSRC =	pcap-@V_PCAP@.c
73CSRC =	pcap.c inet.c gencode.c optimize.c nametoaddr.c \
74	etherent.c savefile.c bpf_filter.c bpf_image.c bpf_dump.c
75GENSRC = scanner.c grammar.c version.c
76LIBOBJS = @LIBOBJS@
77
78SRC =	$(PSRC) $(CSRC) $(GENSRC)
79
80# We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
81# hack the extra indirection
82OBJ =	$(PSRC:.c=.o) $(CSRC:.c=.o) $(GENSRC:.c=.o) # $(LIBOBJS)
83HDR =	pcap.h pcap-int.h pcap-namedb.h pcap-nit.h pcap-pf.h \
84	ethertype.h gencode.h gnuc.h
85GENHDR = \
86	tokdefs.h
87
88TAGHDR = \
89	bpf/net/bpf.h
90
91TAGFILES = \
92	$(SRC) $(HDR) $(TAGHDR)
93
94CLEANFILES = $(OBJ) libpcap.a $(GENSRC) $(GENHDR) lex.yy.c
95
96all: libpcap.a
97
98libpcap.a: $(OBJ)
99	@rm -f $@
100	ar rc $@ $(OBJ)
101	$(RANLIB) $@
102
103scanner.c: $(srcdir)/scanner.l
104	@rm -f $@
105	$(LEX) -t $< > $$$$.$@; mv $$$$.$@ $@
106
107scanner.o: scanner.c tokdefs.h
108	$(CC) $(CFLAGS) -c scanner.c
109
110tokdefs.h: grammar.c
111grammar.c: $(srcdir)/grammar.y
112	@rm -f grammar.c tokdefs.h
113	$(YACC) -d $<
114	mv y.tab.c grammar.c
115	mv y.tab.h tokdefs.h
116
117grammar.o: grammar.c
118	@rm -f $@
119	$(CC) $(CFLAGS) -Dyylval=pcap_lval -c grammar.c
120
121version.o: version.c
122	$(CC) $(CFLAGS) -c version.c
123
124snprintf.o: $(srcdir)/../tcpdump/missing/snprintf.c
125	$(CC) $(CFLAGS) -o $@ -c $(srcdir)/../tcpdump/missing/snprintf.c
126
127version.c: $(srcdir)/VERSION
128	@rm -f $@
129	sed -e 's/.*/char pcap_version[] = "&";/' $(srcdir)/VERSION > $@
130
131bpf_filter.c: $(srcdir)/bpf/net/bpf_filter.c
132	rm -f bpf_filter.c
133	ln -s $(srcdir)/bpf/net/bpf_filter.c bpf_filter.c
134
135bpf_filter.o: bpf_filter.c
136	$(CC) $(CFLAGS) -c bpf_filter.c
137
138install:
139	[ -d $(DESTDIR)$(libdir) ] || \
140	    (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
141	$(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
142	$(RANLIB) $(DESTDIR)$(libdir)/libpcap.a
143	[ -d $(DESTDIR)$(includedir) ] || \
144	    (mkdir -p $(DESTDIR)$(includedir); chmod 755 $(DESTDIR)$(includedir))
145	$(INSTALL_DATA) $(srcdir)/pcap.h $(DESTDIR)$(includedir)/pcap.h
146	$(INSTALL_DATA) $(srcdir)/pcap-namedb.h \
147	    $(DESTDIR)$(includedir)/pcap-namedb.h
148	[ -d $(DESTDIR)$(includedir)/net ] || \
149	    (mkdir -p $(DESTDIR)$(includedir)/net; chmod 755 $(DESTDIR)$(includedir)/net)
150	$(INSTALL_DATA) $(srcdir)/bpf/net/bpf.h \
151	    $(DESTDIR)$(includedir)/net/bpf.h
152	[ -d $(DESTDIR)$(mandir)/man3 ] || \
153		(mkdir -p $(DESTDIR)$(mandir)/man3; chmod 755 $(DESTDIR)$(mandir)/man3)
154	$(INSTALL_DATA) $(srcdir)/pcap.3 \
155	    $(DESTDIR)$(mandir)/man3/pcap.3
156
157uninstall:
158	rm -f $(DESTDIR)$(libdir)/libpcap.a
159	rm -f $(DESTDIR)$(includedir)/pcap.h
160	rm -f $(DESTDIR)$(includedir)/pcap-namedb.h
161	rm -f $(DESTDIR)$(includedir)/net/bpf.h
162	rm -f $(DESTDIR)$(mandir)/man3/pcap.3
163
164clean:
165	rm -f $(CLEANFILES)
166
167distclean:
168	rm -f $(CLEANFILES) Makefile config.cache config.log config.status \
169	    config.h gnuc.h os-proto.h net bpf_filter.c stamp-h stamp-h.in
170
171tags: $(TAGFILES)
172	ctags -wtd $(TAGFILES)
173
174tar:
175	@cwd=`pwd` ; dir=`basename $$cwd` ; name=libpcap-`cat VERSION` ; \
176	    list="" ; tar="tar chf" ; \
177	    for i in `cat FILES` ; do list="$$list $$name/$$i" ; done; \
178	    echo \
179	    "rm -f ../$$name; ln -s $$dir ../$$name" ; \
180	     rm -f ../$$name; ln -s $$dir ../$$name ; \
181	    echo \
182	    "(cd .. ; $$tar - [lots of files]) | compress > /tmp/$$name.tar.Z" ; \
183	     (cd .. ; $$tar - $$list) | compress > /tmp/$$name.tar.Z ; \
184	    echo \
185	    "rm -f ../$$name" ; \
186	     rm -f ../$$name
187
188depend:	$(GENSRC) bpf_filter.c
189	./mkdep -c $(CC) $(DEFS) $(INCLS) $(SRC)
190