Skip to content

Commit

Permalink
auto/make: Fix various issues with building OTEL
Browse files Browse the repository at this point in the history
There were at least a couple of issues with building OTEL support.

It only worked with GNU make due to the use of ifeq, even gmake had some
issues.

Debug builds were broken due to trying to pass --debug to cargo which is
the default and isn't a valid option.

This 'fixes' things by doing 'release' builds of OTEL by default.

Passing D=1 to make will generate 'debug' builds but this as previously
with D= etc, only works with GNU make.

We make use of the '--emit link=' rustc option to place the libotel.a
static library into build/lib

This is good, it consolidates the static libraries into one place and it
simplifies the build scripts.

While we're at it pretty print the cargo command by default.

Fixes: 9d3dcb8 ("otel: add build tooling to include otel code")
Link: <nginx#1520 (comment)>
Signed-off-by: Andrew Clayton <[email protected]>
  • Loading branch information
ac000 committed Jan 10, 2025
1 parent 1ac4e40 commit d0dbba3
Showing 1 changed file with 20 additions and 18 deletions.
38 changes: 20 additions & 18 deletions auto/make
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,20 @@ PP_AR := @echo ' AR '
PP_LD := @echo ' LD '
PP_VER := @echo ' VER '
PP_SED := @echo ' SED '
PP_CR := @echo ' CR '

CC = $CC
AR = $AR

EXTRA_CFLAGS =
CFLAGS = $NXT_CFLAGS $NXT_CC_OPT $CFLAGS \$(EXTRA_CFLAGS)
RUST_FLAGS =
NXT_OTEL_LIB_STATIC =

NXT_EXEC_LINK = $NXT_EXEC_LINK $NXT_LD_OPT
NXT_SHARED_LOCAL_LINK = $NXT_SHARED_LOCAL_LINK $NXT_LD_OPT
NXT_MODULE_LINK = $NXT_MODULE_LINK

NXT_OTEL_LIB_STATIC =

all: $NXT_DAEMON manpage

.PHONY: $NXT_DAEMON manpage
Expand All @@ -37,6 +38,18 @@ manpage: $NXT_BUILD_DIR/share/man/man8/unitd.8
END


if [ $NXT_OTEL = YES ]; then

cat << END >> $NXT_MAKEFILE

RUST_FLAGS = --release
NXT_OTEL_LIB_STATIC = $NXT_BUILD_DIR/lib/libotel.a

END

fi


NXT_OS=$(uname -s)
NXT_GNU_MAKE=$(make --version | grep GNU || true)

Expand All @@ -63,9 +76,7 @@ D := 0

ifeq (\$D,1)
CFLAGS += -O0
RUST_FLAGS += --debug
else
RUST_FLAGS += --release
RUST_FLAGS =
endif

# Optionally disable -Werror with
Expand All @@ -80,18 +91,6 @@ END

fi

# potentially set otel lib location
if [ $NXT_OTEL = YES ]; then
cat << END >> $NXT_MAKEFILE

ifeq (\$D,1)
NXT_OTEL_LIB_STATIC = $NXT_OTEL_LIB_DIR/target/debug/libotel.a
else
NXT_OTEL_LIB_STATIC = $NXT_OTEL_LIB_DIR/target/release/libotel.a
endif

END
fi

# The include paths list.

Expand Down Expand Up @@ -587,6 +586,9 @@ NXT_OTEL_DEPS=" \
cat << END >> $NXT_MAKEFILE

\$(NXT_OTEL_LIB_STATIC): $NXT_OTEL_DEPS
cargo build \$(RUST_FLAGS) --manifest-path $NXT_OTEL_LIB_DIR/Cargo.toml
\$(PP_CR) \$@
\$(v)cargo rustc \$(RUST_FLAGS) \\
--manifest-path $NXT_OTEL_LIB_DIR/Cargo.toml \\
-- --emit link=../../$NXT_BUILD_DIR/lib/libotel.a
END
fi

0 comments on commit d0dbba3

Please sign in to comment.