This program behaves in two different ways.
2958 std::string remakefile;
2960 bool literal_targets =
false;
2961 bool indirect_targets =
false;
2964 for (
int i = 1; i < argc; ++i)
2966 std::string arg = argv[i];
2967 if (arg.empty())
usage(EXIT_FAILURE);
2968 if (literal_targets)
goto new_target;
2969 if (arg ==
"-h" || arg ==
"--help")
usage(EXIT_SUCCESS);
2973 else if (arg ==
"-k" || arg ==
"--keep-going")
2975 else if (arg ==
"-s" || arg ==
"--silent" || arg ==
"--quiet")
2977 else if (arg ==
"-r")
2978 indirect_targets =
true;
2979 else if (arg ==
"-f")
2981 if (++i == argc)
usage(EXIT_FAILURE);
2982 remakefile = argv[i];
2984 else if (arg ==
"--")
2985 literal_targets =
true;
2986 else if (arg.compare(0, 2,
"-j") == 0)
2988 else if (arg.compare(0, 7,
"--jobs=") == 0)
2992 if (arg[0] ==
'-')
usage(EXIT_FAILURE);
2993 if (arg.find(
'=') != std::string::npos)
2995 std::istringstream in(arg);
3002 targets.push_back(arg);
3003 DEBUG <<
"New target: " << arg <<
'\n';
3010 if (indirect_targets)
3017 l.push_back(
dependencies.begin()->second->targets.front());
3019 for (string_list::const_iterator i = l.begin(),
3020 i_end = l.end(); i != i_end; ++i)
3022 dependency_map::const_iterator j =
dependencies.find(*i);
3025 for (string_set::const_iterator k = dep.
deps.begin(),
3026 k_end = dep.
deps.end(); k != k_end; ++k)
3036 if (WSAStartup(MAKEWORD(2,2), &wsaData))
3038 std::cerr <<
"Unexpected failure while initializing Windows Socket" << std::endl;
3044 if (
char *sn = getenv(
"REMAKE_SOCKET"))
client_mode(sn, targets);
3047 if (remakefile.empty())
3049 remakefile =
"Remakefile";