Skip to content
Snippets Groups Projects
Commit 2bfd17cf authored by Mark Olesen's avatar Mark Olesen
Browse files

ENH: add 'wmkdep' to warnings and error messages from wmkdep

- makes it possible to filter out or highlight messages originating
  from wmkdep in the build process.
parent 89ac2e55
No related tags found
No related merge requests found
...@@ -42,11 +42,12 @@ Usage ...@@ -42,11 +42,12 @@ Usage
#define FILE_STACK_SIZE 300 #define FILE_STACK_SIZE 300
#define HASH_TABLE_SIZE 500 #define HASH_TABLE_SIZE 500
#include <errno.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h>
#include <string.h> #include <string.h>
#include <sys/types.h> #include <sys/types.h> // POSIX
#include <dirent.h> #include <dirent.h> // POSIX
#include <errno.h>
void nextFile(const char* fileName); void nextFile(const char* fileName);
void importFile(const char* fileName); void importFile(const char* fileName);
...@@ -54,6 +55,10 @@ void importDir(const char* dirName); ...@@ -54,6 +55,10 @@ void importDir(const char* dirName);
#undef yywrap /* sometimes a macro by default */ #undef yywrap /* sometimes a macro by default */
/* The executable name (for messages), without requiring access to argv[] */
#define EXENAME "wmkdep"
%} %}
%x CMNT CFNAME SCFNAME JFNAME FFNAME %x CMNT CFNAME SCFNAME JFNAME FFNAME
...@@ -145,28 +150,23 @@ const char* bufferPaths[FILE_STACK_SIZE]; ...@@ -145,28 +150,23 @@ const char* bufferPaths[FILE_STACK_SIZE];
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
char *basePos, *dotPos; char *basePos, *dotPos;
int i, silent; int i;
if (argc < 2) if (argc < 2)
{ {
fprintf(stderr, "input file not supplied\n"); fputs(EXENAME ": input file not supplied\n", stderr);
return 1; return 1;
} }
else if (!strncmp(argv[1], "-h", 2)) /* -h, -help */ else if (!strncmp(argv[1], "-h", 2)) /* -h, -help */
{ {
fprintf fputs
( (
stderr, "\nUsage: " EXENAME
"\nUsage: %s [-Idir ... -Idir] [-iheader .. -iheader] filename\n\n", " [-Idir ... -Idir] [-iheader .. -iheader] filename\n\n"
"wmkdep"
);
fprintf
(
stderr,
" -Idir Directories to be searched for headers.\n" " -Idir Directories to be searched for headers.\n"
" -iheader Headers to be ignored.\n\n" " -iheader Headers to be ignored.\n\n"
"Dependency list generator, similar to 'cpp -M'\n\n" "Dependency list generator, similar to 'cpp -M'\n\n",
stderr
); );
return 0; return 0;
...@@ -192,7 +192,7 @@ int main(int argc, char* argv[]) ...@@ -192,7 +192,7 @@ int main(int argc, char* argv[])
fprintf fprintf
( (
stderr, stderr,
"cannot find extension in source file name %s\n", EXENAME ": cannot find extension in source file name '%s'\n",
sourceFile sourceFile
); );
return 1; return 1;
...@@ -306,8 +306,8 @@ void nextFile(const char* fileName) ...@@ -306,8 +306,8 @@ void nextFile(const char* fileName)
fprintf fprintf
( (
stderr, stderr,
"depth of file search exceeds stack size %d " EXENAME ": depth of file search exceeds stack size %d "
"while opening %s for file %s\n", "while opening '%s' for file '%s'\n",
FILE_STACK_SIZE, fileName, sourceFile FILE_STACK_SIZE, fileName, sourceFile
); );
exit(1); exit(1);
...@@ -341,7 +341,7 @@ void nextFile(const char* fileName) ...@@ -341,7 +341,7 @@ void nextFile(const char* fileName)
if (!(newyyin = fopen(fileName, "r"))) if (!(newyyin = fopen(fileName, "r")))
{ {
int d; int d;
for (d=0; d<nDirectories; d++) for (d=0; d<nDirectories; ++d)
{ {
char* pathName = addDirectoryName(directories[d], fileName); char* pathName = addDirectoryName(directories[d], fileName);
...@@ -362,24 +362,17 @@ void nextFile(const char* fileName) ...@@ -362,24 +362,17 @@ void nextFile(const char* fileName)
free(pathName); free(pathName);
} }
if (nDirectories == 0) fprintf
{ (
fprintf stderr,
( EXENAME ": could not open file '%s' for source file '%s'",
stderr, fileName, sourceFile
"could not open file %s for source file %s\n", );
fileName, sourceFile if (nDirectories)
);
}
else
{ {
fprintf fprintf(stderr, ": %s", strerror(errno));
(
stderr,
"could not open file %s for source file %s due to %s\n",
fileName, sourceFile, strerror(errno)
);
} }
fputs("\n", stderr);
fflush(stdout); fflush(stdout);
fflush(stderr); fflush(stderr);
...@@ -405,10 +398,10 @@ void nextFile(const char* fileName) ...@@ -405,10 +398,10 @@ void nextFile(const char* fileName)
*/ */
void dotToSlash(char* fileName) void dotToSlash(char* fileName)
{ {
int i, len; const size_t len = strlen(fileName);
len = strlen(fileName); size_t i;
for (i=0; i<len; i++) for (i=0; i<len; ++i)
{ {
if (fileName[i] == '.') fileName[i] = '/'; if (fileName[i] == '.') fileName[i] = '/';
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment