diff --git a/Makefile b/Makefile
index 388f3c8..e51fa25 100644
--- a/Makefile
+++ b/Makefile
@@ -14,7 +14,7 @@
 # GNU General Public License for more details.
 #
 
-PROGRAM = flashrom
+PROGRAM = flashprog
 
 ###############################################################################
 # Defaults for the toolchain.
@@ -37,20 +37,20 @@
 BUILD_DETAILS_FILE ?= build_details.txt
 
 # The following parameter changes the default programmer that will be used if there is no -p/--programmer
-# argument given when running flashrom. The predefined setting does not enable any default so that every
+# argument given when running flashprog. The predefined setting does not enable any default so that every
 # user has to declare the programmer he wants to use on every run. The rationale for this to be not set
 # (to e.g. the internal programmer) is that forgetting to specify this when working with another programmer
 # easily puts the system attached to the default programmer at risk (e.g. you want to flash coreboot to another
 # system attached to an external programmer while the default programmer is set to the internal programmer, and
 # you forget to use the -p parameter. This would (try to) overwrite the existing firmware of the computer
-# running flashrom). Please do not enable this without thinking about the possible consequences. Possible
-# values can be found when running 'flashrom --list-supported' under the 'Supported programmers' section.
+# running flashprog). Please do not enable this without thinking about the possible consequences. Possible
+# values can be found when running 'flashprog --list-supported' under the 'Supported programmers' section.
 CONFIG_DEFAULT_PROGRAMMER_NAME ?=
 # The following adds a default parameter for the default programmer set above (only).
 CONFIG_DEFAULT_PROGRAMMER_ARGS ?=
 # Example: compiling with
 #   make CONFIG_DEFAULT_PROGRAMMER_NAME=serprog CONFIG_DEFAULT_PROGRAMMER_ARGS="dev=/dev/ttyUSB0:1500000"
-# would make executing './flashrom' (almost) equivialent to './flashrom -p serprog:dev=/dev/ttyUSB0:1500000'.
+# would make executing './flashprog' (almost) equivialent to './flashprog -p serprog:dev=/dev/ttyUSB0:1500000'.
 
 # The user can provide CPP, C and LDFLAGS and the Makefile will extend these
 override CPPFLAGS := $(CPPFLAGS)
@@ -294,10 +294,10 @@
 # FIXME: Should we check for Cygwin/MSVC as well?
 ifeq ($(TARGET_OS), MinGW)
 # MinGW doesn't have the ffs() function, but we can use gcc's __builtin_ffs().
-FLASHROM_CFLAGS += -Dffs=__builtin_ffs
+FLASHPROG_CFLAGS += -Dffs=__builtin_ffs
 # Some functions provided by Microsoft do not work as described in C99 specifications. This macro fixes that
 # for MinGW. See http://sourceforge.net/p/mingw-w64/wiki2/printf%20and%20scanf%20family/ */
-FLASHROM_CFLAGS += -D__USE_MINGW_ANSI_STDIO=1
+FLASHPROG_CFLAGS += -D__USE_MINGW_ANSI_STDIO=1
 
 # For now we disable all PCI-based programmers on Windows/MinGW (no libpci).
 $(call mark_unsupported,$(DEPENDS_ON_LIBPCI))
@@ -311,8 +311,8 @@
 
 ifeq ($(TARGET_OS), libpayload)
 ifeq ($(MAKECMDGOALS),)
-.DEFAULT_GOAL := libflashrom.a
-$(info Setting default goal to libflashrom.a)
+.DEFAULT_GOAL := libflashprog.a
+$(info Setting default goal to libflashprog.a)
 endif
 $(call mark_unsupported,CONFIG_DUMMY)
 # libpayload does not provide the romsize field in struct pci_dev that the atapromise code requires.
@@ -360,10 +360,10 @@
 endif
 
 ifeq ($(ENDIAN), little)
-FEATURE_FLAGS += -D'__FLASHROM_LITTLE_ENDIAN__=1'
+FEATURE_FLAGS += -D'__FLASHPROG_LITTLE_ENDIAN__=1'
 endif
 ifeq ($(ENDIAN), big)
-FEATURE_FLAGS += -D'__FLASHROM_BIG_ENDIAN__=1'
+FEATURE_FLAGS += -D'__FLASHPROG_BIG_ENDIAN__=1'
 endif
 
 # PCI port I/O support is unimplemented on PPC/MIPS/SPARC and unavailable on ARM.
@@ -392,7 +392,7 @@
 ###############################################################################
 # Library code.
 
-LIB_OBJS = libflashrom.o layout.o flashrom.o udelay.o parallel.o programmer.o programmer_table.o \
+LIB_OBJS = libflashprog.o layout.o flashprog.o udelay.o parallel.o programmer.o programmer_table.o \
 	helpers.o helpers_fileio.o ich_descriptors.o fmap.o platform/endian_$(ENDIAN).o platform/memaccess.o
 
 
@@ -403,11 +403,11 @@
 
 # By default version information will be fetched from Git if available.
 # Otherwise, versioninfo.inc stores the metadata required to build a
-# packaged flashrom. It is generated by the export, tag and branch rules.
+# packaged flashprog. It is generated by the export, tag and branch rules.
 VERSION := $(shell ./util/getversion.sh --version)
 MAN_DATE := $(shell ./util/getversion.sh --man-date)
 
-SCMDEF := -D'FLASHROM_VERSION="$(VERSION)"'
+SCMDEF := -D'FLASHPROG_VERSION="$(VERSION)"'
 
 # Inform user of the version string
 ifeq ($(filter branch tag,$(MAKECMDGOALS)), )
@@ -837,7 +837,7 @@
 
 USE_X86_PORT_IO := $(if $(call filter_deps,$(DEPENDS_ON_X86_PORT_IO)),yes,no)
 ifeq ($(USE_X86_PORT_IO), yes)
-FEATURE_FLAGS += -D'__FLASHROM_HAVE_OUTB__=1'
+FEATURE_FLAGS += -D'__FLASHPROG_HAVE_OUTB__=1'
 PROGRAMMER_OBJS += hwaccess_x86_io.o
 endif
 
@@ -924,7 +924,7 @@
 endif
 
 config:
-	@echo Building flashrom version $(VERSION)
+	@echo Building flashprog version $(VERSION)
 	@echo -n "C compiler found: "
 	@if [ $(CC_WORKING) = yes ]; \
 		then $(CC) --version 2>/dev/null | head -1; \
@@ -995,12 +995,12 @@
 	fi
 
 %.o: %.c | config
-	$(CC) -MMD $(CFLAGS) $(CPPFLAGS) $(FLASHROM_CFLAGS) $(FEATURE_FLAGS) $(SCMDEF) -o $@ -c $<
+	$(CC) -MMD $(CFLAGS) $(CPPFLAGS) $(FLASHPROG_CFLAGS) $(FEATURE_FLAGS) $(SCMDEF) -o $@ -c $<
 
-$(PROGRAM)$(EXEC_SUFFIX): $(CLI_OBJS) libflashrom.a
+$(PROGRAM)$(EXEC_SUFFIX): $(CLI_OBJS) libflashprog.a
 	$(CC) -o $@ $^ $(LDFLAGS)
 
-libflashrom.a: $(OBJS)
+libflashprog.a: $(OBJS)
 	$(AR) rcs $@ $^
 	$(RANLIB) $@
 
@@ -1009,16 +1009,16 @@
 
 $(PROGRAM).8: $(PROGRAM).8.tmpl
 	@# Add the man page change date and version to the man page
-	@sed -e 's#.TH FLASHROM 8 .*#.TH FLASHROM 8 "$(MAN_DATE)" "flashrom-stable-$(VERSION)" "$(MAN_DATE)"#' <$< >$@
+	@sed -e 's#.TH FLASHPROG 8 .*#.TH FLASHPROG 8 "$(MAN_DATE)" "flashprog-$(VERSION)" "$(MAN_DATE)"#' <$< >$@
 
 strip: $(PROGRAM)$(EXEC_SUFFIX)
 	$(STRIP) $(STRIP_ARGS) $(PROGRAM)$(EXEC_SUFFIX)
 
 # Make sure to add all names of generated binaries here.
-# This includes all frontends and libflashrom.
+# This includes all frontends and libflashprog.
 # We don't use EXEC_SUFFIX here because we want to clean everything.
 clean:
-	rm -f $(PROGRAM) $(PROGRAM).exe libflashrom.a $(filter-out Makefile.d, $(wildcard *.d *.o platform/*.d platform/*.o)) \
+	rm -f $(PROGRAM) $(PROGRAM).exe libflashprog.a $(filter-out Makefile.d, $(wildcard *.d *.o platform/*.d platform/*.o)) \
 		$(PROGRAM).8 $(PROGRAM).8.html $(BUILD_DETAILS_FILE)
 	@+$(MAKE) -C util/ich_descriptors_tool/ clean
 
@@ -1028,11 +1028,11 @@
 	$(INSTALL) -m 0755 $(PROGRAM)$(EXEC_SUFFIX) $(DESTDIR)$(PREFIX)/sbin
 	$(INSTALL) -m 0644 $(PROGRAM).8 $(DESTDIR)$(MANDIR)/man8
 
-libinstall: libflashrom.a include/libflashrom.h
+libinstall: libflashprog.a include/libflashprog.h
 	mkdir -p $(DESTDIR)$(PREFIX)/lib
-	$(INSTALL) -m 0644 libflashrom.a $(DESTDIR)$(PREFIX)/lib
+	$(INSTALL) -m 0644 libflashprog.a $(DESTDIR)$(PREFIX)/lib
 	mkdir -p $(DESTDIR)$(PREFIX)/include
-	$(INSTALL) -m 0644 include/libflashrom.h $(DESTDIR)$(PREFIX)/include
+	$(INSTALL) -m 0644 include/libflashprog.h $(DESTDIR)$(PREFIX)/include
 
 versioninfo:
 #	Generate versioninfo.inc containing metadata that would not be available in exported sources otherwise.
@@ -1051,7 +1051,7 @@
 	@git tag -s $(RELEASE)
 
 # No spaces in release names unless set explicitly
-RELEASENAME ?= flashrom-stable-$(shell echo "$(VERSION)" | sed -e 's/ /_/')
+RELEASENAME ?= flashprog-$(shell echo "$(VERSION)" | sed -e 's/ /_/')
 
 _export: EXPORT_VERSIONINFO := $(EXPORTDIR)/$(RELEASENAME)/versioninfo.inc
 _export: $(PROGRAM).8
