From 1d3b0199bd53de92533073c9b5a4c0291e298584 Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Wed, 4 Sep 2019 13:05:03 +0200 Subject: [PATCH] TclTk: get module compiled under macOS, fixes for Linux --- Programming/TclTk/build_Tcl | 32 +++++++------ Programming/TclTk/build_Tk | 52 ++++++++++++--------- Programming/TclTk/files/variants.macos10.14 | 1 + 3 files changed, 51 insertions(+), 34 deletions(-) create mode 100644 Programming/TclTk/files/variants.macos10.14 diff --git a/Programming/TclTk/build_Tcl b/Programming/TclTk/build_Tcl index f227ac2..a339dd3 100755 --- a/Programming/TclTk/build_Tcl +++ b/Programming/TclTk/build_Tcl @@ -5,21 +5,20 @@ pbuild::set_download_url "ftp://ftp.tcl.tk/pub/tcl/tcl8_6/tcl${V_PKG}-src.tar.gz pbuild::add_to_group 'Programming' pbuild::install_docfiles 'license.terms' 'README' -#pbuild::pre_prep() { -# pbuild::set_unpack_dir "tcl${V_PKG}-src.tar.gz" "${SRC_DIR}/Tcl" -# pbuild::set_unpack_dir "tk${V_PKG}-src.tar.gz" "${SRC_DIR}/Tk" -#} - -pbuild::pre_configure_Linux() { - srcdir="${SRC_DIR}/unix" +pbuild::configure_Darwin() { + export CXX=/usr/bin/clang++ + export CC=/usr/bin/clang + PATH+=":/opt/X11/bin" + export PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:$PKG_CONFIG_PATH" + "${SRC_DIR}/macosx/configure" \ + --prefix="${PREFIX}" \ + --enable-threads \ + --disable-symbols \ + || exit 1 } -pbuild::pre_configure_Darwin() { - srcdir="${SRC_DIR}/macosx" -} - -pbuild::configure() { - "${srcdir}"/configure \ +pbuild::configure_Linux() { + "${SRC_DIR}/unix/configure" \ --prefix="${PREFIX}" \ --enable-shared=no \ || exit 1 @@ -28,3 +27,10 @@ pbuild::configure() { pbuild::post_install() { { cd "${PREFIX}"/bin && rm -f tclsh && ln -fs tclsh${V%.*} tclsh; }; } + +pbuild::post_install_Darwin() { + local -r libtcl="libtcl${V_MAJOR}.${V_MINOR}.dylib" + install_name_tool \ + -id @executable_path/../lib/${libtcl} \ + "${PREFIX}/lib/${libtcl}" +} diff --git a/Programming/TclTk/build_Tk b/Programming/TclTk/build_Tk index 365d439..5062b6d 100755 --- a/Programming/TclTk/build_Tk +++ b/Programming/TclTk/build_Tk @@ -1,38 +1,48 @@ #!/usr/bin/env modbuild -pbuild::set_download_url "ftp://ftp.tcl.tk/pub/tcl/tk8_6/tk${V_PKG}-src.tar.gz" +pbuild::set_download_url "ftp://ftp.tcl.tk/pub/tcl/tk${V_MAJOR}_${V_MINOR}/tk${V_PKG}-src.tar.gz" pbuild::add_to_group 'Programming' -pbuild::install_docfiles 'license.terms' 'README' +export PATH="${PREFIX}/bin:$PATH" +export C_INCLUDE_PATH="${PREFIX}/include:${C_INCLUDE_PATH}" +export LIBRARY_PATH="${PREFIX}/lib:${LIBRARY_PATH}" -pbuild::pre_configure_Linux() { - srcdir="${SRC_DIR}/unix" +pbuild::configure_Darwin() { + PATH+=":/opt/X11/bin" + export CXX=/usr/bin/clang++ + export CC=/usr/bin/clang + export PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:$PKG_CONFIG_PATH" + "${SRC_DIR}/macosx/configure" \ + --prefix="${PREFIX}" \ + --enable-threads \ + --disable-symbols \ + --with-tcl="${PREFIX}/lib" \ + --enable-xft \ + --with-x \ + --x-includes=/opt/X11/include \ + || exit 1 } -pbuild::pre_configure_Darwin() { - srcdir="${SRC_DIR}/macosx" -} - -pbuild::configure() { - export PATH="${PREFIX}/bin:$PATH" - export C_INCLUDE_PATH="${PREFIX}/include:${C_INCLUDE_PATH}" - export LIBRARY_PATH="${PREFIX}/lib:${LIBRARY_PATH}" - - "${srcdir}"/configure \ +pbuild::configure_Linux() { + "${SRC_DIR}/unix/configure" \ --prefix="${PREFIX}" \ --enable-shared=no \ --with-tcl="${PREFIX}/lib" \ || exit 1 } -pbuild::compile() { - export PATH="${PREFIX}/bin:$PATH" - export C_INCLUDE_PATH="${PREFIX}/include:${C_INCLUDE_PATH}" - export LIBRARY_PATH="${PREFIX}/lib:${LIBRARY_PATH}" - make -j3 -} - pbuild::post_install() { { cd "${PREFIX}"/bin && rm -f wish && ln -fs wish${V%.*} wish; }; } + +pbuild::post_install_Darwin() { + local -r libtk="libtk${V_MAJOR}.${V_MINOR}.dylib" + install_name_tool \ + -id @executable_path/../lib/${libtk} \ + "${PREFIX}/lib/${libtk}" + install_name_tool \ + -change "${PREFIX}/lib:/usr/X11/lib/${libtk}" \ + "@executable_path/../lib/${libtk}" \ + "${PREFIX}/bin/wish" +} diff --git a/Programming/TclTk/files/variants.macos10.14 b/Programming/TclTk/files/variants.macos10.14 new file mode 100644 index 0000000..a4f9b5b --- /dev/null +++ b/Programming/TclTk/files/variants.macos10.14 @@ -0,0 +1 @@ +TclTk/8.6.9 stable