diff --git a/IOR.vcproj b/IOR.vcproj deleted file mode 100644 index c075e0f..0000000 --- a/IOR.vcproj +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Makefile b/Makefile deleted file mode 100644 index 29497a1..0000000 --- a/Makefile +++ /dev/null @@ -1,32 +0,0 @@ -#/*****************************************************************************\ -#* * -#* Copyright (c) 2003, The Regents of the University of California * -#* See the file COPYRIGHT for a complete copyright notice and license. * -#* * -#******************************************************************************* -#* -#* CVS info: -#* $RCSfile: Makefile,v $ -#* $Revision: 1.1.1.1 $ -#* $Date: 2007/10/15 23:36:54 $ -#* $Author: rklundt $ -#* -#* Purpose: -#* Make IOR executable. -#* -#* gmake posix -- IOR with only POSIX interface -#* gmake mpiio -- IOR with only POSIX and MPIIO interfaces -#* gmake hdf5 -- IOR with POSIX, MPIIO, and HDF5 interfaces -#* gmake ncmpi -- IOR with POSIX, MPIIO, and NCMPI interfaces -#* gmake all -- IOR with POSIX, MPIIO, HDF5, and NCMPI interfaces -#* gmake clean -- remove executable and object files -#* -#\*****************************************************************************/ - -SRC = ./src/C - -posix: - (cd $(SRC) && $(MAKE) posix) - -%: - (cd $(SRC) && $(MAKE) $@) diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..af437a6 --- /dev/null +++ b/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = src diff --git a/README b/README deleted file mode 100644 index 61b256d..0000000 --- a/README +++ /dev/null @@ -1,11 +0,0 @@ -/******************************************************************************\ -* * -* Copyright (c) 2003, The Regents of the University of California * -* See the file COPYRIGHT for a complete copyright notice and license. * -* * -\******************************************************************************/ - -This collection of files contains the source (in /src) and Makefile for -building IOR. In /scripts, there are scripts for simulating I/O behavior of -various parallel applications. For more information, please read the User -Guide. diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..169024e --- /dev/null +++ b/bootstrap @@ -0,0 +1,11 @@ +#!/bin/sh + +set -x +aclocal -I config || exit 1 +#libtoolize --automake --copy --force || exit 1 +autoheader || exit 1 +automake --add-missing --copy --force-missing --foreign || exit 1 +#autoconf --force --warnings=all || exit 1 +autoconf --force || exit 1 +rm -fr autom4te*.cache +exit 0 diff --git a/config/ax_prog_cc_mpi.m4 b/config/ax_prog_cc_mpi.m4 new file mode 100644 index 0000000..091f51f --- /dev/null +++ b/config/ax_prog_cc_mpi.m4 @@ -0,0 +1,171 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_prog_cc_mpi.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PROG_CC_MPI([MPI-WANTED-TEST[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]]) +# +# DESCRIPTION +# +# This macro tries to find out how to compile C programs that use MPI +# (Message Passing Interface), a standard API for parallel process +# communication (see http://www-unix.mcs.anl.gov/mpi/). The macro has to +# be used instead of the standard macro AC_PROG_CC and will replace the +# standard variable CC with the found compiler. +# +# MPI-WANTED-TEST is used to test whether MPI is actually wanted by the +# user. If MPI-WANTED_TEST is omitted or if it succeeds, the macro will +# try to find out how to use MPI, if it fails, the macro will call +# AC_PROG_CC to find a standard C compiler instead. +# +# When MPI is found, ACTION-IF-FOUND will be executed, if MPI is not found +# (or MPI-WANTED-TEST fails) ACTION-IF-NOT-FOUND is executed. If +# ACTION-IF-FOUND is not set, the macro will define HAVE_MPI. +# +# The following example demonstrates usage of the macro: +# +# # If --with-mpi=auto is used, try to find MPI, but use standard C compiler if it is not found. +# # If --with-mpi=yes is used, try to find MPI and fail if it isn't found. +# # If --with-mpi=no is used, use a standard C compiler instead. +# AC_ARG_WITH(mpi, [AS_HELP_STRING([--with-mpi], +# [compile with MPI (parallelization) support. If none is found, +# MPI is not used. Default: auto]) +# ],,[with_mpi=auto]) +# # +# AX_PROG_CC_MPI([test x"$with_mpi" != xno],[use_mpi=yes],[ +# use_mpi=no +# if test x"$with_mpi" = xyes; then +# AC_MSG_FAILURE([MPI compiler requested, but couldn't use MPI.]) +# else +# AC_MSG_WARN([No MPI compiler found, won't use MPI.]) +# fi +# ]) +# +# LICENSE +# +# Copyright (c) 2010,2011 Olaf Lenz +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 1 + +AC_DEFUN([AX_PROG_CC_MPI], [ +AC_PREREQ(2.50) + +# Check for compiler +# Needs to be split off into an extra macro to ensure right expansion +# order. +AC_REQUIRE([_AX_PROG_CC_MPI],[_AX_PROG_CC_MPI([$1])]) + +AS_IF([test x"$_ax_prog_cc_mpi_mpi_wanted" = xno], + [ _ax_prog_cc_mpi_mpi_found=no ], + [ + AC_LANG_PUSH([C]) + # test whether MPI_Init is available + # We do not use AC_SEARCH_LIBS here, as it caches its outcome and + # thus disallows corresponding calls in the other AX_PROG_*_MPI + # macros. + for lib in NONE mpi mpich; do + save_LIBS=$LIBS + if test x"$lib" = xNONE; then + AC_MSG_CHECKING([for function MPI_Init]) + else + AC_MSG_CHECKING([for function MPI_Init in -l$lib]) + LIBS="-l$lib $LIBS" + fi + AC_LINK_IFELSE([AC_LANG_CALL([],[MPI_Init])], + [ _ax_prog_cc_mpi_mpi_found=yes ], + [ _ax_prog_cc_mpi_mpi_found=no ]) + AC_MSG_RESULT($_ax_prog_cc_mpi_mpi_found) + if test "x$_ax_prog_cc_mpi_mpi_found" = "xyes"; then + break; + fi + LIBS=$save_LIBS + done + + # Check for header + AS_IF([test x"$_ax_prog_cc_mpi_mpi_found" = xyes], [ + AC_MSG_CHECKING([for mpi.h]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include ])], + [ AC_MSG_RESULT(yes)], + [ AC_MSG_RESULT(no) + _ax_prog_cc_mpi_mpi_found=no + ]) + ]) + AC_LANG_POP([C]) +]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +AS_IF([test x"$_ax_prog_cc_mpi_mpi_found" = xyes], [ + ifelse([$2],,[AC_DEFINE(HAVE_MPI,1,[Define if you have the MPI library.])],[$2]) + : +],[ + $3 + : +]) + +])dnl AX_PROG_CC_MPI + +dnl _AX_PROG_CC_MPI is an internal macro required by AX_PROG_CC_MPI. +dnl To ensure the right expansion order, the main function AX_PROG_CC_MPI +dnl has to be split into two parts. +dnl +dnl Known MPI C compilers: +dnl mpicc +dnl mpixlc_r +dnl mpixlc +dnl hcc +dnl mpxlc_r +dnl mpxlc +dnl sxmpicc NEC SX +dnl mpifcc Fujitsu +dnl mpgcc +dnl mpcc +dnl cmpicc +dnl cc +dnl +AC_DEFUN([_AX_PROG_CC_MPI], [ + AC_ARG_VAR(MPICC,[MPI C compiler command]) + ifelse([$1],,[_ax_prog_cc_mpi_mpi_wanted=yes],[ + AC_MSG_CHECKING([whether to compile using MPI]) + if $1; then + _ax_prog_cc_mpi_mpi_wanted=yes + else + _ax_prog_cc_mpi_mpi_wanted=no + fi + AC_MSG_RESULT($_ax_prog_cc_mpi_mpi_wanted) + ]) + if test x"$_ax_prog_cc_mpi_mpi_wanted" = xyes; then + if test -z "$CC" && test -n "$MPICC"; then + CC="$MPICC" + else + AC_CHECK_TOOLS([CC], [mpicc mpixlc_r mpixlc hcc mpxlc_r mpxlc sxmpicc mpifcc mpgcc mpcc cmpicc cc gcc]) + fi + fi + AC_PROG_CC +])dnl _AX_PROG_CC_MPI diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..2a78dae --- /dev/null +++ b/configure.ac @@ -0,0 +1,34 @@ +# -*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.67]) +AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS]) +AC_CONFIG_AUX_DIR([config]) +AC_CONFIG_SRCDIR([src/IOR.c]) +AC_CONFIG_HEADERS([config.h]) + +AC_CANONICAL_HOST + +# Automake support +AM_INIT_AUTOMAKE([$PACKAGE], [$VERSION], [check-news dist-bzip2 gnu no-define]) +AM_MAINTAINER_MODE + +# Checks for programs. +AX_PROG_CC_MPI + +# Checks for libraries. + +# Checks for header files. +AC_CHECK_HEADERS([fcntl.h libintl.h stdlib.h string.h strings.h sys/ioctl.h sys/param.h sys/statfs.h sys/statvfs.h sys/time.h unistd.h wchar.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_TYPE_SIZE_T + +# Checks for library functions. +AC_FUNC_MALLOC +AC_CHECK_FUNCS([getpagesize gettimeofday memset mkdir pow putenv realpath regcomp sqrt strcasecmp strchr strerror strncasecmp strstr uname]) + +AC_CONFIG_FILES([Makefile + src/Makefile + src/cbif/Makefile]) +AC_OUTPUT diff --git a/UNDOCUMENTED_OPTIONS b/doc/UNDOCUMENTED_OPTIONS similarity index 100% rename from UNDOCUMENTED_OPTIONS rename to doc/UNDOCUMENTED_OPTIONS diff --git a/USER_GUIDE b/doc/USER_GUIDE similarity index 100% rename from USER_GUIDE rename to doc/USER_GUIDE diff --git a/src/C/cbif/Makefile b/src/C/cbif/Makefile deleted file mode 100644 index 5f65e29..0000000 --- a/src/C/cbif/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -all: - $(CC) cbif.c -o cbif - -clean: - rm -f cbif diff --git a/src/C/IOR-aiori.h b/src/IOR-aiori.h similarity index 100% rename from src/C/IOR-aiori.h rename to src/IOR-aiori.h diff --git a/src/C/IOR.c b/src/IOR.c similarity index 100% rename from src/C/IOR.c rename to src/IOR.c diff --git a/src/C/IOR.h b/src/IOR.h similarity index 100% rename from src/C/IOR.h rename to src/IOR.h diff --git a/src/Makefile.am b/src/Makefile.am new file mode 100644 index 0000000..4b9ce6e --- /dev/null +++ b/src/Makefile.am @@ -0,0 +1,10 @@ +SUBDIRS = cbif + +bin_PROGRAMS = ior + +# N.B. "NCMPI" is an outdated name for pnetcdf (parallel netcdf) +ior_SOURCES = IOR.c utilities.c parse_options.c \ + IOR.h aiori.h iordef.h defaults.h IOR-aiori.h \ + aiori-POSIX.c aiori-noMPIIO.c aiori-noHDF5.c aiori-noNCMPI.c +ior_CFLAGS = +ior_LDADD = -lm diff --git a/src/C/aiori-HDF5.c b/src/aiori-HDF5.c similarity index 100% rename from src/C/aiori-HDF5.c rename to src/aiori-HDF5.c diff --git a/src/C/aiori-MPIIO.c b/src/aiori-MPIIO.c similarity index 100% rename from src/C/aiori-MPIIO.c rename to src/aiori-MPIIO.c diff --git a/src/C/aiori-NCMPI.c b/src/aiori-NCMPI.c similarity index 100% rename from src/C/aiori-NCMPI.c rename to src/aiori-NCMPI.c diff --git a/src/C/aiori-POSIX.c b/src/aiori-POSIX.c similarity index 100% rename from src/C/aiori-POSIX.c rename to src/aiori-POSIX.c diff --git a/src/C/aiori-noHDF5.c b/src/aiori-noHDF5.c similarity index 100% rename from src/C/aiori-noHDF5.c rename to src/aiori-noHDF5.c diff --git a/src/C/aiori-noMPIIO.c b/src/aiori-noMPIIO.c similarity index 100% rename from src/C/aiori-noMPIIO.c rename to src/aiori-noMPIIO.c diff --git a/src/C/aiori-noNCMPI.c b/src/aiori-noNCMPI.c similarity index 100% rename from src/C/aiori-noNCMPI.c rename to src/aiori-noNCMPI.c diff --git a/src/C/aiori.h b/src/aiori.h similarity index 100% rename from src/C/aiori.h rename to src/aiori.h diff --git a/src/cbif/Makefile.am b/src/cbif/Makefile.am new file mode 100644 index 0000000..6705835 --- /dev/null +++ b/src/cbif/Makefile.am @@ -0,0 +1,2 @@ +bin_PROGRAMS = cbif +cbif_SOURCES = cbif.c diff --git a/src/C/cbif/cbif.c b/src/cbif/cbif.c similarity index 100% rename from src/C/cbif/cbif.c rename to src/cbif/cbif.c diff --git a/src/C/defaults.h b/src/defaults.h similarity index 100% rename from src/C/defaults.h rename to src/defaults.h diff --git a/src/C/iordef.h b/src/iordef.h similarity index 100% rename from src/C/iordef.h rename to src/iordef.h diff --git a/src/C/Makefile b/src/old.Makefile similarity index 100% rename from src/C/Makefile rename to src/old.Makefile diff --git a/src/C/Makefile.config b/src/old.Makefile.config similarity index 100% rename from src/C/Makefile.config rename to src/old.Makefile.config diff --git a/src/C/parse_options.c b/src/parse_options.c similarity index 100% rename from src/C/parse_options.c rename to src/parse_options.c diff --git a/src/C/utilities.c b/src/utilities.c similarity index 100% rename from src/C/utilities.c rename to src/utilities.c diff --git a/src/C/win/getopt.c b/src/win/getopt.c similarity index 100% rename from src/C/win/getopt.c rename to src/win/getopt.c diff --git a/src/C/win/getopt.h b/src/win/getopt.h similarity index 100% rename from src/C/win/getopt.h rename to src/win/getopt.h