1# This is a generic makefile for libyuv for gcc. 2# make -f linux.mk CXX=clang++ 3 4CC?=gcc 5CFLAGS?=-O2 -fomit-frame-pointer 6CFLAGS+=-Iinclude/ 7 8CXX?=g++ 9CXXFLAGS?=-O2 -fomit-frame-pointer 10CXXFLAGS+=-Iinclude/ 11 12LOCAL_OBJ_FILES := \ 13 source/compare.o \ 14 source/compare_common.o \ 15 source/compare_gcc.o \ 16 source/compare_msa.o \ 17 source/compare_neon.o \ 18 source/compare_neon64.o \ 19 source/compare_win.o \ 20 source/convert.o \ 21 source/convert_argb.o \ 22 source/convert_from.o \ 23 source/convert_from_argb.o \ 24 source/convert_jpeg.o \ 25 source/convert_to_argb.o \ 26 source/convert_to_i420.o \ 27 source/cpu_id.o \ 28 source/mjpeg_decoder.o \ 29 source/mjpeg_validate.o \ 30 source/planar_functions.o \ 31 source/rotate.o \ 32 source/rotate_any.o \ 33 source/rotate_argb.o \ 34 source/rotate_common.o \ 35 source/rotate_gcc.o \ 36 source/rotate_lsx.o \ 37 source/rotate_msa.o \ 38 source/rotate_neon.o \ 39 source/rotate_neon64.o \ 40 source/rotate_win.o \ 41 source/row_any.o \ 42 source/row_common.o \ 43 source/row_gcc.o \ 44 source/row_lasx.o \ 45 source/row_lsx.o \ 46 source/row_msa.o \ 47 source/row_neon.o \ 48 source/row_neon64.o \ 49 source/row_rvv.o \ 50 source/row_win.o \ 51 source/scale.o \ 52 source/scale_any.o \ 53 source/scale_argb.o \ 54 source/scale_common.o \ 55 source/scale_gcc.o \ 56 source/scale_lsx.o \ 57 source/scale_msa.o \ 58 source/scale_neon.o \ 59 source/scale_neon64.o \ 60 source/scale_rgb.o \ 61 source/scale_rvv.o \ 62 source/scale_uv.o \ 63 source/scale_win.o \ 64 source/video_common.o 65 66.cc.o: 67 $(CXX) -c $(CXXFLAGS) $*.cc -o $*.o 68 69.c.o: 70 $(CC) -c $(CFLAGS) $*.c -o $*.o 71 72all: libyuv.a i444tonv12_eg yuvconvert yuvconstants cpuid psnr 73 74libyuv.a: $(LOCAL_OBJ_FILES) 75 $(AR) $(ARFLAGS) $@ $(LOCAL_OBJ_FILES) 76 77# A C++ test utility that uses libyuv conversion. 78yuvconvert: util/yuvconvert.cc libyuv.a 79 $(CXX) $(CXXFLAGS) -Iutil/ -o $@ util/yuvconvert.cc libyuv.a 80 81# A C test utility that generates yuvconstants for yuv to rgb. 82yuvconstants: util/yuvconstants.c libyuv.a 83 $(CXX) $(CXXFLAGS) -Iutil/ -lm -o $@ util/yuvconstants.c libyuv.a 84 85# A standalone test utility 86psnr: util/psnr.cc 87 $(CXX) $(CXXFLAGS) -Iutil/ -o $@ util/psnr.cc util/psnr_main.cc util/ssim.cc 88 89# A simple conversion example. 90i444tonv12_eg: util/i444tonv12_eg.cc libyuv.a 91 $(CXX) $(CXXFLAGS) -o $@ util/i444tonv12_eg.cc libyuv.a 92 93# A C test utility that uses libyuv conversion from C. 94# gcc 4.4 and older require -fno-exceptions to avoid link error on __gxx_personality_v0 95# CC=gcc-4.4 CXXFLAGS=-fno-exceptions CXX=g++-4.4 make -f linux.mk 96cpuid: util/cpuid.c libyuv.a 97 $(CC) $(CFLAGS) -o $@ util/cpuid.c libyuv.a 98 99clean: 100 /bin/rm -f source/*.o *.ii *.s libyuv.a i444tonv12_eg yuvconvert yuvconstants cpuid psnr 101