diff --git a/config/meson.build b/config/meson.build
index 6996e5cbea..ef74cebaaa 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -245,7 +245,8 @@ dpdk_conf.set('RTE_COMPILE_TIME_CPUFLAGS', ','.join(compile_time_cpuflags))
 # set the install path for the drivers
 dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)
 
-install_headers('rte_config.h', subdir: get_option('include_subdir_arch'))
+install_headers(['rte_config.h', 'rte_compatibility_defines.h'],
+		subdir: get_option('include_subdir_arch'))
 
 # enable VFIO only if it is linux OS
 dpdk_conf.set('RTE_EAL_VFIO', is_linux)
diff --git a/config/rte_compatibility_defines.h b/config/rte_compatibility_defines.h
new file mode 100644
index 0000000000..47600052b6
--- /dev/null
+++ b/config/rte_compatibility_defines.h
@@ -0,0 +1,129 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#ifndef _RTE_CONFIG_H_
+#error "This file should only be included via rte_config.h"
+#endif
+
+/*
+ * NOTE: these defines are for compatibility only and will be removed in a
+ * future DPDK release.
+ */
+
+#ifdef RTE_LIBRTE_BITRATESTATS
+#define RTE_LIBRTE_BITRATE
+#endif
+
+#ifdef RTE_LIBRTE_LATENCYSTATS
+#define RTE_LIBRTE_LATENCY_STATS
+#endif
+
+#ifdef RTE_LIBRTE_DPAAX_COMMON
+#define RTE_LIBRTE_COMMON_DPAAX
+#endif
+
+#ifdef RTE_LIBRTE_VMBUS_BUS
+#define RTE_LIBRTE_VMBUS
+#endif
+
+#ifdef RTE_LIBRTE_BUCKET_MEMPOOL
+#define RTE_DRIVER_MEMPOOL_BUCKET
+#endif
+
+#ifdef RTE_LIBRTE_RING_MEMPOOL
+#define RTE_DRIVER_MEMPOOL_RING
+#endif
+
+#ifdef RTE_LIBRTE_STACK_MEMPOOL
+#define RTE_DRIVER_MEMPOOL_STACK
+#endif
+
+#ifdef RTE_LIBRTE_AF_PACKET_PMD
+#define RTE_LIBRTE_PMD_AF_PACKET
+#endif
+
+#ifdef RTE_LIBRTE_AF_XDP_PMD
+#define RTE_LIBRTE_PMD_AF_XDP
+#endif
+
+#ifdef RTE_LIBRTE_BOND_PMD
+#define RTE_LIBRTE_PMD_BOND
+#endif
+
+#ifdef RTE_LIBRTE_E1000_PMD
+#define RTE_LIBRTE_EM_PMD
+#endif
+
+#ifdef RTE_LIBRTE_E1000_PMD
+#define RTE_LIBRTE_IGB_PMD
+#endif
+
+#ifdef RTE_LIBRTE_FAILSAFE_PMD
+#define RTE_LIBRTE_PMD_FAILSAFE
+#endif
+
+#ifdef RTE_LIBRTE_KNI_PMD
+#define RTE_LIBRTE_PMD_KNI
+#endif
+
+#ifdef RTE_LIBRTE_LIQUIDIO_PMD
+#define RTE_LIBRTE_LIO_PMD
+#endif
+
+#ifdef RTE_LIBRTE_MEMIF_PMD
+#define RTE_LIBRTE_PMD_MEMIF
+#endif
+
+#ifdef RTE_LIBRTE_NULL_PMD
+#define RTE_LIBRTE_PMD_NULL
+#endif
+
+#ifdef RTE_LIBRTE_PCAP_PMD
+#define RTE_LIBRTE_PMD_PCAP
+#endif
+
+#ifdef RTE_LIBRTE_RING_PMD
+#define RTE_LIBRTE_PMD_RING
+#endif
+
+#ifdef RTE_LIBRTE_SFC_PMD
+#define RTE_LIBRTE_SFC_EFX_PMD
+#endif
+
+#ifdef RTE_LIBRTE_SOFTNIC_PMD
+#define RTE_LIBRTE_PMD_SOFTNIC
+#endif
+
+#ifdef RTE_LIBRTE_SZEDATA2_PMD
+#define RTE_LIBRTE_PMD_SZEDATA2
+#endif
+
+#ifdef RTE_LIBRTE_TAP_PMD
+#define RTE_LIBRTE_PMD_TAP
+#endif
+
+#ifdef RTE_LIBRTE_THUNDERX_PMD
+#define RTE_LIBRTE_THUNDERX_NICVF_PMD
+#endif
+
+#ifdef RTE_LIBRTE_VHOST_PMD
+#define RTE_LIBRTE_PMD_VHOST
+#endif
+
+#ifdef RTE_LIBRTE_PMD_ARMV8
+#define RTE_LIBRTE_PMD_ARMV8_CRYPTO
+#endif
+
+#ifdef RTE_LIBRTE_PMD_MVSAM
+#define RTE_LIBRTE_PMD_MVSAM_CRYPTO
+#endif
+
+#ifdef RTE_LIBRTE_PMD_OCTEONTX_COMPRESS
+#define RTE_LIBRTE_PMD_OCTEONTX_ZIPVF
+#endif
+
+#ifdef RTE_LIBRTE_PMD_OCTEONTX_EVENTDEV
+#define RTE_LIBRTE_PMD_OCTEONTX_SSOVF
+#endif
+
diff --git a/config/rte_config.h b/config/rte_config.h
index 0bae630fd9..cacc1837cf 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -13,6 +13,7 @@
 #define _RTE_CONFIG_H_
 
 #include <rte_build_config.h>
+#include <rte_compatibility_defines.h>
 
 /* legacy defines */
 #ifdef RTE_EXEC_ENV_LINUX
diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 5b5a52fa65..fe1b988bb8 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -19,6 +19,15 @@ Deprecation Notices
   are present in this release, but those ending in ``_PMD`` will be removed
   in a future release, and should not be used.
 
+* build: A number of macros, which defined what DPDK components were being
+  built, are deprecated due to them not conforming to the standard naming
+  scheme for the relevant library template or driver class template. These
+  deprecated macros can be found in the file
+  ``config/rte_compatibility_defines.h``, listed in the format ``#ifdef
+  <NEW_DEFINE> \ #define <OLD_DEFINE> \ #endif``. When updating code,
+  ``OLD_DEFINE`` should be replaced with the relevant ``NEW_DEFINE`` from
+  that file.
+
 * meson: The minimum supported version of meson for configuring and building
   DPDK will be increased to v0.47.1 (from 0.41) from DPDK 19.05 onwards. For
   those users with a version earlier than 0.47.1, an updated copy of meson
