GNU Makefileは、次のようなことを行うことができます。それは醜いです、そして私はあなたがそれをするべきだとは言いませんが、私は特定の状況でそうします。
.profile = \
\#!/bin/sh.exe\n\
\#\n\
\# A MinGW equivalent for .bash_profile on Linux. In MinGW/MSYS, the file\n\
\# is actually named .profile, not .bash_profile.\n\
\#\n\
\# Get the aliases and functions\n\
\#\n\
if [ -f \$${HOME}/.bashrc ]\n\
then\n\
. \$${HOME}/.bashrc\n\
fi\n\
\n\
export CVS_RSH="ssh"\n
#
.profile:
echo -e "$($(@))" | sed -e 's/^[ ]//' >$(@)
make .profile
.profileファイルが存在しない場合は作成します。
このソリューションは、アプリケーションがPOSIXシェル環境でのみGNUMakefileを使用する場合に使用されました。このプロジェクトは、プラットフォームの互換性が問題となるオープンソースプロジェクトではありません。
目標は、特定の種類のワークスペースのセットアップと使用の両方を容易にするMakefileを作成することでした。Makefileは、別の特別なアーカイブなどを必要とせずに、さまざまな単純なリソースを提供します。これは、ある意味でシェルアーカイブです。次に、プロシージャは、このMakefileをフォルダにドロップして作業するなどのことを言うことができます。ワークスペースを設定してEntermake workspace
キーを押し、次に、何とかして、Enterキーを押しますmake blah
。
トリッキーになる可能性があるのは、引用をシェル化するものを理解することです。上記はその役割を果たし、Makefileでヒアドキュメントを指定するという考えに近いものです。それが一般的な使用に適しているかどうかは、まったく別の問題です。