summaryrefslogtreecommitdiff
path: root/import_libevent
blob: 6eb4a8dab56e08a6a697104c7927bd9505966f91 (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/bin/sh

if ! [ -e evbuffer.c ]; then
   echo do not run this programm unless you know what you are doing
   exit 1
fi

# this program combines libev and libevent into a single package

cvs update -AdP libev
rsync -avP libev/. . --exclude CVS

rm -f configure.ac

LE=../libevent-1.4.0-beta

cp $LE/evdns.h .

perl -ne '
   s/\s+char buf\[64\];/\tchar buf[96];/;
   if (/#include "event.h"/) {
      print "#ifndef EV_STANDALONE\n$_#endif\n";
      next;
   }
   if (/#include "misc.h"/) {
      print "#ifndef EV_STANDALONE\n$_#endif\n";
      next;
   }
   if (/#include "(unistd.h|sys\/time.h)"/) {
      print "#ifndef WIN32\n$_#endif\n";
      next;
   }
   next if /#include "log.h"/;

   print;
' <$LE/evdns.c >evdns.c

cp $LE/autogen.sh .
cp $LE/epoll_sub.c .
cp $LE/evbuffer.c .
cp $LE/buffer.c .
cp $LE/evhttp.h .
cp $LE/evutil.h .
cp $LE/evutil.c .
cp $LE/event-config.h .
cp $LE/event-internal.h .
cp $LE/evrpc.h .
cp $LE/evrpc.c .
cp $LE/evrpc-internal.h .
cp $LE/http.c .
cp $LE/event_tagging.c .
cp $LE/http-internal.h .
cp $LE/strlcpy-internal.h .
cp $LE/log.c .
cp $LE/log.h .
cp $LE/strlcpy.c .
rsync -a $LE/WIN32* $LE/sample $LE/test $LE/compat . --del
#rename 's/libevent/libev/' WIN32-Prj/lib*
cp $LE/aclocal.m4 .
#cp $LE/acconfig.h .
cp $LE/config.h.in .
cp $LE/event_rpcgen.py .
cp $LE/*.3 .

#perl -i -pe 's/libevent/libev/g' sample/Makefile.am
#perl -i -pe 's/libevent/libev/g' test/Makefile.am

perl -i -pe 's/#include <event.h>$/#include "event.h"/' test/*.c

perl -i -ne '
   next if /"event-internal.h"/;
   s/base\d?->sig.ev_signal_added/0/;
   s/base\d?->sig.ev_signal_pair\[0\]/-1/;
   s/base->sig.evsignal_caught/0/;
   next if /^\ttest_signal_(dealloc|pipeloss|switchbase|assert|restore)\(\)/;
   next if /^\ttest_simplesignal\(\)/; # non-default-loop
   next if /^\ttest_immediatesignal\(\)/; # non-default-loop
   next if /test_priorities\(\d\)/;
   print;
' test/regress.c

perl -ne '
   s/\bmin_heap.h\b//g;
   s/\bsignal.c\b//g;
   s/\bevport.c\b//g;
   s/\bkqueue.c\b//g;
   s/\bdevpoll.c\b//g;
   s/\brtsig.c\b//g;
   s/\bselect.c\b//g;
   s/\bpoll.c\b//g;
   s/\bepoll.c\b//g;
   s/\bepoll_sub.c\b//g;
   s/\bevent-internal.h\b//g;
   s/\bevsignal.h\b//g;
   s/^(man_MANS\s*=)/$1 ev.3 /;
   s/^(EXTRA_DIST\s*=)/$1 libev.m4 ev.h ev_vars.h ev_wrap.h event_compat.h ev++.h ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c ev.3 ev.pod /;
   s/^(include_HEADERS\s*=)/$1 ev.h event_compat.h ev++.h /;
   s/^(CORE_SRC\s*=)/$1 ev.c /;
   s/^(SYS_LIBS\s*=)/$1 -lm /;
   #s/libevent/libev/g;
   print;
' <$LE/Makefile.am >Makefile.am

perl -ne '
   #s/-Wall/-Wall -Wno-comment -Wunused-function -Wno-unused-value/;
   s/-Wall//g;
   #s/libevent/libev/g;
   #VERSION
   s/AM_INIT_AUTOMAKE\s*\(.*,(.*)\)/AM_INIT_AUTOMAKE(libevent-$1+libev,1.86)/;
   s/AC_LIBOBJ\(select\)/: ;/g;
   s/AC_LIBOBJ\(poll\)/: ;/g;
   s/AC_LIBOBJ\(kqueue\)/: ;/g;
   s/AC_LIBOBJ\(epoll\)/: ;/g;
   s/AC_LIBOBJ\(devpoll\)/: ;/g;
   s/AC_LIBOBJ\(evport\)/: ;/g;
   s/AC_LIBOBJ\(signal\)/: ;/g;
   s/AC_LIBOBJ\(rtsig\)/: ;/g;
   print "m4_include([libev.m4])\n" if /^AC_OUTPUT/;
   print;
' <$LE/configure.in >configure.in

aclocal-1.7
automake-1.7 --add-missing
autoconf
autoheader
libtoolize
CC="ccache gcc" ./configure --prefix=/opt/libev --disable-shared "$@"