File: Makefile

package info (click to toggle)
fungw 1.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,268 kB
  • sloc: ansic: 24,257; makefile: 500; sh: 32; awk: 9; perl: 8; tcl: 7; javascript: 7; ruby: 7; python: 6
file content (96 lines) | stat: -rw-r--r-- 2,386 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# use -DGENHT_WANT_INLINE to turn half of the API into static inline functions
PREFIX=/usr
INCDIR=$(install_root)$(DESTDIR)$(PREFIX)/include/genht
LIBDIR=$(install_root)$(DESTDIR)$(PREFIX)/lib

HOSTCC = $(CC)

VER_MAJOR=1
VER_MINOR=1
VER_PATCH=3
VER=$(VER_MAJOR).$(VER_MINOR).$(VER_PATCH)

CFLAGS=-g $(GENHT_CFLAGS)
LDFLAGS=$(GENHT_LDFLAGS)

BIN=mainsi
OBJS=htss.o htsp.o htsi.o htip.o htpp.o htpi.o hash.o siphash24.o
LIBSO0=libgenht.so
LIBSO=libgenht.so.$(VER)
LIBSO1=libgenht.so.$(VER_MAJOR)
LIBA=libgenht.a

all: version.h $(BIN) $(OBJS) $(LIBA) $(LIBSO)

clean:
	-rm $(BIN) $(OBJS) $(LIBA) $(LIBSO) genht_std.so genht_std.a version.h ver_edit mainsi.o mainsi.out

.SUFFIXES:
.SUFFIXES: .o .c

.c.o:
	$(CC) -o $@ -c -fPIC $< $(CFLAGS)

mainsi: mainsi.o htsi.o
	$(CC) -o $@ mainsi.o htsi.o $(LDFLAGS)

$(LIBSO): $(OBJS)
	$(CC) $(LDFLAGS) -shared -dynamic -rdynamic -o $@ $(OBJS)

$(LIBA): $(OBJS)
	ar rvu $@ $(OBJS)
	-ar s $@
	-ranlib $@

# for compatibility
genht_std.so: $(LIBSO)
	ln -s $(LIBSO) genht_std.so

# for compatibility
genht_std.a: $(LIBA)
	ln -s $(LIBA) genht_std.a

version.h: version.h.in ver_edit
	./ver_edit $(VER_MAJOR) $(VER_MINOR) $(VER_PATCH) < version.h.in > version.h

ver_edit: ver_edit.c
	$(HOSTCC) -o $@ $(CFLAGS) ver_edit.c

install_:
	mkdir -p $(INCDIR) $(LIBDIR)
	$(CP) `pwd`/hash.h $(INCDIR)/hash.h
	$(CP) `pwd`/siphash24.h $(INCDIR)/siphash24.h
	$(CP) `pwd`/ht.h $(INCDIR)/ht.h
	$(CP) `pwd`/ht.c $(INCDIR)/ht.c
	$(CP) `pwd`/version.h $(INCDIR)/version.h
	$(CP) `pwd`/ht_inlines.h $(INCDIR)/ht_inlines.h
	$(CP) `pwd`/ht_utils.h $(INCDIR)/ht_utils.h
	$(CP) `pwd`/htip.h $(INCDIR)/htip.h
	$(CP) `pwd`/htpi.h $(INCDIR)/htpi.h
	$(CP) `pwd`/htsi.h $(INCDIR)/htsi.h
	$(CP) `pwd`/htsp.h $(INCDIR)/htsp.h
	$(CP) `pwd`/htss.h $(INCDIR)/htss.h
	$(CP) `pwd`/htpp.h $(INCDIR)/htpp.h
	$(CP) `pwd`/$(LIBSO) $(LIBDIR)/$(LIBSO)
	$(CP) `pwd`/$(LIBA) $(LIBDIR)/$(LIBA)

uninstall:
	rm -rf $(INCDIR)
	rm $(LIBDIR)/$(LIBSO) $(LIBDIR)/$(LIBA) $(LIBDIR)/$(LIBSO1) $(LIBDIR)/$(LIBSO0)

install:
	$(MAKE) install_ CP="cp"
	-@rm $(LIBDIR)/$(LIBSO1) 2>/dev/null
	ln -s $(LIBSO) $(LIBDIR)/$(LIBSO1)
	-ln -s $(LIBSO) $(LIBDIR)/$(LIBSO0)

linstall:
	$(MAKE) install_ CP="ln -s"
	-@rm $(LIBDIR)/$(LIBSO1) 2>/dev/null
	ln -s $(LIBSO) $(LIBDIR)/$(LIBSO1)
	-ln -s $(LIBSO) $(LIBDIR)/$(LIBSO0)

test: mainsi
	@./mainsi > mainsi.out
	@diff mainsi.ref mainsi.out
	@echo "*** QC pass ***"