Пример #1
0
JBVariable *
jb_variable_get_variable_or_error (const char *name)
{
  JBVariable *variable;

  g_return_val_if_fail(name != NULL, NULL);

  variable = jb_variable_get_variable(name);
  if (variable == NULL)
    g_error("variable \"%s\" does not exist", name);

  return variable;
}
Пример #2
0
void
jb_check_host_system (void)
{
  char *output;
  gboolean status = FALSE;

  if (jb_variable_get_variable("host-cpu") != NULL)
    return;			/* already checked */

  jb_message_checking("the host system type");

  if (jb_exec(&output, NULL, "jbsrc/tools/config.sub `jbsrc/tools/config.guess`"))
    {
      char **fields;
      int len;

      fields = g_strsplit(output, "-", 0);
      len = g_strv_length(fields);

      if (len == 3)
	{
	  jb_variable_set_string("host-cpu", fields[0]);
	  jb_variable_set_string("host-manufacturer", fields[1]);
	  jb_variable_set_string("host-kernel", NULL);
	  jb_variable_set_string("host-os", fields[2]);
	  status = TRUE;
	}
      else if (len == 4)
	{
	  jb_variable_set_string("host-cpu", fields[0]);
	  jb_variable_set_string("host-manufacturer", fields[1]);
	  jb_variable_set_string("host-kernel", fields[2]);
	  jb_variable_set_string("host-os", fields[3]);
	  status = TRUE;
	}

      g_strfreev(fields);
    }

  if (status)
    jb_message_result_string(output);
  else
    jb_message_result_string("unknown");

  g_free(output);

  if (! status)
    jb_error("unable to determine host system type");
}
Пример #3
0
JBVariable *
ensure_variable (JBVariableType *type, const char *name)
{
  JBVariable *variable;

  g_return_val_if_fail(name != NULL, NULL);

  variable = jb_variable_get_variable(name);
  if (variable == NULL)
    {
      variable = variable_new(type, name, NULL, NULL, 0);
      add_variable(variable);
    }

  return variable;
}
Пример #4
0
static char *
get_expansion (const char *varname, GHashTable *extra_variables)
{
  JBVariable *variable;

  if (extra_variables != NULL)
    {
      const char *extra_value;

      if (g_hash_table_lookup_extended(extra_variables, varname, NULL, (gpointer) &extra_value))
	return g_strdup(extra_value != NULL ? extra_value : "");
    }

  variable = jb_variable_get_variable(varname);
  if (variable != NULL)
    return jb_variable_evaluate(variable);

  jb_error("unknown variable \"%s\"", varname);
}
Пример #5
0
static void
handle_variable (const char *pair)
{
  char *name;
  char *value;
  JBVariable *variable;
  GError *err = NULL;

  if (! parse_variable(pair, &name, &value))
    jb_error("invalid variable specification \"%s\"", pair);

  variable = jb_variable_get_variable(name);
  if (variable == NULL || (variable->flags & JB_VARIABLE_USER_SETTABLE) == 0)
    jb_error("unknown variable \"%s\"", name);

  if (! jb_variable_set_from_string(variable, value, &err))
    jb_error("invalid value \"%s\" for %s variable \"%s\": %s",
	     value,
	     variable->type->name,
	     name,
	     err->message);

  variable->user_set = TRUE;
}