Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add pkg-config file for mmal #374

Merged
merged 1 commit into from
Feb 8, 2017
Merged

Conversation

anthonyryan1
Copy link
Contributor

Presently a number of applications use the hardcoded library path for MMAL. I think we would be best to have a pkg-config file for it just like some of the other libraries provided.

@popcornmix
Copy link
Contributor

Seems reasonable. @6by9 any objections?

@6by9
Copy link
Contributor

6by9 commented Feb 7, 2017

Packaging is not an area I know anything about, but if it achieves the intent then I'm happy with it.

@popcornmix
Copy link
Contributor

Same here. But I believe this is intended to create a file called mmal.pc which some people find useful.
And I've tested it and it does create a file called mmal.pc.

The only question is whether the set of libs referenced are complete for "mmal".
Peoples requesting "mmal" package will get -lmmal -lmmal_core -lmmal_util -lmmal_vc_client -lbcm_host. Would adding, say -lvcsm to that list make sense?

@anthonyryan1
Copy link
Contributor Author

Sorry I should have clarified my intention with this a bit better. The pkg-config file is a shortcut that application developers can use to avoid knowing the installation quirks of various libraries in order to use them.

With pkg-config, an application doesn't need to know that mmal is installed in /opt/vc and ffmpeg is installed in /usr/lib, it simply asks pkg-config to include mmal & ffmpeg and the application developer can get about their work.

The only notable user of this so far is recent git master builds of Kodi which actively look for a mmal pkg-config file. I've tested patches for converting ffmpeg and libav as well and verified it makes them easier to install on varying distributions.

As for adding -lvcsm I'm afraid I'm not familiar enough to comment on this, today is only my second day playing with mmal. I can say that we should include everything a person would be expected to link in order to fully use mmal. If there are portions of mmal that would not work without -lvcsm, we should add it. If someone more aware of the scope of mmal's functionality could comment on that I can amend this pull request as needed.

Finally, if we need to make any changes to mmal.pc at a later date, it's pretty painless. Additions to the file aren't likely to cause any regressions.

@popcornmix
Copy link
Contributor

@6by9 may be able to offer an opinion on whether vcsm fits in to mmal libs or stands alone.
Kodi does require vcsm now.

@6by9
Copy link
Contributor

6by9 commented Feb 8, 2017

Anything that uses MMAL zero copy buffers will need vcsm, but it's more a standalone library than part of MMAL itself.

Add it as a new package which the MMAL package has a dependency on, or include it in the MMAL package and the very few people who want it standalone get MMAL as an overhead? I don't really have any view either way.

Also adds a pkg-config file for vcsm, which mmal depends upon for
zero copy buffers.
@anthonyryan1
Copy link
Contributor Author

I have added a separate pkg-config file for vcsm and made mmal depend upon it.

Please let me know if there are any other changes you would like to see made.

@popcornmix popcornmix merged commit 4ae8261 into raspberrypi:master Feb 8, 2017
popcornmix added a commit to raspberrypi/firmware that referenced this pull request Feb 8, 2017
firmware: FXL6408 expander: allow readback of output state

firmware: IL Video_splitter: Handle stereoscopic into buffers
See: waveform80/picamera#342

firmware: IL Image_encode: Correct list of supported formats
See: #733

bootcode: BOOTROM is bit position not a maskable value. BOOTROM_RELEASE_BCM2837_B0_RC3
bootcode: Add USB device boot as standard boot mode
bootcode: Support Pi 1 model B for MSD booting

firmware: i2c_gpio: Disable logging

firmware: Camplus annotate: hold back lines until annotated
See: #701

userland: Add pkg-config file for mmal
See: raspberrypi/userland#374

userland: RaspiStill: Read sensor information correctly if one of each type is attached
See: raspberrypi/userland#373
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this pull request Feb 8, 2017
firmware: FXL6408 expander: allow readback of output state

firmware: IL Video_splitter: Handle stereoscopic into buffers
See: waveform80/picamera#342

firmware: IL Image_encode: Correct list of supported formats
See: raspberrypi/firmware#733

bootcode: BOOTROM is bit position not a maskable value. BOOTROM_RELEASE_BCM2837_B0_RC3
bootcode: Add USB device boot as standard boot mode
bootcode: Support Pi 1 model B for MSD booting

firmware: i2c_gpio: Disable logging

firmware: Camplus annotate: hold back lines until annotated
See: raspberrypi/firmware#701

userland: Add pkg-config file for mmal
See: raspberrypi/userland#374

userland: RaspiStill: Read sensor information correctly if one of each type is attached
See: raspberrypi/userland#373
neuschaefer pushed a commit to neuschaefer/raspi-binary-firmware that referenced this pull request Feb 27, 2017
firmware: FXL6408 expander: allow readback of output state

firmware: IL Video_splitter: Handle stereoscopic into buffers
See: waveform80/picamera#342

firmware: IL Image_encode: Correct list of supported formats
See: raspberrypi#733

bootcode: BOOTROM is bit position not a maskable value. BOOTROM_RELEASE_BCM2837_B0_RC3
bootcode: Add USB device boot as standard boot mode
bootcode: Support Pi 1 model B for MSD booting

firmware: i2c_gpio: Disable logging

firmware: Camplus annotate: hold back lines until annotated
See: raspberrypi#701

userland: Add pkg-config file for mmal
See: raspberrypi/userland#374

userland: RaspiStill: Read sensor information correctly if one of each type is attached
See: raspberrypi/userland#373
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants