Have OSX build staticly link everything but Codec2 and LPCNet. This is needed to guarantee minimum OSX version of 10.9 and usage of libc++ by wxWidgets.
parent
b06cbc5129
commit
a60ffe6c8b
|
@ -7,6 +7,15 @@
|
||||||
export FREEDVGUIDIR=${PWD}
|
export FREEDVGUIDIR=${PWD}
|
||||||
export CODEC2DIR=$FREEDVGUIDIR/codec2
|
export CODEC2DIR=$FREEDVGUIDIR/codec2
|
||||||
export LPCNETDIR=$FREEDVGUIDIR/LPCNet
|
export LPCNETDIR=$FREEDVGUIDIR/LPCNet
|
||||||
|
export HAMLIBDIR=$FREEDVGUIDIR/hamlib
|
||||||
|
|
||||||
|
# Prerequisite: build hamlib
|
||||||
|
git clone git://git.code.sf.net/p/hamlib/code hamlib-code
|
||||||
|
cd hamlib-code && git checkout master && git pull
|
||||||
|
./bootstrap
|
||||||
|
CFLAGS="-g -O2 -mmacosx-version-min=10.9" CXXFLAGS="-g -O2 -mmacosx-version-min=10.9" ./configure --disable-shared --prefix $HAMLIBDIR
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
|
||||||
# First build and install vanilla codec2 as we need -lcodec2 to build LPCNet
|
# First build and install vanilla codec2 as we need -lcodec2 to build LPCNet
|
||||||
cd $FREEDVGUIDIR
|
cd $FREEDVGUIDIR
|
||||||
|
@ -36,6 +45,10 @@ export LD_LIBRARY_PATH=$LPCNETDIR/build_osx/src
|
||||||
# Finally, build freedv-gui
|
# Finally, build freedv-gui
|
||||||
cd $FREEDVGUIDIR && git pull
|
cd $FREEDVGUIDIR && git pull
|
||||||
mkdir -p build_osx && cd build_osx && rm -Rf *
|
mkdir -p build_osx && cd build_osx && rm -Rf *
|
||||||
cmake -DCMAKE_BUILD_TYPE=Debug -DWXCONFIG=/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/lib/wx/config/osx_cocoa-unicode-3.0 -DHAMLIB_INCLUDE_DIR=/opt/local/include -DHAMLIB_LIBRARY=/opt/local/lib/libhamlib.dylib -DCODEC2_BUILD_DIR=$CODEC2DIR/build_osx -DLPCNET_BUILD_DIR=$LPCNETDIR/build_osx ..
|
cmake -DCMAKE_BUILD_TYPE=Debug -DBOOTSTRAP_WXWIDGETS=1 -DUSE_STATIC_DEPS=1 -DUSE_STATIC_SPEEXDSP=1 -DHAMLIB_INCLUDE_DIR=${HAMLIBDIR}/include -DHAMLIB_LIBRARY=${HAMLIBDIR}/lib/libhamlib.a -DCODEC2_BUILD_DIR=$CODEC2DIR/build_osx -DLPCNET_BUILD_DIR=$LPCNETDIR/build_osx ..
|
||||||
|
make VERBOSE=1
|
||||||
|
|
||||||
|
# Rebuild now that wxWidgets is bootstrapped
|
||||||
|
cmake -DCMAKE_BUILD_TYPE=Debug -DBOOTSTRAP_WXWIDGETS=1 -DUSE_STATIC_DEPS=1 -DUSE_STATIC_SPEEXDSP=1 -DHAMLIB_INCLUDE_DIR=${HAMLIBDIR}/include -DHAMLIB_LIBRARY=${HAMLIBDIR}/lib/libhamlib.a -DCODEC2_BUILD_DIR=$CODEC2DIR/build_osx -DLPCNET_BUILD_DIR=$LPCNETDIR/build_osx ..
|
||||||
make VERBOSE=1
|
make VERBOSE=1
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ set(PORTAUDIO_TARBALL "pa_stable_v190600_20161030")
|
||||||
# required linking libraries on linux. Not sure about windows.
|
# required linking libraries on linux. Not sure about windows.
|
||||||
find_library(ALSA_LIBRARIES asound)
|
find_library(ALSA_LIBRARIES asound)
|
||||||
|
|
||||||
if(UNIX AND NOT ALSA_LIBRARIES)
|
if(UNIX AND NOT APPLE AND NOT ALSA_LIBRARIES)
|
||||||
message(ERROR "Could not find alsa library which is required for portaudio.
|
message(ERROR "Could not find alsa library which is required for portaudio.
|
||||||
On Linux systems try installing:
|
On Linux systems try installing:
|
||||||
alsa-lib-devel (RPM based systems)
|
alsa-lib-devel (RPM based systems)
|
||||||
|
@ -15,6 +15,8 @@ endif()
|
||||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||||
include(cmake/MinGW.cmake)
|
include(cmake/MinGW.cmake)
|
||||||
set(CONFIGURE_COMMAND ./configure --host=${HOST} --target=${HOST} --disable-cxx --disable-shared --with-winapi=wmme,directx --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
set(CONFIGURE_COMMAND ./configure --host=${HOST} --target=${HOST} --disable-cxx --disable-shared --with-winapi=wmme,directx --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
||||||
|
elseif(APPLE)
|
||||||
|
set(CONFIGURE_COMMAND ./configure --disable-mac-universal --enable-cxx --enable-option-checking --without-alsa --without-jack --without-oss --without-asihpi --without-winapi --disable-shared --prefix=${CMAKE_BINARY_DIR}/external/dist CFLAGS=-g\ -O2\ -mmacosx-version-min=10.9 LDFLAGS=-framework\ CoreServices\ -framework\ AudioUnit\ -framework\ CoreFoundation\ -framework\ AudioToolbox\ -framework\ CoreAudio)
|
||||||
else()
|
else()
|
||||||
set(CONFIGURE_COMMAND ./configure --enable-cxx --without-jack --disable-shared --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
set(CONFIGURE_COMMAND ./configure --enable-cxx --without-jack --disable-shared --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
||||||
endif()
|
endif()
|
||||||
|
@ -35,7 +37,8 @@ if(WIN32)
|
||||||
find_library(DSOUND dsound)
|
find_library(DSOUND dsound)
|
||||||
list(APPEND PORTAUDIO_LIBRARIES ${WINMM} ${DSOUND}
|
list(APPEND PORTAUDIO_LIBRARIES ${WINMM} ${DSOUND}
|
||||||
)
|
)
|
||||||
else(WIN32)
|
elseif(NOT APPLE)
|
||||||
|
#else(WIN32)
|
||||||
find_library(RT rt)
|
find_library(RT rt)
|
||||||
find_library(ASOUND asound)
|
find_library(ASOUND asound)
|
||||||
set(PORTAUDIO_LIBRARIES ${RT} ${ASOUND}
|
set(PORTAUDIO_LIBRARIES ${RT} ${ASOUND}
|
||||||
|
@ -45,6 +48,14 @@ include_directories(${CMAKE_BINARY_DIR}/external/dist/include)
|
||||||
|
|
||||||
# Add the portaudio library to the list of libraries that must be linked.
|
# Add the portaudio library to the list of libraries that must be linked.
|
||||||
list(APPEND FREEDV_LINK_LIBS ${PORTAUDIO_LIBRARIES})
|
list(APPEND FREEDV_LINK_LIBS ${PORTAUDIO_LIBRARIES})
|
||||||
|
if (APPLE)
|
||||||
|
list(APPEND FREEDV_LINK_LIBS
|
||||||
|
"-framework CoreServices"
|
||||||
|
"-framework AudioUnit"
|
||||||
|
"-framework CoreFoundation"
|
||||||
|
"-framework AudioToolbox"
|
||||||
|
"-framework CoreAudio")
|
||||||
|
endif()
|
||||||
|
|
||||||
# Setup a dependency so that this gets built before linking to freedv.
|
# Setup a dependency so that this gets built before linking to freedv.
|
||||||
list(APPEND FREEDV_STATIC_DEPS portaudio)
|
list(APPEND FREEDV_STATIC_DEPS portaudio)
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
set(SAMPLERATE_TARBALL "libsamplerate-0.1.8")
|
set(SAMPLERATE_TARBALL "libsamplerate-0.1.9")
|
||||||
|
|
||||||
|
set(PATCH_COMMAND patch -p0 < ${CMAKE_BINARY_DIR}/../patch-samplerate.diff)
|
||||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||||
set(CONFIGURE_COMMAND ./configure --host=${HOST} --target=${HOST} --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-sndfile --disable-fftw)
|
set(CONFIGURE_COMMAND ./configure --host=${HOST} --target=${HOST} --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-sndfile --disable-fftw)
|
||||||
|
elseif(APPLE)
|
||||||
|
set(CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist CFLAGS=-g\ -O2\ -mmacosx-version-min=10.9)
|
||||||
else()
|
else()
|
||||||
set(CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
set(CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
||||||
endif()
|
endif()
|
||||||
|
@ -11,6 +14,7 @@ ExternalProject_Add(samplerate
|
||||||
URL http://www.mega-nerd.com/SRC/${SAMPLERATE_TARBALL}.tar.gz
|
URL http://www.mega-nerd.com/SRC/${SAMPLERATE_TARBALL}.tar.gz
|
||||||
BUILD_IN_SOURCE 1
|
BUILD_IN_SOURCE 1
|
||||||
INSTALL_DIR external/dist
|
INSTALL_DIR external/dist
|
||||||
|
PATCH_COMMAND ${PATCH_COMMAND}
|
||||||
CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
|
CONFIGURE_COMMAND ${CONFIGURE_COMMAND}
|
||||||
BUILD_COMMAND $(MAKE)
|
BUILD_COMMAND $(MAKE)
|
||||||
INSTALL_COMMAND $(MAKE) install
|
INSTALL_COMMAND $(MAKE) install
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
set(SNDFILE_TARBALL "libsndfile-1.0.25")
|
set(SNDFILE_TARBALL "libsndfile-1.0.28")
|
||||||
|
|
||||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||||
set(CONFIGURE_COMMAND ./configure --host=${HOST} --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-external-libs --disable-shared --disable-sqlite)
|
set(CONFIGURE_COMMAND ./configure --host=${HOST} --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-external-libs --disable-shared --disable-sqlite)
|
||||||
|
elseif(APPLE)
|
||||||
|
set(CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-external-libs --disable-shared --disable-external-libs CFLAGS=-g\ -O2\ -mmacosx-version-min=10.9)
|
||||||
else()
|
else()
|
||||||
set(CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-external-libs --disable-shared --disable-external-libs)
|
set(CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR}/external/dist --disable-external-libs --disable-shared --disable-external-libs)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -10,7 +10,7 @@ endif()
|
||||||
if(MINGW AND CMAKE_CROSSCOMPILING)
|
if(MINGW AND CMAKE_CROSSCOMPILING)
|
||||||
set(CONFIGURE_COMMAND ./configure --build=${HOST} --host=${HOST} --target=${HOST} --disable-shared --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
set(CONFIGURE_COMMAND ./configure --build=${HOST} --host=${HOST} --target=${HOST} --disable-shared --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
||||||
elseif(APPLE)
|
elseif(APPLE)
|
||||||
set(CONFIGURE_COMMAND ./configure --disable-shared --with-macosx-version-min=10.9 --prefix=${CMAKE_BINARY_DIR}/external/dist)
|
set(CONFIGURE_COMMAND ./configure --disable-shared --with-macosx-version-min=10.9 --prefix=${CMAKE_BINARY_DIR}/external/dist CXXFLAGS=-stdlib=libc++\ -std=c++11\ -DWX_PRECOMP\ -O2\ -fno-strict-aliasing\ -fno-common)
|
||||||
else()
|
else()
|
||||||
# set(CONFIGURE_COMMAND "true")
|
# set(CONFIGURE_COMMAND "true")
|
||||||
# set(MAKE_COMMAND $(MAKE) -C build/msw -f makefile.gcc SHARED=0 UNICODE=1 BUILD=release PREFIX=${CMAKE_BINARY_DIR}/external/dist)
|
# set(MAKE_COMMAND $(MAKE) -C build/msw -f makefile.gcc SHARED=0 UNICODE=1 BUILD=release PREFIX=${CMAKE_BINARY_DIR}/external/dist)
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- examples/Makefile.in.orig 2011-08-15 22:12:30.000000000 +1000
|
||||||
|
+++ examples/Makefile.in 2012-03-25 15:31:07.000000000 +1100
|
||||||
|
@@ -56,7 +56,7 @@
|
||||||
|
CONFIG_CLEAN_FILES =
|
||||||
|
CONFIG_CLEAN_VPATH_FILES =
|
||||||
|
am__installdirs = "$(DESTDIR)$(bindir)"
|
||||||
|
-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
|
||||||
|
+PROGRAMS = $(bin_PROGRAMS)
|
||||||
|
am_sndfile_resample_OBJECTS = sndfile-resample.$(OBJEXT)
|
||||||
|
sndfile_resample_OBJECTS = $(am_sndfile_resample_OBJECTS)
|
||||||
|
am__DEPENDENCIES_1 =
|
|
@ -86,7 +86,7 @@ if(APPLE)
|
||||||
COMMAND cp ARGS ${CMAKE_CURRENT_SOURCE_DIR}/freedv.icns FreeDV.app/Contents/Resources
|
COMMAND cp ARGS ${CMAKE_CURRENT_SOURCE_DIR}/freedv.icns FreeDV.app/Contents/Resources
|
||||||
COMMAND echo ARGS -n "APPL????" > FreeDV.app/Contents/PkgInfo
|
COMMAND echo ARGS -n "APPL????" > FreeDV.app/Contents/PkgInfo
|
||||||
COMMAND cp ARGS freedv FreeDV.app/Contents/MacOS/FreeDV
|
COMMAND cp ARGS freedv FreeDV.app/Contents/MacOS/FreeDV
|
||||||
COMMAND dylibbundler ARGS -od -b -x FreeDV.app/Contents/MacOS/FreeDV -d FreeDV.app/Contents/libs -p @executable_path/../libs/
|
COMMAND DYLD_LIBRARY_PATH=${CODEC2_BUILD_DIR}/src:${LPCNET_BUILD_DIR}/src:${DYLD_LIBRARY_PATH} dylibbundler ARGS -od -b -x FreeDV.app/Contents/MacOS/FreeDV -d FreeDV.app/Contents/libs -p @executable_path/../libs/
|
||||||
COMMAND mkdir dist_tmp
|
COMMAND mkdir dist_tmp
|
||||||
COMMAND cp -r FreeDV.app dist_tmp
|
COMMAND cp -r FreeDV.app dist_tmp
|
||||||
COMMAND hdiutil create -srcfolder dist_tmp/ -volname FreeDV -format UDZO ./FreeDV.dmg
|
COMMAND hdiutil create -srcfolder dist_tmp/ -volname FreeDV -format UDZO ./FreeDV.dmg
|
||||||
|
|
Loading…
Reference in New Issue