Makefile
上传用户:hjq518
上传日期:2021-12-09
资源大小:5084k
文件大小:5k
源码类别:

Audio

开发平台:

Visual C++

  1. # Makefile
  2. include config.mak
  3. SRCS = common/mc.c common/predict.c common/pixel.c common/macroblock.c 
  4.        common/frame.c common/dct.c common/cpu.c common/cabac.c 
  5.        common/common.c common/mdate.c common/csp.c common/set.c 
  6.        common/quant.c 
  7.        encoder/analyse.c encoder/me.c encoder/ratecontrol.c 
  8.        encoder/set.c encoder/macroblock.c encoder/cabac.c 
  9.        encoder/cavlc.c encoder/encoder.c encoder/eval.c
  10. # Visualization sources
  11. ifeq ($(VIS),yes)
  12. SRCS   += common/visualize.c common/display-x11.c
  13. endif
  14. # MMX/SSE optims
  15. ifeq ($(ARCH),X86)
  16. SRCS   += common/i386/mc-c.c common/i386/dct-c.c common/i386/predict.c
  17. ASMSRC  = common/i386/dct-a.asm common/i386/cpu-a.asm 
  18.           common/i386/pixel-a.asm common/i386/mc-a.asm 
  19.           common/i386/mc-a2.asm common/i386/predict-a.asm 
  20.           common/i386/pixel-sse2.asm common/i386/quant-a.asm 
  21.           common/i386/deblock-a.asm
  22. OBJASM  = $(ASMSRC:%.asm=%.o)
  23. ASFLAGS += -Icommon/i386/
  24. endif
  25. # MMX/SSE optims
  26. ifeq ($(ARCH),X86_64)
  27. SRCS   += common/i386/mc-c.c common/i386/dct-c.c common/i386/predict.c
  28. ASMSRC  = common/amd64/dct-a.asm common/amd64/cpu-a.asm 
  29.           common/amd64/pixel-a.asm common/amd64/mc-a.asm 
  30.           common/amd64/mc-a2.asm common/amd64/predict-a.asm 
  31.           common/amd64/pixel-sse2.asm common/amd64/quant-a.asm 
  32.           common/amd64/deblock-a.asm
  33. OBJASM  = $(ASMSRC:%.asm=%.o)
  34. ASFLAGS += -Icommon/amd64
  35. endif
  36. # AltiVec optims
  37. ifeq ($(ARCH),PPC)
  38. SRCS += common/ppc/mc.c common/ppc/pixel.c common/ppc/dct.c
  39. endif
  40. # VIS optims
  41. ifeq ($(ARCH),UltraSparc)
  42. ASMSRC += common/sparc/pixel.asm
  43. OBJASM  = $(ASMSRC:%.asm=%.o)
  44. endif
  45. ifneq ($(HAVE_GETOPT_LONG),1)
  46. SRCS += extras/getopt.c
  47. endif
  48. OBJS = $(SRCS:%.c=%.o)
  49. DEP  = depend
  50. .PHONY: default fprofiled clean distclean install uninstall
  51. default: $(DEP) x264$(EXE)
  52. libx264.a: .depend $(OBJS) $(OBJASM)
  53. ar rc libx264.a $(OBJS) $(OBJASM)
  54. ranlib libx264.a
  55. x264$(EXE): libx264.a x264.o matroska.o
  56. $(CC) -o $@ x264.o matroska.o libx264.a $(LDFLAGS)
  57. x264vfw.dll: libx264.a $(wildcard vfw/*.c vfw/*.h)
  58. make -C vfw/build/cygwin
  59. checkasm: tools/checkasm.o libx264.a
  60. $(CC) -o $@ $< libx264.a $(LDFLAGS)
  61. common/amd64/*.o: common/amd64/amd64inc.asm
  62. common/i386/*.o: common/i386/i386inc.asm
  63. %.o: %.asm
  64. $(AS) $(ASFLAGS) -o $@ $<
  65. .depend: config.mak
  66. rm -f .depend
  67. # Hacky - because gcc 2.9x doesn't have -MT
  68. $(foreach SRC, $(SRCS) x264.c matroska.c, ( echo -n "`dirname $(SRC)`/" && $(CC) $(CFLAGS) $(SRC) -MM -g0 ) 1>> .depend;)
  69. config.mak: $(wildcard .svn/entries */.svn/entries */*/.svn/entries)
  70. ./configure $(CONFIGURE_ARGS)
  71. depend: .depend
  72. ifneq ($(wildcard .depend),)
  73. include .depend
  74. endif
  75. SRC2 = $(SRCS) x264.c matroska.c
  76. # These should cover most of the important codepaths
  77. OPT0 = --crf 30 -b1 -m1 -r1 --me dia --no-cabac
  78. OPT1 = --crf 18 -b2 -m3 -r3 --me hex -8 --cqm jvt --direct spatial
  79. OPT2 = --crf 24 -b3 -m6 -r6 --me umh -8 -w -t1 -A all --b-pyramid --b-rdo --mixed-refs
  80. ifeq (,$(VIDS))
  81. fprofiled:
  82. @echo 'usage: make fprofiled VIDS="infile1 infile2 ..."'
  83. @echo 'where infiles are anything that x264 understands,'
  84. @echo 'i.e. YUV with resolution in the filename, or avisynth.'
  85. else
  86. fprofiled:
  87. make clean
  88. mv config.mak config.mak2
  89. sed -e 's/CFLAGS.*/& -fprofile-generate/; s/LDFLAGS.*/& -fprofile-generate/' config.mak2 > config.mak
  90. make x264$(EXE)
  91. $(foreach V, $(VIDS), $(foreach I, 0 1 2, ./x264$(EXE) $(OPT$I) $(V) --progress -o $(DEVNULL) ;))
  92. rm -f $(SRC2:%.c=%.o)
  93. sed -e 's/CFLAGS.*/& -fprofile-use/; s/LDFLAGS.*/& -fprofile-use/' config.mak2 > config.mak
  94. make
  95. rm -f $(SRC2:%.c=%.gcda) $(SRC2:%.c=%.gcno)
  96. mv config.mak2 config.mak
  97. endif
  98. clean:
  99. rm -f $(OBJS) $(OBJASM) *.a x264.o matroska.o x264 x264.exe .depend TAGS
  100. rm -f checkasm checkasm.exe tools/checkasm.o
  101. rm -f tools/avc2avi tools/avc2avi.exe tools/avc2avi.o
  102. rm -rf vfw/build/cygwin/bin
  103. rm -f $(SRC2:%.c=%.gcda) $(SRC2:%.c=%.gcno)
  104. - sed -e 's/ *-fprofile-(generate|use)//g' config.mak > config.mak2 && mv config.mak2 config.mak
  105. distclean: clean
  106. rm -f config.mak config.h vfw/build/cygwin/config.mak x264.pc
  107. install: x264
  108. install -d $(DESTDIR)$(bindir) $(DESTDIR)$(includedir)
  109. install -d $(DESTDIR)$(libdir) $(DESTDIR)$(libdir)/pkgconfig
  110. install -m 644 x264.h $(DESTDIR)$(includedir)
  111. install -m 644 libx264.a $(DESTDIR)$(libdir)
  112. install -m 644 x264.pc $(DESTDIR)$(libdir)/pkgconfig
  113. install x264 $(DESTDIR)$(bindir)
  114. ranlib $(DESTDIR)$(libdir)/libx264.a
  115. uninstall:
  116. rm -f $(DESTDIR)$(includedir)/x264.h $(DESTDIR)$(libdir)/libx264.a
  117. rm -f $(DESTDIR)$(bindir)/x264 $(DESTDIR)$(libdir)/pkgconfig/x264.pc
  118. etags: TAGS
  119. TAGS:
  120. etags $(SRCS)