前: Transformation Examples, 上: Transforming Names


12.5.3 変換規則

Makefile.inで変数program_transform_nameを使用する方法は以 下のようになります.

     PROGRAMS = cp ls rm
     transform = @program_transform_name@
     install:
             for p in $(PROGRAMS); do \
               $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p | \
                                                   sed '$(transform)'`; \
             done
     
     uninstall:
             for p in $(PROGRAMS); do \
               rm -f $(DESTDIR)$(bindir)/`echo $$p | sed '$(transform)'`; \
             done

program_transform_nameが空ではなく,無意味なセパレータがないこと が保証されます.そのため,`;'使用しているsedプログラムに program_transform_nameを安全に埋め込むことができます.

     transform = @program_transform_name@
     transform_exe = s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/

ドキュメントファイル(Texinfoやman)で変換するどうかは,慎重を要す る質問です.名前を変える理由がいくつかあるため,完全な答えがあるとは思わ れません.ドキュメントは通常,特定のアーキテクチャ特有のものではなく, Texinfoファイルはシステムドキュメントと衝突しません.しかし,それらは同 じファイルの前のバージョンと衝突したり,manページはシステムドキュ メントと衝突することがあるかもしれません.妥協案として,manページ は名前を変換してTexinfoマニュアルは変換しないのがおそらく最善でしょう.