chiark / gitweb /
First record and playback works.
[adns.git] / src / Makefile
1 #  This file is part of adns, which is Copyright (C) 1997, 1998 Ian Jackson
2 #  
3 #  This program is free software; you can redistribute it and/or modify
4 #  it under the terms of the GNU General Public License as published by
5 #  the Free Software Foundation; either version 2, or (at your option)
6 #  any later version.
7 #  
8 #  This program is distributed in the hope that it will be useful,
9 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #  GNU General Public License for more details.
12 #  
13 #  You should have received a copy of the GNU General Public License
14 #  along with this program; if not, write to the Free Software Foundation,
15 #  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
16
17 CC=gcc $(WARNS) $(WERROR) $(OPTIMISE) $(DEBUG) $(XCFLAGS)
18 DEBUG=-g
19 OPTIMISE=-O2
20 WARNS=  -Wall -Wmissing-prototypes -Wwrite-strings -Wstrict-prototypes \
21         -Wcast-qual -Wpointer-arith
22 WERROR=-Werror
23
24 HCPPFLAGS:= $(foreach F,                        \
25         gettimeofday select                     \
26         socket fcntl connect close              \
27         sendto recvfrom read write writev       \
28 , -D$F=H$F)
29
30 LIBOBJS=        types.o event.o query.o reply.o general.o setup.o transmit.o parse.o
31 HARNLOBJS=      $(addsuffix _d.o, $(basename $(LIBOBJS)))
32 ALLOBJS=        $(LIBOBJS) $(HARNLOBJS) dtest.o hrecord.o hplayback.o hcommon.o
33 AUTOCSRCS=      harness.h hrecord.c hcommon.c
34
35 TARGETS=        dtest hplayback hrecord
36
37 all:            $(TARGETS)
38
39 hrecord:        dtest.o hrecord.o hcommon.o $(HARNLOBJS)
40 hplayback:      dtest.o hplayback.o hcommon.o $(HARNLOBJS)
41
42 dtest:          dtest.o $(LIBOBJS)
43
44 %_d.o:          %.c
45                 $(CC) $(HCPPFLAGS) -c -g -o $@ $<
46
47 %::     %.m4 hmacros.i4 hsyscalls.i4
48         m4 -P $< >$@-a.new
49         sed -e 's/hm_comma/,/g; s/hm_squote/'\''/g; /^[  ]*$$/d' <$@-a.new >$@-b.new
50         @mv -f $@-b.new $@; rm -f $@-a.new
51
52 .PRECIOUS:      $(AUTOCSRCS)
53
54 clean:
55                 rm -f *.o 
56
57 realclean:      clean
58                 rm -f $(TARGETS) *~ ./#*# core *.orig *.rej
59
60 hrecord.o hcommon.o:    adns.h internal.h harness.h
61 $(HARNLOBJS):           adns.h internal.h
62 $(LIBOBJS):             adns.h internal.h
63 dtest.o:                adns.h