diff --git a/celt/celt_decoder.c b/celt/celt_decoder.c
index 4303f04fbd5b8a6d7284a77db53b5f76be7c1fd0..9646b612d9b4b73d79ac5cd5ff511969e6a2ed85 100644
--- a/celt/celt_decoder.c
+++ b/celt/celt_decoder.c
@@ -31,8 +31,7 @@
 #include "config.h"
 #endif
 
-#define CELT_C
-#define DECODER
+#define CELT_DECODER_C
 
 #include "os_support.h"
 #include "mdct.h"
diff --git a/celt/celt_encoder.c b/celt/celt_encoder.c
index b2d5df197ea3358277f90fb6e84ca62e4d9b3569..ea94975da5d2cb68ec55c94456633744e7da96f1 100644
--- a/celt/celt_encoder.c
+++ b/celt/celt_encoder.c
@@ -31,8 +31,7 @@
 #include "config.h"
 #endif
 
-#define CELT_C
-#define ENCODER
+#define CELT_ENCODER_C
 
 #include "os_support.h"
 #include "mdct.h"
diff --git a/include/opus_custom.h b/include/opus_custom.h
index 8415a7b9ac76f17739456b8a54163f1e495a0639..6cf3963076afd37094e6284d33a835a7ba8d9ec9 100644
--- a/include/opus_custom.h
+++ b/include/opus_custom.h
@@ -46,7 +46,7 @@ extern "C" {
 # define OPUS_CUSTOM_EXPORT_STATIC OPUS_EXPORT
 #else
 # define OPUS_CUSTOM_EXPORT
-# ifdef CELT_C
+# ifdef OPUS_BUILD
 #  define OPUS_CUSTOM_EXPORT_STATIC static inline
 # else
 #  define OPUS_CUSTOM_EXPORT_STATIC
@@ -127,7 +127,7 @@ OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT OpusCustomMode *opus_custom_mode_crea
 OPUS_CUSTOM_EXPORT void opus_custom_mode_destroy(OpusCustomMode *mode);
 
 
-#if defined(CELT_C) && defined(ENCODER)
+#if !defined(OPUS_BUILD) || defined(CELT_ENCODER_C)
 
 /* Encoder */
 /** Gets the size of an OpusCustomEncoder structure.
@@ -237,7 +237,7 @@ OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT int opus_custom_encode(
 OPUS_CUSTOM_EXPORT int opus_custom_encoder_ctl(OpusCustomEncoder * OPUS_RESTRICT st, int request, ...) OPUS_ARG_NONNULL(1);
 
 
-#if defined(CELT_C) && defined(DECODER)
+#if !defined(OPUS_BUILD) || defined(CELT_DECODER_C)
 /* Decoder */
 
 /** Gets the size of an OpusCustomDecoder structure.