fixed make.ss to deal with worksp-vc07 split

svn: r394
This commit is contained in:
Matthew Flatt 2005-07-19 15:17:47 +00:00
parent bfe4eb5ab0
commit 2928d3e98b
3 changed files with 13 additions and 463 deletions

View File

@ -4,6 +4,4 @@ mkdir ..\..\..\lib
mkdir ..\..\..\lib\msvc
copy mzdyn.exp ..\..\..\lib\msvc
copy mzdyn.obj ..\..\..\lib\msvc
copy ..\..\worksp\libmzsch\release\libmzschxxxxxxx.lib ..\..\..\lib\msvc
copy ..\..\worksp\libmzgc\release\libmzgcxxxxxxx.lib ..\..\..\lib\msvc
copy ..\..\worksp\uniplt\uniplt_xxxxxxx.dll ..\..\..

View File

@ -1,446 +1,2 @@
(use-compiled-file-paths null)
(require (lib "restart.ss")
(lib "process.ss"))
(define (system- s)
(fprintf (current-error-port) "~a~n" s)
(system s))
(define accounting-gc? #t)
(define opt-flags "/O2")
(define re:only #f)
(unless (directory-exists? "xsrc")
(make-directory "xsrc"))
(define srcs
'("salloc"
"bignum"
"bool"
"builtin"
"char"
"complex"
"dynext"
"env"
"error"
"eval"
"file"
"fun"
"hash"
"image"
"list"
"module"
"network"
"numarith"
"number"
"numcomp"
"numstr"
"port"
"portfun"
"print"
"rational"
"read"
"regexp"
"sema"
"setjmpup"
"string"
"struct"
"symbol"
"syntax"
"stxobj"
"thread"
"type"
"vector"))
(define (try src deps dest objdest includes use-precomp extra-compile-flags expand-extra-flags msvc-pch)
(when (or (not re:only) (regexp-match re:only dest))
(unless (and (file-exists? dest)
(let ([t (file-or-directory-modify-seconds dest)])
(andmap
(lambda (dep)
(let ([dep (cond
[(bytes? dep) (bytes->path dep)]
[else dep])])
(> t (file-or-directory-modify-seconds dep))))
(append deps
(if use-precomp (list use-precomp) null)
(let ([deps (path-replace-suffix dest #".sdep")])
(if (file-exists? deps)
(with-input-from-file deps read)
null))))))
(unless (parameterize
([use-compiled-file-paths (list "compiled")])
(restart-mzscheme #() (lambda (x) x)
(list->vector
(append
(list "-r"
"../../mzscheme/gc2/xform.ss"
"--setup")
(if objdest
(if use-precomp
(list "--precompiled" use-precomp)
null)
(list "--precompile"))
(list
"--depends"
(format "cl.exe /MT /E ~a ~a" expand-extra-flags includes)
src
dest)))
void))
(when (file-exists? dest)
(delete-file dest))
(error "error xforming")))
(when objdest
(compile dest objdest null (string-append
extra-compile-flags
(if msvc-pch
(format " /Fp~a" msvc-pch)
""))))))
(define (compile c o deps flags)
(unless (and (file-exists? o)
(let ([t (file-or-directory-modify-seconds o)])
(and (>= t (file-or-directory-modify-seconds c))
(andmap
(lambda (f)
(>= t (file-or-directory-modify-seconds f)))
deps))))
(unless (system- (format "cl.exe ~a /MT /Zi ~a /c ~a /Fdxsrc/ /Fo~a" flags opt-flags c o))
(error "failed compile"))))
(define common-deps (list "../../mzscheme/gc2/xform.ss"
"../../mzscheme/gc2/xform-mod.ss"))
(define (find-obj f d) (format "../../worksp/~a/release/~a.obj" d f))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define mz-inc "/I ../../mzscheme/include /I .. ")
(try "precomp.c" (list* "../../mzscheme/src/schvers.h"
common-deps)
"xsrc/precomp.h" #f
(string-append mz-inc "/I ../../mzscheme/src")
#f "" "" #f)
(for-each
(lambda (x)
(try (format "../../mzscheme/src/~a.c" x)
(list* ; (find-obj x "libmzsch")
(format "../../mzscheme/src/~a.c" x)
common-deps)
(format "xsrc/~a.c" x)
(format "xsrc/~a.obj" x)
mz-inc
"xsrc/precomp.h"
""
""
"mz.pch"))
srcs)
(try "../../mzscheme/main.c"
(list* ; (find-obj "main" "mzscheme")
"../../mzscheme/main.c"
common-deps)
"xsrc/main.c"
"xsrc/main.obj"
mz-inc
#f
""
""
#f)
(try "../../foreign/foreign.c"
(list* ; (find-obj "main" "mzscheme")
"../../foreign/foreign.c"
common-deps)
"xsrc/foreign.c"
"xsrc/foreign.obj"
(string-append
mz-inc
"/I../../foreign/libffi_msvc "
"/I../../mzscheme/src ")
#f
""
""
#f)
(compile "../../mzscheme/gc2/gc2.c" "xsrc/gc2.obj"
(map (lambda (f) (build-path "../../mzscheme/gc2/" f))
'("gc2.c"
"compact.c"
"newgc.c"
"vm_win.c"
"sighand.c"
"msgprint.c"))
(string-append
"/D GC2_AS_EXPORT "
(if accounting-gc?
"/D NEWGC_BTC_ACCOUNT "
"/D USE_COMPACT_3M_GC")
mz-inc))
(compile "../../mzscheme/src/mzsj86.c" "xsrc/mzsj86.obj" '() mz-inc)
(define dll "../../../libmzsch3mxxxxxxx.dll")
(define exe "../../../MzScheme3m.exe")
(define libs "kernel32.lib user32.lib wsock32.lib shell32.lib advapi32.lib")
(define (link-dll objs sys-libs dll link-options exe?)
(let ([ms (if (file-exists? dll)
(file-or-directory-modify-seconds dll)
0)])
(when (ormap
(lambda (f)
(> (file-or-directory-modify-seconds f)
ms))
objs)
(unless (system- (format "cl.exe ~a /MT /Zi /Fe~a unicows.lib ~a ~a ~a"
(if exe? "" "/LD /DLL")
dll
(let loop ([objs (append objs sys-libs)])
(if (null? objs)
""
(string-append
(car objs)
" "
(loop (cdr objs)))))
libs
link-options))
(error 'winmake "~a link failed" (if exe? "EXE" "DLL"))))))
(let ([objs (list*
"../libmzsch/Release/uniplt.obj"
"xsrc/gc2.obj"
"xsrc/mzsj86.obj"
"xsrc/foreign.obj"
(find-obj "gmp" "libmzsch")
(find-obj "ffi" "libmzsch")
(find-obj "win32" "libmzsch")
(find-obj "prep_cif" "libmzsch")
(find-obj "types" "libmzsch")
(map
(lambda (n)
(format "xsrc/~a.obj" n))
srcs))])
(link-dll objs null dll "" #f))
(let ([objs (list
"xsrc/main.obj"
"../libmzsch/Release/uniplt.obj"
"../../../libmzsch3mxxxxxxx.lib")])
(link-dll objs null exe "" #t))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define wx-inc (string-append "/I ../../mzscheme/include "
"/I .. "
"/I ../../mzscheme/gc2 "
"/I ../../wxwindow/include/msw "
"/I ../../wxwindow/include/base "
"/I ../../mred/wxme "
"/I ../../wxwindow/contrib/wxxpm/libxpm.34b/lib "
"/I ../../wxWindow/contrib/fafa "
"/I ../../wxcommon/jpeg /I ../../worksp/jpeg /I ../../wxcommon/zlib "))
(try "wxprecomp.cxx" (list* "../../mzscheme/src/schvers.h" common-deps)
"xsrc/wxprecomp.h" #f wx-inc #f "" "-DGC2_AS_IMPORT" #f)
(define (wx-try base proj x use-precomp? suffix)
(let ([cxx-file (format "../../~a/~a.~a" base x suffix)])
(try cxx-file
(list* ; (find-obj x proj)
cxx-file
common-deps)
(format "xsrc/~a.~a" x suffix)
(format "xsrc/~a.obj" x)
wx-inc
(and use-precomp? "xsrc/wxprecomp.h")
"-DGC2_JUST_MACROS /FI../../../mzscheme/gc2/gc2.h"
"-DGC2_AS_IMPORT"
"wx.pch")))
(define wxwin-base-srcs
'("wb_canvs"
"wb_cmdlg"
"wb_data"
"wb_dc"
"wb_dialg"
"wb_frame"
"wb_gdi"
"wb_hash"
"wb_item"
"wb_list"
"wb_main"
"wb_obj"
"wb_panel"
"wb_print"
"wb_ps"
"wb_stdev"
"wb_sysev"
"wb_timer"
"wb_types"
"wb_utils"
"wb_win"))
(map (lambda (x)
(wx-try "wxwindow/src/base" "wxwin" x #t "cxx"))
wxwin-base-srcs)
(define wxwin-msw-srcs
'("wx_buttn"
"wx_canvs"
"wx_check"
"wx_choic"
"wx_clipb"
"wx_cmdlg"
"wx_dc"
"wx_dialg"
"wx_frame"
"wx_gauge"
"wx_gbox"
"wx_gdi"
"wx_graph_glue"
"wx_item"
"wx_lbox"
"wx_main"
"wx_menu"
"wx_messg"
"wx_panel"
"wx_pdf"
"wx_rbox"
"wx_slidr"
"wx_tabc"
"wx_timer"
"wx_utils"
"wx_win"
"wximgfil"))
(map (lambda (x)
(wx-try "wxwindow/src/msw" "wxwin" x #t "cxx"))
wxwin-msw-srcs)
(define wxs-srcs
'("wxs_bmap"
"wxs_butn"
"wxs_chce"
"wxs_ckbx"
"wxs_cnvs"
"wxs_dc"
"wxs_evnt"
"wxs_fram"
"wxs_gage"
"wxs_gdi"
"wxs_glob"
"wxs_item"
"wxs_lbox"
"wxs_madm"
"wxs_mede"
"wxs_medi"
"wxs_menu"
"wxs_mio"
"wxs_misc"
"wxs_mpb"
"wxs_obj"
"wxs_panl"
"wxs_rado"
"wxs_slid"
"wxs_snip"
"wxs_styl"
"wxs_tabc"
"wxs_win"
"wxscheme"))
(map (lambda (x)
(wx-try "mred/wxs" "wxs" x #t "cxx"))
wxs-srcs)
(define wxme-srcs
'("wx_cgrec"
"wx_keym"
"wx_mbuf"
"wx_medad"
"wx_media"
"wx_medio"
"wx_mline"
"wx_mpbrd"
"wx_mpriv"
"wx_msnip"
"wx_snip"
"wx_style"))
(map (lambda (x)
(wx-try "mred/wxme" "wxme" x #t "cxx"))
wxme-srcs)
(define mred-srcs
'("mred"
"mredmsw"))
(map (lambda (x)
(wx-try "mred" "libmred" x #t "cxx"))
mred-srcs)
(wx-try "wxcommon" "wxme" "wxJPEG" #t "cxx")
(wx-try "mzscheme/utils" "wxme" "xcglue" #f "c")
(compile "../../wxcommon/wxGC.cxx"
"xsrc/wxGC.obj"
(list "../../worksp/wxme/Release/wxGC.obj")
(string-append wx-inc " -DMZ_PRECISE_GC -DGC2_AS_IMPORT -Dwx_msw"))
(let ([objs (append (list
"../libmzsch/Release/uniplt.obj"
"xsrc/wxGC.obj"
"xsrc/wxJPEG.obj"
"xsrc/xcglue.obj")
(map
(lambda (n)
(format "xsrc/~a.obj" n))
(append wxwin-base-srcs
wxwin-msw-srcs
wxs-srcs
wxme-srcs
mred-srcs)))]
[libs (list
"../../../libmzsch3mxxxxxxx.lib"
"../../worksp/wxutils/Release/wxutils.lib"
"../../worksp/jpeg/Release/jpeg.lib"
"../../worksp/png/Release/png.lib"
"../../worksp/zlib/Release/zlib.lib")]
[win-libs (list
"comctl32.lib" "glu32.lib" "opengl32.lib"
"gdi32.lib" "comdlg32.lib" "advapi32.lib"
"shell32.lib" "ole32.lib" "oleaut32.lib"
"winmm.lib")])
(link-dll (append objs libs) win-libs "../../../libmred3mxxxxxxx.dll" "" #f))
(wx-try "mred" "mred" "mrmain" #f "cxx")
(unless (file-exists? "mred.res")
(system- (string-append
"rc /l 0x409 /I ../../wxwindow/include/msw /I ../../wxwindow/contrib/fafa "
"/fomred.res ../../worksp/mred/mred.rc")))
(let ([objs (list
"mred.res"
"xsrc/mrmain.obj"
"../libmzsch/Release/uniplt.obj"
"../../../libmzsch3mxxxxxxx.lib"
"../../../libmred3mxxxxxxx.lib")])
(link-dll objs (list "advapi32.lib") "../../../MrEd3m.exe" "/link /subsystem:windows" #t))
(system- "cl.exe /MT /O2 /DMZ_PRECISE_GC /I../../mzscheme/include /I.. /c ../../mzscheme/dynsrc/mzdyn.c /Fomzdyn3m.obj")
(system- "lib.exe -def:../../mzscheme/dynsrc/mzdyn.def -out:mzdyn3m.lib")
(define (copy-file/diff src dest)
(unless (and (file-exists? dest)
(string=? (with-input-from-file src (lambda () (read-string (file-size src))))
(with-input-from-file dest (lambda () (read-string (file-size dest))))))
(printf "Updating ~a~n" dest)
(when (file-exists? dest) (delete-file dest))
(copy-file src dest)))
(copy-file/diff "mzdyn3m.exp" "../../../lib/msvc/mzdyn3m.exp")
(copy-file/diff "mzdyn3m.obj" "../../../lib/msvc/mzdyn3m.obj")
(copy-file/diff "../../../libmzsch3mxxxxxxx.lib" "../../../lib/msvc/libmzsch3mxxxxxxx.lib")
(load "../../worksp/gc2/make.ss")

View File

@ -113,7 +113,7 @@
(define common-deps (list "../../mzscheme/gc2/xform.ss"
"../../mzscheme/gc2/xform-mod.ss"))
(define (find-obj f d) (format "../../worksp/~a/release/~a.obj" d f))
(define (find-obj f d) (format "../~a/release/~a.obj" d f))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -128,8 +128,7 @@
(for-each
(lambda (x)
(try (format "../../mzscheme/src/~a.c" x)
(list* ; (find-obj x "libmzsch")
(format "../../mzscheme/src/~a.c" x)
(list* (format "../../mzscheme/src/~a.c" x)
common-deps)
(format "xsrc/~a.c" x)
(format "xsrc/~a.obj" x)
@ -141,8 +140,7 @@
srcs)
(try "../../mzscheme/main.c"
(list* ; (find-obj "main" "mzscheme")
"../../mzscheme/main.c"
(list* "../../mzscheme/main.c"
common-deps)
"xsrc/main.c"
"xsrc/main.obj"
@ -153,8 +151,7 @@
#f)
(try "../../foreign/foreign.c"
(list* ; (find-obj "main" "mzscheme")
"../../foreign/foreign.c"
(list* "../../foreign/foreign.c"
common-deps)
"xsrc/foreign.c"
"xsrc/foreign.obj"
@ -243,15 +240,14 @@
"/I ../../mred/wxme "
"/I ../../wxwindow/contrib/wxxpm/libxpm.34b/lib "
"/I ../../wxWindow/contrib/fafa "
"/I ../../wxcommon/jpeg /I ../../worksp/jpeg /I ../../wxcommon/zlib "))
"/I ../../wxcommon/jpeg /I ../jpeg /I ../../wxcommon/zlib "))
(try "wxprecomp.cxx" (list* "../../mzscheme/src/schvers.h" common-deps)
"xsrc/wxprecomp.h" #f wx-inc #f "" "-DGC2_AS_IMPORT" #f)
(define (wx-try base proj x use-precomp? suffix)
(let ([cxx-file (format "../../~a/~a.~a" base x suffix)])
(try cxx-file
(list* ; (find-obj x proj)
cxx-file
(list* cxx-file
common-deps)
(format "xsrc/~a.~a" x suffix)
(format "xsrc/~a.obj" x)
@ -386,7 +382,7 @@
(wx-try "mzscheme/utils" "wxme" "xcglue" #f "c")
(compile "../../wxcommon/wxGC.cxx"
"xsrc/wxGC.obj"
(list "../../worksp/wxme/Release/wxGC.obj")
(list "../wxme/Release/wxGC.obj")
(string-append wx-inc " -DMZ_PRECISE_GC -DGC2_AS_IMPORT -Dwx_msw"))
(let ([objs (append (list
@ -404,10 +400,10 @@
mred-srcs)))]
[libs (list
"../../../libmzsch3mxxxxxxx.lib"
"../../worksp/wxutils/Release/wxutils.lib"
"../../worksp/jpeg/Release/jpeg.lib"
"../../worksp/png/Release/png.lib"
"../../worksp/zlib/Release/zlib.lib")]
"../wxutils/Release/wxutils.lib"
"../jpeg/Release/jpeg.lib"
"../png/Release/png.lib"
"../zlib/Release/zlib.lib")]
[win-libs (list
"comctl32.lib" "glu32.lib" "opengl32.lib"
"gdi32.lib" "comdlg32.lib" "advapi32.lib"
@ -420,7 +416,7 @@
(unless (file-exists? "mred.res")
(system- (string-append
"rc /l 0x409 /I ../../wxwindow/include/msw /I ../../wxwindow/contrib/fafa "
"/fomred.res ../../worksp/mred/mred.rc")))
"/fomred.res ../mred/mred.rc")))
(let ([objs (list
"mred.res"