<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
So..I spent a few minutes tonight trying to use/build an old release: 5.4.0.<br><br><br>One of the problems I hit was building the 5.4.0 release with a current "I386_FREEBSD" compiler.<br><br><br>One of the problems in the system, just a small number of occurences, is m3makefiles having lists<br>of platforms, that don't have current platforms. In some ways this might be inevitable.<br>I have however reduced the problem by using lists of OS (Linux, FreeBSD, etc.) and processor architecture (x86, AMD64, SPARC32, etc.).<br>So new combinations thereof don't require visiting so many places.<br><br><br>However this reminded me of something that has bugged me a bit.<br><br><br>In m3core:<br>INTERFACE Compiler; (* this is generated by quake code *) <br><br>  enum OS = { POSIX, WIN32} not so bad, hasn't changed in over 10 years <br>  enum Platform = { big list of all targets } changes whenever a target is added, fairly often  <br>  CONST ThisOS = OS.POSIX or OS.WIN32 not so bad <br>  CONST ThisPlatform:Platform = ... a small problem, the subject here <br>  CONST ThisPlatform_String:TEXT = "..."; not a problem <br><br><br>I'd like to remove the enum Platform and ThisPlatform.<br>This increases portability in terms of the ability of older/newer cm3 to build newer/older cm3.<br>  i.e...I guess...just...for a cm3 hosted on a renamed platform (I386_LINUX vs. LINUXLIBC6, etc.)<br><br><br>It also is one less file to edit when adding a new target.<br>   Ideally that number is just one file, though currently it is a few.<br><br><br>I'll try it out, see if anything in our tree uses it.<br><br><br>Any uses are probably suspicious anyway.<br><br><br>Perhaps we should provide the two smaller "composed" enums<br> rename ThisOS to ThisOSType<br>  then ThisOS in {Linux, OpenBSD, FreeBSD, Solaris, etc.}<br>  and ThisProcessorArchitecture in {x86, AMD64, sparc32, etc.}<br>  (possibly x86, sparc, powerpc, and then can check BITSIZE(INTEGER) to get 32/64).<br><br><br>The one place I knew of that used this stuff I changed to do something else -- use quake code to produce true/false.<br><br><br> - Jay<br>                                     </body>
</html>