Re: Help compiling pureVST
Miller Puckette via Pd-list <[email protected]>
| Newsgroups | gmane.comp.multimedia.puredata.general |
|---|---|
| Message-ID | <[email protected]> |
I think that must be exactly what's going on. I never use the automake system (it's far too complicated for me to understand) and so I don't end up confusing the libpd build. So yes, as Dan says, or alternatively just get a clean copy of the Pd source and build libpd in it using only the Makefile in the libpd directory. I'll update the pureVST README accordingly :) Miller On 5/31/25 9:32 PM, Dan Wilcox wrote: > Maybe my comment was a red herring, but to explain: I have run into > the issue on my own system (and by an issue or two others have > posted), that if you build desktop pd, at least using the auto tools > build, the generated .o files will not contain the multi instance > stuff. If you later build libpd within the libpd directory, the > makefile there will reuse the existing .o files even though it's > trying to build with PDINSTANCE set, which can lead to link issues. > The way forward is to clean the main dir before building libpd itself > to be sure. > >> On May 31, 2025, at 5:01 PM, Dan Wilcox <[email protected]> wrote: >> >> Did you build desktop or on that same dir? If so, you need to clean >> it as it doesn't use multiple instances. >> >> enohp ym morf tnes >> ----------- >> Dan Wilcox >> danomatika.com >> robotcowboy.com >> >> >>> On May 31, 2025, at 4:16 PM, Alexandros Drymonitis >>> <[email protected]> wrote: >>> >>> >>> >>> >>> On 5/31/25 14:50, Miller Puckette wrote: >>>> I've been trying to figure out how that could happen without >>>> success. libpd should be defining the missing symbol >>>> (s_signal). This is a shot int he dark but can you try "nm >>>> libpd.a" from the .../pd/libpd directory? I get this: >>>> >>>> sp@bang:~/pd/libpd$ nm libpd.a |grep s_sig >>>> 00000000000000a0 D s_signal >>> >>> I get the following: >>> >>> ``` >>> U s_signal >>> U s_signal >>> U s_signal >>> U s_signal >>> ``` >>> >>> so I guess the symbol is missing. I tried deleting everything in the >>> libpd directory (apart from the Makefile, README and the test_libpd >>> directory) and to re-build it with >>> >>> `|make MORECFLAGS=-DVST_CLEANSER >>> MORESRC=[...path-to...]/PureVST/source/vst_cleanser.c|` >>> >>> but the result is the same >>> >>>> >>>> ... so libpd.a is defining the (apparently missing) symbol. If >>>> yours is missing, then somehow the libpd.a build >>>> missed including vst_cleanser.c from the pureVST source. But if >>>> yours is present like mine is (which I expect you >>>> to find) then something about the linker command is funny. You >>>> could then run "cmake --build . --verbose" so that >>>> we could both look at how the linker is getting invoked on our >>>> respective systems. >>>> >>>> Meanwihle... in trying to recompile everything from scratch I now >>>> get a problem further down the line (a segfault trying to run >>>> Steinberg's 'validator'.) I had to start all over and add >>>> -DSMTG_RUN_VST_VALIDATOR=FALSE to the cmake command - >>>> then, unexpectedly, I was able to load the plugin under ardour and >>>> all seemed fine. But something seems to be pretty >>>> fragile here :) >>>> >>>> >>>> Miller >>>> >>>> >>>> On 5/30/25 3:16 PM, Alexandros Drymonitis wrote: >>>>> Replying to list. I went a bit further, but got an error with >>>>> `cmake --build .` after the selftests were run successfully. >>>>> Here's the error: >>>>> >>>>> ``` >>>>> [ 91%] Built target validator >>>>> [ 91%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/test-patch.pd >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/test-patch.pd >>>>> [ 91%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot.png >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot.png >>>>> [ 92%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/Snapshots/32C50013FF5F5CB4871C312DB4F42368_snapshot_2.0x.png >>>>> [ 92%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/background.png >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/background.png >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/background.png >>>>> [ 93%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/onoff_button.png >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/onoff_button.png >>>>> [ 93%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/pdeditor.uidesc >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/pdeditor.uidesc >>>>> [ 93%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/slider_background.png >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_background.png >>>>> [ 93%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle.png >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle.png >>>>> [ 94%] Generating >>>>> VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png >>>>> [SMTG] Copied >>>>> /home/alex/Applications/puredata/PureVST-0.5/resource/slider_handle_2.0x.png >>>>> to >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/Resources/slider_handle_2.0x.png >>>>> [ 94%] Building CXX object >>>>> CMakeFiles/PureVST.dir/source/pdprocessor.cpp.o >>>>> [ 94%] Building CXX object >>>>> CMakeFiles/PureVST.dir/source/pdcontroller.cpp.o >>>>> [ 95%] Building CXX object >>>>> CMakeFiles/PureVST.dir/source/pdentry.cpp.o >>>>> [ 95%] Building CXX object >>>>> CMakeFiles/PureVST.dir/home/alex/Applications/vst3sdk/public.sdk/source/main/linuxmain.cpp.o >>>>> [ 95%] Linking CXX shared module >>>>> VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so >>>>> dlopen failed. >>>>> /home/alex/Applications/puredata/PureVST-0.5/build/VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so: >>>>> undefined symbol: s_signalgmake[2]: *** >>>>> [CMakeFiles/PureVST.dir/build.make:207: >>>>> VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so] Error 1 >>>>> gmake[2]: *** Deleting file >>>>> 'VST3/Release/PureVST.vst3/Contents/x86_64-linux/PureVST.so' >>>>> gmake[1]: *** [CMakeFiles/Makefile2:389: >>>>> CMakeFiles/PureVST.dir/all] Error 2 >>>>> gmake: *** [Makefile:91: all] Error 2 >>>>> ``` >>>>> >>>>> >>>>> On 5/30/25 12:30, Miller Puckette wrote: >>>>>> I think you're almost there but now I'm goint to revise the >>>>>> README to be more explicit. From the (empty) build directory >>>>>> I type this: >>>>>> >>>>>> SRC=[...path-to...]/purevst >>>>>> >>>>>> cmake -DCMAKE_BUILD_TYPE=Release >>>>>> -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE >>>>>> -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC >>>>>> >>>>>> (all on one line) and then this: >>>>>> >>>>>> cmake --build . >>>>>> >>>>>> It could be that as you looked at the README you saw the 'cmake >>>>>> -DCMAKE_BUILD_TYPE=Release...' command broken into two lines - >>>>>> I should find a way to prevent that from happening :) >>>>>> >>>>>> Miller >>>>>> >>>>>> On 5/30/25 9:57 AM, Alexandros Drymonitis wrote: >>>>>>> OK, I downloaded PureVST (sorry, had to figure this out earlier) >>>>>>> and unpacked it. I created a build directory and changed to >>>>>>> that. I also corrected the paths to the VST3 SDK and Pd's source >>>>>>> (well, Pd's directory that includes the src/ directory, not the >>>>>>> actual src/ directory; that's what I got I should do from the >>>>>>> CMakeLists.txt file) and I run: >>>>>>> >>>>>>> `cmake -DCMAKE_BUILD_TYPE=Release` >>>>>>> >>>>>>> but I got the following error: >>>>>>> >>>>>>> ``` >>>>>>> CMake Warning: >>>>>>> No source or binary directory provided. Both will be assumed >>>>>>> to be the >>>>>>> same as the current working directory, but note that this >>>>>>> warning will >>>>>>> become a fatal error in future CMake releases. >>>>>>> >>>>>>> >>>>>>> CMake Error: The source directory >>>>>>> "/home/alex/Applications/puredata/PureVST-0.5/build" does not >>>>>>> appear to contain CMakeLists.txt. >>>>>>> Specify --help for usage, or press the help button on the CMake >>>>>>> GUI. >>>>>>> ``` >>>>>>> >>>>>>> Perhaps something is missing in the command, like a double dot? >>>>>>> I know nothing about CMake, so this could be rather trivial... >>>>>>> >>>>>>> On 5/30/25 10:22, Miller Puckette via Pd-list wrote: >>>>>>>> Hmm... the directions could have been clearer, sorry.... >>>>>>>> >>>>>>>> vst_cleanser.c is in the pureVTS source, not in the Pd source. >>>>>>>> If you've downloaded and unpacked the PureVST source tarball it >>>>>>>> should be just "purevst/source/vst_cleanser.c". And yes, no >>>>>>>> trailing period (I think my markdown-to-html converter remove >>>>>>>> the space I had put between the filename and the period). >>>>>>>> >>>>>>>> and yes, 'wherever the sources landed" refers to the pureVST >>>>>>>> source (currently >>>>>>>> https://msp.ucsd.edu/tools/purevst/PureVST-0.5.src.tgz ) whic >>>>>>>> need dwonloading and unpacking before even making this version >>>>>>>> of libpd. >>>>>>>> >>>>>>>> cheers >>>>>>>> Miller >>>>>>>> >>>>>>>> >>>>>>>> On 5/30/25 8:39 AM, Alexandros Drymonitis wrote: >>>>>>>>> >>>>>>>>> I'm trying to compile pureVST from source on Debian 12. I >>>>>>>>> built the VST SDK and following pureVST's README, I've gone up >>>>>>>>> to the following step `make MORECFLAGS=-DVST_CLEANSER` insinde >>>>>>>>> the libpd directory. >>>>>>>>> >>>>>>>>> I don't quite understand the following steps. Right after >>>>>>>>> this, the README reads that I should type >>>>>>>>> `MORESRC=../../work/vst/purevst/source/vst_cleanser.c.` >>>>>>>>> >>>>>>>>> Being inside the libpd directory, where will the two parent >>>>>>>>> directories lead me, since the path starts with ../../? Also, >>>>>>>>> where is this `work` directory supposed to be? Or `vst` and >>>>>>>>> `purevst`? Are these directories Miller created in his system? >>>>>>>>> >>>>>>>>> I did a `find . -name vst_cleanser.c` from my home directory >>>>>>>>> and found nothing (BTW, is the dot at the end supposed to be >>>>>>>>> there?). >>>>>>>>> >>>>>>>>> Then the instructions follow like this: >>>>>>>>> >>>>>>>>> ``` >>>>>>>>> >>>>>>>>> Then using the PureVST source tree, consult the CMakeLists.txt >>>>>>>>> file and correct the path settings for the VST SDK and for the >>>>>>>>> Pd source. Then make an empty build directory, and using a >>>>>>>>> shell or terminal window, change directory to the build >>>>>>>>> directory and try to get these to work in sequence: >>>>>>>>> >>>>>>>>> |SRC=~/work/vst/purevst| >>>>>>>>> >>>>>>>>> [… or wherever the sources landed] >>>>>>>>> >>>>>>>>> |cmake -DCMAKE_BUILD_TYPE=Release >>>>>>>>> -DSMTG_ENABLE_VST3_PLUGIN_EXAMPLES=FALSE >>>>>>>>> -DSMTG_ENABLE_VST3_HOSTING_EXAMPLES=FALSE -DHOME=$HOME $SRC| >>>>>>>>> >>>>>>>>> |cmake --build .| >>>>>>>>> >>>>>>>>> ``` >>>>>>>>> >>>>>>>>> It mentions "or wherever the sources landed". Which sources? >>>>>>>>> After building libpd? And in which directory should all the >>>>>>>>> cmake command be executed? >>>>>>>>> >>>>>>>>> >>>>>>>>> --- >>>>>>>>> [email protected] - the Pure Data mailinglist >>>>>>>>> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/G6WKC35RKLRYGKG6SBU7XNVVJJMAKKZO/__;!!Mih3wA!DFen_RjYHJNb45mR5Hyg6bFkcnp_5FiD-L8x3J77DDNf8kSeESnTcAvpifvoHQuLXlMtgG3c4g$ >>>>>>>>> >>>>>>>>> >>>>>>>>> To unsubscribe send an email to [email protected] >>>>>>>>> mailing list >>>>>>>>> UNSUBSCRIBE and account-management -> >>>>>>>>> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!DFen_RjYHJNb45mR5Hyg6bFkcnp_5FiD-L8x3J77DDNf8kSeESnTcAvpifvoHQuLXlNkw1GM2g$ >>>>>>>> >>>>>>>> >>>>>>>> --- >>>>>>>> [email protected] - the Pure Data mailinglist >>>>>>>> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/TNRUNARSDQYEJRVRR7YXBKGVMEWZ5LSK/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYm61iPow$ >>>>>>>> >>>>>>>> >>>>>>>> To unsubscribe send an email to [email protected] >>>>>>>> mailing list >>>>>>>> UNSUBSCRIBE and account-management -> >>>>>>>> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYH7gGC2w$ >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> --- >>>>>>> [email protected] - the Pure Data mailinglist >>>>>>> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/TIRTMUGDE6MPPDG5JDZGATYQXCP5CXVB/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYL9pcD7g$ >>>>>>> >>>>>>> To unsubscribe send an email to [email protected] >>>>>>> mailing list >>>>>>> UNSUBSCRIBE and account-management -> >>>>>>> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!EURYqzxhS_He9z-6PE0AFFJAE3XlM9Nxhvdcr9dGcpyw1ylz7W38fLqzqve9fW5vcKYH7gGC2w$ >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> --- >>>>> [email protected] - the Pure Data mailinglist >>>>> https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/II7K4ZFPH6QF4PYJ5MZJJ6PUSWZYBN62/__;!!Mih3wA!H13gOLNhjW0b3yIv3Mv32sdTdhORLrti5ptp8icO2d2-axGPFy0ONnZkiXgjTBRwNGWSwTaEgw$ >>>>> >>>>> To unsubscribe send an email to [email protected] mailing >>>>> list >>>>> UNSUBSCRIBE and account-management -> >>>>> https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!H13gOLNhjW0b3yIv3Mv32sdTdhORLrti5ptp8icO2d2-axGPFy0ONnZkiXgjTBRwNGXCIV33JQ$ >>>> >>>> >>>> >>> --- >>> [email protected] - the Pure Data mailinglist >>> https://lists.iem.at/hyperkitty/list/[email protected]/message/ONACOAA2TPVCFNFLSXB6TSZA7QH5KZE6/ >>> <https://urldefense.com/v3/__https://lists.iem.at/hyperkitty/list/[email protected]/message/ONACOAA2TPVCFNFLSXB6TSZA7QH5KZE6/__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhrBw5zlI$> >>> >>> To unsubscribe send an email to [email protected] mailing list >>> UNSUBSCRIBE and account-management -> https://lists.iem.at/ >>> <https://urldefense.com/v3/__https://lists.iem.at/__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhNZG5x6o$> > > -------- > Dan Wilcox > danomatika.com > <https://urldefense.com/v3/__http://danomatika.com__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhG_UmnDY$> > robotcowboy.com > <https://urldefense.com/v3/__http://robotcowboy.com__;!!Mih3wA!B0Ztb3bKDXO49q0TIoFj6vE-WyzQvxFsliQ5bnHnzTgpIcqU6lpaq_BJiVj8U7BvIcF2vqWhZFq3JbU$> > --- [email protected] - the Pure Data mailinglist https://lists.iem.at/hyperkitty/list/[email protected]/message/2KP7DOQ3EDXBB5AVMFBJJPQ735UC4A27/ To unsubscribe send an email to [email protected] mailing list UNSUBSCRIBE and account-management -> https://lists.iem.at/