Hi Richard,

thank you very much for putting the CMake build together, this is going 
to help portability tremendously. I have tried, and mostly succeeded, to 
build codec2-dev on WIndows7 using Microsoft VisualStudio 2010. I know 
many here are not enthusiastic about this environment, but getting that 
to work certainly helps to work through some cross-platform issues. 
Here's what I have found:

A config.h file is needed to deal with some missing functionality in the 
Windows platform. I am able to make this work for both autoconf and 
CMake by using different input file names for the different environments 
and the same output file name. The HAVE_XXX mechanisms are pleasingly 
similar, so the #include works with output from either CMake or autoconf.

On a related note, the list of include files and functions checked for 
is inconsistent between autoconf and CMake.

VisualStudio doesn't have a round() function. Easy enough.

It also doesn't have getopt(), which is used in c2sim. I have found a 
"Microsoftized" version of glibc's getopt() here: 
http://www.ludvikjerabek.com/software. This is under LGPL, so the 
license is compatible. This raises the question where in the source tree 
platform dependent source files should go?

Windows requires an explicit declaration which entry points are to be 
made visible ("exported") from a shared library. I solved this with an 
external declaration (DEF file). Since I did this, I have also noted 
that some of the "public" functions in the codec2 library are decorated 
with CODEC2_WIN32SUPPORT macros, so that may be the preferable approach? 
This would work for everything other than c2sim, which needs access to 
some of the more private parts of the codec2 library. Not sure what to 
do about that one.

I was going to ask about the codebook files also, but that has been 
covered elsewhere.

Now, for next steps: Any comments on the questions above would be 
appreciated. I need to finish up the integration of the getopt() stuff 
and do a little more testing, otherwise I will very soon be ready to 
provide patches, if desired. I should probably wait for the next set of 
changes and merge those out first? Seem you are hard at work.

Eventually I will try the same with fdmdv2. I can help with OSX also, if 
nobody else is working on that.

Best regards,
    Jan, ac7td, dl5ue


------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
Freetel-codec2 mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freetel-codec2

Reply via email to