diff --git a/README b/README index f6f82761c..7cf3e111e 100644 --- a/README +++ b/README @@ -5,7 +5,7 @@ WARNING: this is work in progress. Don't try to use this unless you know what yo ============================= Start by executing: -autoreconf -vif +./bootstrap To install add-ons into /path/to/XBMC: ./configure --prefix=/path/to/XBMC diff --git a/addons/Makefile.include.am b/addons/Makefile.include.am index aad63ecce..e549dfea0 100644 --- a/addons/Makefile.include.am +++ b/addons/Makefile.include.am @@ -13,18 +13,16 @@ clean: -rm -r -f $(LIB) $(ADDONBINNAME).pvr @abs_top_srcdir@/addons/$(ADDONNAME).@OS@-@ARCHITECTURE@.zip @abs_top_srcdir@/addons/.build/$(ADDONNAME) *.so *.lo *.o *.la *.a *.P *~ release: $(lib_LTLIBRARIES) + cp -f .libs/$(LIBNAME).@DYN_LIB_EXT@ $(ADDONBINNAME).pvr + $(STRIP) -x $(ADDONBINNAME).pvr if HOST_IS_OSX - cp -f .libs/$(LIBNAME).dylib $(ADDONBINNAME).pvr -else - cp -f .libs/$(LIBNAME).so $(ADDONBINNAME).pvr + @abs_top_srcdir@/scripts/dylib_fix_paths.sh $(ADDONBINNAME).pvr endif - $(STRIP) -x $(ADDONBINNAME).pvr debug: $(lib_LTLIBRARIES) + cp -f .libs/$(LIBNAME).@DYN_LIB_EXT@ $(ADDONBINNAME).pvr if HOST_IS_OSX - cp -f .libs/$(LIBNAME).dylib $(ADDONBINNAME).pvr -else - cp -f .libs/$(LIBNAME).so $(ADDONBINNAME).pvr + @abs_top_srcdir@/scripts/dylib_fix_paths.sh $(ADDONBINNAME).pvr endif $(LIB): @BUILD_TYPE@ diff --git a/bootstrap b/bootstrap new file mode 100755 index 000000000..872167c61 --- /dev/null +++ b/bootstrap @@ -0,0 +1,3 @@ +#!/bin/sh + +autoreconf -vif diff --git a/configure.ac b/configure.ac index c82d444f4..9c6349769 100644 --- a/configure.ac +++ b/configure.ac @@ -29,6 +29,7 @@ ARCHITECTURE="unknown" HOST_INCLUDES="" HOST_CXXFLAGS="" ARCH_DEFINES="-DTARGET_POSIX -DTARGET_LINUX -D_LINUX" +DYN_LIB_EXT="so" case "${host}" in arm*-*-linux*) @@ -57,14 +58,14 @@ case "${host}" in ;; *-apple-darwin*) OS="darwin" - HOST_INCLUDES="-I/opt/local/include" HOST_CXXFLAGS="-dynamiclib -single_module -undefined dynamic_lookup" host_os_osx="yes" - ARCH_DEFINES="-DTARGET_POSIX -DTARGET_DARWIN" + ARCH_DEFINES="-DTARGET_POSIX -DTARGET_DARWIN -D_LINUX" + DYN_LIB_EXT="dylib" ;; *-freebsd*) OS="freebsd" - ARCH_DEFINES="-DTARGET_POSIX -DTARGET_FREEBSD" + ARCH_DEFINES="-DTARGET_POSIX -DTARGET_FREEBSD -D_LINUX" ;; esac @@ -79,6 +80,7 @@ AC_SUBST(HOST_CXXFLAGS) AC_SUBST(HOST_INCLUDES) AC_SUBST(OS) AC_SUBST(ARCH_DEFINES) +AC_SUBST(DYN_LIB_EXT) if test "x$host_os_osx" = "xyes"; then AM_CONDITIONAL(HOST_IS_OSX, true) diff --git a/scripts/dylib_fix_paths.sh b/scripts/dylib_fix_paths.sh new file mode 100755 index 000000000..d513fd05a --- /dev/null +++ b/scripts/dylib_fix_paths.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +EXTERNAL_LIBS=/Users/Shared/xbmc-depends +DYLIB_NAMEPATH=@executable_path/../Frameworks + +# change the dylib path used for linking +install_name_tool -id "$(basename $1)" "$1" + +# change the dylib paths used for depends loading +for a in $(otool -L "$1" | grep "$EXTERNAL_LIBS" | awk ' { print $1 } ') ; do + echo " Packaging $a" + install_name_tool -change "$a" "$DYLIB_NAMEPATH/$(basename $a)" "$1" +done +