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