32122d4e3ba0bb76d5bf62d43f1e557544405c76
[tedtools.git] / Makefile
1 CC=gcc
2 AR=ar rcv
3 RANLIB=ranlib
4 LD=ld -x -shared 
5
6 INCLUDE=-I.
7 CFLAGS=-Wall -g -O2 -pedantic -ansi -DASSERT_CORE -DHAVE_POLL_H -DHAVE_HSTRERROR
8
9 ifndef OS
10 OS=$(shell uname)
11 endif
12
13 ifeq ($(OS), FreeBSD)
14 CFLAGS+= -DHAVE_POLL_H
15 endif
16
17 ifeq ($(OS), Linux)
18 CFLAGS+= -DHAVE_SYS_POLL_H -D_GNU_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64
19 endif
20
21 LIB=-g -L. -ltedtools -lm
22
23 OBJS=tlog.o tmalloc.o tools.o prs_hmap.o sfxstr.o \
24         regis.o prs_inf.o shmem.o tcp.o udp.o connpool.o \
25         psort.o flatdb.o tbtree.o glist.o
26 PROGS=sfxtest hextest inftest kilter psortex flatdbtest \
27         tbtreetest gendata memtest glisttest
28
29 .SUFFIXES: .o.c
30
31 all: libtedtools.a $(PROGS)
32
33 $(PROGS): %: %.o
34         $(CC) -o $@ $< $(LIB)
35
36 $(PROGS): libtedtools.a
37
38 libtedtools.a: $(OBJS)
39         $(AR) $@ $?
40         $(RANLIB) $@
41
42 .c.o:
43         $(CC) $(CFLAGS) $(INCLUDE) -c $<
44
45
46 test: all
47         @[ -d results ] || mkdir results  
48         @[ -d diffs ] || mkdir diffs  
49         @[ -d temp ] || mkdir temp  
50         @for FILE in btree flatdb hex inf mem psort sfxmem glist ; do \
51                 echo -n $$FILE "        ........ " ; \
52                 if sh tests/$$FILE > results/$$FILE 2>results/$$FILE.errout && diff -c expected/$$FILE results/$$FILE > diffs/$$FILE ; then \
53                         echo ok ; \
54                 else \
55                         echo FAILED ; \
56                 fi ; \
57         done
58
59 clean:
60         rm -rf $(OBJS)
61         rm -rf $(PROGS) *.o
62         rm -rf libtedtools.a
63         rm -rf *core *gmon* nohup.out
64         rm -rf sfxtest.log BTREE
65         rm -rf results diffs temp
66