Makefile 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  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. PSNRHVS_LIB_CSOURCES =
  76. PSNRHVS_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  77. PSNRHVS_OBJS:=${PSNRHVS_LOCAL_CSOURCES} ${PSNRHVS_LIB_CSOURCES}
  78. PSNRHVS_OBJS:=${PSNRHVS_OBJS:%.c=${WORKDIR}/%.o}
  79. PSNRHVS_CSOURCES:=${PSNRHVS_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${PSNRHVS_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  80. PSNRHVS_TARGET:=dump_psnrhvs
  81. #block_size_analysis
  82. BSIZE_LOCAL_CSOURCES = \
  83. block_size_analysis.c \
  84. block_size.c \
  85. block_size_enc.c \
  86. generic_encoder.c \
  87. generic_code.c \
  88. laplace_encoder.c \
  89. logging.c \
  90. laplace_tables.c \
  91. vidinput.c \
  92. y4m_input.c \
  93. dct.c \
  94. internal.c \
  95. entcode.c \
  96. entenc.c \
  97. filter.c \
  98. switch_table.c
  99. BSIZE_LIB_CSOURCES =
  100. BSIZE_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  101. BSIZE_OBJS:=${BSIZE_LOCAL_CSOURCES} ${BSIZE_LIB_CSOURCES}
  102. BSIZE_OBJS:=${BSIZE_OBJS:%.c=${WORKDIR}/%.o}
  103. BSIZE_CSOURCES:=${BSIZE_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${BSIZE_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  104. BSIZE_TARGET:=block_size_analysis
  105. #plot_intra_maps
  106. PIM_LOCAL_CSOURCES = \
  107. image.c \
  108. plot_intra_maps.c \
  109. intra_fit_tools.c \
  110. vidinput.c \
  111. y4m_input.c \
  112. PIM_LIB_CSOURCES =
  113. PIM_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  114. PIM_OBJS:=${PIM_LOCAL_CSOURCES} ${PIM_LIB_CSOURCES}
  115. PIM_OBJS:=${PIM_OBJS:%.c=${WORKDIR}/%.o}
  116. PIM_CSOURCES:=${PIM_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${PIM_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  117. PIM_TARGET:=plot_intra_maps
  118. #init_intra_maps
  119. IIM_LOCAL_CSOURCES = \
  120. init_intra_maps.c \
  121. intra_fit_tools.c \
  122. vidinput.c \
  123. y4m_input.c \
  124. IIM_LIB_CSOURCES =
  125. IIM_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  126. IIM_OBJS:=${IIM_LOCAL_CSOURCES} ${IIM_LIB_CSOURCES}
  127. IIM_OBJS:=${IIM_OBJS:%.c=${WORKDIR}/%.o}
  128. IIM_CSOURCES:=${IIM_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IIM_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  129. IIM_TARGET:=init_intra_maps
  130. #intra_stats
  131. IS_LOCAL_CSOURCES = \
  132. intra_stats.c \
  133. intra_fit_tools.c \
  134. od_covmat.c \
  135. od_filter.c \
  136. od_intra.c \
  137. od_intra_data.c \
  138. image_tools.c \
  139. stats_tools.c \
  140. vidinput.c \
  141. y4m_input.c \
  142. image.c
  143. IS_LIB_CSOURCES = \
  144. block_size.c \
  145. block_size_enc.c \
  146. generic_encoder.c \
  147. generic_code.c \
  148. laplace_encoder.c \
  149. logging.c \
  150. laplace_tables.c \
  151. entenc.c \
  152. entcode.c \
  153. filter.c \
  154. dct.c \
  155. intra.c \
  156. switch_table.c \
  157. tf.c \
  158. internal.c \
  159. intradata.c
  160. IS_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  161. IS_OBJS:=${IS_LOCAL_CSOURCES} ${IS_LIB_CSOURCES}
  162. IS_OBJS:=${IS_OBJS:%.c=${WORKDIR}/%.o}
  163. IS_CSOURCES:=${IS_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IS_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  164. IS_TARGET:=intra_stats
  165. # cfl_stats
  166. CS_LOCAL_CSOURCES = \
  167. cfl_stats.c \
  168. intra_fit_tools.c \
  169. od_covmat.c \
  170. od_filter.c \
  171. od_intra.c \
  172. od_intra_data.c \
  173. image_tools.c \
  174. stats_tools.c \
  175. vidinput.c \
  176. y4m_input.c \
  177. image.c
  178. CS_LIB_CSOURCES = \
  179. block_size.c \
  180. block_size_enc.c \
  181. generic_encoder.c \
  182. generic_code.c \
  183. laplace_encoder.c \
  184. logging.c \
  185. laplace_tables.c \
  186. entenc.c \
  187. entcode.c \
  188. filter.c \
  189. dct.c \
  190. intra.c \
  191. switch_table.c \
  192. tf.c \
  193. internal.c \
  194. intradata.c
  195. CS_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  196. CS_OBJS:=${CS_LOCAL_CSOURCES} ${CS_LIB_CSOURCES}
  197. CS_OBJS:=${CS_OBJS:%.c=${WORKDIR}/%.o}
  198. CC_CSOURCES:=${CS_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${CS_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  199. CS_TARGET:=cfl_stats
  200. #intra_pred
  201. IP_LOCAL_CSOURCES = \
  202. intra_pred.c \
  203. intra_fit_tools.c \
  204. od_covmat.c \
  205. od_filter.c \
  206. od_intra.c \
  207. od_intra_data.c \
  208. image_tools.c \
  209. stats_tools.c \
  210. vidinput.c \
  211. y4m_input.c \
  212. image.c \
  213. svd.c \
  214. cholesky.c
  215. IP_LIB_CSOURCES = \
  216. block_size.c \
  217. block_size_enc.c \
  218. generic_encoder.c \
  219. generic_code.c \
  220. laplace_encoder.c \
  221. logging.c \
  222. laplace_tables.c \
  223. entenc.c \
  224. entcode.c \
  225. filter.c \
  226. dct.c \
  227. intra.c \
  228. intradata.c \
  229. internal.c \
  230. switch_table.c \
  231. tf.c
  232. IP_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  233. IP_OBJS:=${IP_LOCAL_CSOURCES} ${IP_LIB_CSOURCES}
  234. IP_OBJS:=${IP_OBJS:%.c=${WORKDIR}/%.o}
  235. IP_CSOURCES:=${IP_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IP_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  236. IP_TARGET:=intra_pred
  237. #intra_trace
  238. IT_LOCAL_CSOURCES = \
  239. intra_trace.c \
  240. intra_fit_tools.c \
  241. od_covmat.c \
  242. od_filter.c \
  243. od_intra.c \
  244. od_intra_data.c \
  245. image_tools.c \
  246. stats_tools.c \
  247. trans_tools.c \
  248. vidinput.c \
  249. y4m_input.c \
  250. image.c
  251. IT_LIB_CSOURCES = \
  252. block_size.c \
  253. block_size_enc.c \
  254. generic_encoder.c \
  255. generic_code.c \
  256. laplace_encoder.c \
  257. logging.c \
  258. laplace_tables.c \
  259. entenc.c \
  260. entcode.c \
  261. filter.c \
  262. dct.c \
  263. intra.c \
  264. switch_table.c \
  265. tf.c \
  266. internal.c \
  267. intradata.c
  268. IT_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  269. IT_OBJS:=${IT_LOCAL_CSOURCES} ${IT_LIB_CSOURCES}
  270. IT_OBJS:=${IT_OBJS:%.c=${WORKDIR}/%.o}
  271. IT_CSOURCES:=${IT_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IT_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  272. IT_TARGET:=intra_trace
  273. #trans
  274. T_LOCAL_CSOURCES = \
  275. trans.c \
  276. internal.c \
  277. intra_fit_tools.c \
  278. vidinput.c \
  279. y4m_input.c \
  280. od_covmat.c \
  281. od_filter.c \
  282. od_intra.c \
  283. od_intra_data.c \
  284. stats_tools.c \
  285. trans_tools.c \
  286. int_search.c \
  287. trans_data.c \
  288. kiss99.c \
  289. image.c \
  290. svd.c \
  291. cholesky.c
  292. T_LIB_CSOURCES = \
  293. filter.c \
  294. dct.c \
  295. intradata.c
  296. T_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  297. T_OBJS:=${T_LOCAL_CSOURCES} ${T_LIB_CSOURCES}
  298. T_OBJS:=${T_OBJS:%.c=${WORKDIR}/%.o}
  299. T_CSOURCES:=${T_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${T_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  300. T_TARGET:=trans
  301. #trans_gain
  302. TG_LOCAL_CSOURCES = \
  303. trans_gain.c \
  304. internal.c \
  305. vidinput.c \
  306. y4m_input.c \
  307. od_filter.c \
  308. trans_tools.c
  309. TG_LIB_CSOURCES = \
  310. filter.c \
  311. dct.c \
  312. intradata.c
  313. TG_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  314. TG_OBJS:=${TG_LOCAL_CSOURCES} ${TG_LIB_CSOURCES}
  315. TG_OBJS:=${TG_OBJS:%.c=${WORKDIR}/%.o}
  316. TG_CSOURCES:=${TG_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${TG_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  317. TG_TARGET:=trans_gain
  318. #trans2d
  319. T2D_LOCAL_CSOURCES = \
  320. trans2d.c \
  321. internal.c \
  322. intra_fit_tools.c \
  323. vidinput.c \
  324. y4m_input.c \
  325. od_covmat.c \
  326. od_filter.c \
  327. od_intra.c \
  328. od_intra_data.c \
  329. stats_tools.c \
  330. trans_tools.c \
  331. int_search.c \
  332. trans_data.c \
  333. kiss99.c \
  334. image.c \
  335. svd.c \
  336. cholesky.c
  337. T2D_LIB_CSOURCES = \
  338. filter.c \
  339. dct.c \
  340. intradata.c
  341. T2D_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  342. T2D_OBJS:=${T2D_LOCAL_CSOURCES} ${T2D_LIB_CSOURCES}
  343. T2D_OBJS:=${T2D_OBJS:%.c=${WORKDIR}/%.o}
  344. T2D_CSOURCES:=${T2D_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${T2D_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  345. T2D_TARGET:=trans2d
  346. #init_intra_xform
  347. IIX_LOCAL_CSOURCES = \
  348. cholesky.c \
  349. init_intra_xform.c \
  350. intra_fit_tools.c \
  351. svd.c \
  352. vidinput.c \
  353. y4m_input.c \
  354. IIX_LIB_CSOURCES = \
  355. filter.c \
  356. dct.c \
  357. intra.c \
  358. tf.c \
  359. internal.c \
  360. intradata.c
  361. IIX_LDFLAGS = `pkg-config ogg libpng --libs` -lm
  362. IIX_OBJS:=${IIX_LOCAL_CSOURCES} ${IIX_LIB_CSOURCES}
  363. IIX_OBJS:=${IIX_OBJS:%.c=${WORKDIR}/%.o}
  364. IIX_CSOURCES:=${IIX_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} ${IIX_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  365. IIX_TARGET:=init_intra_xform
  366. #gen_cdf
  367. GEN_CDF_LOCAL_CSOURCES = \
  368. gen_cdf.c
  369. GEN_CDF_LIB_CSOURCES =
  370. GEN_CDF_LDFLAGS = -lm
  371. GEN_CDF_OBJS:=${GEN_CDF_LOCAL_CSOURCES} ${GEN_CDF_LIB_CSOURCES}
  372. GEN_CDF_OBJS:=${GEN_CDF_OBJS:%.c=${WORKDIR}/%.o}
  373. GEN_CDF_CSOURCES:=${GEN_CDF_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  374. ${GEN_CDF_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  375. GEN_CDF_TARGET:=gen_cdf
  376. #gen_laplace_tables
  377. GEN_LAPLACE_TABLES_LOCAL_CSOURCES = \
  378. gen_laplace_tables.c
  379. GEN_LAPLACE_TABLES_LIB_CSOURCES =
  380. GEN_LAPLACE_TABLES_LDFLAGS = -lm
  381. GEN_LAPLACE_TABLES_OBJS:=${GEN_LAPLACE_TABLES_LOCAL_CSOURCES} ${GEN_LAPLACE_TABLES_LIB_CSOURCES}
  382. GEN_LAPLACE_TABLES_OBJS:=${GEN_LAPLACE_TABLES_OBJS:%.c=${WORKDIR}/%.o}
  383. GEN_LAPLACE_TABLES_CSOURCES:= \
  384. ${GEN_LAPLACE_TABLES_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  385. ${GEN_LAPLACE_TABLES_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  386. GEN_LAPLACE_TABLES_TARGET:=gen_laplace_tables
  387. #bjontegaard
  388. BD_LOCAL_CSOURCES = \
  389. bjontegaard.c \
  390. cholesky.c \
  391. svd.c \
  392. qr.c
  393. BD_LIB_CSOURCES =
  394. BD_LDFLAGS = -lm
  395. BD_OBJS:=${BD_LOCAL_CSOURCES} ${BD_LIB_CSOURCES}
  396. BD_OBJS:=${BD_OBJS:%.c=${WORKDIR}/%.o}
  397. BD_CSOURCES:=${BD_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  398. ${BD_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  399. BD_TARGET:=bjontegaard
  400. #yuvjpeg
  401. YJ_LOCAL_CSOURCES = \
  402. yuvjpeg.c
  403. YJ_LIB_CSOURCES =
  404. YJ_LDFLAGS = -ljpeg
  405. YJ_OBJS:=${YJ_LOCAL_CSOURCES} ${YJ_LIB_CSOURCES}
  406. YJ_OBJS:=${YJ_OBJS:%.c=${WORKDIR}/%.o}
  407. YJ_CSOURCES:=${YJ_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  408. ${YJ_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  409. YJ_TARGET:=yuvjpeg
  410. #jpegyuv
  411. JY_LOCAL_CSOURCES = \
  412. jpegyuv.c
  413. JY_LIB_CSOURCES =
  414. JY_LDFLAGS = -ljpeg
  415. JY_OBJS:=${JY_LOCAL_CSOURCES} ${JY_LIB_CSOURCES}
  416. JY_OBJS:=${JY_OBJS:%.c=${WORKDIR}/%.o}
  417. JY_CSOURCES:=${JY_LOCAL_CSOURCES:%=${LOCALSRCDIR}/%} \
  418. ${JY_LIB_CSOURCES:%=${LIBSRCDIR}/%}
  419. JY_TARGET:=jpegyuv
  420. ALL_OBJS:=${P2Y_OBJS} ${Y2P_OBJS} ${PSNR_OBJS} ${PSNRHVS_OBJS} ${PIM_OBJS} ${IIM_OBJS} ${IIX_OBJS} \
  421. ${GEN_CDF_OBJS} ${GEN_LAPLACE_TABLES_OBJS} ${IS_OBJS} ${IP_OBJS} ${IT_OBJS} ${T_OBJS} \
  422. ${TG_OBJS} ${T2D_OBJS} ${BSIZE_OBJS} ${BD_OBJS} ${YJ_OBJS} ${JY_OBJS}
  423. ALL_ASMS:=${ALL_OBJS:%.o=%.s}
  424. ALL_DEPS:=${ALL_OBJS:%.o=%.d}
  425. ALL_TARGETS:=${P2Y_TARGET} ${Y2P_TARGET} ${PSNR_TARGET} ${PSNRHVS_TARGET} \
  426. ${PIM_TARGET} ${IIM_TARGET} ${IIX_TARGET} ${GEN_CDF_TARGET} \
  427. ${GEN_LAPLACE_TABLES_TARGET} ${IS_TARGET} ${IP_TARGET} ${IT_TARGET} \
  428. ${T_TARGET} ${TG_TARGET} ${T2D_TARGET} ${BSIZE_TARGET} ${BD_TARGET} \
  429. ${YJ_TARGET} ${JY_TARGET}
  430. all: ${ALL_TARGETS}
  431. asm: ${ALL_ASM}
  432. check: all
  433. clean:
  434. ${RM} ${ALL_ASM} ${ALL_OBJS} ${ALL_DEPS}
  435. ${RM} ${ALL_TARGETS}
  436. -rmdir ${WORKDIR}
  437. ${BSIZE_TARGET}: ${BSIZE_OBJS}
  438. ${CC} ${CFLAGS} ${BSIZE_OBJS} ${BSIZE_LDFLAGS} -o $@
  439. ${P2Y_TARGET}: ${P2Y_OBJS}
  440. ${CC} ${CFLAGS} ${P2Y_OBJS} ${P2Y_LDFLAGS} -o $@
  441. ${Y2P_TARGET}: ${Y2P_OBJS}
  442. ${CC} ${CFLAGS} ${Y2P_OBJS} ${Y2P_LDFLAGS} -o $@
  443. ${PSNR_TARGET}: ${PSNR_OBJS}
  444. ${CC} ${CFLAGS} ${PSNR_OBJS} ${PSNR_LDFLAGS} -o $@
  445. ${PSNRHVS_TARGET}: ${PSNRHVS_OBJS}
  446. ${CC} ${CFLAGS} ${PSNRHVS_OBJS} ${PSNRHVS_LDFLAGS} -o $@
  447. ${PIM_TARGET}: ${PIM_OBJS}
  448. ${CC} ${CFLAGS} ${PIM_OBJS} ${PIM_LDFLAGS} -o $@
  449. ${IIM_TARGET}: ${IIM_OBJS}
  450. ${CC} ${CFLAGS} ${IIM_OBJS} ${IIM_LDFLAGS} -o $@
  451. ${IS_TARGET}: ${IS_OBJS}
  452. ${CC} ${CFLAGS} ${IS_OBJS} ${IS_LDFLAGS} -o $@
  453. ${IP_TARGET}: ${IP_OBJS}
  454. ${CC} ${CFLAGS} ${IP_OBJS} ${IP_LDFLAGS} -o $@
  455. ${IT_TARGET}: ${IT_OBJS}
  456. ${CC} ${CFLAGS} ${IT_OBJS} ${IT_LDFLAGS} -o $@
  457. ${T_TARGET}: ${T_OBJS}
  458. ${CC} ${CFLAGS} ${T_OBJS} ${T_LDFLAGS} -o $@
  459. ${TG_TARGET}: ${TG_OBJS}
  460. ${CC} ${CFLAGS} ${TG_OBJS} ${TG_LDFLAGS} -o $@
  461. ${T2D_TARGET}: ${T2D_OBJS}
  462. ${CC} ${CFLAGS} ${T2D_OBJS} ${T2D_LDFLAGS} -o $@
  463. ${CS_TARGET}: ${CS_OBJS}
  464. ${CC} ${CFLAGS} ${CS_OBJS} ${CS_LDFLAGS} -o $@
  465. ${IIX_TARGET}: ${IIX_OBJS}
  466. ${CC} ${CFLAGS} ${IIX_OBJS} ${IIX_LDFLAGS} -o $@
  467. ${GEN_CDF_TARGET}: ${GEN_CDF_OBJS}
  468. ${CC} ${CFLAGS} ${GEN_CDF_OBJS} ${GEN_CDF_LDFLAGS} -o $@
  469. ${GEN_LAPLACE_TABLES_TARGET}: ${GEN_LAPLACE_TABLES_OBJS}
  470. ${CC} ${CFLAGS} ${GEN_LAPLACE_TABLES_OBJS} ${GEN_LAPLACE_TABLES_LDFLAGS} -o $@
  471. ${BD_TARGET}: ${BD_OBJS}
  472. ${CC} ${CFLAGS} ${BD_OBJS} ${BD_LDFLAGS} -o $@
  473. ${YJ_TARGET}: ${YJ_OBJS}
  474. ${CC} ${CFLAGS} ${YJ_OBJS} ${YJ_LDFLAGS} -o $@
  475. ${JY_TARGET}: ${JY_OBJS}
  476. ${CC} ${CFLAGS} ${JY_OBJS} ${JY_LDFLAGS} -o $@
  477. ${ALL_OBJS} ${ALL_ASMS} ${ALL_DEPS} ${ALL_TARGETS}: Makefile
  478. .PHONY: all asm clean check
  479. ${WORKDIR}/%.d: ${LIBSRCDIR}/%.c
  480. mkdir -p ${dir $@}
  481. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.o} > $@
  482. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.s} >> $@
  483. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT $@ >> $@
  484. ${WORKDIR}/%.s: ${LIBSRCDIR}/%.c
  485. mkdir -p ${dir $@}
  486. ${CC} ${CINCLUDE} ${CFLAGS} -S -o $@ $<
  487. ${WORKDIR}/%.o: ${LIBSRCDIR}/%.c
  488. mkdir -p ${dir $@}
  489. ${CC} ${CINCLUDE} ${CFLAGS} -c -o $@ $<
  490. ${WORKDIR}/%.d: ${LOCALSRCDIR}/%.c
  491. mkdir -p ${dir $@}
  492. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.o} > $@
  493. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT ${@:%.d=%.s} >> $@
  494. ${MAKEDEPEND} ${CINCLUDE} ${CFLAGS} $< -MT $@ >> $@
  495. ${WORKDIR}/%.s: ${LOCALSRCDIR}/%.c
  496. mkdir -p ${dir $@}
  497. ${CC} ${CINCLUDE} ${CFLAGS} -S -o $@ $<
  498. ${WORKDIR}/%.o: ${LOCALSRCDIR}/%.c
  499. mkdir -p ${dir $@}
  500. ${CC} ${CINCLUDE} ${CFLAGS} -c -o $@ $<
  501. # Include header file dependencies
  502. include ${ALL_DEPS}