EmacsのM-x compileで自動的にMakefileを探し出すようにする

Emacs上でソースコードのコンパイルを行うにはM-x compileコマンドを使う。するとmakeが走り、結果がCompilatinバッファに表示され、M-x next-errorなどでエラー行に一発ジャンプ出来て超便利ッ……という所までは良く語られる。が、しかーし、肝心のMakefileの指定方法に触れている解説が少ない。

実際のところ、M-x compileのmakeの引数指定のところで書いてやればいいのだが、カレントパスや取り掛かっているプロジェクトごとにアレコレ考えてMakefileを指定するのは現実的ではない。それする位なら、Compilationの利点を捨て、ターミナルのコマンドヒストリーでコンパイルした方がよっぽどマシである。たいてい、Makefileはソースフォルダのトップなりに置くので、編集中のファイルから上に辿り、見つかったMakefileでmakeしてくれれば済む話。

で、ようやくそれを実現する方法を見つけた。Recursively go up to find Makefile and compileに載ってるelispを使う。万が一消えた時用に転載。

(defun desperately-compile ()
  "Traveling up the path, find a Makefile and `compile'."
  (interactive)
  (when (locate-dominating-file default-directory "Makefile")
  (with-temp-buffer
    (cd (locate-dominating-file default-directory "Makefile"))
    (compile "make -k"))))
 
; C-x mでMakefileを探してコンパイル
(global-set-key (kbd "C-x m") 'desperately-compile)

上記サイトの回答に書いてあることだが、指定ファイルが見つかるまでディレクトリを遡って検索する打って付けのlocate-dominating-fileなる関数があるそうで。今回の用途だけではなく、様々な場面で役に立ちそう。

Hi to every , since I am genuinely eager of reading this web site's post to be updated on a regular basis. It contains good material. https://teletype.in/@avtobloggerua/1SUSkePkQys

1 |
EarnestBef
| 2026-04-08 10:51 | reply

В ситуации плотной городской застройки и хронического стресса возрастает потребность в локальных оздоровительных комплексах - <a href=“https://termburg.ru/”>wellness центр</a> представляет собой современный объект инфраструктуры, направленную на превентивную медицину и благополучие жителей региона. Центр интегрирует вековые банные традиции с научно обоснованными методами термоэкспозиции, предоставляя регулируемое влияние температурных режимов на иммунитет и сосуды.

Планировка объекта предусматривает разнотемпературные парилки, водные зоны с контрастами и зоны отдыха. Данная методология позволяет реализовать принципы закаливания и детоксикации организма под контролем специалистов. Методика чередования тепловых нагрузок и охлаждения способствует стабилизации метаболических процессов, улучшению микроциркуляции крови и снижению уровня кортизола, что доказывается положительной динамикой самочувствия посетителей.

Интеграция подобных объектов в структуру досуга москвичей формирует тренда на ответственное здоровье. Курсовое применение методик служит тренировке адаптационных механизмов и снижению риска переутомления. Комплексный подход, включающий гидротерапию и климатические воздействия, превращает концепцию <a href=“https://termburg.ru/price-list/”>термо комплекс марксистская цена</a> работающим методом сохранения работоспособности и физиологического комфорта в условиях столичного ритма жизни.

2 | | 2026-04-16 21:44 | reply

go to the website <a href=https://so-i-info.com/sofi-login.php>sofi login</a>

3 | | 2026-04-22 06:13 | reply

useful source <a href=https://sites.google.com/view/petra-aptos-wallet/petra-aptos-wallet>petra wallet chrome</a>

4 | | 2026-04-25 17:17 | reply

casino vip <a href=“https://onlinecasinosreviewhub.com/”>bingo virtual programa</a> casino games slot machines <a href=https://onlinecasinosreviewhub.com/>online keno game rules</a> real money blackjack on iphone

5 | | 2026-04-25 21:33 | reply



  • blog/2018/2018-10-11.txt
  • 最終更新: 2018-10-11 17:35
  • by Decomo