does this parallelize make? Note that i later have a for loop that calls waitpid on the list of child_pids
if (rule == NULL) {  // Base case for recursion
    return;
}

// Iterate through dependencies to get the number of dependencies
if (rule->dependencies != NULL) {  // Check if dependencies exist
    Dependency *curr_dep = rule->dependencies;
    int num_dep = 0;

    while (curr_dep != NULL) {
        num_dep++;
        curr_dep = curr_dep->next_dep;
    }

    int child_pid_list[num_dep];  // Create a list to store the pid's of child processes
    int child_count = 0;          // Create a variable to hold the number of children

    curr_dep = rule->dependencies;  // Re-initialize curr_dep

    // Iterate through the dependencies and fork new processes for each
    while (curr_dep != NULL) {
        int pid = fork();  // Fork a new process

        if (pid > 0) {                          // If is parent process
            child_pid_list[child_count] = pid;  // Add to the list of pids
            child_count++;
        } else if (pid == 0) {                                                                    // If is child process
            if ((access(rule->target, F_OK) != 0) || (dep_last_modified(rule, curr_dep) == 0)) {  // If dependency was // last modified or non existent target
                run_make(curr_dep->rule->target, rules, 1);                                       // Update the dependency
                exit(0);
            }
            exit(1);
        } else {  // If fork fails
            perror("fork");
            exit(1);
        }

        curr_dep = curr_dep->next_dep;
    }

    int status;
