...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

dmd2.026のビルド方法 - Windows編

dmd2.026から\dmd\src\dmdにソース一式が同梱されるようになったのでビルドしてみた.
ひどい方法ではあるがビルドできたのでまあいいかと思い公開してみるw


win32.makを次のように書き変え,同名のコマンドscとの衝突を回避する.
なお,僕はc:\dにdmdを配置している.各自の環境に合わせて書き換えるべし.

--- win32.mak.default	Thu Mar 05 01:53:36 2009
+++ win32.mak	Thu Mar 05 23:06:02 2009
@@ -6,6 +6,6 @@
 
-D=
+D=c:\d
 SCROOT=$D\dm
 INCLUDE=$(SCROOT)\include
-CC=\dm\bin\dmc
+CC=c:\d\dm\bin\dmc
 LIBNT=$(SCROOT)\lib
@@ -14,2 +14,3 @@
 CP=cp
+SC=c:\d\dm\bin\sc.exe
 
@@ -153,3 +154,3 @@
 $(TARGET).exe : $(OBJS) win32.mak
-	sc -o$(TARGET).exe $(OBJS) -cpp -mn -Ar $(LFLAGS)
+	$(SC) -o$(TARGET).exe $(OBJS) -cpp -mn -Ar $(LFLAGS)
 
@@ -169,3 +170,3 @@
 msgsx.exe : msgsx.c
-	sc msgsx -mn -D$(TARGET) $(DEFINES) $(WINLIBS)
+	$(SC) msgsx -mn -D$(TARGET) $(DEFINES) $(WINLIBS)
 
@@ -173,3 +174,3 @@
 	$C\cdef.h $C\cc.h $C\oper.h $C\ty.h $C\optabgen.c
-	sc -cpp -ooptabgen.exe $C\optabgen -DMARS -I$(TK) $(WINLIBS) #-L$(LINKS)
+	$(SC) -cpp -ooptabgen.exe $C\optabgen -DMARS -I$(TK) $(WINLIBS) #-L$(LINKS)
 	optabgen
@@ -181,3 +182,3 @@
 id.h id.c : idgen.c
-	sc -cpp idgen
+	$(SC) -cpp idgen
 	idgen

本当はこんなことをしなくてもよい方法があると思うが,

の中身を1つ上の階層\dmd\src\dmdにある同名のファイル群に上書きする.

(追記)dmd.zipを上書きインストールしなければすぐ上の作業は不要のようです.

\dmd\src\dmdにて,make release -fwin32.mak を実行すると

make -fwin32.mak C=backend TK=tk ROOT=root clean
del *.obj
del total.sym
del msgs.h msgs.c
del elxxx.c cdxxx.c optab.c debtab.c fltables.c tytab.c
del impcnvtab.c

make -fwin32.mak C=backend TK=tk ROOT=root dmd
make -fwin32.mak C=backend TK=tk ROOT=root OPT=-o "DEBUG=" dmd.exe
c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  mars -Ae

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  enum

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  struct

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  dsymbol

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  import

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  id

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  staticassert

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  identifier

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  mtype

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  expression

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  optimize

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  template

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  lexer

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  declaration

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  cast

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  init

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  func

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  utf

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  unialpha

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  parse

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  statement

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  constfold

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  version

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  inifile

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -Iroot typinf

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH -Ibackend  module.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  scope

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  dump

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  cond

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  inline

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  opover

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  entity

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  class

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  mangle

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  attrib

c:\d\dm\bin\dmc -Iroot -cpp impcnvgen
link impcnvgen,,,user32+kernel32/noi;


impcnvgen

c:\d\dm\bin\dmc -c -Iroot -cpp impcnvtab

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  link

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  access

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  doc

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  macro

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  hdrgen

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  delegatize

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  interpret

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  traits

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  builtin

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  clone

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  libomf

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH  arrayop

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH irstate

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -Iroot glue

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH msc

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH ph

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH tk.c

c:\d\dm\bin\dmc -c -Iroot -Ibackend;tk -DMARS -cpp  -e -wx -D_DH s2ir

c:\d\dm\bin\dmc -c -Iroot -Ibackend;tk -DMARS -cpp  -e -wx -D_DH todt

c:\d\dm\bin\dmc -c -Iroot -Ibackend;tk -DMARS -cpp  -e -wx -D_DH e2ir

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -Iroot tocsym

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH util

c:\d\dm\bin\dmc -c -Iroot -Ibackend;tk -DMARS -cpp  -e -wx -D_DH bit

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH eh

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -Iroot toobj

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -Iroot toctype

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -Iroot tocvdebug

c:\d\dm\bin\dmc -c -Iroot -Ibackend;tk -DMARS -cpp  -e -wx -D_DH toir

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\go

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\gdag

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\gother

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\gflow

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\gloop

c:\d\dm\bin\sc.exe -cpp -ooptabgen.exe backend\optabgen -DMARS -Itk  
link optabgen,optabgen.exe,,user32+kernel32/noi;


optabgen
OPTABGEN... generating files

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -I. backend\var

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\el

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\newman

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\glocal

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\os

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\nteh

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\evalu8

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cgcs

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\rtlsym

c:\d\dm\bin\dmc -c -Iroot -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\html

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -I. backend\cgelem

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cgen

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cgreg

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\out

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\blockopt

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cgobj

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -I. backend\cg

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cgcv

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\type

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\dt

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -I. backend\debug

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\code

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cg87

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cgsched

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\ee

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\symbol -ocsymbol.obj

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -I. backend\cgcod

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cod1

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cod2

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cod3

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cod4

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\cod5

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\outbuf

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\bcomplex

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -Iroot iasm

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\ptrntab

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -I. backend\aa

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH -I. backend\ti_achar

c:\d\dm\bin\dmc -c -Ibackend;tk -DMARS -cpp  -e -wx -D_DH backend\md5

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\lstring.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\array.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\gnuc.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\man.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\rmem.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\port.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\root.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\stringtable.c

c:\d\dm\bin\dmc -c -Iroot;c:\d\dm\include  -o  -cpp -D_DH root\dchar.c

c:\d\dm\bin\sc.exe -odmd.exe mars.obj enum.obj struct.obj dsymbol.obj import.obj id.obj  staticassert.obj identifier.obj mtype.obj expression.obj  optimize.obj template.obj lexer.obj declaration.obj cast.obj  init.obj func.obj utf.obj unialpha.obj parse.obj statement.obj  constfold.obj version.obj inifile.obj typinf.obj  module.obj scope.obj dump.obj cond.obj inline.obj opover.obj  entity.obj class.obj mangle.obj attrib.obj impcnvtab.obj  link.obj access.obj doc.obj macro.obj hdrgen.obj delegatize.obj  interpret.obj traits.obj  builtin.obj clone.obj libomf.obj arrayop.obj irstate.obj  glue.obj msc.obj ph.obj tk.obj s2ir.obj todt.obj e2ir.obj tocsym.obj  util.obj bit.obj eh.obj toobj.obj toctype.obj tocvdebug.obj toir.obj go.obj gdag.obj gother.obj gflow.obj gloop.obj var.obj el.obj  newman.obj glocal.obj os.obj nteh.obj evalu8.obj cgcs.obj  rtlsym.obj html.obj cgelem.obj cgen.obj cgreg.obj out.obj  blockopt.obj cgobj.obj cg.obj cgcv.obj type.obj dt.obj  debug.obj code.obj cg87.obj cgsched.obj ee.obj csymbol.obj  cgcod.obj cod1.obj cod2.obj cod3.obj cod4.obj cod5.obj outbuf.obj  bcomplex.obj iasm.obj ptrntab.obj aa.obj ti_achar.obj md5.obj lstring.obj array.obj gnuc.obj man.obj rmem.obj port.obj root.obj  stringtable.obj dchar.obj -cpp -mn -Ar 
link mars+enum+struct+dsymbol+import+id+staticassert+identifier+mtype+expression+optimize+template+lexer+declaration+cast+init+func+utf+unialpha+parse+statement+constfold+version+inifile+typinf+module+scope+dump+cond+inline+opover+entity+class+mangle+attrib+impcnvtab+link+access+doc+macro+hdrgen+delegatize+interpret+traits+builtin+clone+libomf+arrayop+irstate+glue+msc+ph+tk+s2ir+todt+e2ir+tocsym+util+bit+eh+toobj+toctype+tocvdebug+toir+go+gdag+gother+gflow+gloop+var+el+newman+glocal+os+nteh+evalu8+cgcs+rtlsym+html+cgelem+cgen+cgreg+out+blockopt+cgobj+cg+cgcv+type+dt+debug+code+cg87+cgsched+ee+csymbol+cgcod+cod1+cod2+cod3+cod4+cod5+outbuf+bcomplex+iasm+ptrntab+aa+ti_achar+md5+lstring+array+gnuc+man+rmem+port+root+stringtable+dchar,dmd.exe,,user32+kernel32/noi;




make -fwin32.mak C=backend TK=tk ROOT=root clean
del *.obj
del total.sym
del msgs.h msgs.c
del elxxx.c cdxxx.c optab.c debtab.c fltables.c tytab.c
del impcnvtab.c

これでdmd.exeができるので,適当に使いましょう.