Hi,

I'm using libevent in an embedded situation. Unfortnately, the
toolchain is gcc-2.95.3 based. Also, I do my builds using VPATH builds
(split source and objects).

A patch follows to support VPATH builds (Makefile.am and
event_rpcgen.py) and gcc-2.95.3 (test/regress*). I haven't included
the post automake Makefile.in's in this patch.  I also removed
test/regress.gen.* from my tree since those are generated but that
might not be what you want.

-- 
Joel Martin (kanaka)


Index: libevent/test/Makefile.am
===================================================================
--- libevent/test/Makefile.am   (revision 27501)
+++ libevent/test/Makefile.am   (working copy)
@@ -1,8 +1,8 @@
 AUTOMAKE_OPTIONS = foreign no-dependencies
 
-LDADD = ../libevent.la
+LDADD = $(top_builddir)/libevent.la
 CPPFPLAGS = -I.. 
-CFLAGS = -I../compat @CFLAGS@
+CFLAGS = -I$(top_srcdir)/compat @CFLAGS@
 
 EXTRA_DIST = regress.rpc
 
@@ -18,7 +18,7 @@
 bench_SOURCES = bench.c
 
 regress.gen.c regress.gen.h: regress.rpc
-       ../event_rpcgen.py regress.rpc || echo "No Python installed"
+       $(top_srcdir)/event_rpcgen.py $< || echo "No Python installed"
 
 DISTCLEANFILES = *~
 CLEANFILES = regress.gen.h regress.gen.c
@@ -28,4 +28,4 @@
 verify: test
        @./test.sh
 
-bench test-init test-eof test-weof test-time: ../libevent.la
+bench test-init test-eof test-weof test-time: $(top_builddir)/libevent.la
Index: libevent/Makefile.am
===================================================================
--- libevent/Makefile.am        (revision 27501)
+++ libevent/Makefile.am        (working copy)
@@ -45,7 +45,7 @@
 
 include_HEADERS = event.h evhttp.h evdns.h
 
-INCLUDES = -Icompat $(SYS_INCLUDES)
+INCLUDES = -I$(srcdir)/compat $(SYS_INCLUDES)
 
 man_MANS = event.3 evdns.3
 
Index: libevent/event_rpcgen.py
===================================================================
--- libevent/event_rpcgen.py    (revision 27501)
+++ libevent/event_rpcgen.py    (working copy)
@@ -7,6 +7,7 @@
 
 import sys
 import re
+import os
 
 #
 _NAME = "event_rpcgen.py"
@@ -1348,12 +1349,13 @@
     entities = Parse(fp)
     fp.close()
 
-    header_file = '.'.join(filename.split('.')[:-1]) + '.gen.h'
-    impl_file = '.'.join(filename.split('.')[:-1]) + '.gen.c'
+    rel_filename = os.path.split(filename)[1]
+    header_file = '.'.join(rel_filename.split('.')[:-1]) + '.gen.h'
+    impl_file = '.'.join(rel_filename.split('.')[:-1]) + '.gen.c'
 
     print >>sys.stderr, '... creating "%s"' % header_file
     header_fp = open(header_file, 'w')
-    print >>header_fp, HeaderPreamble(filename)
+    print >>header_fp, HeaderPreamble(rel_filename)
 
     # Create forward declarations: allows other structs to reference
     # each other
@@ -1364,12 +1366,12 @@
     for entry in entities:
         entry.PrintTags(header_fp)
         entry.PrintDeclaration(header_fp)
-    print >>header_fp, HeaderPostamble(filename)
+    print >>header_fp, HeaderPostamble(rel_filename)
     header_fp.close()
 
     print >>sys.stderr, '... creating "%s"' % impl_file
     impl_fp = open(impl_file, 'w')
-    print >>impl_fp, BodyPreamble(filename)
+    print >>impl_fp, BodyPreamble(rel_filename)
     for entry in entities:
         entry.PrintCode(impl_fp)
     impl_fp.close()
Index: libevent/test/regress_http.c
===================================================================
--- libevent/test/regress_http.c        (revision 27501)
+++ libevent/test/regress_http.c        (working copy)
@@ -125,13 +125,14 @@
 http_readcb(struct bufferevent *bev, void *arg)
 {
        const char *what = "This is funny";
+        int done;
 
        event_debug(("%s: %s\n", __func__, EVBUFFER_DATA(bev->input)));
        
        if (evbuffer_find(bev->input, what, strlen(what)) != NULL) {
                struct evhttp_request *req = evhttp_request_new(NULL, NULL);
                req->kind = EVHTTP_RESPONSE;
-               int done = evhttp_parse_lines(req, bev->input);
+               done = evhttp_parse_lines(req, bev->input);
 
                if (done == 1 &&
                    evhttp_find_header(req->input_headers,
@@ -163,9 +164,10 @@
 void
 http_basic_cb(struct evhttp_request *req, void *arg)
 {
+       struct evbuffer *evb;
        event_debug((stderr, "%s: called\n", __func__));
 
-       struct evbuffer *evb = evbuffer_new();
+       evb = evbuffer_new();
        evbuffer_add_printf(evb, "This is funny");
 
        evhttp_send_reply(req, HTTP_OK, "Everything is fine", evb);
@@ -355,6 +357,8 @@
 void
 http_post_cb(struct evhttp_request *req, void *arg)
 {
+       struct evbuffer *evb;
+
        event_debug((stderr, "%s: called\n", __func__));
 
        /* Yes, we are expecting a post request */
@@ -377,7 +381,7 @@
                exit(1);
        }
        
-       struct evbuffer *evb = evbuffer_new();
+       evb = evbuffer_new();
        evbuffer_add_printf(evb, "This is funny");
 
        evhttp_send_reply(req, HTTP_OK, "Everything is fine", evb);
Index: libevent/test/regress.c
===================================================================
--- libevent/test/regress.c     (revision 27501)
+++ libevent/test/regress.c     (working copy)
@@ -485,9 +485,11 @@
 
 void
 test_evbuffer(void) {
+       struct evbuffer *evb;
+
        setup_test("Evbuffer: ");
 
-       struct evbuffer *evb = evbuffer_new();
+       evb = evbuffer_new();
 
        evbuffer_add_printf(evb, "%s/%d", "hello", 1);
 

_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to