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 branches found
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