[PD] readanysf for windows? (again)

Martin Peach martin.peach at sympatico.ca
Fri Apr 29 05:07:13 CEST 2011


This might be relevant here:

http://sourceware.org/binutils/docs-2.21/ld/WIN32.html#WIN32

especially:

"
If `--export-all-symbols' is not given explicitly on the command line, 
then the default auto-export behavior will be disabled if either of the 
following are true:

     A DEF file is used.
     Any symbol in any object file was marked with the 
__declspec(dllexport) attribute.
"
Might be that the included libs have that declspec in them.

Martin

On 2011-04-28 18:25, Patrice Colet wrote:
>   I've explored a bit the source files of pd-extended externals and didn't see a single one with .cpp extension
> available on windows, the solution I've found is ugly
>
> #ifdef NT
> extern "C" __declspec(dllexport) void readanysf_tilde_setup(void) {
> #else
> extern "C" void readanysf_tilde_setup(void) {
> #endif
>
> ----- "Hans-Christoph Steiner"<hans at at.or.at>  a écrit :
>
>> You only need __declspec(dllexport) for the Windows linker. MinGW
>> doesn't need it.  That template Makefile is used in many external
>> libraries included in Pd-extended, therefore it works for many many
>> objects  on Windows.
>>
>> .hc
>>
>> On Apr 28, 2011, at 12:45 PM, Patrice Colet wrote:
>>
>>> I even tried to put manually:
>>>
>>> __declspec(dllexport) void readanysf_tilde_setup(void)
>>>
>>> but still same error pd can't read it, there is nothing else I can
>> do,
>>> someone with better knowledge of makefile should look at it.
>>>
>>>
>>> attached is attempt to rewrite a makefile that compiles on mingw,
>>> and that would be easy to adapt for linux and osx,
>>> it's inspired from gridflow/Makefile
>>>
>>> ----- "august"<august at alien.mur.at>  a écrit :
>>>
>>>> I did notice that in externals/frankenstein/Makefile, it does this
>>>> for
>>>> Visual Studio:
>>>>
>>>> 	link /dll /export:$*_setup $*.obj common.obj $(PDNTLIB)
>>>>
>>>> Are extra linking directives necessary for mingw externals?
>>>>
>>>>
>>>>
>>>> As for C++ files and the template Makefile, you might be able to
>> just
>>>> set "CC=cpp" somewhere before it starts the compile
>>>>
>>>>
>>>> Would be great to FINALLY get this thing going in windows.  :)
>>>>
>>>>
>>>>> still doesn't recognize readanysf_tilde_setup even with
>>>> -Wl,--enable-auto-import
>>>>>
>>>>> by defining -DMSW in CFLAGS the compiler should read this macro
>> in
>>>> m_pd.h:
>>>>>
>>>>> #define EXTERN __declspec(dllimport) extern
>>>>>
>>>>> but it doesn't
>>>>>
>>>>> is there a more explicit template makefile for cpp sources?
>>>>>
>>>>> the only working example that work I can get is from gridflow but
>>>> it's so tricky,
>>>>> sources are processed with ruby before being compiled by g++
>>>>>
>>>>> ----- "august"<august at alien.mur.at>  a écrit :
>>>>>
>>>>>> Patrice,
>>>>>>
>>>>>> 	Here is a new Makefile that I made looking at the template
>> base.
>>>>
>>>>>>
>>>>>> 	I think this should take care of exporting the tilde_setup
>>>> symbol.
>>>>>>
>>>>>>
>>>>>> 	again, doing it blindly...so there may be errors.
>>>>>>
>>>>>> 	-august.
>>>>>>
>>>>>>
>>>>>>
>>>>>>> After resolving two dozens undefined references I finally have
>>>>>> readanysf compiled.
>>>>>>> Curiously gmerlin_avdec needs a prepended link of each used
>>>>>> library.
>>>>>>>
>>>>>>> The link flags must be at the end, like in attached file.
>>>>>>>
>>>>>>> I had to copy missing dll's into pd/bin along with other libs
>>>>>> provided py pd-extended and gridflow,
>>>>>>>
>>>>>>> libdca-0.dll libgavl-1.dll libiconv-2.dll libintl-8.dll
>>>>>> libtheora-0.dll lib-tiff-3.dll
>>>>>>>
>>>>>>> it seems it's still not the good way to compile because pd
>>>>>> complains:
>>>>>>>
>>>>>>>
>>>>>>> load_object: Symbol "readanysf_tilde_setup" not found
>>>>>>>
>>>>>>>
>>>>>>> ----- "august"<august at alien.mur.at>  a écrit :
>>>>>>>
>>>>>>>> Yeah perhaps it will be easier with the pd-extended makefiles.
>>>> I
>>>>>>>> really
>>>>>>>> have no idea how windows handles linking and I also don't
>>>> have
>>>>>>>> experience with pd-extended builds.
>>>>>>>>
>>>>>>>>
>>>>>>>> One problem you might have with my makefile that I didn't see
>>>>>> before
>>>>>>>> is
>>>>>>>> that I test to see if the system is linux.  If so, I set
>>>>>> appropriate
>>>>>>>> flags.  If not, I assume you have a mac and set other flags.
>>>>>>>>
>>>>>>>>
>>>>>>>> I've attached a Makefile.win that might work for you.  I made
>>>> it
>>>>>>>> blindly
>>>>>>>> since I don't have a windows setup.
>>>>>>>>
>>>>>>>> You should only need to edit these two lines:
>>>>>>>> 	GAVLPREFIX=/usr/local
>>>>>>>> 	PD_INCLUDES=/usr/include
>>>>>>>>
>>>>>>>> Maybe something else is needed, but I can't say.  It should
>>>> be
>>>>>> simple
>>>>>>>> enough to build from.
>>>>>>>>
>>>>>>>> best -august.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> I've tried to hack the makefile but have pain to get it
>>>>>> compiling
>>>>>>>> the dll because of linking problems...
>>>>>>>>> I guess it would be easier by using pd-extended externals
>>>>>> Makefile
>>>>>>>> for resolving differences between os
>>>>>>>>>
>>>>>>>>> ----- "august"<august at alien.mur.at>  a écrit :
>>>>>>>>>
>>>>>>>>>> well, if you already have gavl and gmerlin-avdecoder, you
>>>>>> should
>>>>>>>> only
>>>>>>>>>> need to download and compile readanysf~
>>>>>>>>>>
>>>>>>>>>> the Makefile is there already.  If I am not mistaken, you
>>>>>> would
>>>>>>>> only
>>>>>>>>>> need to copy and modify the pd_linux target so that it
>>>> creates
>>>>>> a
>>>>>>>>>> readanysf~.dll instead of a readanysf~.pd_linux
>>>>>>>>>>
>>>>>>>>>> ...and then package it in a bundle so that it is usable
>>>> for
>>>>>>>> windows
>>>>>>>>>> users.  ...that will be the hard part I imagine.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Hello, I've applied this patch then gmerlin-avdecoder
>>>>>> compiles
>>>>>>>> fine
>>>>>>>>>> on mingw
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>> http://www.mail-archive.com/gmerlin-general@lists.sourceforge.net/msg00322.html
>>>>>>>>>>>
>>>>>>>>>>> now we need the makefile ;)
>>>>>>>>>>>
>>>>>>>>>>> ----- "Hans-Christoph Steiner"<hans at at.or.at>  a écrit
>>>> :
>>>>>>>>>>>
>>>>>>>>>>>> We just need someone to get all of the required
>>>> libraries
>>>>>>>> building
>>>>>>>>>> on
>>>>>>>>>>>> Windows/MinGW.  gmerlin-avdecoder is required, then
>>>> the
>>>>>> more
>>>>>>>>>> codec
>>>>>>>>>>>> libs,
>>>>>>>>>>>> the better, but it'll work without any of them, it
>>>> just
>>>>>> won't
>>>>>>>> open
>>>>>>>>>> as
>>>>>>>>>>>> many files.  Once we have that, making a Windows build
>>>> of
>>>>>>>>>>>> [readanysf~]
>>>>>>>>>>>> will be easy.
>>>>>>>>>>>>
>>>>>>>>>>>> .hc
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, 27 Apr 2011 13:56 +0200, "matteo sisti sette"
>>>>>>>>>>>> <matteosistisette at gmail.com>  wrote:
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Is there anything similar to readanysf~ available
>>>> for
>>>>>>>> Windows?
>>>>>>>>>> I
>>>>>>>>>>>> would
>>>>>>>>>>>>> like to be able to read the audio from mov video
>>>> files.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I've found some very old threads about failed
>>>> attempts
>>>>>> to
>>>>>>>> port
>>>>>>>>>>>>> readanysf~ to windows.
>>>>>>>>>>>>> Has there been any success since then? Anybody that
>>>> has
>>>>>>>> been
>>>>>>>>>> able
>>>>>>>>>>>> to
>>>>>>>>>>>>> compile it for windows and could share the compiled
>>>>>> binary?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Or any similar external?
>>>>>>>>>>>>>
>>>>>>>>>>>>> thanks
>>>>>>>>>>>>> m.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Matteo Sisti Sette
>>>>>>>>>>>>> matteosistisette at gmail.com
>>>>>>>>>>>>> http://www.matteosistisette.com
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Patrice Colet
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> 	-------------------
>>>>>>>>>> 	http://aug.ment.org
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Patrice Colet
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Pd-list at iem.at mailing list
>>>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>>>
>>>>>>>> --
>>>>>>>> 	-------------------
>>>>>>>> 	http://aug.ment.org
>>>>>>>
>>>>>>> --
>>>>>>> Patrice Colet
>>>>>>
>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Pd-list at iem.at mailing list
>>>>>>> UNSUBSCRIBE and account-management ->
>>>>>> http://lists.puredata.info/listinfo/pd-list
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 	-------------------
>>>>>> 	http://aug.ment.org
>>>>>
>>>>> --
>>>>> Patrice Colet
>>>>
>>>> --
>>>> 	-------------------
>>>> 	http://aug.ment.org
>>>
>>> --
>>> Patrice Colet
>>> <Makefile.win>
>>
>>
>>
>> ----------------------------------------------------------------------------
>>
>> Looking at things from a more basic level, you can come up with a more
>>
>> direct solution... It may sound small in theory, but it in practice,
>>
>> it can change entire economies.     - Amy Smith
>




More information about the Pd-list mailing list