多行文本使用Makefile保存到文件

时间:2013-06-06 10:57:40

标签: makefile apache2 gnu-make

我想用GNU Make(Makefile)将多行文本保存到文件中。但它给了我错误。我想用这个脚本制作一个虚拟主机配置文件。 $$ dir将是user给出的名称。帮助我,PLZ。

define info =
        echo <VirtualHost *:80>
        echo    ServerAdmin webmaster@localhost
        echo    ServerName  $$dir.io
         echo    ServerAlias www.$$dir.io
         echo    DocumentRoot /var/www/$$dir/public_html
         echo    <Directory /var/www/$$dir/public_html/>
         echo        Options Indexes FollowSymLinks MultiViews
         echo        AllowOverride All
         echo        Order allow,deny
         echo        allow from all
         echo    </Directory>
         echo </VirtualHost>
      endef

  echo $$info > /etc/apache2/sites-avaliable/$$dir.; \
  echo "Done"

1 个答案:

答案 0 :(得分:1)

这个例子如此破碎,让我想知道你是否尝试过这项工作,或者你是否只是直接在StackOverflow问题中输入了“最佳猜测”。

info = \
    echo '<VirtualHost *:80>'; \
    echo '   ServerAdmin webmaster@localhost'; \
    echo '   ServerName  $$dir.io'; \
    echo '   ServerAlias www.$$dir.io'; \
    echo '   DocumentRoot /var/www/$$dir/public_html'; \
    echo '   <Directory /var/www/$$dir/public_html/>'; \
    echo '       Options Indexes FollowSymLinks MultiViews'; \
    echo '       AllowOverride All'; \
    echo '       Order allow,deny'; \
    echo '       allow from all'; \
    echo '   </Directory>'; \
    echo '</VirtualHost>';

all:
        ( $(info) ) > /etc/apache2/sites-avaliable/$(dir); \
        echo "Done"

您没有准确指定“用户给出”的含义(在make命令行上?在环境中?在makefile的其他位置?)。