Makefile
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:12k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. # Makefile for LAME 3.xx
  2. #
  3. # LAME is reported to work under:  
  4. # Linux (i86), NetBSD 1.3.2 (StrongARM), FreeBSD (i86)
  5. # Compaq Alpha(OSF, Linux, Tru64 Unix), Sun Solaris, SGI IRIX,
  6. # OS2 Warp, Macintosh PPC, BeOS, Amiga and even VC++ 
  7. UNAME = $(shell uname)
  8. ARCH = $(shell uname -m)
  9. # defaults:
  10. PGM = lame
  11. CC = gcc
  12. CC_OPTS =  -O
  13. GTK = 
  14. GTKLIBS = 
  15. SNDLIB = -DLAMESNDFILE
  16. LIBSNDFILE =  
  17. LIBS = -lm 
  18. MAKEDEP = -M
  19. BRHIST_SWITCH = 
  20. LIBTERMCAP = 
  21. RM = rm -f
  22. #CPP_OPTS = -DHAVEMPGLIB -DLAMEPARSE
  23. CPP_OPTS = -DLAMEPARSE
  24. INSTALL = ./install.sh
  25. INSTALLBINDIR = /usr/local/bin
  26. RANLIB = :
  27. ##########################################################################
  28. # To remove support for mp3 *decoding*, 
  29. # remove -DHAVEMPGLIB to CPP_OPTS
  30. ##########################################################################
  31. ##########################################################################
  32. # Define these to compile in code for the optional VBR bitrate histogram.  
  33. # Requires ncurses, but libtermcap also works.  
  34. # If you have any trouble, just dont define these
  35. ##########################################################################
  36. #BRHIST_SWITCH = -DBRHIST
  37. #LIBTERMCAP = -lncurses
  38. #LIBTERMCAP = -ltermcap
  39. ##########################################################################
  40. # SNDLIB =         no file i/o 
  41. # SNDLIB = -DLAMESNDFILE  to use internal LAME soundfile routines
  42. # SNDLIB = -DLIBSNDFILE   to use Erik de Castro Lopo's libsndfile 
  43. # http://www.zip.com.au/~erikd/libsndfile/
  44. # otherwise LAME can only read 16bit wav, aiff and pcm inputfiles.
  45. # Note: at present, libsndfile does not support input from stdin.  
  46. ##########################################################################
  47. #SNDLIB = -DLIBSNDFILE
  48. #LIBSNDFILE=-lsndfile 
  49. # if libsndfile is in a custom location, try:
  50. #LIBSNDFILE=-L $(LIBSNDHOME) -lsndfile  -I $(LIBSNDHOME)
  51. ##########################################################################
  52. # define these to use compile in support for the GTK mp3 frame analyzer
  53. # Requires  -DHAVEMPGLIB
  54. # and SNDLIB = -DLAME or -DLIBSNDFILE
  55. ##########################################################################
  56. #GTK = -DHAVEGTK `gtk-config --cflags`
  57. #GTKLIBS = `gtk-config --libs` 
  58. ##########################################################################
  59. # LINUX   
  60. ##########################################################################
  61. ifeq ($(UNAME),Linux)
  62. #  remove these lines if you dont have GTK, or dont want the GTK frame analyzer
  63.    GTK = -DHAVEGTK `gtk-config --cflags`
  64.    GTKLIBS = `gtk-config --libs` 
  65. # Comment out next 2 lines if you want to remove VBR histogram capability
  66. #   BRHIST_SWITCH = -DBRHIST
  67. #   LIBTERMCAP = -lncurses
  68. # suggested for gcc-2.7.x
  69. CC_OPTS =  -O3 -fomit-frame-pointer -funroll-loops -ffast-math  -finline-functions -Wall
  70. #  CC_OPTS =  -O9 -fomit-frame-pointer -fno-strength-reduce -mpentiumpro -ffast-math -finline-functions -funroll-loops -Wall -malign-double -g -march=pentiumpro -mfancy-math-387 -pipe 
  71. #  for debugging:
  72. #    CC_OPTS =  -UNDEBUG -O -Wall -g -DABORTFP 
  73. #  for lots of debugging:
  74. #   CC_OPTS =  -DDEBUG -UNDEBUG  -O -Wall -g -DABORTFP 
  75. # The following features are experimental code, 
  76. # so don't use them if you don't know exactly what you do! (RH 2000-01-30)
  77. #   FEATURES  = -DRH_QUALITY_CONTROL  # tuned VBR quality control
  78. #   FEATURES += -DRH_SIDE_VBR         # turns side channel reduction off (VBR)
  79. #   FEATURES += -DRH_SIDE_CBR         # turns side channel reduction off (CBR)
  80. #   FEATURES += -DRH_ATH              # max noise instead of average noise
  81. # these options for gcc-2.95.2 to produce fast code
  82. #   CC_OPTS = $(FEATURES)
  83. # -Wall -O9 -fomit-frame-pointer -march=pentium 
  84. # -finline-functions -fexpensive-optimizations 
  85. # -ffast-math -malign-double -mfancy-math-387 
  86. # -funroll-loops -funroll-all-loops -pipe -fschedule-insns2 
  87. # -fno-strength-reduce 
  88. ##########################################################################
  89. # LINUX on Digital/Compaq Alpha CPUs
  90. ##########################################################################
  91. ifeq ($(ARCH),alpha)
  92. # double is faster than float on Alpha
  93. CC_OPTS =       -O4 -Wall -fomit-frame-pointer -ffast-math -funroll-loops 
  94.                 -mfp-regs -fschedule-insns -fschedule-insns2 
  95.                 -finline-functions 
  96. #                -DFLOAT=double
  97. # add "-mcpu=21164a -Wa,-m21164a" to optimize for 21164a (ev56) CPU
  98. # Compaq's C Compiler
  99. #CC = ccc
  100. # Options for Compaq's C Compiler
  101. #CC_OPTS = -fast -Wall
  102. # standard Linux libm
  103. #LIBS = -lm  
  104. # optimized libffm (free fast math library)
  105. #LIBS = -lffm  
  106. # Compaq's fast math library
  107. LIBS    =       -lcpml 
  108. endif
  109. endif
  110. ##########################################################################
  111. # FreeBSD
  112. ##########################################################################
  113. ifeq ($(UNAME),FreeBSD)
  114. #  remove if you do not have GTK or do not want the GTK frame analyzer
  115.    GTK = -DHAVEGTK `gtk12-config --cflags`
  116.    GTKLIBS = `gtk12-config --libs` 
  117. # Comment out next 2 lines if you want to remove VBR histogram capability
  118.    BRHIST_SWITCH = -DBRHIST
  119.    LIBTERMCAP = -lncurses
  120. endif
  121. ##########################################################################
  122. # SunOS
  123. ##########################################################################
  124. ifeq ($(UNAME),SunOS) 
  125.    CC = cc
  126.    CC_OPTS = -O -xCC  
  127.    MAKEDEP = -xM
  128. endif
  129. ##########################################################################
  130. # SGI
  131. ##########################################################################
  132. ifeq ($(UNAME),IRIX64) 
  133.    CC = cc
  134. endif
  135. ##########################################################################
  136. # Compaq Alpha running Dec Unix (OSF)
  137. ##########################################################################
  138. ifeq ($(UNAME),OSF1)
  139.    CC = cc
  140.    CC_OPTS = -fast -O3 -std -g3 -non_shared
  141. endif
  142. ##########################################################################
  143. # BeOS
  144. ##########################################################################
  145. ifeq ($(UNAME),BeOS)
  146.    CC = $(BE_C_COMPILER)
  147.    LIBS =
  148. ifeq ($(ARCH),BePC)
  149.    CC_OPTS = -O9 -fomit-frame-pointer -march=pentium 
  150.    -mcpu=pentium -ffast-math -funroll-loops 
  151.    -fprofile-arcs -fbranch-probabilities
  152. else
  153.    CC_OPTS = -opt all
  154.    MAKEDEP = -make
  155. endif
  156. endif
  157. ###########################################################################
  158. # MOSXS (Rhapsody PPC)
  159. ###########################################################################
  160. ifeq ($(UNAME),Rhapsody)
  161.    CC = cc
  162.    LIBS =
  163.    CC_OPTS = -O9 -ffast-math -funroll-loops -fomit-frame-pointer
  164.    MAKEDEP = -make 
  165.    
  166. endif
  167. ###########################################################################
  168. # Mac OS X (Darwin)
  169. ###########################################################################
  170. ifeq ($(UNAME),Darwin)
  171.    CC = cc
  172.    LIBS =
  173.    CC_OPTS = -O3 -ffast-math -funroll-loops -fomit-frame-pointer
  174.    RANLIB = ranlib
  175.    
  176. endif
  177. ##########################################################################
  178. # OS/2
  179. ##########################################################################
  180. # Properly installed EMX runtime & development package is a prerequisite.
  181. # tools I used: make 3.76.1, uname 1.12, sed 2.05, PD-ksh 5.2.13
  182. #
  183. ##########################################################################
  184. ifeq ($(UNAME),OS/2)
  185.    SHELL=sh
  186.    CC = gcc
  187.    CC_OPTS = -O3
  188.    PGM = lame.exe
  189.    LIBS =
  190. # I use the following for slightly better performance on my Pentium-II
  191. # using pgcc-2.91.66:
  192. #   CC_OPTS = -O6 -ffast-math -funroll-loops -mpentiumpro -march=pentiumpro
  193. # Comment out next 2 lines if you want to remove VBR histogram capability
  194.    BRHIST_SWITCH = -DBRHIST
  195.    LIBTERMCAP = -ltermcap
  196. # Uncomment & inspect the 2 GTK lines to use MP3x GTK frame analyzer.
  197. # Properly installed XFree86/devlibs & GTK+ is a prerequisite.
  198. # The following works for me using Xfree86/OS2 3.3.5 and GTK+ 1.2.3:
  199. #   GTK = -DHAVEGTK -IC:/XFree86/include/gtk12 -Zmt -D__ST_MT_ERRNO__ -IC:/XFree86/include/glib12 -IC:/XFree86/include
  200. #   GTKLIBS = -LC:/XFree86/lib -Zmtd -Zsysv-signals -Zbin-files -lgtk12 -lgdk12 -lgmodule -lglib12 -lXext -lX11 -lshm -lbsd -lsocket -lm
  201. endif
  202. # 10/99 added -D__NO_MATH_INLINES to fix a bug in *all* versions of
  203. # gcc 2.8+ as of 10/99.  
  204. CC_SWITCHES = -DNDEBUG -D__NO_MATH_INLINES $(CC_OPTS) $(SNDLIB) $(GTK) $(BRHIST_SWITCH)
  205. c_sources = 
  206.         brhist.c 
  207. fft.c 
  208. formatBitstream.c 
  209. get_audio.c 
  210.         gpkplotting.c 
  211.         gtkanal.c 
  212.         id3tag.c 
  213. ieeefloat.c 
  214. l3bitstream.c 
  215.         lame.c 
  216.         newmdct.c 
  217.         parse.c 
  218. portableio.c 
  219. psymodel.c 
  220. quantize.c 
  221. quantize-pvt.c 
  222. reservoir.c 
  223. tables.c 
  224. takehiro.c 
  225. timestatus.c 
  226. util.c 
  227. vbrquantize.c 
  228.         VbrTag.c 
  229.         version.c 
  230. #        mpglib/common.c 
  231. #        mpglib/dct64_i386.c 
  232. #        mpglib/decode_i386.c 
  233. #        mpglib/layer3.c 
  234. #        mpglib/tabinit.c 
  235. #        mpglib/interface.c 
  236. #        mpglib/main.c 
  237. OBJ = $(c_sources:.c=.o)
  238. DEP = $(c_sources:.c=.d)
  239. %.o: %.c 
  240. $(CC) $(CPP_OPTS) $(CC_SWITCHES) -c $< -o $@
  241. %.d: %.c
  242. $(SHELL) -ec '$(CC) $(MAKEDEP)  $(CPP_OPTS) $(CC_SWITCHES)  $< | sed '''s;$*.o;& $@;g''' > $@'
  243. #$(PGM): main.o $(OBJ) Makefile 
  244. # $(CC) -o $(PGM)  main.o $(OBJ) $(LIBS) $(CPP_OPTS) $(LIBSNDFILE) $(GTKLIBS) $(LIBTERMCAP)
  245. all: $(PGM)
  246. $(PGM): main.o libmp3lame.a 
  247. $(CC) -o $(PGM)  main.o -L. -lmp3lame $(LIBS) $(LIBSNDFILE) $(GTKLIBS) $(LIBTERMCAP)
  248. mp3x: mp3x.o libmp3lame.a
  249. $(CC) -o mp3x mp3x.o  $(OBJ) $(LIBS) $(LIBSNDFILE) $(GTKLIBS) $(LIBTERMCAP)
  250. mp3rtp: rtp.o mp3rtp.o libmp3lame.a
  251. $(CC) -o mp3rtp mp3rtp.o rtp.o   $(OBJ) $(LIBS) $(LIBSNDFILE) $(GTKLIBS) $(LIBTERMCAP)
  252. libmp3lame.a:  $(OBJ) Makefile
  253. # cd libmp3lame
  254. # make libmp3lame
  255. ar cr libmp3lame.a  $(OBJ) 
  256. $(RANLIB) libmp3lame.a
  257. install: install-exec
  258. install-exec:
  259. $(INSTALL) $(PGM) $(INSTALLBINDIR)
  260. # @echo Installed $(PGM) in $(INSTALLBINDIR)
  261. maintainer-clean distclean clean mostlyclean:
  262. -$(RM) $(OBJ) $(DEP) $(PGM) main.o rtp.o mp3rtp mp3rtp.o 
  263.          mp3x.o mp3x libmp3lame.a 
  264. tags: TAGS
  265. TAGS: ${c_sources}
  266. etags -T ${c_sources}
  267. ifneq ($(MAKECMDGOALS),clean)
  268.   -include $(DEP)
  269. endif
  270. #
  271. #  testcase.mp3 is a 2926 byte file.  The first number output by
  272. #  wc is the number of bytes which differ between new output
  273. #  and 'official' results.  
  274. #
  275. #  Because of compilier options and effects of roundoff, the 
  276. #  number of bytes which are different may not be zero, but
  277. #  should be at most 30.
  278. #
  279. test: $(PGM)
  280. ./lame  --nores -h testcase.wav testcase.new.mp3
  281. cmp -l testcase.new.mp3 testcase.mp3 | wc
  282. testg: $(PGM)
  283. ./lame -g -h ../test/castanets.wav
  284. PACKAGE = mpeg4ip
  285. VERSION = `cat ../../../VERSION`
  286. top_distdir = ../../..
  287. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
  288. srcdir = .
  289. mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
  290. EXTRA_DIST = 
  291. amiga_mpega.c 
  292. API 
  293. brhist.h 
  294. COPYING 
  295. CVS 
  296. debugscalefac.c 
  297. encoder.h 
  298. fft.h 
  299. formatBitstream.h 
  300. get_audio.h 
  301. gpkplotting.h 
  302. gtkanal.h 
  303. HACKING 
  304. id3tag.h 
  305. ieeefloat.h 
  306. INSTALL 
  307. install.sh 
  308. l3bitstream.h 
  309. l3bitstream-pvt.h 
  310. l3side.h 
  311. lame60.dsp 
  312. lame60.dsw 
  313. lame.dsp 
  314. lame.dsw 
  315. lame.h 
  316. LICENSE 
  317. machine.h 
  318. main.c 
  319. Makefile 
  320. Makefile.MSVC 
  321. mlame 
  322. mp3rtp.c 
  323. mp3x.c 
  324. newmdct.h 
  325. portableio.h 
  326. PRESETS.draft 
  327. psymodel.h 
  328. quantize.h 
  329. quantize-pvt.h 
  330. README 
  331. README.WINGTK 
  332. reservoir.h 
  333. rtp.c 
  334. rtp.h 
  335. tables.h 
  336. testcase.mp3 
  337. testcase.wav 
  338. timestatus.h 
  339. TODO 
  340. USAGE 
  341. util.h 
  342. VbrTag.h 
  343. version.h 
  344. DISTFILES = $(c_sources) $(EXTRA_DIST)
  345. distdir: $(DISTFILES)
  346. @for file in $(DISTFILES); do 
  347.   if test -f $$file; then d=.; else d=$(srcdir); fi; 
  348.   dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; 
  349.   if test "$$dir" != "$$file" && test "$$dir" != "."; then 
  350.     $(mkinstalldirs) "$(distdir)/$$dir"; 
  351.   fi; 
  352.   if test -d $$d/$$file; then 
  353.     cp -pR $$d/$$file $(distdir) 
  354.     || exit 1; 
  355.   else 
  356.     test -f $(distdir)/$$file 
  357.     || cp -p $$d/$$file $(distdir)/$$file 
  358.     || exit 1; 
  359.   fi; 
  360. done