diff --git a/bootstrap-plugins.sh b/bootstrap-plugins.sh index b21a6db..12b9880 100755 --- a/bootstrap-plugins.sh +++ b/bootstrap-plugins.sh @@ -317,6 +317,8 @@ build_autoconf mxml "${MXML_VERSION}" # --------------------------------------------------------------------------------------------------------------------- # carla (backend only) +if [ "${CROSS_COMPILING}" -eq 0 ] || [ -n "${EXE_WRAPPER}" ]; then + CARLA_EXTRAFLAGS="CAN_GENERATE_LV2_TTL=false" CARLA_EXTRAFLAGS+=" EXTERNAL_PLUGINS=false" CARLA_EXTRAFLAGS+=" HAVE_ALSA=false" @@ -346,6 +348,8 @@ CARLA_EXTRAFLAGS+=" USING_RTAUDIO=false" git_clone carla "${CARLA_VERSION}" "${CARLA_URL}" build_make carla "${CARLA_VERSION}" "${CARLA_EXTRAFLAGS}" +fi + # --------------------------------------------------------------------------------------------------------------------- # wine bootstrap (needed for cross-compilation) diff --git a/local.env b/local.env index 980c729..2348278 100644 --- a/local.env +++ b/local.env @@ -30,23 +30,28 @@ export AR="${TARGET_AR}" export CC="${TARGET_CC}" export CXX="${TARGET_CXX}" export LD="${TARGET_LD}" +export NM="${TARGET_NM}" +export RANLIB="${TARGET_RANLIB}" export STRIP="${TARGET_STRIP}" export WINDRES="${TARGET_WINDRES}" export CFLAGS="${TARGET_CFLAGS} ${EXTRA_CFLAGS}" export CXXFLAGS="${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS}" export LDFLAGS="${TARGET_LDFLAGS} ${EXTRA_LDFLAGS}" +export PKG_CONFIG="${PAWPAW_PREFIX}/bin/pkg-config" export PKG_CONFIG_PATH="${TARGET_PKG_CONFIG_PATH}" +unset CPP unset CPPFLAGS export OLD_PATH="${PATH}" export PATH="${TARGET_PATH}" alias ar=${AR} alias cc=${CC} -alias cpp=${CPP} alias gcc=${CC} alias g++=${CXX} alias ld=${ld} +alias nm=${nm} +alias ranlib=${ranlib} alias strip=${strip} echo "Success! Environment is now ready to build stuff" diff --git a/patches/fomp/wasm/11_wasm-setup.patch b/patches/fomp/wasm/11_wasm-setup.patch new file mode 100644 index 0000000..50b0aa5 --- /dev/null +++ b/patches/fomp/wasm/11_wasm-setup.patch @@ -0,0 +1,53 @@ +diff --git a/waflib/Tools/__pycache__/gxx.cpython-310.pyc b/waflib/Tools/__pycache__/gxx.cpython-310.pyc +index 76405de..c407511 100644 +Binary files a/waflib/Tools/__pycache__/gxx.cpython-310.pyc and b/waflib/Tools/__pycache__/gxx.cpython-310.pyc differ +diff --git a/waflib/Tools/gcc.py b/waflib/Tools/gcc.py +index acdd473..9cf5533 100644 +--- a/waflib/Tools/gcc.py ++++ b/waflib/Tools/gcc.py +@@ -45,16 +45,16 @@ def gcc_common_flags(conf): + v.RPATH_ST = '-Wl,-rpath,%s' + + v.SONAME_ST = '-Wl,-h,%s' +- v.SHLIB_MARKER = '-Wl,-Bdynamic' +- v.STLIB_MARKER = '-Wl,-Bstatic' ++ v.SHLIB_MARKER = '' ++ v.STLIB_MARKER = '' + + v.cprogram_PATTERN = '%s' + + v.CFLAGS_cshlib = ['-fPIC'] +- v.LINKFLAGS_cshlib = ['-shared'] ++ v.LINKFLAGS_cshlib = ['-sSIDE_MODULE=2'] + v.cshlib_PATTERN = 'lib%s.so' + +- v.LINKFLAGS_cstlib = ['-Wl,-Bstatic'] ++ v.LINKFLAGS_cstlib = [] + v.cstlib_PATTERN = 'lib%s.a' + + v.LINKFLAGS_MACBUNDLE = ['-bundle', '-undefined', 'dynamic_lookup'] +diff --git a/waflib/Tools/gxx.py b/waflib/Tools/gxx.py +index 22c5d26..d18829d 100644 +--- a/waflib/Tools/gxx.py ++++ b/waflib/Tools/gxx.py +@@ -45,16 +45,16 @@ def gxx_common_flags(conf): + v.RPATH_ST = '-Wl,-rpath,%s' + + v.SONAME_ST = '-Wl,-h,%s' +- v.SHLIB_MARKER = '-Wl,-Bdynamic' +- v.STLIB_MARKER = '-Wl,-Bstatic' ++ v.SHLIB_MARKER = '' ++ v.STLIB_MARKER = '' + + v.cxxprogram_PATTERN = '%s' + + v.CXXFLAGS_cxxshlib = ['-fPIC'] +- v.LINKFLAGS_cxxshlib = ['-shared'] ++ v.LINKFLAGS_cxxshlib = ['-sSIDE_MODULE=2'] + v.cxxshlib_PATTERN = 'lib%s.so' + +- v.LINKFLAGS_cxxstlib = ['-Wl,-Bstatic'] ++ v.LINKFLAGS_cxxstlib = [] + v.cxxstlib_PATTERN = 'lib%s.a' + + v.LINKFLAGS_MACBUNDLE = ['-bundle', '-undefined', 'dynamic_lookup'] diff --git a/patches/lv2/wasm/12_emscripten-keep-alive.patch b/patches/lv2/wasm/12_emscripten-keep-alive.patch new file mode 100644 index 0000000..7dd92f7 --- /dev/null +++ b/patches/lv2/wasm/12_emscripten-keep-alive.patch @@ -0,0 +1,27 @@ +diff --git a/lv2/core/lv2.h b/lv2/core/lv2.h +index 84c40a5..6e22dc6 100644 +--- a/lv2/core/lv2.h ++++ b/lv2/core/lv2.h +@@ -41,6 +41,11 @@ + + #include + ++#ifdef __EMSCRIPTEN__ ++// for EMSCRIPTEN_KEEPALIVE ++#include ++#endif ++ + // clang-format off + + #define LV2_CORE_URI "http://lv2plug.in/ns/lv2core" ///< http://lv2plug.in/ns/lv2core +@@ -366,7 +371,9 @@ typedef struct LV2_Descriptor { + Put this (LV2_SYMBOL_EXPORT) before any functions that are to be loaded + by the host as a symbol from the dynamic library. + */ +-#ifdef _WIN32 ++#if defined(__EMSCRIPTEN__) ++# define LV2_SYMBOL_EXPORT LV2_SYMBOL_EXTERN EMSCRIPTEN_KEEPALIVE ++#elif defined(_WIN32) + # define LV2_SYMBOL_EXPORT LV2_SYMBOL_EXTERN __declspec(dllexport) + #else + # define LV2_SYMBOL_EXPORT \ diff --git a/patches/mda-lv2/wasm/11_wasm-setup.patch b/patches/mda-lv2/wasm/11_wasm-setup.patch new file mode 100644 index 0000000..50b0aa5 --- /dev/null +++ b/patches/mda-lv2/wasm/11_wasm-setup.patch @@ -0,0 +1,53 @@ +diff --git a/waflib/Tools/__pycache__/gxx.cpython-310.pyc b/waflib/Tools/__pycache__/gxx.cpython-310.pyc +index 76405de..c407511 100644 +Binary files a/waflib/Tools/__pycache__/gxx.cpython-310.pyc and b/waflib/Tools/__pycache__/gxx.cpython-310.pyc differ +diff --git a/waflib/Tools/gcc.py b/waflib/Tools/gcc.py +index acdd473..9cf5533 100644 +--- a/waflib/Tools/gcc.py ++++ b/waflib/Tools/gcc.py +@@ -45,16 +45,16 @@ def gcc_common_flags(conf): + v.RPATH_ST = '-Wl,-rpath,%s' + + v.SONAME_ST = '-Wl,-h,%s' +- v.SHLIB_MARKER = '-Wl,-Bdynamic' +- v.STLIB_MARKER = '-Wl,-Bstatic' ++ v.SHLIB_MARKER = '' ++ v.STLIB_MARKER = '' + + v.cprogram_PATTERN = '%s' + + v.CFLAGS_cshlib = ['-fPIC'] +- v.LINKFLAGS_cshlib = ['-shared'] ++ v.LINKFLAGS_cshlib = ['-sSIDE_MODULE=2'] + v.cshlib_PATTERN = 'lib%s.so' + +- v.LINKFLAGS_cstlib = ['-Wl,-Bstatic'] ++ v.LINKFLAGS_cstlib = [] + v.cstlib_PATTERN = 'lib%s.a' + + v.LINKFLAGS_MACBUNDLE = ['-bundle', '-undefined', 'dynamic_lookup'] +diff --git a/waflib/Tools/gxx.py b/waflib/Tools/gxx.py +index 22c5d26..d18829d 100644 +--- a/waflib/Tools/gxx.py ++++ b/waflib/Tools/gxx.py +@@ -45,16 +45,16 @@ def gxx_common_flags(conf): + v.RPATH_ST = '-Wl,-rpath,%s' + + v.SONAME_ST = '-Wl,-h,%s' +- v.SHLIB_MARKER = '-Wl,-Bdynamic' +- v.STLIB_MARKER = '-Wl,-Bstatic' ++ v.SHLIB_MARKER = '' ++ v.STLIB_MARKER = '' + + v.cxxprogram_PATTERN = '%s' + + v.CXXFLAGS_cxxshlib = ['-fPIC'] +- v.LINKFLAGS_cxxshlib = ['-shared'] ++ v.LINKFLAGS_cxxshlib = ['-sSIDE_MODULE=2'] + v.cxxshlib_PATTERN = 'lib%s.so' + +- v.LINKFLAGS_cxxstlib = ['-Wl,-Bstatic'] ++ v.LINKFLAGS_cxxstlib = [] + v.cxxstlib_PATTERN = 'lib%s.a' + + v.LINKFLAGS_MACBUNDLE = ['-bundle', '-undefined', 'dynamic_lookup'] diff --git a/plugins/mda.json b/plugins/mda-lv2.json similarity index 100% rename from plugins/mda.json rename to plugins/mda-lv2.json