diff --git a/README.md b/README.md
index 96a88d0..c72249b 100644
--- a/README.md
+++ b/README.md
@@ -733,6 +733,12 @@
   - They refer to a struct/union having the same name as itself.
   - They refer to a boolean, enum, inline array, Handle or any unsupported type.
 
+### How are macros handled?
+
+`ffigen` uses `clang`'s own compiler frontend to parse and traverse the `C` header files. `ffigen` expands the macros using `clang`'s macro expansion and then traverses the expanded code. To do this, `ffigen` generates temporary files in a system tmp directory.
+
+A custom temporary directory can be specified by setting the `TEST_TMPDIR` environment variable.
+
 ### What are these logs generated by ffigen and how to fix them?
 
 Ffigen can sometimes generate a lot of logs, especially when it's parsing a lot of code.
diff --git a/lib/src/header_parser/sub_parsers/macro_parser.dart b/lib/src/header_parser/sub_parsers/macro_parser.dart
index cb5fbdb..7478ea8 100644
--- a/lib/src/header_parser/sub_parsers/macro_parser.dart
+++ b/lib/src/header_parser/sub_parsers/macro_parser.dart
@@ -66,7 +66,13 @@
   final index = clang.clang_createIndex(0, 0);
   Pointer<Pointer<Utf8>> clangCmdArgs = nullptr;
   var cmdLen = 0;
-  clangCmdArgs = createDynamicStringArray(config.compilerOpts);
+
+  final compilerOpts = config.compilerOpts;
+  config.headers.entryPoints.followedBy([file.path]).forEach((entryFile) {
+    compilerOpts.add("-imacros$entryFile");
+  });
+  clangCmdArgs = createDynamicStringArray(compilerOpts);
+
   cmdLen = config.compilerOpts.length;
   final tu = clang.clang_parseTranslationUnit(
     index,
@@ -179,7 +185,7 @@
 
 /// Creates a temporary file for parsing macros in current directory.
 File createFileForMacros() {
-  final fileNameBase = 'temp_for_macros';
+  final fileNameBase = p.join(strings.tmpDir, 'temp_for_macros');
   final fileExt = 'hpp';
 
   // Find a filename which doesn't already exist.
@@ -187,12 +193,13 @@
   var i = 0;
   while (file.existsSync()) {
     i++;
-    file = File('${fileNameBase.split('.')[0]}_$i.$fileExt');
+    file = File('${fileNameBase}_$i.$fileExt');
   }
 
   // Create file.
   file.createSync();
-  // Save generted name.
+
+  // Save generated name.
   _generatedFileBaseName = p.basename(file.path);
 
   // Write file contents.
diff --git a/lib/src/strings.dart b/lib/src/strings.dart
index 755ca74..99d10c2 100644
--- a/lib/src/strings.dart
+++ b/lib/src/strings.dart
@@ -230,3 +230,16 @@
 
 const ffiNative = 'ffi-native';
 const ffiNativeAsset = 'asset';
+
+Directory? _tmpDir;
+
+/// A path to a unique temporary directory that should be used for files meant
+/// to be discarded after the current execution is finished.
+String get tmpDir {
+  if (Platform.environment.containsKey('TEST_TMPDIR')) {
+    return Platform.environment['TEST_TMPDIR']!;
+  }
+
+  _tmpDir ??= Directory.systemTemp.createTempSync();
+  return _tmpDir!.path;
+}
diff --git a/test/code_generator_tests/code_generator_test.dart b/test/code_generator_tests/code_generator_test.dart
index 046ee8f..35fa0a9 100644
--- a/test/code_generator_tests/code_generator_test.dart
+++ b/test/code_generator_tests/code_generator_test.dart
@@ -459,11 +459,7 @@
 
 /// Utility to match expected bindings to the generated bindings.
 void _matchLib(Library lib, String testName) {
-  matchLibraryWithExpected(lib, [
-    'test',
-    'debug_generated',
-    'code_generator_test_${testName}_output.dart'
-  ], [
+  matchLibraryWithExpected(lib, 'code_generator_test_${testName}_output.dart', [
     'test',
     'code_generator_tests',
     'expected_bindings',
diff --git a/test/collision_tests/decl_symbol_address_collision_test.dart b/test/collision_tests/decl_symbol_address_collision_test.dart
index 1d2744b..0280732 100644
--- a/test/collision_tests/decl_symbol_address_collision_test.dart
+++ b/test/collision_tests/decl_symbol_address_collision_test.dart
@@ -35,11 +35,8 @@
       );
     });
     test('declaration and symbol address conflict', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'collision_test_decl_symbol_address_collision_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'collision_test_decl_symbol_address_collision_output.dart', [
         'test',
         'collision_tests',
         'expected_bindings',
diff --git a/test/collision_tests/decl_type_name_collision_test.dart b/test/collision_tests/decl_type_name_collision_test.dart
index 5bb8f82..40d9f88 100644
--- a/test/collision_tests/decl_type_name_collision_test.dart
+++ b/test/collision_tests/decl_type_name_collision_test.dart
@@ -32,11 +32,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'decl_type_name_collision_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'decl_type_name_collision_test_output.dart', [
         'test',
         'collision_tests',
         'expected_bindings',
diff --git a/test/example_tests/cjson_example_test.dart b/test/example_tests/cjson_example_test.dart
index 15d0c54..4424615 100644
--- a/test/example_tests/cjson_example_test.dart
+++ b/test/example_tests/cjson_example_test.dart
@@ -54,7 +54,7 @@
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'example_c_json.dart'],
+        'example_c_json.dart',
         ['example', 'c_json', config.output],
       );
     });
diff --git a/test/example_tests/ffinative_example_test.dart b/test/example_tests/ffinative_example_test.dart
index 67962a0..6895a8e 100644
--- a/test/example_tests/ffinative_example_test.dart
+++ b/test/example_tests/ffinative_example_test.dart
@@ -31,7 +31,7 @@
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'example_ffinative.dart'],
+        'example_ffinative.dart',
         ['example', 'ffinative', config.output],
       );
     });
diff --git a/test/example_tests/libclang_example_test.dart b/test/example_tests/libclang_example_test.dart
index d0218c7..c226c4c 100644
--- a/test/example_tests/libclang_example_test.dart
+++ b/test/example_tests/libclang_example_test.dart
@@ -74,7 +74,7 @@
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'example_libclang.dart'],
+        'example_libclang.dart',
         ['example', 'libclang-example', config.output],
       );
     });
diff --git a/test/example_tests/simple_example_test.dart b/test/example_tests/simple_example_test.dart
index 190e65e..b79b576 100644
--- a/test/example_tests/simple_example_test.dart
+++ b/test/example_tests/simple_example_test.dart
@@ -30,7 +30,7 @@
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'example_simple.dart'],
+        'example_simple.dart',
         ['example', 'simple', config.output],
       );
     });
diff --git a/test/header_parser_tests/comment_markup_test.dart b/test/header_parser_tests/comment_markup_test.dart
index 3fadaea..b7e5cfa 100644
--- a/test/header_parser_tests/comment_markup_test.dart
+++ b/test/header_parser_tests/comment_markup_test.dart
@@ -33,11 +33,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_comment_markup_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_comment_markup_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/dart_handle_test.dart b/test/header_parser_tests/dart_handle_test.dart
index 9089302..dec4dec 100644
--- a/test/header_parser_tests/dart_handle_test.dart
+++ b/test/header_parser_tests/dart_handle_test.dart
@@ -35,11 +35,8 @@
       );
     });
     test('Expected Bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_dart_handle_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_dart_handle_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/forward_decl_test.dart b/test/header_parser_tests/forward_decl_test.dart
index ca16de4..f8f5894 100644
--- a/test/header_parser_tests/forward_decl_test.dart
+++ b/test/header_parser_tests/forward_decl_test.dart
@@ -30,11 +30,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_forward_decl_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_forward_decl_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/functions_test.dart b/test/header_parser_tests/functions_test.dart
index 7b07562..b2718aa 100644
--- a/test/header_parser_tests/functions_test.dart
+++ b/test/header_parser_tests/functions_test.dart
@@ -44,11 +44,8 @@
       );
     });
     test('Expected Bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_functions_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_functions_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/imported_types_test.dart b/test/header_parser_tests/imported_types_test.dart
index a018af2..2d26c1f 100644
--- a/test/header_parser_tests/imported_types_test.dart
+++ b/test/header_parser_tests/imported_types_test.dart
@@ -35,11 +35,8 @@
       );
     });
     test('Expected Bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_imported_types_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_imported_types_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/native_func_typedef_test.dart b/test/header_parser_tests/native_func_typedef_test.dart
index 4f9187c..e576080 100644
--- a/test/header_parser_tests/native_func_typedef_test.dart
+++ b/test/header_parser_tests/native_func_typedef_test.dart
@@ -35,11 +35,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_native_func_typedef_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_native_func_typedef_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/opaque_dependencies_test.dart b/test/header_parser_tests/opaque_dependencies_test.dart
index 782f761..c2572d5 100644
--- a/test/header_parser_tests/opaque_dependencies_test.dart
+++ b/test/header_parser_tests/opaque_dependencies_test.dart
@@ -37,11 +37,8 @@
       );
     });
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_opaque_dependencies_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_opaque_dependencies_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/packed_structs_test.dart b/test/header_parser_tests/packed_structs_test.dart
index 357412e..bbd1ea7 100644
--- a/test/header_parser_tests/packed_structs_test.dart
+++ b/test/header_parser_tests/packed_structs_test.dart
@@ -30,11 +30,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_packed_structs_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_packed_structs_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/regress_384_test.dart b/test/header_parser_tests/regress_384_test.dart
index 950d985..054474c 100644
--- a/test/header_parser_tests/regress_384_test.dart
+++ b/test/header_parser_tests/regress_384_test.dart
@@ -31,11 +31,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_regress_384_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_regress_384_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/typedef_test.dart b/test/header_parser_tests/typedef_test.dart
index abac0e0..0c75f30 100644
--- a/test/header_parser_tests/typedef_test.dart
+++ b/test/header_parser_tests/typedef_test.dart
@@ -45,11 +45,8 @@
     });
 
     test('Expected Bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_typedef_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_typedef_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/header_parser_tests/unions_test.dart b/test/header_parser_tests/unions_test.dart
index ce2b0ea..8e8949e 100644
--- a/test/header_parser_tests/unions_test.dart
+++ b/test/header_parser_tests/unions_test.dart
@@ -30,11 +30,8 @@
     });
 
     test('Expected bindings', () {
-      matchLibraryWithExpected(actual, [
-        'test',
-        'debug_generated',
-        'header_parser_unions_test_output.dart'
-      ], [
+      matchLibraryWithExpected(
+          actual, 'header_parser_unions_test_output.dart', [
         'test',
         'header_parser_tests',
         'expected_bindings',
diff --git a/test/large_integration_tests/large_test.dart b/test/large_integration_tests/large_test.dart
index d789b81..77fe1ec 100644
--- a/test/large_integration_tests/large_test.dart
+++ b/test/large_integration_tests/large_test.dart
@@ -50,7 +50,7 @@
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'large_test_libclang.dart'],
+        'large_test_libclang.dart',
         ['test', 'large_integration_tests', '_expected_libclang_bindings.dart'],
         // Remove comments containing @ to hack around a mismatch in the
         // documentation generated by different clang versions.
@@ -78,7 +78,7 @@
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'large_test_cjson.dart'],
+        'large_test_cjson.dart',
         ['test', 'large_integration_tests', '_expected_cjson_bindings.dart'],
       );
     });
@@ -110,7 +110,7 @@
 
       matchLibraryWithExpected(
         library,
-        ['test', 'debug_generated', 'large_test_sqlite.dart'],
+        'large_test_sqlite.dart',
         ['test', 'large_integration_tests', '_expected_sqlite_bindings.dart'],
       );
     });
diff --git a/test/test_utils.dart b/test/test_utils.dart
index bc12c64..8aa8b44 100644
--- a/test/test_utils.dart
+++ b/test/test_utils.dart
@@ -5,6 +5,7 @@
 import 'dart:io';
 
 import 'package:ffigen/src/code_generator.dart';
+import 'package:ffigen/src/strings.dart' as strings;
 import 'package:logging/logging.dart';
 import 'package:path/path.dart' as path;
 import 'package:test/test.dart';
@@ -52,10 +53,10 @@
 ///
 /// This will not delete the actual debug file incase [expect] throws an error.
 void matchLibraryWithExpected(
-    Library library, List<String> pathForActual, List<String> pathToExpected,
+    Library library, String pathForActual, List<String> pathToExpected,
     {String Function(String)? codeNormalizer}) {
   final file = File(
-    path.joinAll(pathForActual),
+    path.join(strings.tmpDir, pathForActual),
   );
   library.generateFile(file);
 
