diff --git a/Makefile b/Makefile
index be6f441..d1d88a4 100644
--- a/Makefile
+++ b/Makefile
@@ -295,7 +295,6 @@
 .DEFAULT_GOAL := libflashrom.a
 $(info Setting default goal to libflashrom.a)
 endif
-FLASHROM_CFLAGS += -DSTANDALONE
 $(call mark_unsupported,CONFIG_DUMMY)
 # libpayload does not provide the romsize field in struct pci_dev that the atapromise code requires.
 $(call mark_unsupported,CONFIG_ATAPROMISE)
diff --git a/cli_classic.c b/cli_classic.c
index 1981ccc..f0126a6 100644
--- a/cli_classic.c
+++ b/cli_classic.c
@@ -109,12 +109,10 @@
 /* Ensure a file is open by means of fstat */
 static bool check_file(FILE *file)
 {
-#ifndef STANDALONE
 	struct stat statbuf;
 
 	if (fstat(fileno(file), &statbuf) < 0)
 		return false;
-#endif /* !STANDALONE */
 	return true;
 }
 
@@ -250,9 +248,7 @@
 	char *referencefile = NULL;
 	char *layoutfile = NULL;
 	char *fmapfile = NULL;
-#ifndef STANDALONE
 	char *logfile = NULL;
-#endif /* !STANDALONE */
 	char *tempstr = NULL;
 	char *pparam = NULL;
 	struct layout_include_args *include_args = NULL;
@@ -451,9 +447,6 @@
 			exit(0);
 			break;
 		case 'o':
-#ifdef STANDALONE
-			cli_classic_abort_usage("Log file not supported in standalone mode. Aborting.\n");
-#else /* STANDALONE */
 			if (logfile) {
 				fprintf(stderr, "Warning: -o/--output specified multiple times.\n");
 				free(logfile);
@@ -463,7 +456,6 @@
 			if (logfile[0] == '\0') {
 				cli_classic_abort_usage("No log filename specified.\n");
 			}
-#endif /* STANDALONE */
 			break;
 		default:
 			cli_classic_abort_usage(NULL);
@@ -481,13 +473,10 @@
 		cli_classic_abort_usage(NULL);
 	if (referencefile && check_filename(referencefile, "reference"))
 		cli_classic_abort_usage(NULL);
-
-#ifndef STANDALONE
 	if (logfile && check_filename(logfile, "log"))
 		cli_classic_abort_usage(NULL);
 	if (logfile && open_logfile(logfile))
 		cli_classic_abort_usage(NULL);
-#endif /* !STANDALONE */
 
 #if CONFIG_PRINT_WIKI == 1
 	if (list_supported_wiki) {
@@ -502,9 +491,7 @@
 		goto out;
 	}
 
-#ifndef STANDALONE
 	start_logging();
-#endif /* !STANDALONE */
 
 	print_buildinfo();
 	msg_gdbg("Command line (%i args):", argc - 1);
@@ -774,9 +761,7 @@
 	/* clean up global variables */
 	free((char *)chip_to_probe); /* Silence! Freeing is not modifying contents. */
 	chip_to_probe = NULL;
-#ifndef STANDALONE
 	free(logfile);
 	ret |= close_logfile();
-#endif /* !STANDALONE */
 	return ret;
 }
diff --git a/cli_output.c b/cli_output.c
index e12446d..629db67 100644
--- a/cli_output.c
+++ b/cli_output.c
@@ -24,7 +24,6 @@
 enum flashrom_log_level verbose_screen = FLASHROM_MSG_INFO;
 enum flashrom_log_level verbose_logfile = FLASHROM_MSG_DEBUG2;
 
-#ifndef STANDALONE
 static FILE *logfile = NULL;
 
 int close_logfile(void)
@@ -64,7 +63,6 @@
 	print_version();
 	verbose_screen = oldverbose_screen;
 }
-#endif /* !STANDALONE */
 
 /* Please note that level is the verbosity, not the importance of the message. */
 int flashrom_print_cb(enum flashrom_log_level level, const char *fmt, va_list ap)
@@ -85,13 +83,13 @@
 		if (level != FLASHROM_MSG_SPEW)
 			fflush(output_type);
 	}
-#ifndef STANDALONE
+
 	if ((level <= verbose_logfile) && logfile) {
 		ret = vfprintf(logfile, fmt, logfile_args);
 		if (level != FLASHROM_MSG_SPEW)
 			fflush(logfile);
 	}
-#endif /* !STANDALONE */
+
 	va_end(logfile_args);
 	return ret;
 }
diff --git a/flash.h b/flash.h
index c63b139..66d5b88 100644
--- a/flash.h
+++ b/flash.h
@@ -446,11 +446,9 @@
 /* cli_output.c */
 extern enum flashrom_log_level verbose_screen;
 extern enum flashrom_log_level verbose_logfile;
-#ifndef STANDALONE
 int open_logfile(const char * const filename);
 int close_logfile(void);
 void start_logging(void);
-#endif
 int flashrom_print_cb(enum flashrom_log_level level, const char *fmt, va_list ap);
 /* Let gcc and clang check for correct printf-style format strings. */
 int print(enum flashrom_log_level level, const char *fmt, ...)
