private static void assembleCode() {
        String sName = sourceBaseName + ".s";
        String cLib = "cless";
        if (underscoredGlobals()) {
            cLib = "clessus";
        }

        String arg[];
        if (noLink) {
            arg = new String[4];
            arg[0] = "gcc";
            arg[1] = "-m32";
            arg[2] = "-c";
            arg[3] = sName;
        } else {
            arg = new String[8];
            arg[0] = "gcc";
            arg[1] = "-m32";
            arg[2] = "-o";
            arg[3] = sourceBaseName;
            arg[4] = sName;
            arg[5] = "-L.";
            arg[6] = "-L/local/share/inf2100";
            arg[7] = "-l" + cLib;
        }
        System.out.print("Running");
        for (String s : arg) {
            System.out.print(" " + s);
        }
        System.out.println();

        ProcessBuilder pb = new ProcessBuilder(arg);
        try {
            pb.redirectErrorStream(true);
            final Process proc = pb.start();

            new Thread() {  // Show any error messages:

                public void run() {
                    BufferedReader output =
                            new BufferedReader(new InputStreamReader(proc.getInputStream()));
                    String line;
                    try {
                        while ((line = output.readLine()) != null) {
                            System.out.println(line);
                        }
                    } catch (IOException e) {
                    }
                }
            }.start();

            int status = proc.waitFor();
            if (status != 0) {
                Error.error("Running gcc produced errors!");
            }
        } catch (InterruptedException e) {
        } catch (IOException e) {
            Error.error("Cannot run gcc!");
        }
    }