  ǤϡMCPP Υ򥳥ѥ뤷Ƽ¹ԥץˡ
ޤܺ٤Ϥ mcpp-porting.txt 򸫤Ƥ

1¹ԥץμ

  MCPP μ¹ԥץˤϼΣढޤ

  1stand-alone-build: ϤΩñΤưץץåǤ
    ¹ԻץʤɤλͤϽϤΤˤ餺Ǥץץ
    뤳ȤǤޤϤΰȤư뤳ȤϤǤ
    
  2compiler-specific-build: νϤΥץץåʤ⤷ǽ
    ؤ뤿ΤΤǤνϤѤλͤν
    ѤΥǥ쥯ȥ˥󥹥ȡ뤵ޤ

2configure  make

  MCPP 򥳥ѥ뤹ˤϡUNIX ϤΥƥप CygWIN, MinGW Ǥ
configure ץȤȤȤǤޤconfigure  make ǤդΥǥ
쥯ȥǼ¹ԤǤޤʲǤ mcpp-2.6.1 ǥ쥯ȥΤ
path  ${mcpp-dir} ɽޤ

21stand-alone-build

    ${mcpp-dir}/configure; make; make install

Ȥȡstand-alone Ǥμ¹ԥץबƥ󥹥ȡ뤵ޤ

    ${mcpp-dir}/configure --prefix=/usr; make; make install

Ȥϡprefix ǻꤵ줿ǥ쥯ȥ bin ǥ쥯ȥ
󥹥ȡ뤵ޤꤷʤ /usr/local ꤷΤƱ
Ȥˤʤޤ
  make install ˤ̾ root ¤ɬפʤΤǡ

    sudo make install

Ȥޤ뤤 su Ƥ configure; make; make install Ȥޤ
ʤFreeBSD Ǥ make ǤϤʤ gmake ȤäƤ
  ¹ԥץ strip ˤϡmake install Τ

    make install-strip

ȤޤޤɥȤȸڥåȤ򥤥󥹥ȡ뤹ˤϡ

    make install-data

Ȥޤ

    make uninstall

Ȥȡmcpp μ¹ԥץϺޤ

    make uninstall-data

ȤȡɥȤȸڥåȤޤ

  make (un)install* Ǥ DESTDIR=DIR ȤץꤹȡDIR
ʲΥǥ쥯ȥ˥󥹥ȡ뤵ޤ㤨С

    make DESTDIR=/tmp install

Ȥȡ/tmp/usr/local/bin/  mcpp 󥹥ȡ뤵ޤ¸ߤʤ
ǥ쥯ȥϺˡ

    make DESTDIR=/tmp install-data

Ȥȡ/tmp/usr/local/share/doc/mcpp/ ˥ɥȤ󥹥ȡ
ޤconfigure  --prefix=DIR ץꤷƤ '/usr/
local' ʬ 'DIR' ֤ˡХʥꡦѥåˤϤ
ˡȤޤ

22compiler-specific-build

    ${mcpp-dir}/configure --enable-replace-cpp; make; make install

Ȥȡcompiler-specific Ǥμ¹ԥץबơνϤ
ѤΥǥ쥯ȥ˥󥹥ȡ뤵ޤ
  make install-strip, make install-data, make uninstall, make uninstall-
data  stand-alone-build ƱǤconfigure  --prefix ץ
ƱǤϼ¹ԥץΥ󥹥ȡǥ쥯ȥˤϴطޤ
󡣤ޤmake Ǥ DESTDIR ץ⡢¹ԥץΥ󥹥ȡ
ϴطޤ

  GCC ʳνϤǤ˰ܿȤԤconfigure Ǥˤ
ĤΥץꤷʤȡŬڤʥѥȥ󥹥ȡ뤬ޤ


221Ϥ GCC ξ

2211make install
  --enable-replace-cpp ץ configure 硢make install 
ϥѥ֤ǥ쥯ȥ/usr/libexec, /usr/lib/gcc-lib/i686-
pc-linux-gnu/VERSION ˤ˼¹ԥץब󥹥ȡ뤵ޤ
gcc θƤӽФ cpp0 (cc1) ֤Ƥǥ쥯ȥǤmake install
 GCC / cpp0 (cc1) ¸ǡgcc, g++  mcpp ƤӽФ
Ŭڤ򤷤ޤ GCC  V.2.* Ǥ뤫 V.3.*, 4.* Ǥ
뤫ˤäưäƤޤmcpp-manual.txt [3.9.5], [3.9.7] 򻲾ȤΤȡˡ

2212make check
  MCPP θڥåȤˤ GCC  testsuite б edition ޤ
GCC / testsuite 󥹥ȡ뤵Ƥϡmake check ˤäƤ
testsuite ǸڥåȤ mcpp  Standard ⡼ɤΥƥȤ򤹤뤳ȤǤ
ޤTestsuite ǸڥåȤ GCC / testsuite ΰȤƻȤ褦ˤ
äƤΤǡ餫 GCC / testsuite 󥹥ȡ뤵¹ԤǤ
֤ˤʤäƤ뤳ȤɬפǤGCC / testsuite ̾ GCC Υΰ
ȤʤäƤޤ̤ΥѥåȤʤäƤ⤢ˡ
  ޤconfigure  GCC / testsuite ֤Ƥǥ쥯ȥ
ꤷƤɬפޤΤˤϼΤ褦ˤޤ

    ${mcpp-dir}/configure --with-gcc-testsuite-dir=DIR  \
            --enable-replace-cpp

 'DIR'  GCC Υ֤Ƥǥ쥯ȥ ${gcc-source} 
ȡ

    ${gcc-source}/gcc/testsuite

ȤʤϤǤ
   configure Ƥơmake; make install 

    make check

ȤȡڥåȤ testsuite Ǥ GCC / testsuite ˥ԡ졢
GCC  V.2.* Ǥ뤫Ȥ V.3.*, 4.* Ǥ뤫˱ɬפ꤬
졢 testsuite ¹Ԥޤ̾ΥեȥǤ make install
 make check ޤMCPP ξϽդˤʤޤgcc 
mcpp ƤӽФ褦ˤƤʤ testsuite  mcpp ŬѤǤʤ
ǤޤΤ --enable-replace-cpp ץɬפǤ
  Testsuite ǸڥåȤ MCPP ǤʤGCC V.2.95 ʹߤ cpp0 (cc1)
ˤŬѤ뤳ȤǤޤcpp-test.txt [2.2.3] ȡˡ

2213make uninstall
  make uninstall ȤȡMCPP μ¹ԥץϺޤgcc,
cpp0 (cc1) Ͻ֤ޤmake install 줿
mcpp_g*.h ȤեޤΤĤ make install 
 configure Ƽ¹Ԥϡ make uninstall ʤФ
ޤConfigure Ĵ٤ʤΤ GCC Ǥ MCPP ǤϤʤǤ
  GCC / testsuite ˸ڥåȤ󥹥ȡ뤵ƤС
make uninstall ǺޤGCC ˸ڥåȤŬѤˤϡưǸ
ڥåȤ򥳥ԡƤ
  GCC-specific-build  configure 줿ܤ Makefile  MCPP
 uninstall ȤɬפʤΤǡΤޤ޻ĤƤƤmake
distclean ϡ make uninstall ¹ԤƤư
uninstall ΤϾ֤뤫Ǥ

222Ϥ GCC Ǥʤ

  Ϥ GCC Ǥʤ configure ǤĤΥץꤷʤ
Фʤޤ󡣤ޤνϤΥץץåִǤ褦ˡ
ɤ­ְܿ׺ȤɬפǤԼȤ Linux, FreeBSD,
CygWIN  GCC ȤäƤΤǰܿǤꡢconfigure Ǿ
뤳ȤǤΤǤUNIX ϥƥ¾νϤˤĤƤΤʤ
ΤǡܿϤ configure ǲɤĴ٤ɤΤ狼ʤ
Ǥ
  UNIX ϥƥ GCC ʳνϤǤϡΤ褦ʼǥѥ
Ƥ

2221ץꤷ configure
  ޤĤΥץꤷ configure Ƥߤޤ㤨м
褦ˤޤ

    ${mcpp-dir}/configure --enable-replace-cpp --bindir=DIR \
            --with-cxx-include-dir=CXXDIR   \
            --enable-SYSTEM-STD-macro=_MACRO=val

  --bindir ǻꤹΤϡѥɥ饤ФƤӽФץץ
å֤ǥ쥯ȥǤ C++ ͭΥ󥯥롼ɥǥ쥯
 --with-cxx-include-dir ǡޤϸͭλޥ
--enable-SYSTEM-STD-macro ¾Υץǻꤷޤ

    ${mcpp-dir}/configure --help

Ȥȥץɽޤ
   make; make install ơ˥ѥɥ饤Ф mcpp 
ӽФ褦˺ٹ򤷤ޤˡˤĤƤϡGCC Ǥˡ򻲹
ˤƤ

2222ְܿ׺
  ϤΥץץå MCPP ֤ƻȤˤϡɤ
­ְܿ׺ȤɬפǤϸͭμ¹Իץ #pragma
μǤǤ⤷ФлȤ¹Իץ MCPP Ȱۤʤ
С¡μɬפǤΤˤϡconfiged.H ǤΥ
ѥɽޥǡsystem.c ˥ɤ񤭲äޤ
mcpp-porting.txt ΤȤ [4.2] 򻲾ȡˡ

2223ץɲä configure ʤ
  ΰܿǤ顢--with-compiler-name=COMPILER Ȥץ
ɲä configure ľޤCOMPILER  configed.H Υ
ѥɽޥǤ
  make; make install Ǥ顢 make clean; make ȤȡMCPP
Ȥä MCPP Υꥳѥ뤬Ԥޤ줬̤С¤ΰܿϤ
Ƥޤ

223configure 

  compiler-specific-build  MCPP ΥѥǤϥåȽϡMCPP
ץץåȤƻȤͽνϡˤλͤܤΤɬפޤ
Ʊˡѥ뤹ϤˤĤƤ̤¦̤λͤΤɬפޤ
MCPP ΥϤξԤνϤäƤƤ⤫ޤʤ褦ˡξԤ
ʬƥإåե (configed.H) 񤤤Ƥޤ
configure ǤϤξԤƱĴ٤뤳ȤǤޤ󡣤Τᡢ
ȤȤϤȥѥ뤹ϤƱǤȤĴ򤷤ޤ
  ⤷ξԤνϤ㤦ϡconfiged.H  Part 2 Խ뤳
ɬפǤ
  MCPP  configure Ʊͤ˥ѥˤбƤޤ󡣤ޤ
ѥǤϼ¹ԤǤʤƥȤ⤤ĤޤޤƤޤ
ѥǤϤξϥǥեͤ򥻥åȤޤޤ椫ʤ⤷
ޤ󡣤ɤˤƤԼȤϥѥȤäиʤΤǡ
褯狼ޤ

3Windows νϤǤ make

  Windows νϤ CygWIN ʳ configure оݤˤʤʤΤǡ
 make 뤳ȤɬפǤǤ˰ܿߤνϤˤĤƤ
ʬեѰդƤΤǡȤäƥѥå򤢤Ƥ뤳ȤǤޤ
ʬեȤμʲޤ
  ޤconfigure оݤˤʤϤǤ⡢إåե makefile ľ
ܡԽ뤳ȤǤΤޤ򤹤뤳ȤǤޤ

31ѥå򤢤Ƥ
  noconfig Ȥǥ쥯ȥ˳ƼѤκʬե makefile 
ѰդƤޤMCPP ΥϥǥեȤǤ FreeBSD / GCC 3.4 Ѥ
ˤʤäƤޤʬեϤ̤νѤ˽ΤǤ
Makefile ϳƽϤ° make Ȥ褦˽񤫤Ƥޤ
  src ǥ쥯ȥäƼΤ褦ˤޤʲκȤϤ٤ src ǥ
쥯ȥǹԤޤ

    patch -c < ..\noconfig\which-compiler.dif
    copy ..\noconfig\which-compiler.mak Makefile

  patch  UNIX ϥƥΥޥɤǤWindows ˤܿƤ
ǡȤޤ󡢺ʬե򸫤ơǥǽƤ⤫
ޤޤ

32ɬפʤ餵 noconfig.H, Makefile 
  ʬեǤϳƼǥ쥯ȥ꤬ɮԤδĶ򸵤ˤƤΤǡ
ʬδĶ˹碌ƽޤ
  ȤϤʬեΤΤȤϥС󤬰äƤϡإå
ե noconfig.H ˤ˽äޤnoconfig.H ΤΤ
mcpp-porting.txt [3.1] 򻲾ȡˡ̾Ȥ multi-byte character ܸ
ǤϤʤƱͤˡnocongig.H  MBCHAR Ȥޥ񤭴
ޤ
  ޤ¹ԥץ򥤥󥹥ȡ뤹ǥ쥯ȥ Makefile 
BINDIR Ȥѿ˽񤭤ޤVisual C Ѥ Makefile ǤϼιԤ # 
ơinstall åȤͭˤƤ

    #install :

33stand-alone-build
    make  make install ȡstand-alone Ǥμ¹ԥץ
ƥ󥹥ȡ뤵ޤVisual C++ Ǥ make ǤϤʤ nmake 
Ȥˡ

34compiler-specific-build
  compiler-specific Ǥ뤿ˤϡޤ Makefile  BINDIR 򤽤
Ϥμ¹ԥץ֤Ƥǥ쥯ȥ˽񤭴ޤơ
noconfig.H μιԤ 'STAND_ALONE' 򤽤Υѥɽޥ˽񤭴
ơ'make'  'make install' ޤ'COMPILER'  make Υץ
񤭤뤳ȤǤΤǡnoconfig.H ɬ񤭴ɬפϤ
㤨СVisual C Ǥ 'nmake COMPILER=MSC' Ȥ 'nmake COMPILER=
MSC install' ޤBorland C Ǥ 'make -DCOMPILER=BORLANDC' Ȥ
'make -DCOMPILER=BORLANDC install' ޤ

  ⤷åȽϤȥѥ뤹ϤȤäƤϡ
noconfig.H / Part 1 򥿡åȽϤλͤ˹碌Part 2 򥳥ѥ
뤹Ϥλͤ˹碌ޤMakefile ϥѥ뤹ѤΤ
Ȥ󥹥ȡ뤹ǥ쥯ȥ򥿡åȽѤѹޤ

  Windows νϤ¿ϥץץåѥΤȰΤ
ʤäƤΤǡMCPP 򥤥󥹥ȡ뤷Ƥץץåִ뤳Ȥ
Ǥޤ󡣤Ϥ MCPP ȤˤϡΤ褦 makefile 
ɬפޤnoconfig ǥ쥯ȥγ makefile ˤϡMCPP Ȥ
 MCPP ꥳѥ뤹꤬񤤤ƤΤǡ򻲹ͤˤƤ
  Visual C++ ǤϤ makefile ȤäơIDE ǡ֥ᥤեץ
ȡפȡIDE Υ٥ǥХåεǽ٤ƻȤ
mcpp-manual.txt [2.10] ȡˡ

35ƥ
  Windows Ǥ MinGW / GCC-specific-build  CygWIN ʳǤ include
directory ꤵʤΤǡINCLUDE, CPLUS_INCLUDE ȤĶѿ
ꤷޤ
  Windows Ǥ GCC / testsuite ϻȤʤΤǡtest-t, test-c, test-l 
쥯ȥˤƥѥץľܡץץƳΤޤtool
/cpp_test.c ȤȡΥƥȤǤưŪ˼¹ԤǤޤcpp-
test.txt [2.2.2] ȡˡ
  compiler-specific-build ǤϡMCPP ȤץץåȤƻȤäơ
MCPP  "pre-preprocess" ȤǽȤä MCPP ꥳѥ뤷Ƥߤ
ȡνϤǤȤꤢȤ褦ˤʤäɤΤ뤳ȤǤ
ޤmcpp-porting.txt [3.7] ȡˡ

4ܿΤξ򤪴󤻤

  MCPP ޤܿƤʤϤ˰ܿ뤿ˤϡ¿ξɬפ
ߤʤξԤƤޤ
  GCC ʳνϤˤĤ configure Υץǻꤹͤ狼
Τ϶Ƥconfigure.ac ˼Ǥ椭Ȼפޤ

5ָڥåȡפȤ

  MCPP ˤϡָڥåȡפȤΤ°Ƥޤ C/C++ ץ
åˤĤ 265 ܤˤ錄ŰŪʥƥȤɾ򤹤ΤǤ
MCPP ǤʤǤդΥץץåŬѤ뤳ȤǤޤλȤ
ˤĤƤϡcpp-test.txt [2.1], [2.2] 򻲾ȤƤ

2006/08
                                         桡 <kmatsui@t3.rim.or.jp>

