diff --git a/opal/mca/event/base/README.openmpi b/opal/mca/event/base/README.openmpi index 950d6676fe..1aa893afc1 100644 --- a/opal/mca/event/base/README.openmpi +++ b/opal/mca/event/base/README.openmpi @@ -38,31 +38,34 @@ compared to prior versions in the OPAL code base by replacing file-by-file edits with configuration logic. Thus, updating the included libevent code can generally be accomplished by: -1. svn delete the contents of the opal/event/libevent directory - --> We may want to do this via SVN 3rd party update. Not clear yet. +1. create a new opal/mca/event component for the updated version, using + a name "libeventxxx", where xxx = libevent version. For example, + libevent 2.0.7 => component libevent207 -2. unpack the new libevent code tarball in the opal/event/libevent directory - --> We may want to do this via SVN 3rd party update. Not clear yet. +2. create a subdirectory "libevent" in the new component and unpack the + new libevent code tarball into it. -3. restore the symbolic link: - cd libevent/m4 - ln -s ../../opal_libevent_configure.m4 opal_libevent_configure.m4 +3. copy the configure.m4, autogen.subdirs, component.c, moduule.c, + Makefile.am, and .h files from a prior version to the new component. + You will need to customize them for the new version, but they can + serve as a good template. In many cases, you will just have to update + the component name. -4. edit libevent/configure.in to add two lines: - (a) just before AC_PROG_LIBTOOL near the beginning of the file: - OPAL_CONFIGURE_LIBEVENT_OPTIONS - (b) just before AC_CONFIG_FILES at the very end: - OPAL_CONFIGURE_LIBEVENT_MODES +4. edit libevent/configure.in to add OMPI specific options and modes. + Use the corresponding file from a prior version as a guide. The + necessary changes are marked with "OMPI" comments. These changes + have been pushed upstream to libevent, and so edits may no longer + be required in the new version. -5. Merge the contents of opal_libevent_makefile.am with - libevent/Makefile.am. Depending upon what the Libevent developers - did for the update, this may well need to be done by hand. +5. Modify libevent/Makefile.am. Here again, you should use the file from + a prior version as an example. Hopefully, you can just use the file + without change - otherwise, the changes will have to be done by hand. + Required changes reflect the need for OMPI to turn "off" unused + subsystems such as http. These changes have been pushed upstream to + libevent, and so edits may no longer be required in the new version. -6. Edit libevent/configure.in and add the following after the - AM_INIT_AUTOMAKE line: - -# If Automake supports silent rules, enable them. -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - - This isn't critical, but it makes the compiler output MUCH - prettier (and consistent with OMPI). +6. in your new component Makefile.am, note that the libevent headers + are listed by name when WITH_INSTALL_HEADERS is given. This is required + to support the OMPI --with-devel-headers configure option. Please review + the list and update it to include all libevent headers for the new + version. diff --git a/opal/mca/event/libevent207/Makefile.am b/opal/mca/event/libevent207/Makefile.am index 25854048e1..272a593439 100644 --- a/opal/mca/event/libevent207/Makefile.am +++ b/opal/mca/event/libevent207/Makefile.am @@ -21,6 +21,44 @@ sources = \ # Conditionally install the header files if WANT_INSTALL_HEADERS +headers += libevent/event.h libevent/evutil.h libevent/util-internal.h \ + libevent/mm-internal.h libevent/ipv6-internal.h \ + libevent/strlcpy-internal.h libevent/evbuffer-internal.h \ + libevent/bufferevent-internal.h libevent/event-internal.h \ + libevent/evthread-internal.h libevent/defer-internal.h \ + libevent/minheap-internal.h libevent/log-internal.h \ + libevent/evsignal-internal.h libevent/evmap-internal.h \ + libevent/changelist-internal.h libevent/iocp-internal.h \ + libevent/ratelim-internal.h \ + libevent/WIN32-Code/event2/event-config.h \ + libevent/WIN32-Code/tree.h \ + libevent/compat/sys/queue.h \ + libevent/evhttp.h libevent/http-internal.h libevent/ht-internal.h \ + libevent/evrpc.h libevent/evrpc-internal.h \ + libevent/evdns.h libevent/include/event2/buffer_compat.h \ + libevent/include/event2/buffer.h \ + libevent/include/event2/bufferevent_compat.h \ + libevent/include/event2/bufferevent_ssl.h \ + libevent/include/event2/bufferevent_struct.h \ + libevent/include/event2/bufferevent.h \ + libevent/include/event2/dns_compat.h \ + libevent/include/event2/dns_struct.h \ + libevent/include/event2/event_compat.h \ + libevent/include/event2/event_struct.h \ + libevent/include/event2/event-config.h \ + libevent/include/event2/event.h \ + libevent/include/event2/http_compat.h \ + libevent/include/event2/http_struct.h \ + libevent/include/event2/http.h \ + libevent/include/event2/keyvalq_struct.h \ + libevent/include/event2/listener.h \ + libevent/include/event2/rpc_compat.h \ + libevent/include/event2/rpc_struct.h \ + libevent/include/event2/rpc.h \ + libevent/include/event2/tag_compat.h \ + libevent/include/event2/tag.h \ + libevent/include/event2/thread.h \ + libevent/include/event2/util.h opaldir = $(includedir)/openmpi/$(subdir) nobase_opal_HEADERS = $(headers) endif diff --git a/opal/mca/event/libevent207/configure.m4 b/opal/mca/event/libevent207/configure.m4 index 24ee60f460..cb935bdb16 100644 --- a/opal/mca/event/libevent207/configure.m4 +++ b/opal/mca/event/libevent207/configure.m4 @@ -167,6 +167,7 @@ EOF event_base_include_cppflags="-I$OMPI_TOP_SRCDIR/$file -I$OMPI_TOP_SRCDIR/$file/include" AS_IF([test "$OMPI_TOP_BUILDDIR" != "$OMPI_TOP_SRCDIR"], [event_base_include_cppflags="$event_base_include_cpp_flags -I$OMPI_TOP_BUILDDIR/$file/include"]) + WRAPPER_EXTRA_CPPFLAGS="$WRAPPER_EXTRA_CPPFLAGS "'-I${includedir}/openmpi/opal/mca/event/libevent207/libevent -I${includedir}/openmpi/opal/mca/event/libevent207/libevent/include' $1], [$2 OPAL_HAVE_WORKING_EVENTOPS=0])