blob: efdaa29fa647eac6c6cded2983c9f61cfb3ab7ea (
plain)
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
97
98
|
PERHAPS64 := $(shell uname -m | perl -ne "print /64/ ? '64' : '';")
LIB = /lib$(PERHAPS64)
ifeq ($(PERHAPS64), "64")
FPIC=
else
FPIC=-fPIC
endif
ifndef PREFIX
PREFIX=/opt/rosx
endif
PCREINC = `pcre-config --cflags`
PCRELIB = `pcre-config --libs`
CASESENSITIVE = "yes"
ifeq ($(CASESENSITIVE), "no")
PCRE_OPT=PCRE_CASELESS
REGCOMP_OPT=REG_ICASE
else
PCRE_OPT=0
REGCOMP_OPT=REG_EXTENDED
endif
REGEXP= -DUSE_PCRE_REGEX -DPCRE_OPT=$(PCRE_OPT)
OBJ = ivyloop.o timer.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o
CC=gcc
LIBTOOL=ar q # linux and solaris
CFLAGS = -g -Wall $(FPIC)
TARGETS = ivyprobe ivyperf ivythroughput
# ------------------------------------------------------------------------------------------
.c.o:
$(CC) $(CFLAGS) -c $*.c
.cpp.o:
$(CPP) $(CFLAGS) -c $*.cpp
all: static-libs commands shared-libs
static-libs: libivy.a
shared-libs: libivy.dylib
commands: $(TARGETS)
ivybind.o: ivybind.c
$(CC) -c $(CFLAGS) $(REGEXP) $(PCREINC) ivybind.c
libivy.a: $(OBJ)
rm -f $@
$(LIBTOOL) $@ $(OBJ)
libivy.dylib: $(OBJ)
$(CC) -dynamiclib -o $@ $(OBJ) $(PCRELIB)
ivyprobe: ivyprobe.o libivy.a
$(CC) $(CFLAGS) -o $@ ivyprobe.o -L. -livy $(PCRELIB) $(EXTRALIB)
ivythroughput: ivythroughput.o libivy.a
$(CPP) $(CFLAGS) $(PCREINC) -o $@ ivythroughput.o -L. -livy -lpcrecpp $(PCRELIB) $(EXTRALIB)
ivyperf: ivyperf.o libivy.a
$(CC) $(CFLAGS) -o $@ ivyperf.o -L. -livy $(PCRELIB) $(EXTRALIB)
# ------------------------------------------------------------------------------------------
installlibs: static-libs shared-libs
test -d $(DESTDIR)$(PREFIX)$(LIB) || mkdir -p $(DESTDIR)$(PREFIX)$(LIB)
install -m644 libivy.a $(DESTDIR)$(PREFIX)$(LIB)
install -m644 libivy.dylib $(DESTDIR)$(PREFIX)$(LIB)
includes:
test -d $(DESTDIR)$(PREFIX)/include/Ivy || mkdir -p $(DESTDIR)$(PREFIX)/include/Ivy
install -m644 ivy.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 ivybind.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 ivybuffer.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 ivychannel.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 ivydebug.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 ivyloop.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 ivysocket.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 list.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 timer.h $(DESTDIR)$(PREFIX)/include/Ivy/
install -m644 version.h $(DESTDIR)$(PREFIX)/include/Ivy/
installbins: commands
test -d $(DESTDIR)$(PREFIX)/bin || mkdir -p $(DESTDIR)$(PREFIX)/bin
install -m755 ivyprobe $(DESTDIR)$(PREFIX)/bin
install -m755 ivyperf $(DESTDIR)$(PREFIX)/bin
install: installlibs installbins includes
# ------------------------------------------------------------------------------------------
clean:
-rm -f $(TARGETS) *.o *.a *.dylib *.dylib.* *~
|