<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
My CM3_INSTALL environment variable has forward slashes.<BR>
It'd probably work otherwise.<BR>
 <BR>
One fix is:<BR>
 <BR>
Index: M3Build.m3<BR>===================================================================<BR>RCS file: /usr/cvs/cm3/m3-sys/cm3/src/M3Build.m3,v<BR>retrieving revision 1.31<BR>diff -u -r1.31 M3Build.m3<BR>--- M3Build.m3 4 Sep 2009 10:25:26 -0000 1.31<BR>+++ M3Build.m3 7 Mar 2010 11:40:50 -0000<BR>@@ -133,7 +133,7 @@<BR>     (* some more config dependent backward compatibility hacks... *)<BR>     Quake.Define (t, "M3SEARCH_TABLES", "-T" & M3TFile);<BR>     Quake.Define (t, "DEFAULT_BUILD_DIR", GetConfig (t, "BUILD_DIR"));<BR>-    Quake.Define (t, "M3", M3Path.New (GetConfig (t, "BIN_USE"), "cm3"));<BR>+    Quake.Define (t, "M3", TextUtils.Substitute(M3Path.New (GetConfig (t, "BIN_USE"), "cm3"), "/", M3Path.SlashText));<BR>     Quake.Define (t, "PACKAGE_DIR", pkg);<BR> <BR>     t.build_pkg       := M3ID.Add (Pathname.Last (pkg));<BR>@@ -143,19 +143,19 @@<BR> <BR>     (* M3Path.New is used to canonicalize the paths -- to remove dots *)<BR> <BR>-    t.pkg_use         := M3Path.New (GetConfig (t, "PKG_USE"));<BR>+    t.pkg_use         := TextUtils.Substitute(M3Path.New (GetConfig (t, "PKG_USE")), "/", M3Path.SlashText);<BR> (* not in Quake.Machine<BR>-    t.bin_use         := M3Path.New (GetConfig (t, "BIN_USE"));<BR>-    t.lib_use         := M3Path.New (GetConfig (t, "LIB_USE"));<BR>+    t.bin_use         := TextUtils.Substitute(M3Path.New (GetConfig (t, "BIN_USE")), "/", M3Path.SlashText);<BR>+    t.lib_use         := TextUtils.Substitute(M3Path.New (GetConfig (t, "LIB_USE")), "/", M3Path.SlashText);<BR> *)<BR>-    t.pkg_install     := M3Path.New (GetConfig (t, "PKG_INSTALL"));<BR>-    t.install_root    := M3Path.New (GetConfig (t, "INSTALL_ROOT"));<BR>-    t.bin_install     := M3Path.New (GetConfig (t, "BIN_INSTALL"));<BR>-    t.lib_install     := M3Path.New (GetConfig (t, "LIB_INSTALL"));<BR>-    t.emacs_install   := M3Path.New (GetConfig (t, "EMACS_INSTALL"));<BR>-    t.doc_install     := M3Path.New (GetConfig (t, "DOC_INSTALL"));<BR>-    t.man_install     := M3Path.New (GetConfig (t, "MAN_INSTALL"));<BR>-    t.html_install    := M3Path.New (GetConfig (t, "HTML_INSTALL"));<BR>+    t.pkg_install     := TextUtils.Substitute(M3Path.New (GetConfig (t, "PKG_INSTALL")), "/", M3Path.SlashText);<BR>+    t.install_root    := TextUtils.Substitute(M3Path.New (GetConfig (t, "INSTALL_ROOT")), "/", M3Path.SlashText);<BR>+    t.bin_install     := TextUtils.Substitute(M3Path.New (GetConfig (t, "BIN_INSTALL")), "/", M3Path.SlashText);<BR>+    t.lib_install     := TextUtils.Substitute(M3Path.New (GetConfig (t, "LIB_INSTALL")), "/", M3Path.SlashText);<BR>+    t.emacs_install   := TextUtils.Substitute(M3Path.New (GetConfig (t, "EMACS_INSTALL")), "/", M3Path.SlashText);<BR>+    t.doc_install     := TextUtils.Substitute(M3Path.New (GetConfig (t, "DOC_INSTALL")), "/", M3Path.SlashText);<BR>+    t.man_install     := TextUtils.Substitute(M3Path.New (GetConfig (t, "MAN_INSTALL")), "/", M3Path.SlashText);<BR>+    t.html_install    := TextUtils.Substitute(M3Path.New (GetConfig (t, "HTML_INSTALL")), "/", M3Path.SlashText);<BR>     t.have_pkgtools   := GetConfigBool (t, "HAVE_PKGTOOLS");<BR>     t.at_SRC          := GetConfigBool (t, "AT_SRC");<BR>     t.system_liborder := QVal.ToArray (t, ConfigDefn (t, "SYSTEM_LIBORDER").value);<BR><BR>
 <BR>
but I'm not sure I like that.<BR>
I think probably we should have parallel variables bin_install_forwardslash, etc., in which \\ is replaced by /.<BR>
 <BR>
If we compute the paths ourselves on Win32, we use \\.<BR>
But if user sets them, we leave them alone. Either slash works.<BR>
 <BR>
 <BR>
 - Jay<BR>
<BR> <BR>
<HR id=stopSpelling>
From: jay.krell@cornell.edu<BR>To: m3devel@elegosoft.com<BR>Date: Sun, 7 Mar 2010 11:25:10 +0000<BR>Subject: [M3devel] -no-m3ship-resolution<BR><BR>
<STYLE>
.ExternalClass .ecxhmmessage P
{padding:0px;}
.ExternalClass body.ecxhmmessage
{font-size:10pt;font-family:Verdana;}
</STYLE>
This is head.<BR>Two problems here.<BR>One the feature apparently not fully working. I should look at that.<BR>Two the test is too platform specific -- lib.lib vs. liblib.a.<BR>Maybe reasonable to support some text substitution over the results to address that.<BR> Or heck, maybe abstract out the "naming conventions"? Maybe too difficult<BR>  and too little gain.<BR>  I'm surprised even have TARGET like that. The main point I think is the<BR>  install root.<BR><BR>--- ../src/p2/p221/stdout.build 2009-12-15 03:04:01.000000000 -0800<BR>+++ ../src/p2/p221/NT386/stdout.build   2010-03-07 03:11:39.531250000 -0800<BR>@@ -1,7 +1,7 @@<BR>-make_dir(PKG_INSTALL & "/p221/" & TARGET)<BR>-install_file(".M3EXPORTS", PKG_INSTALL & "/p221/" & TARGET, "0644")<BR>-install_file("liblib.a", PKG_INSTALL & "/p221/" & TARGET, "0644")<BR>-install_file("liblib.m3x", PKG_INSTALL & "/p221/" & TARGET, "0644")<BR>-install_file(".M3WEB", PKG_INSTALL & "/p221/" & TARGET, "0644")<BR>-make_dir(PKG_INSTALL & "/p221")<BR>-install_file("../Main.m3", PKG_INSTALL & "/p221", "0644")<BR>+make_dir("/cm3/pkg/p221/" & TARGET)<BR>+install_file(".M3EXPORTS", "/cm3/pkg/p221/" & TARGET, "0644")<BR>+install_file("lib.lib", "/cm3/pkg/p221/" & TARGET, "0644")<BR>+install_file("lib.m3x", "/cm3/pkg/p221/" & TARGET, "0644")<BR>+install_file(".M3WEB", "/cm3/pkg/p221/" & TARGET, "0644")<BR>+make_dir("/cm3/pkg/p221")<BR>+install_file("../Main.m3", "/cm3/pkg/p221", "0644")<BR>--- p222 --- .M3SHIP Library<BR> <BR> - Jay<BR>                                         </body>
</html>