[PD-dev] integrating pdlua into Pd-extended

Hans-Christoph Steiner hans at at.or.at
Mon Mar 28 06:59:23 CEST 2011


Oh, I assumed that a libfoo.a was a complete library for static  
linking, like on GNU/Linux and Mac OS X, and that the libfoo.dll.a was  
a special MinGW dlltool format to trick ld into linking against a  
Windows DLL.  That was my impression from reading about the dlltool  
trick.

.hc

On Mar 28, 2011, at 12:24 AM, Martin Peach wrote:

> That would be the same file as liblua.a. Giving it another name  
> won't change much. It looks like all the other libs in the MinGW  
> build of pd-extended are .a and not .dll. As I understand it the .a  
> libs have all the symbols included while dlls expose only what was  
> specified to be exported.
>
> Martin
>
> On 2011-03-27 22:07, Hans-Christoph Steiner wrote:
>>
>> I think the key is to generate the liblua51.dll.a file using the
>> instructions that were just posted, and stick that into the pdlua
>> folder, set -L., then -llua51 should just work. The .dll.a file  
>> seems to
>> expose the DLL symbols in a way that ld understands. If that works,  
>> I'll
>> include it in the build machine.
>>
>> .hc
>>
>> On Mar 27, 2011, at 9:40 PM, Martin Peach wrote:
>>
>>> I just built that lua-5.1.4 package in MinGW.
>>> Just typing 'make mingw'produces liblua.a and lua51.dll in src.
>>> liblua.a is somewhat larger than the dll.
>>> 'Make install' copies liblua.a into /usr/local/lib and creates an
>>> empty directory /usr/local/lib/lua.
>>>
>>> The error in the latest autobuild log
>>> (2011-03-27_03.31.00_mingw32_nt-5.1_windowsxp-i386_pd- 
>>> extended.txt) is
>>>
>>> gcc -s -shared -Wl,--enable-auto-import -o "pdlua.dll" "pdlua.o"
>>> -L"/home/pd/auto-build/pd-extended/pd/src"
>>> -L"/home/pd/auto-build/pd-extended/pd/bin"
>>> -L"/home/pd/auto-build/pd-extended/pd/obj" -lpd -lwsock32 -lkernel32
>>> -luser32 -lgdi32 -llua51.dll
>>>
>>> c:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin 
>>> \ld.exe:
>>> cannot find -llua51.dll
>>>
>>> So maybe it should be looking for -llua instead of -llua51.dll.
>>> Or else placing lua51.dll in /usr/local/lib or /usr/local/lib/lua
>>> might work. The lua wiki seems to imply that you should link against
>>> the dll.
>>>
>>> I'll change it to -llua first as that seems consistent with the rest
>>> of the MinGW Pd build.
>>>
>>>
>>> Martin
>>>
>>> On 2011-03-27 12:25, Hans-Christoph Steiner wrote:
>>>>
>>>> Hmm, turns out it was already installed on the Windows build  
>>>> machine,
>>>> but I just updated it. Something with the way pdlua is being linked
>>>> makes it not able to find lua51.dll. My guess is because the Lua  
>>>> build
>>>> system doesn't generate a liblua51.dll.a to put in /usr/local/ 
>>>> lib, like
>>>> the other libs there. libogg for example. I don't know how to  
>>>> generate
>>>> the liblua51.dll.a, do you?
>>>>
>>>> .hc
>>>>
>>>> On Mar 26, 2011, at 9:03 PM, Martin Peach wrote:
>>>>
>>>>> If you get the latest source here:
>>>>> http://www.lua.org/ftp/lua-5.1.4.tar.gz
>>>>> and then:
>>>>> make mingw
>>>>> ...it should just work.
>>>>>
>>>>> Martin
>>>>>
>>>>>
>>>>> On 2011-03-26 20:20, Hans-Christoph Steiner wrote:
>>>>>>
>>>>>> Yeah, we can build Lua on Windows and install it into the MinGW  
>>>>>> path.
>>>>>> That's how the rest of the libraries are currently handled.  
>>>>>> Then the
>>>>>> installer grabs the .dlls from the MinGW install path.
>>>>>>
>>>>>> Have you successfully built Lua on Windows? If so, let me know  
>>>>>> the
>>>>>> details, and I'll install it on the build server.
>>>>>>
>>>>>> .hc
>>>>>>
>>>>>> On Mar 26, 2011, at 6:31 PM, Martin Peach wrote:
>>>>>>
>>>>>>>
>>>>>>> From the gnu make manual it seems that running pkg-config is not
>>>>>>> recommended inside a Makefile. It should probably be done in the
>>>>>>> configure stage, but anyway, since liblua has different names  
>>>>>>> on each
>>>>>>> platform, pkg-config only returns that name.
>>>>>>> So I ended up just hard-coding liblua names and lua.h path for
>>>>>>> each OS
>>>>>>> in the Makefile.
>>>>>>> Now the nightly build for Windows is failing because it can't  
>>>>>>> resolve
>>>>>>> -llua51.dll. It seems that there is no standard place to put  
>>>>>>> that
>>>>>>> dll.
>>>>>>> Sooo, maybe pd-extended should build lua as well, like  
>>>>>>> portaudio, or
>>>>>>> should the dll be put in pd/bin, like pthreads.dll?
>>>>>>>
>>>>>>> Martin
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 2011-03-18 23:55, Hans-Christoph Steiner wrote:
>>>>>>>>
>>>>>>>> Martin,
>>>>>>>>
>>>>>>>> I think you could put different pkg-config lines in the per-OS
>>>>>>>> section
>>>>>>>> of the Makefile, and that would work for differences between
>>>>>>>> Debian/Ubuntu, Mac OS X, and Windows liblua. That won't help if
>>>>>>>> different GNU/Linux distros have different names for the lib  
>>>>>>>> tho.
>>>>>>>>
>>>>>>>> .hc
>>>>>>>>
>>>>>>>> On Mar 18, 2011, at 5:02 PM, katja wrote:
>>>>>>>>
>>>>>>>>> Hello,
>>>>>>>>>
>>>>>>>>> In the original Makefile.static for pdlua it is defined:
>>>>>>>>>
>>>>>>>>> lua-5.1.3
>>>>>>>>>
>>>>>>>>> This worked for me on OSX.
>>>>>>>>>
>>>>>>>>> Katja
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Mar 18, 2011 at 7:07 PM, Claude Heiland-Allen
>>>>>>>>> <claude at goto10.org <mailto:claude at goto10.org>> wrote:
>>>>>>>>>
>>>>>>>>> Hey,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 18/03/11 17:38, Martin wrote:
>>>>>>>>>
>>>>>>>>> The error actually seems to originate in pkg-config not
>>>>>>>>> finding lua5.1:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> From my limited experience, Lua 5.1 libraries have different  
>>>>>>>>> names
>>>>>>>>> all over the place, even in different GNU/Linux distros  
>>>>>>>>> (lua51,
>>>>>>>>> lua5.1, lua5, lua, ...). A bit of a nightmare.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> "pkg-config lua --libs" should do it on Mac OS X/Fink.
>>>>>>>>>
>>>>>>>>> .hc
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Claude
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Pd-dev mailing list
>>>>>>>>> Pd-dev at iem.at <mailto:Pd-dev at iem.at>
>>>>>>>>> http://lists.puredata.info/listinfo/pd-dev
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Pd-dev mailing list
>>>>>>>>> Pd-dev at iem.at <mailto:Pd-dev at iem.at>
>>>>>>>>> http://lists.puredata.info/listinfo/pd-dev
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ----------------------------------------------------------------------------
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> "We have nothing to fear from love and commitment." - New York
>>>>>>>> Senator
>>>>>>>> Diane Savino, trying to convince the NY Senate to pass a gay
>>>>>>>> marriage
>>>>>>>> bill
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Pd-dev mailing list
>>>>>>>> Pd-dev at iem.at
>>>>>>>> http://lists.puredata.info/listinfo/pd-dev
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ----------------------------------------------------------------------------
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Terrorism is not an enemy. It cannot be defeated. It's a  
>>>>>> tactic. It's
>>>>>> about as sensible to say we declare war on night attacks and  
>>>>>> expect
>>>>>> we're going to win that war. We're not going to win the war on
>>>>>> terrorism. - retired U.S. Army general, William Odom
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> ----------------------------------------------------------------------------
>>>>
>>>>
>>>>
>>>> I spent 33 years and four months in active military service and  
>>>> during
>>>> that period I spent most of my time as a high class muscle man  
>>>> for Big
>>>> Business, for Wall Street and the bankers. - General Smedley Butler
>>>>
>>>>
>>>>
>>>>
>>>
>>
>>
>>
>> ----------------------------------------------------------------------------
>>
>>
>> Using ReBirth is like trying to play an 808 with a long stick. -David
>> Zicarelli
>>
>>
>>
>>
>







----------------------------------------------------------------------------

"It is convenient to imagine a power beyond us because that means we  
don't have to examine our own lives.", from "The Idols of  
Environmentalism", by Curtis White







More information about the Pd-dev mailing list