-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Problem: project lacks a build system Copy autogen.sh from flux-core. Copy config/ax_flux_core.m4 from flux-sched. Copy config/pkg.m4 from flux-core. Create initial configure.ac that requires - openpmix >= 4.0.0 - libzmq >= 4.0.4 - libczmq >= 3.0.0 - ompi >= 5.0.0 - hwloc >= 1.11.1 - jansson >= 2.10
- Loading branch information
Showing
5 changed files
with
323 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/bin/sh | ||
# | ||
# Run an extra libtoolize before autoreconf to ensure that | ||
# libtool macros can be found if libtool is in PATH, but its | ||
# macros are not in default aclocal search path. | ||
# | ||
echo "Running libtoolize --automake --copy ... " | ||
libtoolize --automake --copy || exit | ||
echo "Running autoreconf --verbose --install" | ||
autoreconf --verbose --install || exit | ||
echo "Now run ./configure." |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
# =========================================================================== | ||
# https://github.com/flux-framework/flux-sched/ | ||
# =========================================================================== | ||
# SYNOPSIS | ||
# | ||
# AX_FLUX_CORE | ||
# | ||
# DESCRIPTION | ||
# | ||
# This macro attempts to find the installed flux-core prefix, | ||
# the flux(1) command, as well as flux-core associated libraries | ||
# using pkg-config(1). | ||
# | ||
# The macro prepends PREFIX/lib/pkgconfig to PKG_CONFIG_PATH | ||
# so that the flux-core in destination --prefix is found by default. | ||
# | ||
# After the macro runs, the following variables will be defined: | ||
# | ||
# - FLUX flux(1) command path | ||
# - FLUX_PREFIX flux-core configured prefix | ||
# - FLUX_PYTHON flux-core configured Python version | ||
# - LIBFLUX_VERSION libflux-core version | ||
# - FLUX_CORE_LIBS libflux-core LIBS | ||
# - FLUX_CORE_CFLAGS libflux-core CFLAGS | ||
# - FLUX_IDSET_LIBS libflux-idset LIBS | ||
# - FLUX_IDSET_CFLAGS libflux-idset CFLAGS | ||
# - FLUX_OPTPARSE_LIBS libflux-optparse LIBS | ||
# - FLUX_OPTPARSE_CFLAGS libflux-optparse CFLAGS | ||
# - FLUX_HOSTLIST_LIBS libflux-hostlist LIBS | ||
# - FLUX_HOSTLIST_CFLAGS libflux-hostlist CFLAGS | ||
# | ||
# LICENSE | ||
# | ||
# Copyright 2016 Lawrence Livermore National Security, LLC | ||
# (c.f. AUTHORS, NOTICE.LLNS, LICENSE) | ||
# | ||
# This file is part of the Flux resource manager framework. | ||
# For details, see https://github.com/flux-framework. | ||
# | ||
# SPDX-License-Identifier: LGPL-3.0 | ||
# | ||
|
||
AC_DEFUN([AX_FLUX_CORE], [ | ||
# prepend PREFIX/lib/pkgconfig to PKG_CONFIG_PATH. | ||
# Allows flux-core in the destination PREFIX to be found by pkg-config | ||
# by default, assuming in 99% of cases this is what we want. | ||
saved_PKG_CONFIG_PATH=$PKG_CONFIG_PATH | ||
PKG_CONFIG_PATH=${prefix}/lib/pkgconfig:${PKG_CONFIG_PATH} | ||
export PKG_CONFIG_PATH | ||
PKG_CHECK_MODULES([FLUX_CORE], [flux-core], | ||
[ | ||
FLUX_PREFIX=`pkg-config --variable=prefix flux-core` | ||
LIBFLUX_VERSION=`pkg-config --modversion flux-core` | ||
if test -z "${FLUX_PREFIX}" ; then | ||
AC_MSG_ERROR([failed to determine flux-core prefix from pkg-config]) | ||
fi | ||
AC_SUBST(FLUX_PREFIX) | ||
AC_SUBST(LIBFLUX_VERSION) | ||
# Ensure we find the same flux executable as corresponds to | ||
# to libflux-core found by pkg-config by puting FLUX_PREFIX/bin | ||
# first in AC_PATH_PROG's path | ||
# | ||
AC_PATH_PROG(FLUX,[flux], | ||
[AC_MSG_ERROR([failed to find flux executable])], | ||
[$FLUX_PREFIX/bin:$PATH]) | ||
# Set FLUX_PYTHON_VERSION to the version of Python used by flux-core | ||
FLUX_PYTHON_VERSION=$($FLUX python -c 'import sys; print(".".join(map(str, sys.version_info[[:2]])))') | ||
AC_SUBST(FLUX_PYTHON_VERSION) | ||
], | ||
AC_MSG_ERROR([flux-core package not installed])) | ||
] | ||
|
||
# Check for other flux-core libraries | ||
PKG_CHECK_MODULES([FLUX_IDSET], [flux-idset], [], []) | ||
PKG_CHECK_MODULES([FLUX_SCHEDUTIL], [flux-schedutil], [], []) | ||
PKG_CHECK_MODULES([FLUX_OPTPARSE], [flux-optparse], [], []) | ||
PKG_CHECK_MODULES([FLUX_HOSTLIST], [flux-hostlist], [], []) | ||
|
||
PKG_CONFIG_PATH=$saved_PKG_CONFIG_PATH | ||
export PKG_CONFIG_PATH | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- | ||
# | ||
# Copyright © 2004 Scott James Remnant <[email protected]>. | ||
# | ||
# 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 2 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, write to the Free Software | ||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
# | ||
# As a special exception to the GNU General Public License, if you | ||
# distribute this file as part of a program that contains a | ||
# configuration script generated by Autoconf, you may include it under | ||
# the same distribution terms that you use for the rest of that program. | ||
|
||
# PKG_PROG_PKG_CONFIG([MIN-VERSION]) | ||
# ---------------------------------- | ||
AC_DEFUN([PKG_PROG_PKG_CONFIG], | ||
[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) | ||
m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) | ||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl | ||
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then | ||
AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) | ||
fi | ||
if test -n "$PKG_CONFIG"; then | ||
_pkg_min_version=m4_default([$1], [0.9.0]) | ||
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) | ||
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then | ||
AC_MSG_RESULT([yes]) | ||
else | ||
AC_MSG_RESULT([no]) | ||
PKG_CONFIG="" | ||
fi | ||
fi[]dnl | ||
])# PKG_PROG_PKG_CONFIG | ||
|
||
# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) | ||
# | ||
# Check to see whether a particular set of modules exists. Similar | ||
# to PKG_CHECK_MODULES(), but does not set variables or print errors. | ||
# | ||
# | ||
# Similar to PKG_CHECK_MODULES, make sure that the first instance of | ||
# this or PKG_CHECK_MODULES is called, or make sure to call | ||
# PKG_CHECK_EXISTS manually | ||
# -------------------------------------------------------------- | ||
AC_DEFUN([PKG_CHECK_EXISTS], | ||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl | ||
if test -n "$PKG_CONFIG" && \ | ||
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then | ||
m4_ifval([$2], [$2], [:]) | ||
m4_ifvaln([$3], [else | ||
$3])dnl | ||
fi]) | ||
|
||
|
||
# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) | ||
# --------------------------------------------- | ||
m4_define([_PKG_CONFIG], | ||
[if test -n "$$1"; then | ||
pkg_cv_[]$1="$$1" | ||
elif test -n "$PKG_CONFIG"; then | ||
PKG_CHECK_EXISTS([$3], | ||
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], | ||
[pkg_failed=yes]) | ||
else | ||
pkg_failed=untried | ||
fi[]dnl | ||
])# _PKG_CONFIG | ||
|
||
# _PKG_SHORT_ERRORS_SUPPORTED | ||
# ----------------------------- | ||
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], | ||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) | ||
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then | ||
_pkg_short_errors_supported=yes | ||
else | ||
_pkg_short_errors_supported=no | ||
fi[]dnl | ||
])# _PKG_SHORT_ERRORS_SUPPORTED | ||
|
||
|
||
# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], | ||
# [ACTION-IF-NOT-FOUND]) | ||
# | ||
# | ||
# Note that if there is a possibility the first call to | ||
# PKG_CHECK_MODULES might not happen, you should be sure to include an | ||
# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac | ||
# | ||
# | ||
# -------------------------------------------------------------- | ||
AC_DEFUN([PKG_CHECK_MODULES], | ||
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl | ||
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl | ||
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl | ||
pkg_failed=no | ||
AC_MSG_CHECKING([for $1]) | ||
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) | ||
_PKG_CONFIG([$1][_LIBS], [libs], [$2]) | ||
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS | ||
and $1[]_LIBS to avoid the need to call pkg-config. | ||
See the pkg-config man page for more details.]) | ||
if test $pkg_failed = yes; then | ||
_PKG_SHORT_ERRORS_SUPPORTED | ||
if test $_pkg_short_errors_supported = yes; then | ||
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` | ||
else | ||
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` | ||
fi | ||
# Put the nasty error message in config.log where it belongs | ||
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD | ||
ifelse([$4], , [AC_MSG_ERROR(dnl | ||
[Package requirements ($2) were not met: | ||
$$1_PKG_ERRORS | ||
Consider adjusting the PKG_CONFIG_PATH environment variable if you | ||
installed software in a non-standard prefix. | ||
_PKG_TEXT | ||
])], | ||
[AC_MSG_RESULT([no]) | ||
$4]) | ||
elif test $pkg_failed = untried; then | ||
ifelse([$4], , [AC_MSG_FAILURE(dnl | ||
[The pkg-config script could not be found or is too old. Make sure it | ||
is in your PATH or set the PKG_CONFIG environment variable to the full | ||
path to pkg-config. | ||
_PKG_TEXT | ||
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], | ||
[$4]) | ||
else | ||
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS | ||
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS | ||
AC_MSG_RESULT([yes]) | ||
ifelse([$3], , :, [$3]) | ||
fi[]dnl | ||
])# PKG_CHECK_MODULES |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
## | ||
# Prologue | ||
## | ||
AC_INIT([flux-pmix], | ||
m4_esyscmd([git describe --always | awk '/.*/ {sub(/^v/, ""); printf "%s",$1; exit}'])) | ||
AC_CONFIG_AUX_DIR([config]) | ||
AC_CONFIG_MACRO_DIR([config]) | ||
AC_CONFIG_SRCDIR([NEWS.md]) | ||
AC_CANONICAL_SYSTEM | ||
|
||
AM_INIT_AUTOMAKE([subdir-objects tar-pax foreign]) | ||
AM_SILENT_RULES([yes]) | ||
AM_CONFIG_HEADER([config/config.h]) | ||
AM_MAINTAINER_MODE([enable]) | ||
|
||
AC_DEFINE([_GNU_SOURCE], 1, | ||
[Define _GNU_SOURCE so that we get all necessary prototypes]) | ||
|
||
## | ||
# Generate project versions from PACKAGE_VERSION (set from git describe above) | ||
## | ||
AX_SPLIT_VERSION | ||
AX_POINT_VERSION=$(echo $AX_POINT_VERSION | $SED 's/-.*$//') | ||
AC_SUBST([AX_MAJOR_VERSION]) | ||
AC_SUBST([AX_MINOR_VERSION]) | ||
AC_SUBST([AX_POINT_VERSION]) | ||
|
||
## | ||
# Initialize pkg-config for PKG_CHECK_MODULES to avoid conditional issues | ||
## | ||
PKG_PROG_PKG_CONFIG | ||
|
||
# Checks for programs | ||
## | ||
AC_PROG_CC_C99 | ||
AM_PROG_CC_C_O | ||
AX_COMPILER_VENDOR | ||
AX_COMPILER_VERSION | ||
AS_CASE($ax_cv_c_compiler_vendor, | ||
[clang | gnu], [ | ||
WARNING_CFLAGS="-Wall -Werror -Wno-strict-aliasing -Wno-error=deprecated-declarations" | ||
] | ||
) | ||
AC_SUBST([WARNING_CFLAGS]) | ||
|
||
LT_INIT | ||
|
||
AC_HEADER_STDC | ||
|
||
PKG_CHECK_MODULES([ZMQ], [libczmq >= 3.0.0 libzmq >= 4.0.4]) | ||
PKG_CHECK_MODULES([PMIX], [pmix >= 4.0.0]) | ||
PKG_CHECK_MODULES([OMPI], [ompi >= 5.0.0]) | ||
PKG_CHECK_MODULES([HWLOC], [hwloc >= 1.11.1], [], []) | ||
PKG_CHECK_MODULES([JANSSON], [jansson >= 2.10], [], []) | ||
|
||
AX_FLUX_CORE | ||
|
||
AS_VAR_SET(shell_plugindir, $libdir/flux/shell/plugins) | ||
AC_SUBST(shell_plugindir) | ||
|
||
fluxplugin_ldflags="-avoid-version -export-symbols-regex '^flux_plugin_init\$\$' --disable-static -shared -export-dynamic" | ||
AC_SUBST(fluxplugin_ldflags) | ||
|
||
## | ||
# Epilogue | ||
## | ||
AC_CONFIG_FILES( \ | ||
Makefile \ | ||
) | ||
|
||
AC_OUTPUT |