25 #include "pips_config.h"
32 #include <sys/types.h>
63 puts(
"----- BEFORE RETRIEVING -----");
74 puts(
"----- AFTER RETREIVING -----");
98 fprintf(stderr,
"Active phases have not been saved\n");
127 bool rule_cyclic_p =
true;
128 const char *
status = phase;
142 "Check spelling and/or ACTIVE_PHASE property.\n",
160 bool require_produced_rule_p =
false;
171 require_produced_rule_p =
true;
175 if (!require_produced_rule_p) {
176 rule_cyclic_p =
false;
181 if (old_phase != NULL) {
182 pips_debug(5,
"replacing %s by %s for %s\n", old_phase, phase, vrn);
186 if (strcmp(s, old_phase) == 0) {
205 if (rule_cyclic_p ==
true) {
229 string cap = strtok(ap, d);
235 pips_debug(1,
"Phase to activate: %s\n", cap);
240 cap = strtok(NULL, d);
245 return pips_special?
true: result;
316 debug(9,
"get_more_derived_resources",
317 "Don't scan cycling phase %s\n",
STRING(
CAR(pa)));
320 debug(9,
"get_more_derived_resources",
331 debug(9,
"get_more_derived_resources",
332 "Resource %s is required by phase %s\n",
int db_unput_resources(const char *rname)
Delete all the resources of a given type "rname".
static void get_more_derived_resources(string vrn, set set_of_res)
bool active_phase_p(const char *phase)
const char * activate(const char *phase)
bool saved_active_phase_p(const char *phase)
Debugging function.
static list saved_active_phases
void save_active_phases(void)
activate.c
bool activate_phases(void)
Use property ACTIVE_PHASES to active the phases required by the user.
void activate_language(language l)
Choose the right combination of activate and setproperty for a given language.
void fprint_activated(FILE *fd)
void retrieve_active_phases(void)
string active_phase_for_resource(string res)
return the phase which would be used to build a given resource.
static void delete_derived_resources()
const char * activate_phase(const char *phase)
bool rule_use_resource_produced(rule r)
Test if a rule uses a resource it produces.
struct _newgen_struct_status_ * status
char * get_string_property(const char *)
bool get_bool_property(const string)
FC 2015-07-20: yuk, moved out to prevent an include cycle dependency include "properties....
#define ENDP(l)
Test if a list is empty.
#define NIL
The empty list (nil in Lisp)
size_t gen_length(const list l)
void gen_free_string_list(list ls)
#define CAR(pcons)
Get the value of the first element of a list.
#define FOREACH(_fe_CASTER, _fe_item, _fe_list)
Apply/map an instruction block on all the elements of a list.
#define MAPL(_map_list_cp, _code, _l)
Apply some code on the addresses of all the elements of a list.
list gen_copy_string_list(list ls)
of string
#define virtual_resource_owner(x)
#define owner_callers_p(x)
#define virtual_resource_name(x)
#define makefile_active_phases(x)
#define owner_callees_p(x)
#define VIRTUAL_RESOURCE(x)
VIRTUAL_RESOURCE.
#define owner_select_p(x)
#define pips_debug
these macros use the GNU extensions that allow variadic macros, including with an empty list.
#define pips_user_warning
#define pips_assert(what, predicate)
common macros, two flavors depending on NDEBUG
void debug(const int the_expected_debug_level, const char *calling_function_name, const char *a_message_format,...)
ARARGS0.
#define same_string_p(s1, s2)
#define SET_MAP(element, code, the_set)
bool set_belong_p(const set, const void *)
set set_make(set_type)
Create an empty set of any type but hash_private.
set set_add_element(set, const set, const void *)
string db_get_current_workspace_name(void)
the function is used to check that there is some current workspace...
rule find_rule_by_phase(const char *)
this function returns the rule that defines builder pname
makefile parse_makefile(void)
rule find_rule_by_resource(const char *rname)
This function returns the active rule to produce resource rname.
void delete_named_resources(const char *rn)
Delete from up_to_date_resources make cache all the resources with a given resource name.
void set_bool_property(const char *, bool)
#define language_fortran95_p(x)
#define language_fortran_p(x)
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
FI: I do not understand why the type is duplicated at the set level.
The structure used to build lists in NewGen.