* @param languageAoptions
   * @return boolean
   */
  public static boolean makeSystem(String systemname, Cons languageAoptions) {
    { Cons options = languageAoptions;
      Keyword language = (Stella.getQuotedTree("((:COMMON-LISP :CPP :JAVA) \"/STELLA\")", "/STELLA").memberP(options.value) ? ((Keyword)(options.value)) : Stella.runningInLanguage());
      PropertyList plist = Stella_Object.vetOptions(((options.value == language) ? options.rest : options), Stella.getQuotedTree("((:TWO-PASS? :DEVELOPMENT-SETTINGS? :PRODUCTION-SETTINGS? :FORCE-TRANSLATION? :FORCE-RECOMPILATION? :LOAD-SYSTEM? :LANGUAGE :ACTION) \"/STELLA\")", "/STELLA"));
      boolean developmentsettingsP = false;
      boolean forcetranslationP = false;
      boolean forcerecompilationP = false;
      boolean twopassP = !Stella.systemLoadedOrStartedUpP(systemname);
      boolean loadsystemP = false;
      boolean startupsystemP = false;
      SystemDefinition system = null;
      boolean updatedsystemP = false;

      language = ((Keyword)(plist.lookupWithDefault(Stella.KWD_LANGUAGE, language)));
      plist.insertAt(Stella.KWD_LANGUAGE, language);
      loadsystemP = language == Stella.KWD_COMMON_LISP;
      startupsystemP = language == Stella.KWD_COMMON_LISP;
      plist.insertAt(Stella.KWD_ACTION, plist.lookupWithDefault(Stella.KWD_ACTION, Stella.KWD_MAKE_SYSTEM));
      { Stella_Object key = null;
        Stella_Object value = null;
        Cons iter000 = plist.thePlist;

        for (;!(iter000 == Stella.NIL); iter000 = iter000.rest.rest) {
          key = iter000.value;
          value = iter000.rest.value;
          { boolean truevalueP = Stella_Object.eqlP(value, Stella.TRUE_WRAPPER);

            { GeneralizedSymbol testValue000 = ((GeneralizedSymbol)(key));

              if (testValue000 == Stella.KWD_DEVELOPMENT_SETTINGSp) {
                developmentsettingsP = truevalueP;
              }
              else if (testValue000 == Stella.KWD_PRODUCTION_SETTINGSp) {
                developmentsettingsP = !truevalueP;
              }
              else if (testValue000 == Stella.KWD_FORCE_TRANSLATIONp) {
                forcetranslationP = truevalueP;
              }
              else if (testValue000 == Stella.KWD_FORCE_RECOMPILATIONp) {
                forcerecompilationP = truevalueP;
              }
              else if (testValue000 == Stella.KWD_TWO_PASSp) {
                twopassP = truevalueP;
              }
              else if (testValue000 == Stella.KWD_LOAD_SYSTEMp) {
                loadsystemP = truevalueP;
              }
              else if (testValue000 == Stella.KWD_STARTUPp) {
                startupsystemP = truevalueP;
              }
              else {
              }
            }
          }
        }
      }
      { Object old$CurrentSystemAction$000 = Stella.$CURRENT_SYSTEM_ACTION$.get();

        try {
          Native.setSpecial(Stella.$CURRENT_SYSTEM_ACTION$, plist.copy());
          system = Stella.getSystemDefinition(systemname);
          if (system == null) {
            {
              System.out.println("Can't find a declaration for system named " + systemname);
              System.out.println("  Possibly a global path name needs to be set.");
            }
;
            return (false);
          }
          if (forcerecompilationP ||
              ((!Stella.systemLoadedOrStartedUpP(systemname)) &&
               (forcetranslationP ||
                Stella.systemNeedsTranslationP(systemname, language)))) {
            Stella.loadPreprocessedFiles(systemname);
          }
          updatedsystemP = Stella.translateSystem(systemname, Cons.cons(language, Cons.cons(Stella.KWD_TWO_PASSp, Cons.cons((twopassP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER), Cons.cons(Stella.KWD_FORCE_TRANSLATIONp, Cons.cons((forcetranslationP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER), Cons.cons(Stella.KWD_DEVELOPMENT_SETTINGSp, Cons.cons((developmentsettingsP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER), Stella.NIL))))))));
          if (loadsystemP &&
              Stella.loadSystem(systemname, Cons.cons(language, Cons.cons(Stella.KWD_FORCE_RECOMPILATIONp, Cons.cons((forcerecompilationP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER), Cons.cons(Stella.KWD_STARTUPp, Cons.cons((startupsystemP ? Stella.TRUE_WRAPPER : Stella.FALSE_WRAPPER), Stella.NIL))))))) {
            updatedsystemP = true;
          }
          return (updatedsystemP);

        } finally {
          Stella.$CURRENT_SYSTEM_ACTION$.set(old$CurrentSystemAction$000);
        }
      }
    }
  }