https://github.com/DavidQuigley/QuantitativeGenetics
Raw File
Tip revision: 31c19fef62901f823b1d329298f72428d190abd0 authored by David Quigley on 01 December 2017, 16:37:41 UTC
documentation updates
Tip revision: 31c19fe
README
For historical reasons, "Carmen" is the name of the library that the application 
called Carmen uses. The actual executable for Carmen with the wxWidgets code is built as 
a project called "jasper" and renamed to "carmen" for release. 

wxWidgets is available at wxWidgets.org. As of this writing the build is 3.0.1.
boost is available at boost.org. As of this writing the build is 1.56.0

**************************
BUILDING WXWIDGETS
**************************

ON OSX
--------------------------------

IMPORTANT FOR USERS OF OSX 10.9: Build with libc++ explicitly. 
To build wxWidgets on OSX 10.9, I have used:

sudo ./configure --with-osx_cocoa --enable-monolithic --disable-shared \
     --with-macosx-version-min=10.7 \
     --with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk 
     --prefix="$(pwd)" --with-opengl CC=clang CXX=clang++ \
     CXXFLAGS="-stdlib=libc++ -std=c++11" OBJCXXFLAGS="-stdlib=libc++ -std=c++11" \
     LDFLAGS=-stdlib=libc++

sudo make clean
sudo make
sudo make install


ON WINDOWS
--------------------------------

It is not necessary to build wxWidgets on Windows, as you can download a pre-built binary 
which works just fine. The installer will put wxWidgets off of the root.

**********************
BUILDING BOOST 
**********************

Jasper requires linking to the Boost header files and four compiled libraries (system, 
filesystem, thread, regex). Please see the description in the src/README file if you 
need tips on building boost.

**********************
BUILDING JASPER
**********************

ON OSX
---------------------------------

Set Xcode to use C++11 as the C++ Language Dialect and libc++ (NOT libstdc++) as the C++ 
standard library. 

C++ flags: 
==================
-D__WXOSX_COCOA__ -D_FILE_OFFSET_BITS=64 -DWX_PRECOMP -D_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_

You need to link carmen (carmen), boost (system, filesystem, thread, and regex),  
wxWidgets (cocoau scintilla tiff, jpeg, png, regexu), and the system libraries for
(z, pthred, iconv).

Linker flags:
==================
-framework IOKit -framework Carbon -framework Cocoa -framework System -framework OpenGL 
-lz -lpthread -liconv -lboost_system -lboost_filesystem -lboost_thread -lboost_regex 
-lcarmen 
-lwx_osx_cocoau-3.0 -lwxscintilla-3.0 -lwxtiff-3.0 -lwxjpeg-3.0 -lwxpng-3.0 -lwxregexu-3.0

ON WINDOWS
---------------------------------

I use Visual Studio 2005; these instructions should work for any flavor of VS.
Be sure your application is Win32 and not console. 
nmake /f makefile.vc clean
nmake /f makefile.vc RUNTIME_LIBS=static MONOLITHIC=1 BUILD=release UNICODE=1 /a
For reasons I don't understand I had to build wxbase30u_core.lib wxbase30u.lib and 
wxmsw30u_adv.lib manually, by loading \build\msw\wx_vc8.sln into visual studio.
*** Build with static Runtime libraries in Visual Studio, default is DLL***

PREPROCESSOR DEFINITIONS
WIN32;_LIB;_DEBUG;NDEBUG;_CRT_SECURE_NO_WARNINGS;__WXMSW__;
WIN32;WINVER=0x0400; __WXMSW__;_WINDOWS;wxUSE_GUI=1;_CRT_SECURE_NO_DEPRECATE

Libraries to link
---------------------------------------------------------------------------------
You'll need to link boost, carmen, and wxWidgets libraries.

libboost_filesystem-vc80-mt-s-1_56.lib libboost_regex-vc80-mt-s-1_56.lib 
libboost_system-vc80-mt-s-1_56.lib libboost_thread-vc80-mt-s-1_56.lib 
libcarmen.lib 
wxbase30u_core.lib wxbase30u.lib wxmsw30u_adv.lib 
wxjpeg.lib wxpng.lib wxtiff.lib wxscintilla.lib 
winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib advapi32.lib


back to top