put more flags to the beginning

This commit is contained in:
q66 2017-05-01 19:12:17 +02:00
parent cd1a0108ab
commit baa8ff1e64

View file

@ -51,6 +51,17 @@ static std::string TEST_CASES[] = {
static std::string OSTD_SHARED_LIB = "libostd.so"; static std::string OSTD_SHARED_LIB = "libostd.so";
static std::string OSTD_STATIC_LIB = "libostd.a"; static std::string OSTD_STATIC_LIB = "libostd.a";
static std::string DEFAULT_CXXFLAGS = "-std=c++1z -I. -O2 -Wall -Wextra "
"-Wshadow -Wold-style-cast";
static std::string DEFAULT_LDFLAGS = "-pthread";
static std::string DEFAULT_ASFLAGS = "";
static std::string DEBUG_CXXFLAGS = "-g";
static std::string SHARED_CXXFLAGS = "-fPIC";
static std::string SHARED_LDFLAGS = "-shared";
static std::string SHARED_ASFLAGS = "-fPIC";
/* DO NOT CHANGE PAST THIS POINT */ /* DO NOT CHANGE PAST THIS POINT */
static std::string from_env_or(char const *evar, char const *defval) { static std::string from_env_or(char const *evar, char const *defval) {
@ -186,10 +197,9 @@ int main(int argc, char **argv) {
std::string build_cfg = "debug"; std::string build_cfg = "debug";
bool clean = false; bool clean = false;
std::string cxxflags = "-std=c++1z -I. -O2 -Wall -Wextra -Wshadow " std::string cxxflags = DEFAULT_CXXFLAGS;
"-Wold-style-cast"; std::string ldflags = DEFAULT_LDFLAGS;
std::string ldflags = "-pthread"; std::string asflags = DEFAULT_ASFLAGS;
std::string asflags = "";
#define ARG_BOOL(arg, name, var) \ #define ARG_BOOL(arg, name, var) \
if ((arg == name) || (arg == "no-" name)) { \ if ((arg == name) || (arg == "no-" name)) { \
@ -241,7 +251,8 @@ int main(int argc, char **argv) {
add_cross(ar); add_cross(ar);
if (build_cfg == "debug") { if (build_cfg == "debug") {
cxxflags += " -g"; cxxflags += ' ';
cxxflags += DEBUG_CXXFLAGS;
} }
add_env(cxxflags, "CXXFLAGS"); add_env(cxxflags, "CXXFLAGS");
@ -286,7 +297,7 @@ int main(int argc, char **argv) {
if (shared) { if (shared) {
echo_q("CXX (shared): %s\n", input.data()); echo_q("CXX (shared): %s\n", input.data());
args.push_back("-fPIC"); add_args(args, SHARED_CXXFLAGS);
} else { } else {
echo_q("CXX: %s\n", input.data()); echo_q("CXX: %s\n", input.data());
} }
@ -310,7 +321,7 @@ int main(int argc, char **argv) {
if (shared) { if (shared) {
echo_q("AS (shared): %s\n", input.data()); echo_q("AS (shared): %s\n", input.data());
args.push_back("-fPIC"); add_args(args, SHARED_ASFLAGS);
} else { } else {
echo_q("AS: %s\n", input.data()); echo_q("AS: %s\n", input.data());
} }
@ -353,12 +364,14 @@ int main(int argc, char **argv) {
std::string const &output, std::vector<std::string> const &files, std::string const &output, std::vector<std::string> const &files,
bool shared bool shared
) { ) {
std::vector<std::string> args;
if (shared) { if (shared) {
call_ld(output, files, { "-shared" }); add_args(args, SHARED_CXXFLAGS);
add_args(args, SHARED_LDFLAGS);
call_ld(output, files, args);
} else { } else {
echo_q("AR: %s\n", output.data()); echo_q("AR: %s\n", output.data());
std::vector<std::string> args;
args.push_back("rcs"); args.push_back("rcs");
args.push_back(output); args.push_back(output);
args.insert(args.cend(), files.begin(), files.end()); args.insert(args.cend(), files.begin(), files.end());