add clang-format support for fastdep tool
This commit is contained in:
31
src/DEPEND/.clang-format
Normal file
31
src/DEPEND/.clang-format
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
BasedOnStyle: LLVM
|
||||||
|
AccessModifierOffset: -1
|
||||||
|
AlignConsecutiveAssignments: false
|
||||||
|
AlignConsecutiveDeclarations: false
|
||||||
|
AlignEscapedNewlines: Left
|
||||||
|
AlignOperands: false
|
||||||
|
AllowShortBlocksOnASingleLine: true
|
||||||
|
AllowShortFunctionsOnASingleLine: Inline
|
||||||
|
AllowShortIfStatementsOnASingleLine: WithoutElse
|
||||||
|
AllowShortLambdasOnASingleLine: None
|
||||||
|
AllowShortLoopsOnASingleLine: true
|
||||||
|
BraceWrapping:
|
||||||
|
AfterFunction: true
|
||||||
|
BreakBeforeBraces: Custom
|
||||||
|
BreakConstructorInitializers: AfterColon
|
||||||
|
BreakInheritanceList: AfterColon
|
||||||
|
ColumnLimit: 80
|
||||||
|
IndentCaseLabels: true
|
||||||
|
IndentWidth: 4
|
||||||
|
NamespaceIndentation: Inner
|
||||||
|
ObjCBlockIndentWidth: 2
|
||||||
|
PenaltyBreakAssignment: 4
|
||||||
|
ReflowComments: false
|
||||||
|
SpaceAfterCStyleCast: false
|
||||||
|
SpacesBeforeTrailingComments: 4
|
||||||
|
SpacesInContainerLiterals: false
|
||||||
|
Standard: Cpp11
|
||||||
|
TabWidth: 2
|
||||||
|
UseTab: Never
|
||||||
|
...
|
||||||
@ -28,16 +28,16 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <sys/types.h>
|
#include <string.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
const char version[] = "2.1";
|
const char version[] = "2.1";
|
||||||
|
|
||||||
/* store list of accepted extensions for object targets */
|
/* store list of accepted extensions for object targets */
|
||||||
static const char *extensions[] = { ".cpp", ".c", ".cu" };
|
static const char *extensions[] = {".cpp", ".c", ".cu"};
|
||||||
static const int numextensions = sizeof(extensions)/sizeof(const char *);
|
static const int numextensions = sizeof(extensions) / sizeof(const char *);
|
||||||
|
|
||||||
/* strdup() is not part of ANSI C. provide a replacement for portability */
|
/* strdup() is not part of ANSI C. provide a replacement for portability */
|
||||||
static char *my_strdup(const char *src)
|
static char *my_strdup(const char *src)
|
||||||
@ -47,8 +47,8 @@ static char *my_strdup(const char *src)
|
|||||||
|
|
||||||
if (src == NULL) return NULL;
|
if (src == NULL) return NULL;
|
||||||
len = strlen(src);
|
len = strlen(src);
|
||||||
ptr = (char *)malloc(len+1);
|
ptr = (char *)malloc(len + 1);
|
||||||
if (ptr) memcpy(ptr,src,len+1);
|
if (ptr) memcpy(ptr, src, len + 1);
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,8 +60,7 @@ static char *my_strdup(const char *src)
|
|||||||
char *trim_path(char *path)
|
char *trim_path(char *path)
|
||||||
{
|
{
|
||||||
int last = strlen(path) - 1;
|
int last = strlen(path) - 1;
|
||||||
while ((path[last] == '/') || (path[last] == '\\'))
|
while ((path[last] == '/') || (path[last] == '\\')) --last;
|
||||||
--last;
|
|
||||||
path[++last] = '\0';
|
path[++last] = '\0';
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
@ -73,13 +72,13 @@ int file_exists(const char *path)
|
|||||||
struct _stat s;
|
struct _stat s;
|
||||||
|
|
||||||
if (path == NULL) return 0;
|
if (path == NULL) return 0;
|
||||||
if (_stat(path,&s) != 0) return 0;
|
if (_stat(path, &s) != 0) return 0;
|
||||||
return 1;
|
return 1;
|
||||||
#else
|
#else
|
||||||
struct stat s;
|
struct stat s;
|
||||||
|
|
||||||
if (path == NULL) return 0;
|
if (path == NULL) return 0;
|
||||||
if (stat(path,&s) != 0) return 0;
|
if (stat(path, &s) != 0) return 0;
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -87,14 +86,14 @@ int file_exists(const char *path)
|
|||||||
/* simple integer square root */
|
/* simple integer square root */
|
||||||
static int isqrt(int n)
|
static int isqrt(int n)
|
||||||
{
|
{
|
||||||
int b = 0;
|
int b = 0;
|
||||||
|
|
||||||
while(n >= 0) {
|
while (n >= 0) {
|
||||||
n = n - b;
|
n = n - b;
|
||||||
b = b + 1;
|
b = b + 1;
|
||||||
n = n - b;
|
n = n - b;
|
||||||
}
|
}
|
||||||
return b - 1;
|
return b - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* determine next available prime number */
|
/* determine next available prime number */
|
||||||
@ -105,10 +104,10 @@ static int next_prime(const int num)
|
|||||||
/* nprime has to be larger than num and odd */
|
/* nprime has to be larger than num and odd */
|
||||||
nprime = num + (num & 1) + 1;
|
nprime = num + (num & 1) + 1;
|
||||||
/* there is always a prime between n and 2n */
|
/* there is always a prime between n and 2n */
|
||||||
while (nprime < 2*num) {
|
while (nprime < 2 * num) {
|
||||||
/* brute force division test on odd factors up to sqrt(nprime) */
|
/* brute force division test on odd factors up to sqrt(nprime) */
|
||||||
root = isqrt(nprime)+1;
|
root = isqrt(nprime) + 1;
|
||||||
for (factor = 3; factor < root; factor +=2) {
|
for (factor = 3; factor < root; factor += 2) {
|
||||||
if (nprime % factor == 0) break;
|
if (nprime % factor == 0) break;
|
||||||
}
|
}
|
||||||
/* if the loop didn't exit early, we have found a prime */
|
/* if the loop didn't exit early, we have found a prime */
|
||||||
@ -216,7 +215,7 @@ static void llist_append(llist_t *ll, const char *key)
|
|||||||
if ((ll == NULL) || (key == NULL)) return;
|
if ((ll == NULL) || (key == NULL)) return;
|
||||||
|
|
||||||
ll->tail->key = my_strdup(key);
|
ll->tail->key = my_strdup(key);
|
||||||
ll->count ++;
|
ll->count++;
|
||||||
tmp = (llnode_t *)malloc(sizeof(llnode_t));
|
tmp = (llnode_t *)malloc(sizeof(llnode_t));
|
||||||
tmp->key = NULL;
|
tmp->key = NULL;
|
||||||
tmp->next = NULL;
|
tmp->next = NULL;
|
||||||
@ -237,19 +236,18 @@ static void llist_print(llist_t *ll)
|
|||||||
tmp = ll->head;
|
tmp = ll->head;
|
||||||
|
|
||||||
if (tmp->next) {
|
if (tmp->next) {
|
||||||
fputs(tmp->key,stdout);
|
fputs(tmp->key, stdout);
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (tmp->next) {
|
while (tmp->next) {
|
||||||
fputc(':',stdout);
|
fputc(':', stdout);
|
||||||
fputs(tmp->key,stdout);
|
fputs(tmp->key, stdout);
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
fputc('\n',stdout);
|
fputc('\n', stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************
|
/************************************************************************
|
||||||
* set functions
|
* set functions
|
||||||
************************************************************************/
|
************************************************************************/
|
||||||
@ -260,8 +258,8 @@ static set_t *set_init(int num)
|
|||||||
set_t *s = (set_t *)malloc(sizeof(set_t));
|
set_t *s = (set_t *)malloc(sizeof(set_t));
|
||||||
|
|
||||||
s->nbuckets = next_prime(num);
|
s->nbuckets = next_prime(num);
|
||||||
s->buckets = malloc(s->nbuckets*sizeof(llnode_t));
|
s->buckets = malloc(s->nbuckets * sizeof(llnode_t));
|
||||||
memset(s->buckets,0,s->nbuckets*sizeof(llnode_t));
|
memset(s->buckets, 0, s->nbuckets * sizeof(llnode_t));
|
||||||
s->count = 0;
|
s->count = 0;
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
@ -299,10 +297,10 @@ static void set_add(set_t *s, const char *key)
|
|||||||
idx = hash_func(key) % s->nbuckets;
|
idx = hash_func(key) % s->nbuckets;
|
||||||
tmp = s->buckets + idx;
|
tmp = s->buckets + idx;
|
||||||
while (tmp->next != NULL) {
|
while (tmp->next != NULL) {
|
||||||
if (strcmp(tmp->key,key) == 0) return;
|
if (strcmp(tmp->key, key) == 0) return;
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
s->count ++;
|
s->count++;
|
||||||
tmp->key = my_strdup(key);
|
tmp->key = my_strdup(key);
|
||||||
tmp->next = (llnode_t *)malloc(sizeof(llnode_t));
|
tmp->next = (llnode_t *)malloc(sizeof(llnode_t));
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
@ -321,7 +319,7 @@ static int set_find(set_t *s, const char *key)
|
|||||||
idx = hash_func(key) % s->nbuckets;
|
idx = hash_func(key) % s->nbuckets;
|
||||||
tmp = s->buckets + idx;
|
tmp = s->buckets + idx;
|
||||||
while (tmp->next != NULL) {
|
while (tmp->next != NULL) {
|
||||||
if (strcmp(tmp->key,key) == 0) return 1;
|
if (strcmp(tmp->key, key) == 0) return 1;
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -344,8 +342,8 @@ static map_t *map_init(int num)
|
|||||||
if (!m) return NULL;
|
if (!m) return NULL;
|
||||||
|
|
||||||
m->nbuckets = next_prime(num);
|
m->nbuckets = next_prime(num);
|
||||||
m->buckets = malloc(m->nbuckets*sizeof(mapnode_t));
|
m->buckets = malloc(m->nbuckets * sizeof(mapnode_t));
|
||||||
memset(m->buckets,0,m->nbuckets*sizeof(mapnode_t));
|
memset(m->buckets, 0, m->nbuckets * sizeof(mapnode_t));
|
||||||
m->count = 0;
|
m->count = 0;
|
||||||
|
|
||||||
return m;
|
return m;
|
||||||
@ -385,13 +383,13 @@ static void map_add(map_t *m, const char *key, const char *val)
|
|||||||
idx = hash_func(key) % m->nbuckets;
|
idx = hash_func(key) % m->nbuckets;
|
||||||
tmp = m->buckets + idx;
|
tmp = m->buckets + idx;
|
||||||
while (tmp->next != NULL) {
|
while (tmp->next != NULL) {
|
||||||
if (strcmp(tmp->key,key) == 0) break;
|
if (strcmp(tmp->key, key) == 0) break;
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* add new entry to map */
|
/* add new entry to map */
|
||||||
if (tmp->next == NULL) {
|
if (tmp->next == NULL) {
|
||||||
m->count ++;
|
m->count++;
|
||||||
tmp->key = my_strdup(key);
|
tmp->key = my_strdup(key);
|
||||||
tmp->val = set_init(50); /* XXX: chosen arbitrarily */
|
tmp->val = set_init(50); /* XXX: chosen arbitrarily */
|
||||||
tmp->next = (mapnode_t *)malloc(sizeof(mapnode_t));
|
tmp->next = (mapnode_t *)malloc(sizeof(mapnode_t));
|
||||||
@ -399,7 +397,7 @@ static void map_add(map_t *m, const char *key, const char *val)
|
|||||||
tmp->next->val = NULL;
|
tmp->next->val = NULL;
|
||||||
tmp->next->next = NULL;
|
tmp->next->next = NULL;
|
||||||
}
|
}
|
||||||
set_add(tmp->val,val);
|
set_add(tmp->val, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* return an entry in the map */
|
/* return an entry in the map */
|
||||||
@ -413,7 +411,7 @@ static set_t *map_find(map_t *m, const char *key)
|
|||||||
idx = hash_func(key) % m->nbuckets;
|
idx = hash_func(key) % m->nbuckets;
|
||||||
tmp = m->buckets + idx;
|
tmp = m->buckets + idx;
|
||||||
while (tmp->next != NULL) {
|
while (tmp->next != NULL) {
|
||||||
if (strcmp(tmp->key,key) == 0) return tmp->val;
|
if (strcmp(tmp->key, key) == 0) return tmp->val;
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -459,11 +457,11 @@ static void make_path(const char *file, llist_t *paths, char *buffer)
|
|||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
static void find_includes(llnode_t *head, llist_t *todo, llist_t *paths,
|
static void find_includes(llnode_t *head, llist_t *todo, llist_t *paths,
|
||||||
set_t *incl, map_t *deps)
|
set_t *incl, map_t *deps)
|
||||||
{
|
{
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
llnode_t *tmp;
|
llnode_t *tmp;
|
||||||
char *buffer,*full,*ptr,*end;
|
char *buffer, *full, *ptr, *end;
|
||||||
const char *file;
|
const char *file;
|
||||||
|
|
||||||
buffer = (char *)malloc(4096);
|
buffer = (char *)malloc(4096);
|
||||||
@ -472,16 +470,16 @@ static void find_includes(llnode_t *head, llist_t *todo, llist_t *paths,
|
|||||||
tmp = head;
|
tmp = head;
|
||||||
while (tmp->next != NULL) {
|
while (tmp->next != NULL) {
|
||||||
file = tmp->key;
|
file = tmp->key;
|
||||||
fp = fopen(file,"r");
|
fp = fopen(file, "r");
|
||||||
if (fp == NULL) {
|
if (fp == NULL) {
|
||||||
perror("Cannot read source");
|
perror("Cannot read source");
|
||||||
fprintf(stderr,"For file: %s\n",file);
|
fprintf(stderr, "For file: %s\n", file);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* read file line by line and look for #include "..." */
|
/* read file line by line and look for #include "..." */
|
||||||
while (!feof(fp) && !ferror(fp)) {
|
while (!feof(fp) && !ferror(fp)) {
|
||||||
if (fgets(buffer,4096,fp) == NULL) continue;
|
if (fgets(buffer, 4096, fp) == NULL) continue;
|
||||||
ptr = buffer;
|
ptr = buffer;
|
||||||
while (*ptr == ' ' || *ptr == '\t') ++ptr;
|
while (*ptr == ' ' || *ptr == '\t') ++ptr;
|
||||||
if (*ptr != '#') continue;
|
if (*ptr != '#') continue;
|
||||||
@ -500,7 +498,7 @@ static void find_includes(llnode_t *head, llist_t *todo, llist_t *paths,
|
|||||||
end = ptr;
|
end = ptr;
|
||||||
while (*end != '"') {
|
while (*end != '"') {
|
||||||
if (*end == '\0') {
|
if (*end == '\0') {
|
||||||
fprintf(stderr,"Unmatched '\"': %s\n",buffer);
|
fprintf(stderr, "Unmatched '\"': %s\n", buffer);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
++end;
|
++end;
|
||||||
@ -508,18 +506,18 @@ static void find_includes(llnode_t *head, llist_t *todo, llist_t *paths,
|
|||||||
*end = '\0';
|
*end = '\0';
|
||||||
|
|
||||||
/* get full path to include file */
|
/* get full path to include file */
|
||||||
make_path(ptr,paths,full);
|
make_path(ptr, paths, full);
|
||||||
/* skip, if not found or unreadable. */
|
/* skip, if not found or unreadable. */
|
||||||
if (full[0] == '\0') continue;
|
if (full[0] == '\0') continue;
|
||||||
|
|
||||||
/* if this is a yet unknown include, add to the
|
/* if this is a yet unknown include, add to the
|
||||||
* todo list, if append is enabled */
|
* todo list, if append is enabled */
|
||||||
if (set_find(incl,full) == 0) {
|
if (set_find(incl, full) == 0) {
|
||||||
set_add(incl,full);
|
set_add(incl, full);
|
||||||
llist_append(todo,full);
|
llist_append(todo, full);
|
||||||
}
|
}
|
||||||
|
|
||||||
map_add(deps,file,full);
|
map_add(deps, file, full);
|
||||||
}
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
@ -534,26 +532,25 @@ static void add_depend(const char *source, set_t *incl, map_t *deps)
|
|||||||
{
|
{
|
||||||
set_t *mydeps;
|
set_t *mydeps;
|
||||||
llnode_t *tmp;
|
llnode_t *tmp;
|
||||||
int i,num;
|
int i, num;
|
||||||
|
|
||||||
if (source == NULL) return;
|
if (source == NULL) return;
|
||||||
|
|
||||||
mydeps = map_find(deps,source);
|
mydeps = map_find(deps, source);
|
||||||
if (mydeps != NULL) {
|
if (mydeps != NULL) {
|
||||||
num = mydeps->nbuckets;
|
num = mydeps->nbuckets;
|
||||||
|
|
||||||
for (i = 0; i < num; ++i) {
|
for (i = 0; i < num; ++i) {
|
||||||
tmp = mydeps->buckets + i;
|
tmp = mydeps->buckets + i;
|
||||||
while (tmp->next != NULL) {
|
while (tmp->next != NULL) {
|
||||||
if (set_find(incl,tmp->key) == 0) {
|
if (set_find(incl, tmp->key) == 0) {
|
||||||
set_add(incl,tmp->key);
|
set_add(incl, tmp->key);
|
||||||
add_depend(tmp->key,incl,deps);
|
add_depend(tmp->key, incl, deps);
|
||||||
}
|
}
|
||||||
tmp = tmp->next;
|
tmp = tmp->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
@ -564,23 +561,23 @@ static void do_depend(llnode_t *head, map_t *deps)
|
|||||||
set_t *incl;
|
set_t *incl;
|
||||||
const char *source;
|
const char *source;
|
||||||
char *target, *ptr;
|
char *target, *ptr;
|
||||||
int i,num,ext;
|
int i, num, ext;
|
||||||
|
|
||||||
tmp = head;
|
tmp = head;
|
||||||
while (tmp->next != NULL) {
|
while (tmp->next != NULL) {
|
||||||
source = tmp->key;
|
source = tmp->key;
|
||||||
target = strrchr(source,'/');
|
target = strrchr(source, '/');
|
||||||
if (target == NULL) {
|
if (target == NULL) {
|
||||||
target = my_strdup(source);
|
target = my_strdup(source);
|
||||||
} else {
|
} else {
|
||||||
target = my_strdup(target+1);
|
target = my_strdup(target + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ext = 0;
|
ext = 0;
|
||||||
ptr = strrchr(target,'.');
|
ptr = strrchr(target, '.');
|
||||||
if (ptr != NULL) {
|
if (ptr != NULL) {
|
||||||
for (i = 0; i < numextensions; ++i) {
|
for (i = 0; i < numextensions; ++i) {
|
||||||
if (strcmp(ptr,extensions[i]) == 0) ++ext;
|
if (strcmp(ptr, extensions[i]) == 0) ++ext;
|
||||||
}
|
}
|
||||||
if (ext > 0) {
|
if (ext > 0) {
|
||||||
ptr[1] = 'o';
|
ptr[1] = 'o';
|
||||||
@ -589,23 +586,23 @@ static void do_depend(llnode_t *head, map_t *deps)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ext > 0) {
|
if (ext > 0) {
|
||||||
fputs(target,stdout);
|
fputs(target, stdout);
|
||||||
fputs(" : ",stdout);
|
fputs(" : ", stdout);
|
||||||
fputs(source,stdout);
|
fputs(source, stdout);
|
||||||
|
|
||||||
incl = set_init(50);
|
incl = set_init(50);
|
||||||
add_depend(source,incl,deps);
|
add_depend(source, incl, deps);
|
||||||
|
|
||||||
num = incl->nbuckets;
|
num = incl->nbuckets;
|
||||||
for (i = 0; i < num; ++i) {
|
for (i = 0; i < num; ++i) {
|
||||||
lnk = incl->buckets + i;
|
lnk = incl->buckets + i;
|
||||||
while (lnk->next != NULL) {
|
while (lnk->next != NULL) {
|
||||||
fputc(' ',stdout);
|
fputc(' ', stdout);
|
||||||
fputs(lnk->key,stdout);
|
fputs(lnk->key, stdout);
|
||||||
lnk = lnk->next;
|
lnk = lnk->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fputc('\n',stdout);
|
fputc('\n', stdout);
|
||||||
set_free(incl);
|
set_free(incl);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -614,74 +611,71 @@ static void do_depend(llnode_t *head, map_t *deps)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
llist_t *paths,*src,*todo;
|
llist_t *paths, *src, *todo;
|
||||||
set_t *incl;
|
set_t *incl;
|
||||||
map_t *deps;
|
map_t *deps;
|
||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
fprintf(stderr,"FastDep v%s for LAMMPS\n"
|
fprintf(stderr,
|
||||||
|
"FastDep v%s for LAMMPS\n"
|
||||||
"Usage: %s [-I <path> ...] -- <src1> [<src2> ...]\n",
|
"Usage: %s [-I <path> ...] -- <src1> [<src2> ...]\n",
|
||||||
version,argv[0]);
|
version, argv[0]);
|
||||||
fprintf(stderr,"Supported extensions: %d, %s, %s\n",numextensions,
|
fprintf(stderr, "Supported extensions: %d, %s, %s\n", numextensions,
|
||||||
extensions[0], extensions[1]);
|
extensions[0], extensions[1]);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* hash tables for all known included files and dependencies
|
/* hash tables for all known included files and dependencies
|
||||||
* we guesstimate a little over 2x as many entries as sources. */
|
* we guesstimate a little over 2x as many entries as sources. */
|
||||||
incl = set_init(2*argc);
|
incl = set_init(2 * argc);
|
||||||
deps = map_init(2*argc);
|
deps = map_init(2 * argc);
|
||||||
|
|
||||||
/* list of include search paths. prefixed by "." and "..". */
|
/* list of include search paths. prefixed by "." and "..". */
|
||||||
paths = llist_init();
|
paths = llist_init();
|
||||||
llist_append(paths,".");
|
llist_append(paths, ".");
|
||||||
llist_append(paths,"..");
|
llist_append(paths, "..");
|
||||||
|
|
||||||
while (++argv, --argc > 0) {
|
while (++argv, --argc > 0) {
|
||||||
if (strncmp(*argv, "-I", 2) == 0) {
|
if (strncmp(*argv, "-I", 2) == 0) {
|
||||||
if ((*argv)[2] != '\0') {
|
if ((*argv)[2] != '\0') {
|
||||||
llist_append(paths,trim_path(*argv+2));
|
llist_append(paths, trim_path(*argv + 2));
|
||||||
} else {
|
} else {
|
||||||
++argv;
|
++argv;
|
||||||
--argc;
|
--argc;
|
||||||
if (argc > 0) {
|
if (argc > 0) {
|
||||||
if (strcmp(*argv,"--") == 0) {
|
if (strcmp(*argv, "--") == 0) {
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
llist_append(paths,trim_path(*argv));
|
llist_append(paths, trim_path(*argv));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (strcmp(*argv,"--") == 0) {
|
} else if (strcmp(*argv, "--") == 0) {
|
||||||
break;
|
break;
|
||||||
} /* ignore all unrecognized arguments before '--'. */
|
} /* ignore all unrecognized arguments before '--'. */
|
||||||
}
|
}
|
||||||
|
|
||||||
src = llist_init();
|
src = llist_init();
|
||||||
while (++argv, --argc > 0) {
|
while (++argv, --argc > 0) { llist_append(src, *argv); }
|
||||||
llist_append(src,*argv);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* process files to look for includes */
|
/* process files to look for includes */
|
||||||
todo = llist_init();
|
todo = llist_init();
|
||||||
find_includes(src->head,todo,paths,incl,deps);
|
find_includes(src->head, todo, paths, incl, deps);
|
||||||
find_includes(todo->head,todo,paths,incl,deps);
|
find_includes(todo->head, todo, paths, incl, deps);
|
||||||
llist_free(todo);
|
llist_free(todo);
|
||||||
|
|
||||||
fprintf(stdout,"# FastDep v%s for LAMMPS\n",version);
|
fprintf(stdout, "# FastDep v%s for LAMMPS\n", version);
|
||||||
fputs("# Search path: ",stdout);
|
fputs("# Search path: ", stdout);
|
||||||
llist_print(paths);
|
llist_print(paths);
|
||||||
fprintf(stdout,"# % 5d sources\n# % 5d includes\n# % 5d depfiles\n",
|
fprintf(stdout, "# % 5d sources\n# % 5d includes\n# % 5d depfiles\n",
|
||||||
llist_size(src),set_size(incl),map_size(deps));
|
llist_size(src), set_size(incl), map_size(deps));
|
||||||
|
|
||||||
set_free(incl);
|
set_free(incl);
|
||||||
do_depend(src->head,deps);
|
do_depend(src->head, deps);
|
||||||
|
|
||||||
llist_free(src);
|
llist_free(src);
|
||||||
llist_free(paths);
|
llist_free(paths);
|
||||||
|
|||||||
Reference in New Issue
Block a user