Makefile 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640
  1. #Daala video codec
  2. #Copyright (c) 2002-2012 Daala project contributors. All rights reserved.
  3. #
  4. #Redistribution and use in source and binary forms, with or without
  5. #modification, are permitted provided that the following conditions are met:
  6. #
  7. #- Redistributions of source code must retain the above copyright notice, this
  8. # list of conditions and the following disclaimer.
  9. #
  10. #- Redistributions in binary form must reproduce the above copyright notice,
  11. # this list of conditions and the following disclaimer in the documentation
  12. # and/or other materials provided with the distribution.
  13. #
  14. #THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS”
  15. #AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16. #IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  17. #DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
  18. #FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  19. #DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  20. #SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  21. #CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  22. #OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  23. #OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24. MAKEDEPEND = $(CC) -MM
  25. CINCLUDE = `pkg-config ogg libpng --cflags`
  26. CFLAGS = -Wall -Wno-parentheses -Wno-overlength-strings -Wno-long-long
  27. CFLAGS += -std=c89 -pedantic -fopenmp
  28. CFLAGS += -O3
  29. CFLAGS += -g
  30. CFLAGS += -DOD_ENABLE_ASSERTIONS
  31. # You could instead set this to HAVE_GETTIMEOFDAY if you don't have ftime.
  32. CFLAGS += -DHAVE_FTIME
  33. CINCLUDE := -I../../include ${CINCLUDE}
  34. LIBSRCDIR=../../src
  35. LOCALSRCDIR=..
  36. WORKDIR=build
  37. #png2y4m
  38. P2Y_LOCAL_CSOURCES = \
  39. kiss99.c \
  40. png2y4m.c
  41. P2Y_LIB_CSOURCES =
  42. P2Y_LDFLAGS = `pkg-config ogg libpng --libs`
  43. P2Y_OBJS:=${P2Y_LOCAL_CSOURCES} ${P2Y_LIB_CSOURCES}
  44. P2Y_OBJS:=${P2Y_OBJS:%.c=${WORKDIR}/%.o}
  45. P2Y_CSOURCES:=${P2Y_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${P2Y_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  46. P2Y_TARGET:=png2y4m
  47. #y4m2png
  48. Y2P_LOCAL_CSOURCES = \
  49. vidinput.c \
  50. y4m_input.c \
  51. y4m2png.c
  52. Y2P_LIB_CSOURCES =
  53. Y2P_LDFLAGS = `pkg-config ogg libpng --libs`
  54. Y2P_OBJS:=${Y2P_LOCAL_CSOURCES} ${Y2P_LIB_CSOURCES}
  55. Y2P_OBJS:=${Y2P_OBJS:%.c=${WORKDIR}/%.o}
  56. Y2P_CSOURCES:=${Y2P_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${Y2P_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  57. Y2P_TARGET:=y4m2png
  58. #dump_psnr
  59. PSNR_LOCAL_CSOURCES = \
  60. vidinput.c \
  61. y4m_input.c \
  62. dump_psnr.c
  63. PSNR_LIB_CSOURCES =
  64. PSNR_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  65. PSNR_OBJS:=${PSNR_LOCAL_CSOURCES} ${PSNR_LIB_CSOURCES}
  66. PSNR_OBJS:=${PSNR_OBJS:%.c=${WORKDIR}/%.o}
  67. PSNR_CSOURCES:=${PSNR_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${PSNR_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  68. PSNR_TARGET:=dump_psnr
  69. #dump_psnrhvs
  70. PSNRHVS_LOCAL_CSOURCES = \
  71. vidinput.c \
  72. y4m_input.c \
  73. dct.c \
  74. dump_psnrhvs.c \
  75. tf.c \
  76. internal.c
  77. PSNRHVS_LIB_CSOURCES =
  78. PSNRHVS_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  79. PSNRHVS_OBJS:=${PSNRHVS_LOCAL_CSOURCES} ${PSNRHVS_LIB_CSOURCES}
  80. PSNRHVS_OBJS:=${PSNRHVS_OBJS:%.c=${WORKDIR}/%.o}
  81. PSNRHVS_CSOURCES:=${PSNRHVS_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${PSNRHVS_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  82. PSNRHVS_TARGET:=dump_psnrhvs
  83. #block_size_analysis
  84. BSIZE_LOCAL_CSOURCES = \
  85. block_size_analysis.c \
  86. block_size.c \
  87. block_size_enc.c \
  88. generic_encoder.c \
  89. generic_code.c \
  90. laplace_encoder.c \
  91. logging.c \
  92. laplace_tables.c \
  93. vidinput.c \
  94. y4m_input.c \
  95. dct.c \
  96. internal.c \
  97. entcode.c \
  98. entenc.c \
  99. filter.c \
  100. switch_table.c \
  101. tf.c
  102. BSIZE_LIB_CSOURCES =
  103. BSIZE_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  104. BSIZE_OBJS:=${BSIZE_LOCAL_CSOURCES} ${BSIZE_LIB_CSOURCES}
  105. BSIZE_OBJS:=${BSIZE_OBJS:%.c=${WORKDIR}/%.o}
  106. BSIZE_CSOURCES:=${BSIZE_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${BSIZE_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  107. BSIZE_TARGET:=block_size_analysis
  108. #plot_intra_maps
  109. PIM_LOCAL_CSOURCES = \
  110. image.c \
  111. plot_intra_maps.c \
  112. intra_fit_tools.c \
  113. vidinput.c \
  114. y4m_input.c \
  115. PIM_LIB_CSOURCES =
  116. PIM_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  117. PIM_OBJS:=${PIM_LOCAL_CSOURCES} ${PIM_LIB_CSOURCES}
  118. PIM_OBJS:=${PIM_OBJS:%.c=${WORKDIR}/%.o}
  119. PIM_CSOURCES:=${PIM_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${PIM_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  120. PIM_TARGET:=plot_intra_maps
  121. #init_intra_maps
  122. IIM_LOCAL_CSOURCES = \
  123. init_intra_maps.c \
  124. intra_fit_tools.c \
  125. vidinput.c \
  126. y4m_input.c \
  127. IIM_LIB_CSOURCES =
  128. IIM_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  129. IIM_OBJS:=${IIM_LOCAL_CSOURCES} ${IIM_LIB_CSOURCES}
  130. IIM_OBJS:=${IIM_OBJS:%.c=${WORKDIR}/%.o}
  131. IIM_CSOURCES:=${IIM_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IIM_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  132. IIM_TARGET:=init_intra_maps
  133. #intra_stats
  134. IS_LOCAL_CSOURCES = \
  135. intra_stats.c \
  136. intra_fit_tools.c \
  137. od_covmat.c \
  138. od_filter.c \
  139. od_intra.c \
  140. od_intra_data.c \
  141. image_tools.c \
  142. stats_tools.c \
  143. vidinput.c \
  144. y4m_input.c \
  145. image.c
  146. IS_LIB_CSOURCES = \
  147. block_size.c \
  148. block_size_enc.c \
  149. generic_encoder.c \
  150. generic_code.c \
  151. laplace_encoder.c \
  152. logging.c \
  153. laplace_tables.c \
  154. entenc.c \
  155. entcode.c \
  156. filter.c \
  157. dct.c \
  158. intra.c \
  159. switch_table.c \
  160. tf.c \
  161. internal.c \
  162. intradata.c
  163. IS_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  164. IS_OBJS:=${IS_LOCAL_CSOURCES} ${IS_LIB_CSOURCES}
  165. IS_OBJS:=${IS_OBJS:%.c=${WORKDIR}/%.o}
  166. IS_CSOURCES:=${IS_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IS_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  167. IS_TARGET:=intra_stats
  168. # cfl_stats
  169. CS_LOCAL_CSOURCES = \
  170. cfl_stats.c \
  171. intra_fit_tools.c \
  172. od_covmat.c \
  173. od_filter.c \
  174. od_intra.c \
  175. od_intra_data.c \
  176. image_tools.c \
  177. stats_tools.c \
  178. vidinput.c \
  179. y4m_input.c \
  180. image.c
  181. CS_LIB_CSOURCES = \
  182. block_size.c \
  183. block_size_enc.c \
  184. generic_encoder.c \
  185. generic_code.c \
  186. laplace_encoder.c \
  187. logging.c \
  188. laplace_tables.c \
  189. entenc.c \
  190. entcode.c \
  191. filter.c \
  192. dct.c \
  193. intra.c \
  194. switch_table.c \
  195. tf.c \
  196. internal.c \
  197. intradata.c
  198. CS_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  199. CS_OBJS:=${CS_LOCAL_CSOURCES} ${CS_LIB_CSOURCES}
  200. CS_OBJS:=${CS_OBJS:%.c=${WORKDIR}/%.o}
  201. CC_CSOURCES:=${CS_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${CS_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  202. CS_TARGET:=cfl_stats
  203. #intra_pred
  204. IP_LOCAL_CSOURCES = \
  205. intra_pred.c \
  206. intra_fit_tools.c \
  207. od_covmat.c \
  208. od_filter.c \
  209. od_intra.c \
  210. od_intra_data.c \
  211. image_tools.c \
  212. stats_tools.c \
  213. vidinput.c \
  214. y4m_input.c \
  215. image.c \
  216. svd.c \
  217. cholesky.c
  218. IP_LIB_CSOURCES = \
  219. block_size.c \
  220. block_size_enc.c \
  221. generic_encoder.c \
  222. generic_code.c \
  223. laplace_encoder.c \
  224. logging.c \
  225. laplace_tables.c \
  226. entenc.c \
  227. entcode.c \
  228. filter.c \
  229. dct.c \
  230. intra.c \
  231. intradata.c \
  232. internal.c \
  233. switch_table.c \
  234. tf.c
  235. IP_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  236. IP_OBJS:=${IP_LOCAL_CSOURCES} ${IP_LIB_CSOURCES}
  237. IP_OBJS:=${IP_OBJS:%.c=${WORKDIR}/%.o}
  238. IP_CSOURCES:=${IP_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IP_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  239. IP_TARGET:=intra_pred
  240. #intra_trace
  241. IT_LOCAL_CSOURCES = \
  242. intra_trace.c \
  243. intra_fit_tools.c \
  244. od_covmat.c \
  245. od_filter.c \
  246. od_intra.c \
  247. od_intra_data.c \
  248. image_tools.c \
  249. stats_tools.c \
  250. trans_tools.c \
  251. vidinput.c \
  252. y4m_input.c \
  253. image.c
  254. IT_LIB_CSOURCES = \
  255. block_size.c \
  256. block_size_enc.c \
  257. generic_encoder.c \
  258. generic_code.c \
  259. laplace_encoder.c \
  260. logging.c \
  261. laplace_tables.c \
  262. entenc.c \
  263. entcode.c \
  264. filter.c \
  265. dct.c \
  266. intra.c \
  267. switch_table.c \
  268. tf.c \
  269. internal.c \
  270. intradata.c
  271. IT_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  272. IT_OBJS:=${IT_LOCAL_CSOURCES} ${IT_LIB_CSOURCES}
  273. IT_OBJS:=${IT_OBJS:%.c=${WORKDIR}/%.o}
  274. IT_CSOURCES:=${IT_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IT_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  275. IT_TARGET:=intra_trace
  276. #trans
  277. T_LOCAL_CSOURCES = \
  278. trans.c \
  279. internal.c \
  280. intra_fit_tools.c \
  281. vidinput.c \
  282. y4m_input.c \
  283. od_covmat.c \
  284. od_filter.c \
  285. od_intra.c \
  286. od_intra_data.c \
  287. stats_tools.c \
  288. trans_tools.c \
  289. int_search.c \
  290. trans_data.c \
  291. kiss99.c \
  292. image.c \
  293. svd.c \
  294. cholesky.c \
  295. tf.c
  296. T_LIB_CSOURCES = \
  297. filter.c \
  298. dct.c \
  299. intradata.c
  300. T_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  301. T_OBJS:=${T_LOCAL_CSOURCES} ${T_LIB_CSOURCES}
  302. T_OBJS:=${T_OBJS:%.c=${WORKDIR}/%.o}
  303. T_CSOURCES:=${T_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${T_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  304. T_TARGET:=trans
  305. #trans_gain
  306. TG_LOCAL_CSOURCES = \
  307. trans_gain.c \
  308. internal.c \
  309. vidinput.c \
  310. y4m_input.c \
  311. od_filter.c \
  312. trans_tools.c \
  313. tf.c
  314. TG_LIB_CSOURCES = \
  315. filter.c \
  316. dct.c \
  317. intradata.c
  318. TG_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  319. TG_OBJS:=${TG_LOCAL_CSOURCES} ${TG_LIB_CSOURCES}
  320. TG_OBJS:=${TG_OBJS:%.c=${WORKDIR}/%.o}
  321. TG_CSOURCES:=${TG_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${TG_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  322. TG_TARGET:=trans_gain
  323. #trans2d
  324. T2D_LOCAL_CSOURCES = \
  325. trans2d.c \
  326. internal.c \
  327. intra_fit_tools.c \
  328. vidinput.c \
  329. y4m_input.c \
  330. od_covmat.c \
  331. od_filter.c \
  332. od_intra.c \
  333. od_intra_data.c \
  334. stats_tools.c \
  335. trans_tools.c \
  336. int_search.c \
  337. trans_data.c \
  338. kiss99.c \
  339. image.c \
  340. svd.c \
  341. cholesky.c \
  342. tf.c
  343. T2D_LIB_CSOURCES = \
  344. filter.c \
  345. dct.c \
  346. intradata.c
  347. T2D_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  348. T2D_OBJS:=${T2D_LOCAL_CSOURCES} ${T2D_LIB_CSOURCES}
  349. T2D_OBJS:=${T2D_OBJS:%.c=${WORKDIR}/%.o}
  350. T2D_CSOURCES:=${T2D_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${T2D_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  351. T2D_TARGET:=trans2d
  352. #init_intra_xform
  353. IIX_LOCAL_CSOURCES = \
  354. cholesky.c \
  355. init_intra_xform.c \
  356. intra_fit_tools.c \
  357. svd.c \
  358. vidinput.c \
  359. y4m_input.c \
  360. IIX_LIB_CSOURCES = \
  361. filter.c \
  362. dct.c \
  363. intra.c \
  364. tf.c \
  365. internal.c \
  366. intradata.c
  367. IIX_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  368. IIX_OBJS:=${IIX_LOCAL_CSOURCES} ${IIX_LIB_CSOURCES}
  369. IIX_OBJS:=${IIX_OBJS:%.c=${WORKDIR}/%.o}
  370. IIX_CSOURCES:=${IIX_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IIX_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  371. IIX_TARGET:=init_intra_xform
  372. #gen_cdf
  373. GEN_CDF_LOCAL_CSOURCES = \
  374. gen_cdf.c
  375. GEN_CDF_LIB_CSOURCES =
  376. GEN_CDF_LDFLAGS = -lm
  377. GEN_CDF_OBJS:=${GEN_CDF_LOCAL_CSOURCES} ${GEN_CDF_LIB_CSOURCES}
  378. GEN_CDF_OBJS:=${GEN_CDF_OBJS:%.c=${WORKDIR}/%.o}
  379. GEN_CDF_CSOURCES:=${GEN_CDF_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  380. ${GEN_CDF_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  381. GEN_CDF_TARGET:=gen_cdf
  382. #gen_laplace_tables
  383. GEN_LAPLACE_TABLES_LOCAL_CSOURCES = \
  384. gen_laplace_tables.c
  385. GEN_LAPLACE_TABLES_LIB_CSOURCES =
  386. GEN_LAPLACE_TABLES_LDFLAGS = -lm
  387. GEN_LAPLACE_TABLES_OBJS:=${GEN_LAPLACE_TABLES_LOCAL_CSOURCES} ${GEN_LAPLACE_TABLES_LIB_CSOURCES}
  388. GEN_LAPLACE_TABLES_OBJS:=${GEN_LAPLACE_TABLES_OBJS:%.c=${WORKDIR}/%.o}
  389. GEN_LAPLACE_TABLES_CSOURCES:= \
  390. ${GEN_LAPLACE_TABLES_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  391. ${GEN_LAPLACE_TABLES_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  392. GEN_LAPLACE_TABLES_TARGET:=gen_laplace_tables
  393. #bjontegaard
  394. BD_LOCAL_CSOURCES = \
  395. bjontegaard.c \
  396. cholesky.c \
  397. svd.c \
  398. qr.c
  399. BD_LIB_CSOURCES =
  400. BD_LDFLAGS = -lm
  401. BD_OBJS:=${BD_LOCAL_CSOURCES} ${BD_LIB_CSOURCES}
  402. BD_OBJS:=${BD_OBJS:%.c=${WORKDIR}/%.o}
  403. BD_CSOURCES:=${BD_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  404. ${BD_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  405. BD_TARGET:=bjontegaard
  406. #yuvjpeg
  407. YJ_LOCAL_CSOURCES = \
  408. yuvjpeg.c
  409. YJ_LIB_CSOURCES =
  410. YJ_LDFLAGS = -ljpeg
  411. YJ_OBJS:=${YJ_LOCAL_CSOURCES} ${YJ_LIB_CSOURCES}
  412. YJ_OBJS:=${YJ_OBJS:%.c=${WORKDIR}/%.o}
  413. YJ_CSOURCES:=${YJ_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  414. ${YJ_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  415. YJ_TARGET:=yuvjpeg
  416. #jpegyuv
  417. JY_LOCAL_CSOURCES = \
  418. jpegyuv.c
  419. JY_LIB_CSOURCES =
  420. JY_LDFLAGS = -ljpeg
  421. JY_OBJS:=${JY_LOCAL_CSOURCES} ${JY_LIB_CSOURCES}
  422. JY_OBJS:=${JY_OBJS:%.c=${WORKDIR}/%.o}
  423. JY_CSOURCES:=${JY_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  424. ${JY_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  425. JY_TARGET:=jpegyuv
  426. ALL_OBJS:=${P2Y_OBJS} ${Y2P_OBJS} ${PSNR_OBJS} ${PSNRHVS_OBJS} ${PIM_OBJS} ${IIM_OBJS} ${IIX_OBJS} \
  427. ${GEN_CDF_OBJS} ${GEN_LAPLACE_TABLES_OBJS} ${IS_OBJS} ${IP_OBJS} ${IT_OBJS} ${T_OBJS} \
  428. ${TG_OBJS} ${T2D_OBJS} ${BSIZE_OBJS} ${BD_OBJS} ${YJ_OBJS} ${JY_OBJS}
  429. ALL_ASMS:=${ALL_OBJS:%.o=%.s}
  430. ALL_DEPS:=${ALL_OBJS:%.o=%.d}
  431. ALL_TARGETS:=${P2Y_TARGET} ${Y2P_TARGET} ${PSNR_TARGET} ${PSNRHVS_TARGET} \
  432. ${PIM_TARGET} ${IIM_TARGET} ${IIX_TARGET} ${GEN_CDF_TARGET} \
  433. ${GEN_LAPLACE_TABLES_TARGET} ${IS_TARGET} ${IP_TARGET} ${IT_TARGET} \
  434. ${T_TARGET} ${TG_TARGET} ${T2D_TARGET} ${BSIZE_TARGET} ${BD_TARGET} \
  435. ${YJ_TARGET} ${JY_TARGET}
  436. all: ${ALL_TARGETS}
  437. asm: ${ALL_ASM}
  438. check: all
  439. clean:
  440. ${RM} ${ALL_ASM} ${ALL_OBJS} ${ALL_DEPS}
  441. ${RM} ${ALL_TARGETS}
  442. -rmdir ${WORKDIR}
  443. ${BSIZE_TARGET}: ${BSIZE_OBJS}
  444. ${CC} ${CFLAGS} ${BSIZE_OBJS} ${BSIZE_LDFLAGS} -o $@
  445. ${P2Y_TARGET}: ${P2Y_OBJS}
  446. ${CC} ${CFLAGS} ${P2Y_OBJS} ${P2Y_LDFLAGS} -o $@
  447. ${Y2P_TARGET}: ${Y2P_OBJS}
  448. ${CC} ${CFLAGS} ${Y2P_OBJS} ${Y2P_LDFLAGS} -o $@
  449. ${PSNR_TARGET}: ${PSNR_OBJS}
  450. ${CC} ${CFLAGS} ${PSNR_OBJS} ${PSNR_LDFLAGS} -o $@
  451. ${PSNRHVS_TARGET}: ${PSNRHVS_OBJS}
  452. ${CC} ${CFLAGS} ${PSNRHVS_OBJS} ${PSNRHVS_LDFLAGS} -o $@
  453. ${PIM_TARGET}: ${PIM_OBJS}
  454. ${CC} ${CFLAGS} ${PIM_OBJS} ${PIM_LDFLAGS} -o $@
  455. ${IIM_TARGET}: ${IIM_OBJS}
  456. ${CC} ${CFLAGS} ${IIM_OBJS} ${IIM_LDFLAGS} -o $@
  457. ${IS_TARGET}: ${IS_OBJS}
  458. ${CC} ${CFLAGS} ${IS_OBJS} ${IS_LDFLAGS} -o $@
  459. ${IP_TARGET}: ${IP_OBJS}
  460. ${CC} ${CFLAGS} ${IP_OBJS} ${IP_LDFLAGS} -o $@
  461. ${IT_TARGET}: ${IT_OBJS}
  462. ${CC} ${CFLAGS} ${IT_OBJS} ${IT_LDFLAGS} -o $@
  463. ${T_TARGET}: ${T_OBJS}
  464. ${CC} ${CFLAGS} ${T_OBJS} ${T_LDFLAGS} -o $@
  465. ${TG_TARGET}: ${TG_OBJS}
  466. ${CC} ${CFLAGS} ${TG_OBJS} ${TG_LDFLAGS} -o $@
  467. ${T2D_TARGET}: ${T2D_OBJS}
  468. ${CC} ${CFLAGS} ${T2D_OBJS} ${T2D_LDFLAGS} -o $@
  469. ${CS_TARGET}: ${CS_OBJS}
  470. ${CC} ${CFLAGS} ${CS_OBJS} ${CS_LDFLAGS} -o $@
  471. ${IIX_TARGET}: ${IIX_OBJS}
  472. ${CC} ${CFLAGS} ${IIX_OBJS} ${IIX_LDFLAGS} -o $@
  473. ${GEN_CDF_TARGET}: ${GEN_CDF_OBJS}
  474. ${CC} ${CFLAGS} ${GEN_CDF_OBJS} ${GEN_CDF_LDFLAGS} -o $@
  475. ${GEN_LAPLACE_TABLES_TARGET}: ${GEN_LAPLACE_TABLES_OBJS}
  476. ${CC} ${CFLAGS} ${GEN_LAPLACE_TABLES_OBJS} ${GEN_LAPLACE_TABLES_LDFLAGS} -o $@
  477. ${BD_TARGET}: ${BD_OBJS}
  478. ${CC} ${CFLAGS} ${BD_OBJS} ${BD_LDFLAGS} -o $@
  479. ${YJ_TARGET}: ${YJ_OBJS}
  480. ${CC} ${CFLAGS} ${YJ_OBJS} ${YJ_LDFLAGS} -o $@
  481. ${JY_TARGET}: ${JY_OBJS}
  482. ${CC} ${CFLAGS} ${JY_OBJS} ${JY_LDFLAGS} -o $@
  483. ${ALL_OBJS} ${ALL_ASMS} ${ALL_DEPS} ${ALL_TARGETS}: Makefile
  484. .PHONY: all asm clean check
  485. ${WORKDIR}/%.d: ${LIBSRCDIR}/%.c
  486. mkdir -p ${dir $@}
  487. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.o} > $@
  488. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.s} >> $@
  489. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT $@ >> $@
  490. ${WORKDIR}/%.s: ${LIBSRCDIR}/%.c
  491. mkdir -p ${dir $@}
  492. ${CC} ${CINCLUDE} ${CFLAGS} -S -o $@ $<
  493. ${WORKDIR}/%.o: ${LIBSRCDIR}/%.c
  494. mkdir -p ${dir $@}
  495. ${CC} ${CINCLUDE} ${CFLAGS} -c -o $@ $<
  496. ${WORKDIR}/%.d: ${LOCALSRCDIR}/%.c
  497. mkdir -p ${dir $@}
  498. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.o} > $@
  499. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.s} >> $@
  500. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT $@ >> $@
  501. ${WORKDIR}/%.s: ${LOCALSRCDIR}/%.c
  502. mkdir -p ${dir $@}
  503. ${CC} ${CINCLUDE} ${CFLAGS} -S -o $@ $<
  504. ${WORKDIR}/%.o: ${LOCALSRCDIR}/%.c
  505. mkdir -p ${dir $@}
  506. ${CC} ${CINCLUDE} ${CFLAGS} -c -o $@ $<
  507. # Include header file dependencies
  508. include ${ALL_DEPS}