diff --git a/functions.sh b/functions.sh index 1a7e75b..cd61979 100755 --- a/functions.sh +++ b/functions.sh @@ -203,7 +203,7 @@ function pack_static_lib { local outfile="$1" myprint "${BLUE}outfile: ${GRAY}$outfile" - local objects="$(find $OBJDIR/objects -type f,l | tr '\n' ' ')" + local objects=$(find $OBJDIR/objects -type f,l | tr '\n' ' ') myprint "${BLUE}objects: ${GRAY}$objects" if [ -z "$objects" ]; then error "no compiled objects found" @@ -227,20 +227,21 @@ function link { myprint "${BLUE}args: ${GRAY}$args" myprint "${BLUE}outfile: ${GRAY}$outfile" - local objects="$(find $OBJDIR/objects -type f,l | tr '\n' ' ')" + local objects=$(find $OBJDIR/objects -type f,l | tr '\n' ' ') myprint "${BLUE}objects: ${GRAY}$objects" if [ -z "$objects" ]; then error "no compiled objects found" fi - local static_libs="$(find $OBJDIR/static_libs -type f,l | tr '\n' ' ')" + local static_libs=$(find $OBJDIR/static_libs -type f,l | tr '\n' ' ') myprint "${BLUE}static libraries: ${GRAY}$static_libs" - local dynamic_libs="$(find $OBJDIR/dynamic_libs -type f,l | tr '\n' ' ')" + local dynamic_libs=$(find $OBJDIR/dynamic_libs -type f,l | tr '\n' ' '\ + | sed "s,$OBJDIR/dynamic_libs/,,g") myprint "${BLUE}dynamic libraries: ${GRAY}$dynamic_libs" - local dynamic_libs_args="-L. -Wl,-Bdynamic" + local dynamic_libs_args="-L./$OBJDIR/dynamic_libs -Wl,-Bdynamic" for lib in $dynamic_libs; do - dynamic_libs_args="$dynamic_libs_args -l:$lib" + dynamic_libs_args="$dynamic_libs_args -Wl,-rpath=$(dirname $lib) -l:$lib" done local command="$CMP_CPP $objects $static_libs $args $dynamic_libs_args -o $OUTDIR/$outfile"