diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index e7391798d524bed47e2236b68eccda5d9d3f8c3f..03c1ae43dcd59ffa8d7d4ee7ff23dfcbb59ec336 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -388,11 +388,15 @@ OBJS-$(TARGET_ALTIVEC)                 += ppc/dsputil_altivec.o      \
                                           ppc/fft_altivec.o          \
                                           ppc/gmc_altivec.o          \
                                           ppc/fdct_altivec.o         \
-                                          ppc/h264_altivec.o         \
-                                          ppc/snow_altivec.o         \
-                                          ppc/vc1dsp_altivec.o       \
                                           ppc/float_altivec.o        \
 
+ifeq ($(TARGET_ALTIVEC),yes)
+OBJS-$(CONFIG_H264_DECODER)            += ppc/h264_altivec.o
+OBJS-$(CONFIG_SNOW_DECODER)            += ppc/snow_altivec.o
+OBJS-$(CONFIG_VC1_DECODER)             += ppc/vc1dsp_altivec.o
+OBJS-$(CONFIG_WMV3_DECODER)            += ppc/vc1dsp_altivec.o
+endif
+
 OBJS-$(TARGET_ARCH_BFIN)               += bfin/dsputil_bfin.o \
 
 CFLAGS += $(CFLAGS-yes)
diff --git a/libavcodec/ppc/dsputil_ppc.c b/libavcodec/ppc/dsputil_ppc.c
index 95b69f45ba1505e190a6518eb89f392f8e1cc174..9169eaef059fc83342dbd04b8d632b0251401e0a 100644
--- a/libavcodec/ppc/dsputil_ppc.c
+++ b/libavcodec/ppc/dsputil_ppc.c
@@ -274,14 +274,15 @@ void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx)
     }
 
 #ifdef HAVE_ALTIVEC
-    dsputil_h264_init_ppc(c, avctx);
+    if(ENABLE_H264_DECODER) dsputil_h264_init_ppc(c, avctx);
 
     if (has_altivec()) {
         mm_flags |= MM_ALTIVEC;
 
         dsputil_init_altivec(c, avctx);
-        snow_init_altivec(c, avctx);
-        vc1dsp_init_altivec(c, avctx);
+        if(ENABLE_SNOW_DECODER) snow_init_altivec(c, avctx);
+        if(ENABLE_VC1_DECODER || ENABLE_WMV3_DECODER)
+            vc1dsp_init_altivec(c, avctx);
         float_init_altivec(c, avctx);
         c->gmc1 = gmc1_altivec;