Alexandre Julliard : makefiles: Add helper functions to open generated include files.
Alexandre Julliard
julliard at winehq.org
Fri Jan 21 15:54:47 CST 2022
Module: wine
Branch: master
Commit: 9da1813651fb1b4061104fb0bd0eabff517a703f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9da1813651fb1b4061104fb0bd0eabff517a703f
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Jan 21 09:49:00 2022 +0100
makefiles: Add helper functions to open generated include files.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
tools/makedep.c | 99 ++++++++++++++++++++++++++++-----------------------------
1 file changed, 49 insertions(+), 50 deletions(-)
diff --git a/tools/makedep.c b/tools/makedep.c
index ff89bae3ccf..a4557785f3a 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -1227,6 +1227,27 @@ static struct file *open_local_file( const struct makefile *make, const char *pa
}
+/*******************************************************************
+ * open_local_generated_file
+ *
+ * Open a generated file in the directory of the makefile.
+ */
+static struct file *open_local_generated_file( const struct makefile *make, struct incl_file *file,
+ const char *ext, const char *src_ext )
+{
+ char *filename;
+ struct file *ret = NULL;
+
+ if (strendswith( file->name, ext ) &&
+ (ret = open_local_file( make, replace_extension( file->name, ext, src_ext ), &filename )))
+ {
+ file->sourcename = filename;
+ file->filename = obj_dir_path( make, file->name );
+ }
+ return ret;
+}
+
+
/*******************************************************************
* open_global_file
*
@@ -1254,6 +1275,27 @@ static struct file *open_global_header( const struct makefile *make, const char
}
+/*******************************************************************
+ * open_global_generated_file
+ *
+ * Open a generated file in the top-level source directory.
+ */
+static struct file *open_global_generated_file( const struct makefile *make, struct incl_file *file,
+ const char *ext, const char *src_ext )
+{
+ char *filename;
+ struct file *ret = NULL;
+
+ if (strendswith( file->name, ext ) &&
+ (ret = open_global_header( make, replace_extension( file->name, ext, src_ext ), &filename )))
+ {
+ file->sourcename = filename;
+ file->filename = strmake( "include/%s", file->name );
+ }
+ return ret;
+}
+
+
/*******************************************************************
* open_src_file
*/
@@ -1306,30 +1348,13 @@ static int has_external_import( const struct makefile *make )
static struct file *open_include_file( const struct makefile *make, struct incl_file *pFile )
{
struct file *file = NULL;
- char *filename;
unsigned int i, len;
errno = ENOENT;
- /* check for generated bison header */
-
- if (strendswith( pFile->name, ".tab.h" ) &&
- (file = open_local_file( make, replace_extension( pFile->name, ".tab.h", ".y" ), &filename )))
- {
- pFile->sourcename = filename;
- pFile->filename = obj_dir_path( make, pFile->name );
- return file;
- }
-
- /* check for corresponding idl file in source dir */
-
- if (strendswith( pFile->name, ".h" ) &&
- (file = open_local_file( make, replace_extension( pFile->name, ".h", ".idl" ), &filename )))
- {
- pFile->sourcename = filename;
- pFile->filename = obj_dir_path( make, pFile->name );
- return file;
- }
+ /* check for generated files */
+ if ((file = open_local_generated_file( make, pFile, ".tab.h", ".y" ))) return file;
+ if ((file = open_local_generated_file( make, pFile, ".h", ".idl" ))) return file;
/* check for extra targets */
if (strarray_exists( &make->extra_targets, pFile->name ))
@@ -1343,45 +1368,19 @@ static struct file *open_include_file( const struct makefile *make, struct incl_
if ((file = open_local_file( make, pFile->name, &pFile->filename ))) return file;
/* check for global importlib (module dependency) */
-
if (pFile->type == INCL_IMPORTLIB && find_importlib_module( pFile->name ))
{
pFile->filename = pFile->name;
return NULL;
}
- /* check for corresponding idl file in global includes */
-
- if (strendswith( pFile->name, ".h" ) &&
- (file = open_global_header( make, replace_extension( pFile->name, ".h", ".idl" ), &filename )))
- {
- pFile->sourcename = filename;
- pFile->filename = strmake( "include/%s", pFile->name );
- return file;
- }
-
- /* check for corresponding .in file in global includes (for config.h.in) */
-
- if (strendswith( pFile->name, ".h" ) &&
- (file = open_global_header( make, replace_extension( pFile->name, ".h", ".h.in" ), &filename )))
- {
- pFile->sourcename = filename;
- pFile->filename = strmake( "include/%s", pFile->name );
- return file;
- }
-
- /* check for corresponding .x file in global includes */
-
+ /* check for generated files in global includes */
+ if ((file = open_global_generated_file( make, pFile, ".h", ".idl" ))) return file;
+ if ((file = open_global_generated_file( make, pFile, ".h", ".h.in" ))) return file;
if (strendswith( pFile->name, "tmpl.h" ) &&
- (file = open_global_header( make, replace_extension( pFile->name, ".h", ".x" ), &filename )))
- {
- pFile->sourcename = filename;
- pFile->filename = strmake( "include/%s", pFile->name );
- return file;
- }
+ (file = open_global_generated_file( make, pFile, ".h", ".x" ))) return file;
/* check in global includes source dir */
-
if ((file = open_global_header( make, pFile->name, &pFile->filename ))) return file;
/* check in global msvcrt includes */
More information about the wine-cvs
mailing list