How to get all available install options for a port? - macos

Basically I'd like to install opencv so that it makes use of tbb and boost with the complete source code. However I think I will need to know how to display all the available install options for a port. (Install options I mean "+sth" after a port name, is that how you call it?)
In my concrete example, my line starts like
sudo port install opencv +tbb +python27
but I am not sure how to get the dev and the boost options...
Any ideas how to display options? Or specifically for opencv?
Thanks!

In addition to the answer provided by Barnabas Szabolcs, I have also found the info command is helpful for finding more information about a port, including the available variants, but also provides other interesting bits of information, such as the software license, maintainers, etc.
port info opencv
The above command results in the following output (as of the current portfile):
opencv #3.0.0_1 (graphics, science)
Variants: contrib, dc1394, debug, eigen, java, opencl, openni,
python27, python34, qt4, qt5, tbb, universal, vtk
Description: OpenCV is a library that is mainly aimed at real time
computer vision. Some example areas would be
Human-Computer Interaction (HCI), Object Identification,
Segmentation and Recognition, Face Recognition, Gesture
Recognition, Motion Tracking, Ego Motion, Motion
Understanding, Structure From Motion (SFM), and Mobile
Robotics.
Homepage: http://opencv.org
Extract Dependencies: unzip
Build Dependencies: cmake, pkgconfig
Library Dependencies: zlib, bzip2, libpng, jpeg, jasper, tiff, ilmbase, openexr,
ffmpeg
Platforms: darwin
License: BSD
Maintainers: stromnov#macports.org, openmaintainer#macports.org

Sorry, I have found it:
Port install options are called not options but variants. And the command is:
port variants opencv
in my case.
For those who care -- although in the code of opencv I have fond USING_BOOST flags -- there is no extra variant for boost support (perhaps it is automatic?).
My complete install line is
sudo port install opencv +debug +python27 +qt4 +tbb

Related

How and which graphing library to install on Python 3

I have Python 3 on OSX Yosemite installed with Brew. I want to make some simple charts (like in Excel). I run Python from bash. Which library should I investigate, and the proper way to have it installed? I am looking for library which is easy to install, and then easy to use. Output probably png files?
matplotlib is a good choice.
How to install it on OS-X is mentioned in the installation FAQ.
Especially in combination with IPython notebooks it gives you a nice interactive environment to play with it.
Another alternative would be gnuplot. Pre-built packages are available.
It is not tied to Python, it is basically a domain specific language for graphing. There are python bindings available, gut it is also not difficult to use it with subprocess.
If you can use commercial libraries, you may also consider ChartDirector.

Packaging SDL2 when compiling on Ubuntu

I have created a game for my Uni project, said game runs fine however I can't run it on the University computers that don't have SDL2 installed and getting SDL2 installed on them is not possible.
Is there a way to package the SDL2 files while compiling so that I can run it on any Ubuntu system?
The above comments are right. You should use the Linux tool 'chrpath' or the rpath flag with gcc in order to reference your own packaged SDL libraries in your game binary.
As a starting point, I advise you to take a look at the Makefile of the GPL game Rock Dodger CE on bitbucket. It does what you are looking for. It references SDL2 libraries with the -rpath compiler flag.
In addition, that game ships the SDL2 libraries for 3 Linux architectures (i686, Amd64, ARMv7l).
(Look at the download section for the 'multiarch' package for Linux.) You can use those compiled libraries if they fit your requirements and you don't want to rebuild everything yourself.
I agree with you on the fact that there is not (yet) a comprehensive documentation about how to create "universal" packages for SDL2 games on Linux. Or I haven't found it yet ;)
Building compatible binaries for many Linux distributions requires first to understand the 'Linux Standard Base 5.0'. The tool Linux App Checker (from LSB) is designed to help you to achieve maximum portability for your binaries.
From my experience, I think that CentOS 5 is by far the most appropriate 'Long Term Support' Linux distribution for building universal binaries.

What do the optional libraries in the OpenCV build provide?

I am trying to build OpenCV from source (latest SVN trunk) and there are several "optional" dependencies, which will amount to several gigabytes of downloading on their own, especially with the Qt Framework.
For example:
CUDA
GHOSTSCRIPT
MIKTEX
PYTHON
EIGEN
IPP
JASPER
JPEG
OPENEXR
OPENNI
PNG
QT
QT_OPENGL
TBB
TIFF
VIDEOINPUT
XIMEA
Can someone provide a list of what each of these external things provides - ranked by importance? (Sometimes subjective answers are the most insightful answers.) Which ones are built in the binary distribution?
Usually you can leave all the flags in default state unless you need to enable or disable some special features. All really important libraries are already there.
Options you listened can be split into several groups:
Image input/output
Actually OpenCV comes with a copy of these libraries for platforms where these libraries are missed (like Windows or Android).
TIFF
JASPER - jpeg2000 format
JPEG
PNG
OPENEXR - this one is not included into OpenCV
Video IO
VIDEOINPUT - video IO API for Windows platform. Since version 2.3.0 OpenCV embeds it and this flag is useful only to exclude videoinput library from build.
OPENNI - driver for Kinect
XIMEA - API for XIMEA cameras
Libraries of performance primitives
IPP - few dozens of OpenCV functions have IPP accelerated versions.
TBB - OpenCV has a number of functions parallelized with Intel TBB library.
EIGEN - some math functions (like SVD) can use power of Eigen library but OpenCV always provides alternative implementation.
GPU acceleration
CUDA - OpenCV comes with gpu module having a lot of functions accelerated with NVIDIA CUDA technology. If CUDA SDK is not found, then all functions degrade to CPU implementation.
Enhanced GUI
QT - OpenCV GUI functions (like imshow) has a QT version. Without QT they will default to native OS interfaces. (In case of Windows it will be WinAPI).
QT_OPENGL
Bindings to other languages
PYTHON - also build bindings for Python language
Building documentation
GHOSTSCRIPT - obsolete in 2.3.x (does not affect build)
MIKTEX - Windows only. Used to generate documentation in PDF format
Actually this is just a partial answer to your question. You have listened less than half of the options that can be set on OpenCV configuration step - other half is hidden because those options are not available for your platform.

ImageMagick commercial equivalent for both OSX and Windows

Is there a commercial product out there that can provide what ImageMagick "convert" function provides for both Windows and OSX?
I'm planning on a distributing a desktop app that requires "convert" functionality but the installations for ImageMagick for OSX is not trivial. The dependancy on Ghostscript for vector graphics is also a barrier.
I was hoping to find a vendor that can provide the same functionality all in one package for both Windows and OSX and buy a distribution license from them. I'm hoping this could give me a more robust experience for the user as far as the installation. Any advise on this topic is much appreciated.
as far as I can tell, installing ImageMagick on Mac OSX is quite easy. You just have to install MacPorts (http://www.macports.org/install.php) and do a sudo port install ImageMagick
Greetings,
Jan

Building Libraries on Windows

Hobbyist and newbie, so no laughing ;)
I have been developing some toy programs on my Mac for a long time and everything is nice and straightforward.
I was trying to port one of my existing projects to Windows (as a way to get started in developing for Windows) but am stuck trying to build the libraries I have come to love in a Unix environment under Windows (and MinGW).
At the risk of revealing my naïvety, could someone just run through how to build and install a library on Windows (including any special software required)?
For example, an install readme might look like this:
Do this to install:
./configure
make
make install
Obviously on Windows that pukes...so what are the analogous steps on Windows?
You have a couple of options wrt building unix style libraries on windows:
Google for a pre-built binary distribution made for windows of the library in question.
If the libraries authors have bothered to support it, you can try installing Cygwin to get a posix like build environment on windows
Some libraries - like OpenSSL - have a set of build instructions for windows that include installing ActiveState Perl, and then running the appropriate configure script manually.
Where the authors of the library have made no special effort, you are pretty stuck: Create a static library project in the dev environment, add the libraries files to it, create (or move) the headers that the ./configure step usually creates or moves and build it yourself.
It is a tragic state of affairs that doing this "simple" task is so hard. Developers seem to take one of two lessons away from this:
Microsoft is the devil. Microsoft hates developers. Hates open source software. And is ###$. Compiling libraries and software from source via a standardized ./configure & make install process is the one true way.
Microsoft is the one true way. The microsoft eco system of pre-built .lib files and headers is perfection and people who build everything from source using arcane perl scripts and install into a standardized filesystem are mentally defective.
Your pick :P

Resources