mirror of https://gerrit.osmocom.org/osmo-ci
Use stow for dependency management
This commit introduces the usage of GNU stow[1] for dependency management. Stow uses symlinks to make dependencies available in a single directory althoguh they were installed in distinct directories. Keeping installation directories seperate has the advantage of letting the build fail if AM_CFLAGS and LDADD do not contain all dependencies which are actually used. Installing multiple dependencies into a single directory causes x_CFLAGS and x_LIBS variables to magically point where other dependencies are found as well, therefore missing entries can be overlooked. Stow acts as a convenience layer here, making it unnecessary to supply a list of locations in LD_LIBRARY_PATH, PKG_CONFIG_PATH and so forth for building when dependencies are installed in distinct directories manually. Stow has to be present on the jenkins build nodes for successful executing of osmo-build-dep.sh. [1] https://www.gnu.org/software/stow/ Change-Id: I8f5012419495a656912b7b71e4f76ce102c6b63a
This commit is contained in:
parent
971489df4a
commit
69350b67e6
|
@ -43,6 +43,14 @@ cd "$deps"
|
|||
osmo-deps.sh "$project" "$branch"
|
||||
cd "$project"
|
||||
|
||||
# Keep the installation targets of the dependencies in a seperate directory
|
||||
# hierarchy before stowing them to avoid wrongly suggesting that they are part
|
||||
# of the -I and -L search paths
|
||||
mkdir -p "$inst/stow"
|
||||
|
||||
autoreconf --install --force
|
||||
./configure --prefix="$inst" $cfg
|
||||
./configure --prefix="$inst/stow/$project" $cfg
|
||||
$MAKE $PARALLEL_MAKE install
|
||||
|
||||
# Make the dependencies available through symlinks in $deps ($PWD/..).
|
||||
STOW_DIR="$inst/stow" stow --restow $project
|
||||
|
|
Loading…
Reference in New Issue