what error on the step "strcmp(dep_rule->target, token)"?
Dependency *curr_dep = curr_rule->dependencies;
token = strtok(NULL, " :\t\n");
while (token != NULL) {
    Dependency *dep = malloc(sizeof(Dependency));

    Rule *dep_rule = head_rule;
    while (dep_rule != NULL) {
        if (strcmp(dep_rule->target, token) == 0) {
            dep->rule = dep_rule;
            break;
        }
        dep_rule = dep_rule->next_rule;
    }