fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] pkgconfig not found


From: David Back
Subject: Re: [fluid-dev] pkgconfig not found
Date: Tue, 21 Nov 2017 16:02:45 +0000 (UTC)

Tom and Marcus,

Thanks for the information. There is not much there I did
not know already. I am well aware of what Wine does and how it is supposed
to work. I am looking for the possibility of bypassing some of its functions
so the sound driver in fluidsynth can talk directly to the native sound
system on the system it is running on. I am not aware of any technical reason
why this should not be possible. I think the source code of Wine is
in the public domain so I could probably learn something by looking at
it - have not yet got around to that yet. Some of their libraries maybe what I need
in order to circumvent the difficulties you think I will have.

Until I can compile fluidsynth and possibly modify it to do what I want I am
stuck. That is why it is important for me to get it into a compilable condition.

It is possible that my recent update of my mingw32 compiler is causing some
of the problems with libintl.dll I have just recompiled my organ and find that it
now needs several more libXXX.dll's than it did before including libintl-8.dll which
is now newly present. Also all of the lib's have grown substantially in size.

The libfluidsynth,dll which accompanies my organ is an old version of
unknown origin. I currently do not know what version it is or what drivers it contains.

I have now deleted all of the normally unnecessary paths from my
Windows system but may try to compile fluidsynth on Linux to see if that
works.

In the meantime thanks.

David




From: Tom M. <address@hidden>
To: David Back <address@hidden>
Cc: FluidSynth Mailing List <address@hidden>
Sent: Tuesday, 21 November 2017, 12:10
Subject: Re: [fluid-dev] pkgconfig not found

> I never did think it used c++ as a linker

Ok seems like I mixed that up because we were talking about a linkage
problem. Anyway, it should be no problem to use g++.exe as compiler.
GCC uses the file extension of a source file to determine whether it's
C or C++. Additionally all public header use the C linkage spec:
https://github.com/FluidSynth/fluidsynth/blob/c0cd1887db17b5d31aa07fe27814480850ae89ac/include/fluidsynth/audio.h#L24-L26


> If it is looking for libintl then that is why it is failing because there is only proxy-libintl in the deps folder

-lintl should definitily be looking for libintl.dll, not sure if it
looks for intl.dll. So perhaps just try renaming that file then. Or
try manually calling gcc linking command with "-lintl3".


> You obviously STILL have not read the fluidsynth user documentation where it clearly indicates that multiple sound drivers are incorporated and available.

I am aware of the docs. However you may only compile fluidsynth with
audio drivers that are available on the platform/OS you are compiling
on. It is not supported compiling ALSA support on windows. This would
require the dll to have some symbol reference to a function
"snd_pcm_open()". Where should that come from if you instantiate the
dll on windows that doesnt provide an appropriate shared lib that
contains all those ALSA functions?


> You have also STILL not had a look at eplayOrgan on my website - much less tried it out.

I had downloaded the zip, unpacked it and saw a libfluidsynth.dll;
time is limited, so no reason for any exclamation marks or capslock.


> I am NOT trying to compile fluidsynth for use only on Windows

Even if you deny it, you are compiling fluidsynth for and on windows.

> I expect the version I compile to run on ANY Mac or Linux system under Wine

Sure, that's the kind of abstraction wine provides for most windows binaries.

> ...AND to be able to use the appropriate sound drivers for each system

And this will only work for native platform builds of fluidsynth.


> Can you please put me in touch with the person you said has succeeded as I would like to know how and when he did it.

These guys are on the mailing list, they will speak up if they have
something to tell.


> How many people are there who want to give fluidsynth command line text in Chinese?

OT. I dont think this is an option for upstream btw.


Tom


2017-11-21 10:13 GMT+01:00 David Back <address@hidden>:
> Tom
>
> I never did think it used c++ as a linker, that is just your misconception
> of what I said. Obviously it uses a linker to link.
> What I said is that it is using a c++ compiler to compile a c program and
> that maybe that is what is making the linker
> fail because it is trying to process the constructors, a feature which a c
> program does not have.
>
> If it is looking for libintl then that is why it is failing because there is
> only proxy-libintl in the deps folder libintl does not
> exist!!!! but intl.dll does exist. You have the directory listing I supplied
> - have a look.
>
> Thanks for the clarification on the -D options I will now do a few
> experinents and let you know the results.
>
> I am fully aware of the fact that alsa etc are not useable on windows - that
> is no bar to compiling a program which uses
> them on a windows system. That program can then be executed on another
> system where they are available and it should
> be able to use them. That is what I am aiming for. I am also aware that I am
> working on the leading edge of what is do-able.
>
> You obviously STILL have not read the fluidsynth user documentation where it
> clearly indicates that multiple sound drivers
> are incorporated and available, it states the order in which it looks for
> them and there is a program function which allows any
> one of them to be selected for use.
>
> You have also STILL not had a look at eplayOrgan on my website - much less
> tried it out. As I said it works on ANY
> system, not just Windows. I personally have tested it to run on Mac, Linux
> and Windows as supplied - no compilation
> or installation of any kind is needed.
>
> I am NOT trying to compile fluidsynth for use only on Windows - I expect the
> version I compile to run on ANY Mac or Linux
> system under Wine, or Windows system direct  AND to be able to use the
> appropriate sound drivers for each system.
>
> David
>
> ________________________________
> From: Tom M. <address@hidden>
> To: David Back <address@hidden>; FluidSynth Mailing List
> <address@hidden>
> Sent: Monday, 20 November 2017, 14:30
>
> Subject: Re: [fluid-dev] pkgconfig not found
>
> Regarding the build log, I dont see why you think it uses c++ as linker. It
> correctly calls gcc.exe, line 15. Still strange that it doesnt find libintl
> although it should be in %path%. Have no further ideas so far.
>
>> Are these cmake -D options? I will try them later.Do you mean for example
>> "cmake -DCMAKE_LINKER=gcc.exe"
>
> Anyway, yes, that would be the correct useage.
>
>
> Even if you manage it to get "appropriate header files" for all audio
> drivers, against which libraries would you link in order to create that
> single dll, given the fact that alsa, oss and coreaudio are not available on
> windows?
>
>
> Tom
>
> Am Montag, 20. November 2017, 12:58:14 CET schrieb David Back:
>>
>> Tom
>> Herewith attached the build.log as requested. I had to redirect stderr to
>> the file as well otherwise the interestingbit was not recorded in the file.
>> I do not understand your CMAKE_LINKER etc. Are these cmake -D options? I
>> will try them later.Do you mean for example "cmake -DCMAKE_LINKER=gcc.exe"
>> Compiling support for other (foreign to windows) sound systems is just a
>> matter of using the appropriateheader files. No problem at all. I am already
>> compiling similar support for foreign midi inputs into my project.Obviously
>> it wont use the interfaces when the program is run on windows but it can use
>> them when it isrun on other operating systems. Read the fluidsynth user
>> documentation and read up about, or even trymy eplayOrgan which uses four
>> instances of fluidsynth. See https://midimusic.github.io/and can redirect
>> each output to a different sound driver.
>> eplayOrgan will run on ANY system as supplied, without any recompiling or
>> other changes.
>> Good luck with the build.log
>> David
>>      From: Tom M. <address@hidden>
>>  To: David Back <address@hidden>
>> Cc: address@hidden
>>  Sent: Sunday, 19 November 2017, 15:57
>>  Subject: Re: [fluid-dev] pkgconfig not found
>>
>> It uses c++ as linker? No matter 1.1.6, 1.1.7 or master? Shouldnt happen.
>> I think it's time for a full build log:
>>
>> cmake -DCMAKE_VERBOSE_MAKEFILE=1 ..
>> make > build.log
>>
>> You can try setting these cmake variables to gcc.exe
>> CMAKE_LINKER
>> CMAKE_C_LINK_EXECUTABLE
>> CMAKE_CXX_LINK_EXECUTABLE
>>
>> > Cmake is trying to make a working program ONLY for the system it is
>> > running on which is NOT what I want to do.
>>
>> But this is exactly how cross platform deployment works. I dont understand
>> why you want to bundle all audio drivers (even foreign ones) in a single
>> dll. Think about it: How would you compile fluidsynth with ALSA or OSS
>> support on windows? The ABI and calling conventions between different OSs
>> vary. I dont see how this could work.
>>
>> And unless you want to privately fork fluidsynth, writing a custom
>> makefile is IMO the worst choice you could make. If upstream changes
>> anything related to the buildsystem your build will break.
>>
>> Tom
>>
>>
>> Am Sonntag, 19. November 2017, 15:40:58 CET schrieben Sie:
>> > Hi Tom
>> > I am now working with version 1.1.8. which has the same linker problem
>> > as all the others.
>> > Thanks for your reply and am interested and surprised to hear that you
>> > do not have any solution to thelinker errors.
>> > Having done a bit of research it appears to me (and I could easily be
>> > wrong) that the problem liesin compiling fluidsynth with a c++ compiler when
>> > the header files indicate to me that the program is writtenin plain old C.
>> > (Please tell me if I am wrong.)
>> > The linker is looking to generate extra code which initialises all the
>> > c++  constructors it finds. (Presumably thisis the only way to initialise a
>> > .dll ). The fact that it does not find ANY constructors is probably causing
>> > the error.(Inserting a dummy constructor may cure the problem).
>> > I think the solution may be to compile fluidsynth with a C compiler.
>> > Does cmake have any option to force usingC rather than c++.  I tell it -G
>> > "MinGW Makefiles" (there is no other useful option) so it does not know
>> > whetherit is working with C or c++ so it goes for c++ which can (in theory)
>> > do both.
>> > I will have to investigate portaudio. I am currently in learning mode
>> > regarding audio interfaces but it would seemto me that fluidsynth DOES have
>> > the capability to contain ALL of the common audio interfaces (for Mac,
>> > Linux,and Windows) and the interface it uses depends upon which one it finds
>> > first when it is run. This is documentedin fluidsynth's user documentation.
>> > Cmake  is trying to make a working program ONLY for the system it is
>> > running on which is NOT what I want todo. I suspect it would be best for me
>> > to write my own makefile and I can then put what I want into it. This
>> > willavoid me trying to understand the mess (which usually does work) that
>> > cmake creates.
>> > Best WishesDavid.
>> >
>> >      From: Tom M. <address@hidden>
>> >  To: David Back <address@hidden>
>> > Cc: FluidSynth Mailing List <address@hidden>
>> >  Sent: Saturday, 18 November 2017, 12:35
>> >  Subject: Re: [fluid-dev] pkgconfig not found
>> >
>> > Ok, good to hear. You should however use 1.1.8 for your testings, as the
>> > older versions are unsupported. For those linker errors I currently cant
>> > provide a solution.
>> >
>> > > I will need some extra packages to get Pulseaudio and otherLinux and
>> > > mac sound drivers incorporated.
>> >
>> > Sry, never attempted to make pulseaudio run on windows myself.
>> >
>> > > The whole purpose of thisexercise is to get a fluidsynth.dll which has
>> > > ALL the sound drivers available so it SHOULD work on allsystems (under Wine)
>> > > with minimum latency.
>> >
>> > That would be awful job I guess, you should consider simply using
>> > portaudio, as it provides exactly that kind of abstraction.
>> >
>> > Tom
>>
>>
>>
>>
>
>
>
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]