Hi, I'm presently trying to add lustre support to open-mpi's romio using this patch http://ft.ornl.gov/projects/io/src/adio-lustre-mpich2-v02.patch.
It basically applies, only a few C files have been renamed in open-mpi, but the autotools build system gives me headaches. Lets look into romio/romio/adio/Makefile.am: e.g. if BUILD_XFS XFS_DIR = ad_xfs XFS_LIB = ad_xfs/libadio_xfs.la else XFS_DIR = XFS_LIB = endif Fine, adding a similar entry for lustre is easy, but now we need to define BUILD_XFS. So where does this come from? There is romio/romio/Makefile.in BUILD_UFS_FALSE = @BUILD_UFS_FALSE@ BUILD_UFS_TRUE = @BUILD_UFS_TRUE@ BUILD_XFS_FALSE = @BUILD_XFS_FALSE@ BUILD_XFS_TRUE = @BUILD_XFS_TRUE@ CC = @CC@ But Makefile.in is auto-generated from Makefile.am, so lets look into Makefile.am: # Copyright ... include $(top_srcdir)/Makefile.options SUBDIRS = include adio mpi-io DIST_SUBDIRS = $(SUBDIRS) doc util EXTRA_DIST = README COPYRIGHT README_OMPI noinst_LTLIBRARIES = libromio_dist.la libromio_dist_la_SOURCES = libromio_dist_la_LIBADD = \ adio/libadio.la \ mpi-io/libmpi-io.la \ mpi-io/glue/openmpi/libglue.la @ROMIO_LIBLIST@ libromio_dist_la_DEPENDENCIES = \ adio/libadio.la \ mpi-io/libmpi-io.la \ mpi-io/glue/openmpi/libglue.la Not a single line about any file system. Grepping further for BUILD_XFS_FALSE doesn't return any results. So maybe its in $(top_srcdir)/Makefile.options. bernd@bathl openmpi-1.2.3>find . -name 'Makefile.options' ./ompi/mca/io/romio/romio/Makefile.options ./config/Makefile.options ./config/Makefile.options hardly doesn't qualify as $(top_srcdir), so it must be ./ompi/mca/io/romio/romio/Makefile.options: # Copyright AUTOMAKE_OPTIONS = foreign dist-bzip2 # $(top_ompi_srcdir) - mca_base_param.h # $(top_ompi_srcdir)/opal/include - opal_config_bottom.h # $(top_ompi_builddir)/opal/include - opal_config.h # $(top_ompi_builddir)/ompi/include - mpi.h # $(top_srcdir)/include - vpath support # $(top_srcdir)/adio/include - vpath support AM_CPPFLAGS = \ -DOMPI_BUILDING=1 \ -I$(top_ompi_srcdir) \ -I$(top_ompi_srcdir)/opal/include \ -I$(top_ompi_builddir)/opal/include \ -I$(top_ompi_builddir)/ompi/include \ -I$(top_srcdir)/include \ -I$(top_srcdir)/adio/include Not a single line about filesystems, *grumble*. Now lets assume I eventually find the proper autotools files to patch lustre support in, how can I distribute that patch? In principle I would have to distribute a patch that also patches the auto-generated configure, automake.in, etc files. But even if romio won't change on the next release of open-mpi, the autotools files probably will (and even only because they have been created with a newer autotools version). You might already assume it, but I really hate this stupid autotools build system, I'm strongly supporting people who call it autohell. Any plans for a sane build system? Thanks, Bernd