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
