diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
index 317c1c8..94b4eed 100644
--- a/tools/CMakeLists.txt
+++ b/tools/CMakeLists.txt
@@ -2,7 +2,9 @@
 configure_file(${PROJECT_SOURCE_DIR}/tools/config.h.in ${PROJECT_BINARY_DIR}/tools/config.h @ONLY)
 
 add_subdirectory(lint)
-add_subdirectory(re)
+if(NOT WIN32)
+    add_subdirectory(re)
+endif()
 
 set(format_sources
     ${format_sources}
diff --git a/tools/lint/CMakeLists.txt b/tools/lint/CMakeLists.txt
index 10d5758..b41ad2b 100644
--- a/tools/lint/CMakeLists.txt
+++ b/tools/lint/CMakeLists.txt
@@ -1,7 +1,12 @@
 # yanglint
 
+if(WIN32)
+    set(YANGLINT_INTERACTIVE OFF)
+else()
+    set(YANGLINT_INTERACTIVE ON)
+endif()
+
 set(lintsrc
-    main.c
     main_ni.c
     cmd.c
     cmd_add.c
@@ -13,9 +18,17 @@
     cmd_print.c
     cmd_searchpath.c
     common.c
-    completion.c
-    configuration.c
-    linenoise/linenoise.c)
+)
+if(YANGLINT_INTERACTIVE)
+    set(lintsrc ${lintsrc}
+        main.c
+        completion.c
+        configuration.c
+        linenoise/linenoise.c)
+else()
+    set(lintsrc ${lintsrc}
+        main_ni_only.c)
+endif()
 
 set(format_sources
     ${format_sources}
@@ -53,7 +66,7 @@
     find_program(PATH_EXPECT NAMES expect)
     if(NOT PATH_EXPECT)
         message(WARNING "'expect' not found! The yanglint(1) interactive tests will not be available.")
-    else()
+    elseif(YANGLINT_INTERACTIVE)
 #        add_yanglint_test(NAME in_list SCRIPT expect/list.exp)
     endif()
 endif()
diff --git a/tools/lint/main_ni_only.c b/tools/lint/main_ni_only.c
new file mode 100644
index 0000000..d55f2c2
--- /dev/null
+++ b/tools/lint/main_ni_only.c
@@ -0,0 +1,22 @@
+/**
+ * @file main_ni_only.c
+ * @brief non-interactive implementation of main() for those platforms without the linenoise library
+ *
+ * Copyright (c) 2015-2021 CESNET, z.s.p.o.
+ *
+ * This source code is licensed under BSD 3-Clause License (the "License").
+ * You may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     https://opensource.org/licenses/BSD-3-Clause
+ */
+
+int main_ni(int argc, char *argv[]);
+
+int done; /* for cmd.c */
+
+int
+main(int argc, char *argv[])
+{
+    return main_ni(argc, argv);
+}
