cminstall/derived/Setup.m3


MODULE Setup;
Generated by m3bundle; see its manpage.

IMPORT Bundle, BundleRep, Text;

TYPE T = Bundle.T OBJECT OVERRIDES
           get      := LookUp;
           getNames := GetNames;
         END;

TYPE Texts = REF ARRAY OF TEXT;

VAR
  bundle: T     := NIL;
  names : Texts := NIL;

PROCEDURE Get(): Bundle.T =
  BEGIN
    IF (bundle = NIL) THEN bundle := NEW (T) END;
    RETURN bundle;
  END Get;

PROCEDURE GetNames (<*UNUSED*> self: T): Texts =
  BEGIN
    IF names = NIL THEN
      names := NEW (Texts, NUMBER (Names));
      names^ := Names;
    END;
    RETURN names;
  END GetNames;

PROCEDURE LookUp (<*UNUSED*> self: T;  element: TEXT): TEXT =
  BEGIN
    FOR i := 0 TO LAST (Names)-1 DO
      IF Text.Equal (Names[i], element) THEN
        RETURN Elements[i];
      END;
    END;
    RETURN NIL;
  END LookUp;

CONST Names = ARRAY [0..1] OF TEXT {
  "config",
  NIL
};

CONST Elements = ARRAY [0..1] OF TEXT {
  E0,
  NIL
};

CONST E0 =
   "readonly TARGET = \"AMD64_LINUX\" % code generation target\nreadonly WO"
 & "RD_SIZE = \"64BITS\" % { \"32BITS\" or \"64BITS\" }\nreadonly GNU_PLATF"
 & "ORM = \"amd64-pc-linux-gnu\" % \"cpu-vendor-os\" string for GNU\n\n%\n%"
 & " add s switch to ar and remove need for ranlib\n%\nreadonly AR_AND_RANL"
 & "IB_ARE_ONE = TRUE\n\nreadonly m3back_flags = \"-quiet -gstabs+ -m64 -fP"
 & "IC -mno-align-double\"\nreadonly SYSTEM_CC = \"gcc -gstabs+ -m64 -fPIC "
 & "-mno-align-double\" % C compiler\nSYSTEM_LD = SYSTEM_CC\n  & \" -z now\""
 & "\n  & \" -z origin\"\n  & \" -Bsymbolic\"\n% I thought -as-needed was g"
 & "enerally considered good, but it is\n% breaking Linux/x86 so disable he"
 & "re for now.\n% & \" -Wl,--as-needed\"\n  & \" -Wl,--fatal-warnings\"\n%"
 & " & \" -Wl,-no-allow-shlib-undefined\"\n  & \" -Wl,-rpath,\\\\$ORIGIN/.."
 & "/lib\"\n  & \" -Wl,--warn-common\"\n% -pie is broken by linking to posi"
 & "tition-dependent static libraries,\n% such as libz.a by cvsup on birch "
 & "(elegosoft machine).\n% Imho position-dependent code should just never "
 & "exist, oh well.\n%readonly POSITION_INDEPENDENT_EXECUTABLE = \"-pie\"\n"
 & "readonly USE_ORIGIN = TRUE\nreadonly SYSTEM_ASM = \"as --64\" % Assembl"
 & "er\n\n%\n% newer platforms never needed these workarounds for\n% bootst"
 & "rapping with older builds\n%\nreadonly proc GetGcWrapFlags() is return "
 & "\"\" end\nreadonly proc FixM3GcDefs(x) is return x end\nreadonly proc G"
 & "etM3BackFlag(x) is return x end\n\ninclude(\"Unix.common\")\ninclude(\""
 & "gnuld.common\")\n\n";

BEGIN
END Setup.