# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
bitbucket.setup mituharu emacs-mac emacs-${emacs_version}-mac-${emacs_mac_ver}
description Emacs Mac port
long_description ${name} is "Mac port" addition to GNU Emacs ${emacs_version}. \
This provides a native GUI support for Mac OS X 10.6 - macOS 10.14.
checksums rmd160 e9ee8eaec9b01739cfba49274853e63d849e36f1 \
sha256 64461a8fe83d407fb2fc89032f79f742e231e570fd26e8a631247d7b2da34e9f \
depends_lib port:ncurses \
patchfiles patch-src_emacs.c.diff
reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/src/emacs.c
autoreconf.cmd ./autogen.sh
depends_build port:autoconf \
configure.args --with-mac \
--enable-mac-app=${applications_dir} \
if {${os.major} >= 11 && ${os.platform} eq "darwin"} {
configure.cflags-append -fobjc-arc
# move files into the app bundle.
# https://github.com/railwaycat/emacs-mac-port/blob/master/build-emacs.app.sh
set app_dir ${destroot}${applications_dir}/Emacs.app/Contents/Resources
foreach d [glob ${destroot}${prefix}/share/emacs/${emacs_version}/*] {
move ${destroot}${prefix}/share/info ${app_dir}
move ${destroot}${prefix}/share/man ${app_dir}
move ${destroot}${prefix}/var ${app_dir}
move ${destroot}${prefix}/bin ${app_dir}/../MacOS
xinstall -d ${app_dir}/../MacOS/libexec
foreach f [glob ${destroot}${prefix}/libexec/emacs/${emacs_version}/*/*] {
move ${f} ${app_dir}/../MacOS/libexec
# Remove everything from ${destroot}${prefix} except ${app_dir}
if {0 != [string first ${destroot}${prefix} ${app_dir}]} {
# ${app_dir} is not a subdirectory of ${prefix}
delete ${destroot}${prefix}
foreach d [glob ${destroot}${prefix}/*] {
if {0 != [string first ${d} ${app_dir}]} {
# make the application binary a hard link.
delete ${app_dir}/../MacOS/Emacs
file link -hard ${app_dir}/../MacOS/Emacs ${app_dir}/../MacOS/bin/emacs