Makefile.vc 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. #
  2. # Options:
  3. # prefix=\path\to\install
  4. #
  5. # Compiling: nmake -f Makefile.vc
  6. # Installing: nmake -f Makefile.vc prefix=\path\to\x install
  7. #
  8. VERSION=0.1.5
  9. # Linker and librarian commands
  10. LD = link
  11. AR = lib
  12. !IFDEF HOME
  13. # In case we are using a cross compiler shell.
  14. MKDIR_FLAGS = -p
  15. !ENDIF
  16. AM_CPPFLAGS = \
  17. -Iwin32 \
  18. -IlibAACdec/include \
  19. -IlibAACenc/include \
  20. -IlibSBRdec/include \
  21. -IlibSBRenc/include \
  22. -IlibMpegTPDec/include \
  23. -IlibMpegTPEnc/include \
  24. -IlibSYS/include \
  25. -IlibFDK/include \
  26. -IlibPCMutils/include
  27. AACDEC_SRC = \
  28. libAACdec/src/aacdec_drc.cpp \
  29. libAACdec/src/aacdec_hcr.cpp \
  30. libAACdec/src/aacdecoder.cpp \
  31. libAACdec/src/aacdec_pns.cpp \
  32. libAACdec/src/aac_ram.cpp \
  33. libAACdec/src/block.cpp \
  34. libAACdec/src/channelinfo.cpp \
  35. libAACdec/src/ldfiltbank.cpp \
  36. libAACdec/src/rvlcbit.cpp \
  37. libAACdec/src/rvlc.cpp \
  38. libAACdec/src/aacdec_hcr_bit.cpp \
  39. libAACdec/src/aacdec_hcrs.cpp \
  40. libAACdec/src/aacdecoder_lib.cpp \
  41. libAACdec/src/aacdec_tns.cpp \
  42. libAACdec/src/aac_rom.cpp \
  43. libAACdec/src/channel.cpp \
  44. libAACdec/src/conceal.cpp \
  45. libAACdec/src/pulsedata.cpp \
  46. libAACdec/src/rvlcconceal.cpp \
  47. libAACdec/src/stereo.cpp
  48. AACENC_SRC = \
  49. libAACenc/src/aacenc.cpp \
  50. libAACenc/src/aacEnc_ram.cpp \
  51. libAACenc/src/band_nrg.cpp \
  52. libAACenc/src/block_switch.cpp \
  53. libAACenc/src/grp_data.cpp \
  54. libAACenc/src/metadata_main.cpp \
  55. libAACenc/src/pre_echo_control.cpp \
  56. libAACenc/src/quantize.cpp \
  57. libAACenc/src/tonality.cpp \
  58. libAACenc/src/aacEnc_rom.cpp \
  59. libAACenc/src/bandwidth.cpp \
  60. libAACenc/src/channel_map.cpp \
  61. libAACenc/src/intensity.cpp \
  62. libAACenc/src/ms_stereo.cpp \
  63. libAACenc/src/psy_configuration.cpp \
  64. libAACenc/src/sf_estim.cpp \
  65. libAACenc/src/transform.cpp \
  66. libAACenc/src/aacenc_lib.cpp \
  67. libAACenc/src/aacenc_tns.cpp \
  68. libAACenc/src/bit_cnt.cpp \
  69. libAACenc/src/chaosmeasure.cpp \
  70. libAACenc/src/line_pe.cpp \
  71. libAACenc/src/noisedet.cpp \
  72. libAACenc/src/psy_main.cpp \
  73. libAACenc/src/spreading.cpp \
  74. libAACenc/src/aacenc_pns.cpp \
  75. libAACenc/src/adj_thr.cpp \
  76. libAACenc/src/bitenc.cpp \
  77. libAACenc/src/dyn_bits.cpp \
  78. libAACenc/src/metadata_compressor.cpp \
  79. libAACenc/src/pnsparam.cpp \
  80. libAACenc/src/qc_main.cpp
  81. FDK_SRC = \
  82. libFDK/src/autocorr2nd.cpp \
  83. libFDK/src/dct.cpp \
  84. libFDK/src/FDK_bitbuffer.cpp \
  85. libFDK/src/FDK_core.cpp \
  86. libFDK/src/FDK_crc.cpp \
  87. libFDK/src/FDK_hybrid.cpp \
  88. libFDK/src/FDK_tools_rom.cpp \
  89. libFDK/src/FDK_trigFcts.cpp \
  90. libFDK/src/fft.cpp \
  91. libFDK/src/fft_rad2.cpp \
  92. libFDK/src/fixpoint_math.cpp \
  93. libFDK/src/mdct.cpp \
  94. libFDK/src/qmf.cpp \
  95. libFDK/src/scale.cpp \
  96. MPEGTPDEC_SRC = \
  97. libMpegTPDec/src/tpdec_adif.cpp \
  98. libMpegTPDec/src/tpdec_adts.cpp \
  99. libMpegTPDec/src/tpdec_asc.cpp \
  100. libMpegTPDec/src/tpdec_drm.cpp \
  101. libMpegTPDec/src/tpdec_latm.cpp \
  102. libMpegTPDec/src/tpdec_lib.cpp
  103. MPEGTPENC_SRC = \
  104. libMpegTPEnc/src/tpenc_adif.cpp \
  105. libMpegTPEnc/src/tpenc_adts.cpp \
  106. libMpegTPEnc/src/tpenc_asc.cpp \
  107. libMpegTPEnc/src/tpenc_latm.cpp \
  108. libMpegTPEnc/src/tpenc_lib.cpp
  109. PCMUTILS_SRC = \
  110. libPCMutils/src/limiter.cpp \
  111. libPCMutils/src/pcmutils_lib.cpp
  112. SBRDEC_SRC = \
  113. libSBRdec/src/env_calc.cpp \
  114. libSBRdec/src/env_dec.cpp \
  115. libSBRdec/src/env_extr.cpp \
  116. libSBRdec/src/huff_dec.cpp \
  117. libSBRdec/src/lpp_tran.cpp \
  118. libSBRdec/src/psbitdec.cpp \
  119. libSBRdec/src/psdec.cpp \
  120. libSBRdec/src/psdec_hybrid.cpp \
  121. libSBRdec/src/sbr_crc.cpp \
  122. libSBRdec/src/sbr_deb.cpp \
  123. libSBRdec/src/sbr_dec.cpp \
  124. libSBRdec/src/sbrdec_drc.cpp \
  125. libSBRdec/src/sbrdec_freq_sca.cpp \
  126. libSBRdec/src/sbrdecoder.cpp \
  127. libSBRdec/src/sbr_ram.cpp \
  128. libSBRdec/src/sbr_rom.cpp
  129. SBRENC_SRC = \
  130. libSBRenc/src/bit_sbr.cpp \
  131. libSBRenc/src/env_bit.cpp \
  132. libSBRenc/src/fram_gen.cpp \
  133. libSBRenc/src/mh_det.cpp \
  134. libSBRenc/src/ps_bitenc.cpp \
  135. libSBRenc/src/ps_encode.cpp \
  136. libSBRenc/src/resampler.cpp \
  137. libSBRenc/src/sbr_encoder.cpp \
  138. libSBRenc/src/sbr_ram.cpp \
  139. libSBRenc/src/ton_corr.cpp \
  140. libSBRenc/src/code_env.cpp \
  141. libSBRenc/src/env_est.cpp \
  142. libSBRenc/src/invf_est.cpp \
  143. libSBRenc/src/nf_est.cpp \
  144. libSBRenc/src/ps_main.cpp \
  145. libSBRenc/src/sbrenc_freq_sca.cpp \
  146. libSBRenc/src/sbr_misc.cpp \
  147. libSBRenc/src/sbr_rom.cpp \
  148. libSBRenc/src/tran_det.cpp
  149. SYS_SRC = \
  150. libSYS/src/cmdl_parser.cpp \
  151. libSYS/src/conv_string.cpp \
  152. libSYS/src/genericStds.cpp \
  153. libSYS/src/wav_file.cpp
  154. libfdk_aac_SOURCES = \
  155. $(AACDEC_SRC) $(AACENC_SRC) \
  156. $(MPEGTPDEC_SRC) $(MPEGTPENC_SRC) \
  157. $(SBRDEC_SRC) $(SBRENC_SRC) \
  158. $(PCMUTILS_SRC) $(FDK_SRC) $(SYS_SRC)
  159. aac_enc_SOURCES = aac-enc.c wavreader.c
  160. prefix = \usr\local
  161. prefix_win = $(prefix:/=\) # In case we are using MSYS or MinGW.
  162. CFLAGS = /nologo /W3 /Ox /MT /EHsc /Dinline=__inline $(TARGET_FLAGS) $(AM_CPPFLAGS) $(XCFLAGS)
  163. CXXFLAGS = $(CFLAGS)
  164. CPPFLAGS = $(CFLAGS)
  165. LDFLAGS = -nologo $(XLDFLAGS)
  166. ARFLAGS = -nologo
  167. incdir = $(prefix_win)\include\fdk-aac
  168. bindir = $(prefix_win)\bin
  169. libdir = $(prefix_win)\lib
  170. INST_DIRS = $(bindir) $(incdir) $(libdir)
  171. LIB_DEF = fdk-aac.def
  172. STATIC_LIB = fdk-aac.lib
  173. SHARED_LIB = fdk-aac-1.dll
  174. IMP_LIB = fdk-aac.dll.lib
  175. AAC_ENC_OBJS = $(aac_enc_SOURCES:.c=.obj)
  176. FDK_OBJS = $(libfdk_aac_SOURCES:.cpp=.obj)
  177. PROGS = aac-enc.exe
  178. all: $(LIB_DEF) $(STATIC_LIB) $(SHARED_LIB) $(IMP_LIB) $(PROGS)
  179. clean:
  180. del /f $(LIB_DEF) $(STATIC_LIB) $(SHARED_LIB) $(IMP_LIB) $(PROGS) libfdk-aac.pc 2>NUL
  181. del /f *.obj *.exp 2>NUL
  182. del /f libAACdec\src\*.obj 2>NUL
  183. del /f libAACenc\src\*.obj 2>NUL
  184. del /f libFDK\src\*.obj 2>NUL
  185. del /f libMpegTPDec\src\*.obj 2>NUL
  186. del /f libMpegTPEnc\src\*.obj 2>NUL
  187. del /f libPCMutils\src\*.obj 2>NUL
  188. del /f libSBRdec\src\*.obj 2>NUL
  189. del /f libSBRenc\src\*.obj 2>NUL
  190. del /f libSYS\src\*.obj 2>NUL
  191. install: $(INST_DIRS)
  192. copy libAACdec\include\aacdecoder_lib.h $(incdir)
  193. copy libAACenc\include\aacenc_lib.h $(incdir)
  194. copy libSYS\include\FDK_audio.h $(incdir)
  195. copy libSYS\include\genericStds.h $(incdir)
  196. copy libSYS\include\machine_type.h $(incdir)
  197. copy $(STATIC_LIB) $(libdir)
  198. copy $(IMP_LIB) $(libdir)
  199. copy $(SHARED_LIB) $(bindir)
  200. copy $(PROGS) $(bindir)
  201. copy $(LIB_DEF) $(libdir)
  202. $(INST_DIRS):
  203. @mkdir $(MKDIR_FLAGS) $@
  204. $(STATIC_LIB): $(FDK_OBJS)
  205. $(AR) $(ARFLAGS) -out:$@ $(FDK_OBJS)
  206. $(IMP_LIB): $(SHARED_LIB)
  207. $(SHARED_LIB): $(FDK_OBJS)
  208. $(LD) $(LDFLAGS) -OUT:$@ -DEF:$(LIB_DEF) -implib:$(IMP_LIB) -DLL $(FDK_OBJS)
  209. $(PROGS): $(AAC_ENC_OBJS)
  210. $(LD) $(LDFLAGS) -out:$@ $(AAC_ENC_OBJS) $(STATIC_LIB)
  211. .cpp.obj:
  212. $(CXX) $(CXXFLAGS) -c -Fo$@ $<
  213. $(LIB_DEF):
  214. @echo EXPORTS > $(LIB_DEF)
  215. @type fdk-aac.sym >> $(LIB_DEF)