[PD] readanysf for windows? (again)

Hans-Christoph Steiner hans at at.or.at
Fri Apr 29 00:08:25 CEST 2011


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