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.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@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@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@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@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.h...
>>>>> >>>>> now we need the makefile ;) >>>>> >>>>> ----- "Hans-Christoph Steiner"hans@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@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@gmail.com >>>>>>> http://www.matteosistisette.com >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Pd-list@iem.at mailing list >>>>>>> UNSUBSCRIBE and account-management -> >>>>>>> http://lists.puredata.info/listinfo/pd-list >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Pd-list@iem.at mailing list >>>>>> UNSUBSCRIBE and account-management -> >>>>>> http://lists.puredata.info/listinfo/pd-list >>>>> >>>>> -- >>>>> Patrice Colet >>>>> >>>>> _______________________________________________ >>>>> Pd-list@iem.at mailing list >>>>> UNSUBSCRIBE and account-management -> >>>> http://lists.puredata.info/listinfo/pd-list >>>> >>>> -- >>>> ------------------- >>>> http://aug.ment.org >>> >>> -- >>> Patrice Colet >>> >>> _______________________________________________ >>> Pd-list@iem.at mailing list >>> UNSUBSCRIBE and account-management -> >> http://lists.puredata.info/listinfo/pd-list >> >> -- >> ------------------- >> http://aug.ment.org > > -- > Patrice Colet
> _______________________________________________ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
--
-- Patrice Colet
--
-- 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