Skip to content

Commit

Permalink
[build] minor cleanup
Browse files Browse the repository at this point in the history
- make rust bindings optionals
- cleanup variables
- reformat Makefile.am
- add some copyrights
- allow test suite to run

Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
  • Loading branch information
fabbione committed Jun 10, 2021
1 parent e716ac2 commit 91f66ad
Show file tree
Hide file tree
Showing 10 changed files with 154 additions and 61 deletions.
4 changes: 2 additions & 2 deletions .gitignore
Expand Up @@ -58,5 +58,5 @@ xml-*/
doxyxml
*.3
cov*
*/target/*
*/Cargo.lock
*target/
*Cargo.lock
32 changes: 22 additions & 10 deletions configure.ac
Expand Up @@ -170,9 +170,13 @@ AM_CONDITIONAL([OVERRIDE_RPM_DEBUGINFO], [test x$override_rpm_debuginfo_option =
AC_ARG_ENABLE([libnozzle],
[AS_HELP_STRING([--enable-libnozzle],[libnozzle support])],,
[ enable_libnozzle="yes" ])

AM_CONDITIONAL([BUILD_LIBNOZZLE], [test x$enable_libnozzle = xyes])

AC_ARG_ENABLE([rust-bindings],
[AS_HELP_STRING([--enable-rust-bindings],[rust bindings support])],,
[ enable_rust_bindings="yes" ])
AM_CONDITIONAL([BUILD_RUST_BINDINGS], [test x$enable_rust_bindings = xyes])

# Checks for libraries.
AX_PTHREAD(,[AC_MSG_ERROR([POSIX threads support is required])])
saved_LIBS="$LIBS"
Expand Down Expand Up @@ -268,12 +272,18 @@ if test "x$enable_man" = "xyes"; then
AC_SUBST([DOXYGEN2MAN])
fi

# For the Rust bindings
AC_PATH_PROG([CARGO], [cargo], [notfound])
AS_IF([test "$CARGO" = "notfound"], [AC_MSG_ERROR([cargo is required])])
# check for rust tools to build bindings
if test "x$enable_rust_bindings" = "xyes"; then
AC_PATH_PROG([CARGO], [cargo], [no])
if test "x$CARGO" = xno; then
AC_MSG_ERROR(["cargo command not found"])
fi

AC_PATH_PROG([RUSTC], [rustc], [notfound])
AS_IF([test "$RUSTC" = "notfound"], [AC_MSG_ERROR([rustc is required])])
AC_PATH_PROG([RUSTC], [rustc], [no])
if test "x$RUSTC" = xno; then
AC_MSG_ERROR(["rustc command not found"])
fi
fi

# checks for libnozzle
if test "x$enable_libnozzle" = xyes; then
Expand Down Expand Up @@ -308,11 +318,11 @@ AC_SUBST([TESTDIR])
if test "x${enable_debug}" = xyes; then
AC_DEFINE_UNQUOTED([DEBUG], [1], [Compiling Debugging code])
OPT_CFLAGS="-O0"
OPT_RUSTFLAGS="--debug"
RUST_FLAGS=""
RUST_TARGET_DIR="debug"
else
OPT_CFLAGS="-O3"
OPT_RUSTFLAGS="--release"
RUST_FLAGS="--release"
RUST_TARGET_DIR="release"
fi

Expand Down Expand Up @@ -361,8 +371,8 @@ UNWANTED_CFLAGS="-Wno-unused-parameter"

AC_SUBST([AM_CFLAGS],["$SANITIZERS_CFLAGS $OPT_CFLAGS $GDB_FLAGS $DEFAULT_CFLAGS $UNWANTED_CFLAGS"])
LDFLAGS="$SANITIZERS_LDFLAGS $LDFLAGS"
AC_SUBST([RUSTFLAGS],["$OPT_RUSTFLAGS"])
AC_SUBST([RUST_TARGET_DIR],["$RUST_TARGET_DIR"])
AC_SUBST([RUST_FLAGS])
AC_SUBST([RUST_TARGET_DIR])

AX_PROG_DATE
AS_IF([test "$ax_cv_prog_date_gnu_date:$ax_cv_prog_date_gnu_utc" = yes:yes],
Expand Down Expand Up @@ -410,11 +420,13 @@ AC_CONFIG_FILES([
libnozzle/Makefile
libnozzle/libnozzle.pc
libnozzle/tests/Makefile
libnozzle/bindings/Makefile
libnozzle/bindings/rust/Makefile
libnozzle/bindings/rust/tests/Makefile
libknet/Makefile
libknet/libknet.pc
libknet/tests/Makefile
libknet/bindings/Makefile
libknet/bindings/rust/Makefile
libknet/bindings/rust/tests/Makefile
man/Makefile
Expand Down
2 changes: 1 addition & 1 deletion libknet/Makefile.am
Expand Up @@ -15,7 +15,7 @@ SYMFILE = libknet_exported_syms

EXTRA_DIST = $(SYMFILE)

SUBDIRS = . tests bindings/rust
SUBDIRS = . tests bindings

# https://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
libversion = 2:0:0
Expand Down
17 changes: 17 additions & 0 deletions libknet/bindings/Makefile.am
@@ -0,0 +1,17 @@
#
# Copyright (C) 2021 Red Hat, Inc. All rights reserved.
#
# Author: Fabio M. Di Nitto <fabbione@kronosnet.org>
#
# This software licensed under GPL-2.0+
#

MAINTAINERCLEANFILES = Makefile.in

include $(top_srcdir)/build-aux/check.mk

SUBDIRS = .

if BUILD_RUST_BINDINGS
SUBDIRS += rust
endif
32 changes: 22 additions & 10 deletions libknet/bindings/rust/Makefile.am
@@ -1,16 +1,28 @@
#
# Copyright (C) 2021 Red Hat, Inc. All rights reserved.
#
# Author: Christine Caulfield <ccaulfie@redhat.com>
#
# This software licensed under GPL-2.0+
#

MAINTAINERCLEANFILES = Makefile.in

EXTRA_DIST = Cargo.toml \
regenerate-sys.sh \
build.rs \
src/libknet.rs \
src/lib.rs \
src/sys/libknet.rs \
src/sys/mod.rs
include $(top_srcdir)/build-aux/check.mk

SUBDIRS = . tests

EXTRA_DIST = Cargo.toml \
regenerate-sys.sh \
build.rs \
src/libknet.rs \
src/lib.rs \
src/sys/libknet.rs \
src/sys/mod.rs

all-local:
cargo build $(RUSTFLAGS)
$(CARGO) build $(RUST_FLAGS)

clean-local:
-cargo clean

-$(CARGO) clean
rm -rf Cargo.lock
35 changes: 24 additions & 11 deletions libknet/bindings/rust/tests/Makefile.am
@@ -1,19 +1,32 @@
#
# Copyright (C) 2021 Red Hat, Inc. All rights reserved.
#
# Author: Christine Caulfield <ccaulfie@redhat.com>
#
# This software licensed under GPL-2.0+
#

EXTRA_DIST = Cargo.toml \
src/bin/knet-test.rs
MAINTAINERCLEANFILES = Makefile.in

check_PROGRAMS = \
target/$(RUST_TARGET_DIR)/knet-test
include $(top_srcdir)/build-aux/check.mk

noinst_PROGRAMS = $(check_PROGRAMS)
EXTRA_DIST = Cargo.toml \
src/bin/knet-test.rs

testsuitedir = $(TESTDIR)
testsuite_PROGRAMS = $(check_PROGRAMS)
check_PROGRAMS = target/$(RUST_TARGET_DIR)/knet-test

TESTS = $(check_PROGRAMS)
noinst_PROGRAMS = $(check_PROGRAMS)

target/$(RUST_TARGET_DIR)/knet-test: src/bin/knet-test.rs
cargo build $(RUSTFLAGS)
testsuitedir = $(TESTDIR)
testsuite_PROGRAMS = $(check_PROGRAMS)

AM_TESTS_ENVIRONMENT=LD_LIBRARY_PATH="$(abs_top_builddir)/libknet/.libs"

TESTS = $(check_PROGRAMS)

target/$(RUST_TARGET_DIR)/knet-test$(EXEEXT): src/bin/knet-test.rs
$(CARGO) build $(RUST_FLAGS)

clean-local:
cargo clean
-$(CARGO) clean
rm -rf Cargo.lock
2 changes: 1 addition & 1 deletion libnozzle/Makefile.am
Expand Up @@ -16,7 +16,7 @@ EXTRA_DIST = $(SYMFILE)

if BUILD_LIBNOZZLE

SUBDIRS = . tests bindings/rust bindings/rust/tests
SUBDIRS = . tests bindings

libversion = 1:0:0

Expand Down
17 changes: 17 additions & 0 deletions libnozzle/bindings/Makefile.am
@@ -0,0 +1,17 @@
#
# Copyright (C) 2021 Red Hat, Inc. All rights reserved.
#
# Author: Fabio M. Di Nitto <fabbione@kronosnet.org>
#
# This software licensed under GPL-2.0+
#

MAINTAINERCLEANFILES = Makefile.in

include $(top_srcdir)/build-aux/check.mk

SUBDIRS = .

if BUILD_RUST_BINDINGS
SUBDIRS += rust
endif
34 changes: 22 additions & 12 deletions libnozzle/bindings/rust/Makefile.am
@@ -1,18 +1,28 @@
#
# Copyright (C) 2021 Red Hat, Inc. All rights reserved.
#
# Author: Christine Caulfield <ccaulfie@redhat.com>
#
# This software licensed under GPL-2.0+
#

MAINTAINERCLEANFILES = Makefile.in

EXTRA_DIST = Cargo.toml \
build.rs \
regenerate-sys.sh \
src/libnozzle.rs \
src/lib.rs \
src/sys/libnozzle.rs \
src/sys/mod.rs
include $(top_srcdir)/build-aux/check.mk

SUBDIRS = . tests

EXTRA_DIST = Cargo.toml \
build.rs \
regenerate-sys.sh \
src/libnozzle.rs \
src/lib.rs \
src/sys/libnozzle.rs \
src/sys/mod.rs

if BUILD_LIBNOZZLE
all-local:
cargo build $(RUSTFLAGS)
$(CARGO) build $(RUST_FLAGS)

clean-local:
-cargo clean

endif
-$(CARGO) clean
rm -rf Cargo.lock
40 changes: 26 additions & 14 deletions libnozzle/bindings/rust/tests/Makefile.am
@@ -1,23 +1,35 @@
#
# Copyright (C) 2021 Red Hat, Inc. All rights reserved.
#
# Author: Christine Caulfield <ccaulfie@redhat.com>
#
# This software licensed under GPL-2.0+
#

EXTRA_DIST = Cargo.toml \
src/bin/nozzle-test.rs \
up.d/tap33
MAINTAINERCLEANFILES = Makefile.in

if BUILD_LIBNOZZLE
check_PROGRAMS = target/$(RUST_TARGET_DIR)/nozzle-test
include $(top_srcdir)/build-aux/check.mk

noinst_PROGRAMS = $(check_PROGRAMS)
EXTRA_DIST = Cargo.toml \
src/bin/nozzle-test.rs \
up.d/tap33

testsuitedir = $(TESTDIR)
testsuite_PROGRAMS = $(check_PROGRAMS)
check_PROGRAMS = target/$(RUST_TARGET_DIR)/nozzle-test

TESTS = $(check_PROGRAMS)
noinst_PROGRAMS = $(check_PROGRAMS)

noinst_SCRIPTS = up.d/tap33
noinst_SCRIPTS = up.d/tap33

target/$(RUST_TARGET_DIR)/nozzle-test: src/bin/nozzle-test.rs
cargo build $(RUSTFLAGS)
testsuitedir = $(TESTDIR)
testsuite_PROGRAMS = $(check_PROGRAMS)

AM_TESTS_ENVIRONMENT=LD_LIBRARY_PATH="$(abs_top_builddir)/libnozzle/.libs"

TESTS = $(check_PROGRAMS)

target/$(RUST_TARGET_DIR)/nozzle-test$(EXEEXT): src/bin/nozzle-test.rs
$(CARGO) build $(RUST_FLAGS)

clean-local:
cargo clean
endif
-$(CARGO) clean
rm -rf Cargo.lock

0 comments on commit 91f66ad

Please sign in to comment.