Merge branch 'staged'
[dports.git] / sysutils / devfw-radeon / Makefile
1
2 PORTNAME=       devfw-radeon
3 PORTVERSION=    ${FWVERSION}
4 PORTREVISION=   1
5 CATEGORIES=     sysutils graphics
6 MASTER_SITES=   https://leaf.dragonflybsd.org/~zrj/dports/fw/
7
8 DISTFILES=      ${FWFILE}
9 EXTRACT_ONLY=
10
11 MAINTAINER=     zrj@ef.irc
12 COMMENT=        ATI/AMD Radeon GPU firmware
13
14 FIRMWARES_OLD=                                                                  \
15         HAINAN_pfp HAINAN_me HAINAN_ce HAINAN_mc                                \
16         HAINAN_mc2 HAINAN_rlc HAINAN_smc                                        \
17         OLAND_pfp OLAND_me OLAND_ce OLAND_mc                                    \
18         OLAND_mc2 OLAND_rlc OLAND_smc                                           \
19         PITCAIRN_pfp PITCAIRN_me PITCAIRN_ce PITCAIRN_mc                        \
20         PITCAIRN_mc2 PITCAIRN_rlc PITCAIRN_smc                                  \
21         TAHITI_pfp TAHITI_me TAHITI_ce TAHITI_mc                                \
22         TAHITI_mc2 TAHITI_rlc TAHITI_smc                                        \
23         VERDE_pfp VERDE_me VERDE_ce VERDE_mc VERDE_mc2 VERDE_rlc VERDE_smc      \
24         BONAIRE_pfp BONAIRE_me BONAIRE_ce BONAIRE_mec BONAIRE_mc                \
25         BONAIRE_mc2 BONAIRE_rlc BONAIRE_sdma BONAIRE_smc                        \
26         HAWAII_pfp HAWAII_me HAWAII_ce HAWAII_mec HAWAII_mc                     \
27         HAWAII_mc2 HAWAII_rlc HAWAII_sdma HAWAII_smc                            \
28         KAVERI_pfp KAVERI_me KAVERI_ce KAVERI_mec KAVERI_rlc KAVERI_sdma        \
29         KABINI_pfp KABINI_me KABINI_ce KABINI_mec KABINI_rlc KABINI_sdma        \
30         MULLINS_pfp MULLINS_me MULLINS_ce MULLINS_mec MULLINS_rlc MULLINS_sdma
31
32 FIRMWARES_R100=                                                                 \
33         R100_cp R200_cp R300_cp R420_cp RS690_cp RS600_cp R520_cp
34
35 FIRMWARES_R600=                                                                 \
36         R600_pfp R600_me R600_rlc R700_rlc RS780_pfp RS780_me                   \
37         RV610_pfp RV610_me RV620_pfp RV620_me RV630_pfp RV630_me                \
38         RV635_pfp RV635_me RV670_pfp RV670_me                                   \
39         RV710_pfp RV710_me RV710_smc                                            \
40         RV730_pfp RV730_me RV730_smc RV740_smc                                  \
41         RV770_pfp RV770_me RV770_smc                                            \
42         SUMO_pfp SUMO_me SUMO_rlc SUMO2_pfp SUMO2_me PALM_pfp PALM_me           \
43         CEDAR_pfp CEDAR_me CEDAR_rlc CEDAR_smc                                  \
44         CYPRESS_pfp CYPRESS_me CYPRESS_rlc CYPRESS_smc                          \
45         JUNIPER_pfp JUNIPER_me JUNIPER_rlc JUNIPER_smc                          \
46         REDWOOD_pfp REDWOOD_me REDWOOD_rlc REDWOOD_smc
47
48 FIRMWARES_RNI=                                                                  \
49         ARUBA_pfp ARUBA_me ARUBA_rlc                                            \
50         BARTS_pfp BARTS_me BARTS_mc BARTS_smc BTC_rlc                           \
51         CAICOS_pfp CAICOS_me CAICOS_mc CAICOS_smc                               \
52         CAYMAN_pfp CAYMAN_me CAYMAN_mc CAYMAN_rlc CAYMAN_smc                    \
53         TURKS_pfp TURKS_me TURKS_mc TURKS_smc
54
55 FIRMWARES_RSI=                                                                  \
56         hainan_pfp hainan_me hainan_ce hainan_mc hainan_rlc hainan_smc          \
57         oland_pfp oland_me oland_ce oland_mc oland_rlc oland_smc                \
58         pitcairn_pfp pitcairn_me pitcairn_ce pitcairn_mc                        \
59         pitcairn_rlc pitcairn_smc                                               \
60         tahiti_pfp tahiti_me tahiti_ce tahiti_mc tahiti_rlc tahiti_smc          \
61         verde_pfp verde_me verde_ce verde_mc verde_rlc verde_smc
62
63 FIRMWARES_RCIK=                                                                 \
64         bonaire_pfp bonaire_me bonaire_ce bonaire_mec bonaire_mc                \
65         bonaire_rlc bonaire_sdma bonaire_smc                                    \
66         hawaii_pfp hawaii_me hawaii_ce hawaii_mec hawaii_mc                     \
67         hawaii_rlc hawaii_sdma hawaii_smc                                       \
68         kaveri_pfp kaveri_me kaveri_ce kaveri_mec kaveri_mec2                   \
69         kaveri_rlc kaveri_sdma                                                  \
70         kabini_pfp kabini_me kabini_ce kabini_mec kabini_rlc kabini_sdma        \
71         mullins_pfp mullins_me mullins_ce mullins_mec mullins_rlc mullins_sdma
72
73 FIRMWARES_UV=                                                           \
74         R600_uvd RS780_uvd RV770_uvd RV710_uvd CYPRESS_uvd SUMO_uvd             \
75         TAHITI_uvd BONAIRE_uvd TAHITI_vce BONAIRE_vce
76
77 WRKSRC=         ${WRKDIR}
78
79 # afterthought: to preserve compatibility, case-insensitivity FS(like fat)
80 # use "kmsfw" for all uppercase firmware like TAHITI
81 # and "fw" for all lowercase firmware like hawaii
82 FWNAME_OLD=             radeonkmsfw     # deprecated old format firmware(si,cik)
83 FWNAME_KMS=             radeonkmsfw     # pre radeonsi asic firmware
84 FWNAME_NEW=             radeonfw        # new format firmware (si,cik)
85 FWFILE=         radeon-firmware-${FWVERSION}.tar.gz
86 FWVERSION=      20160328
87
88 NO_ARCH=        yes
89 DATADIR=        ${PREFIX}/share/fw-radeon
90
91 USES=           uidfix
92
93 OPTIONS_DEFINE= OLD R100 R600 RCIK RNI RSI UVDVCE
94 OPTIONS_DEFAULT=        R100 R600 RCIK RNI RSI UVDVCE
95 OPTIONS_SUB=    yes
96
97 OLD_DESC=       Old format firmware (deprecated, for testing only)
98 R100_DESC=      R100 family (R100-R520, pre HD-series)
99 R600_DESC=      R600 Evergreen (R600-R770 CEDAR JUNIPER CYPRESS PALM SUMO)
100 RCIK_DESC=      Sea Islands (BONAIRE KABINI MULLINS KAVERI HAWAII) [AMDGPU]
101 RNI_DESC=       Northen Islands (ARUBA BARTS CAICOS CAYMAN TURKS)
102 RSI_DESC=       Southern Islands (HAINAN OLAND PITCAIRN TAHITI VERDE)
103 UVDVCE_DESC=    Include UVD/VCE firmware (video decode/encode)
104
105 .if exists(/usr/share/examples/kld/firmware/wrap-fw_module.sh)
106 PKGINSTALL=     pkg-install.fw
107 PKGDEINSTALL=   pkg-deinstall.fw
108 .else
109 DPMSG=          ${WRKDIR}/dports-message
110 PKGMESSAGE=     ${DPMSG}
111 pre-patch:
112         @${ECHO} "#########################################################" >> ${DPMSG}
113         @${ECHO} "# Run ${DATADIR}/regen-firmware.sh to create modules #" >> ${DPMSG}
114         @${ECHO} "#########################################################" >> ${DPMSG}
115 .endif
116
117 do-build:
118         ${CP} ${FILESDIR}/regen-firmware.sh ${WRKSRC}/
119         ${CP} ${FILESDIR}/remove-firmware.sh ${WRKSRC}/
120         ${REINPLACE_CMD} -e "s@FIRMDIR@${DATADIR}@g"                    \
121                          -e "s@FIRMS_OLD@${FWNAME_OLD}_@g"              \
122                          -e "s@FIRMS_R100@${FWNAME_KMS}_@g"             \
123                          -e "s@FIRMS_R600@${FWNAME_KMS}_@g"             \
124                          -e "s@FIRMS_RCIK@${FWNAME_NEW}_@g"             \
125                          -e "s@FIRMS_RNI@${FWNAME_KMS}_@g"              \
126                          -e "s@FIRMS_RSI@${FWNAME_NEW}_@g"              \
127                          -e "s@FIRMS_UV@${FWNAME_KMS}_@g"               \
128                 ${WRKSRC}/regen-firmware.sh                             \
129                 ${WRKSRC}/remove-firmware.sh
130         cd ${WRKSRC} && \
131         tar xf ${DISTDIR}/${FWFILE}
132         ${MKDIR} ${WRKSRC}/old
133 . for fwo in ${FIRMWARES_OLD}
134         ${MV} ${WRKSRC}/radeon/${fwo}.bin ${WRKSRC}/old
135 . endfor
136         ${MKDIR} ${WRKSRC}/r100
137 . for fwo in ${FIRMWARES_R100}
138         ${MV} ${WRKSRC}/radeon/${fwo}.bin ${WRKSRC}/r100
139 . endfor
140         ${MKDIR} ${WRKSRC}/r600
141 . for fwo in ${FIRMWARES_R600}
142         ${MV} ${WRKSRC}/radeon/${fwo}.bin ${WRKSRC}/r600
143 . endfor
144         ${MKDIR} ${WRKSRC}/rcik
145 . for fwo in ${FIRMWARES_RCIK}
146         ${MV} ${WRKSRC}/radeon/${fwo}.bin ${WRKSRC}/rcik
147 . endfor
148         ${MKDIR} ${WRKSRC}/rni
149 . for fwo in ${FIRMWARES_RNI}
150         ${MV} ${WRKSRC}/radeon/${fwo}.bin ${WRKSRC}/rni
151 . endfor
152         ${MKDIR} ${WRKSRC}/rsi
153 . for fwo in ${FIRMWARES_RSI}
154         ${MV} ${WRKSRC}/radeon/${fwo}.bin ${WRKSRC}/rsi
155 . endfor
156         ${MKDIR} ${WRKSRC}/uvdvce
157 . for fwo in ${FIRMWARES_UV}
158         ${MV} ${WRKSRC}/radeon/${fwo}.bin ${WRKSRC}/uvdvce
159 . endfor
160         ${LS} -l ${WRKSRC}/radeon       #to check what amdgpu ones are left
161
162 post-build-OLD-on:
163         ${REINPLACE_CMD} -e "s@ #FIRMW_OLD@\"${FIRMWARES_OLD}\"@g"      \
164                 ${WRKSRC}/regen-firmware.sh                             \
165                 ${WRKSRC}/remove-firmware.sh
166
167 post-build-R100-on:
168         ${REINPLACE_CMD} -e "s@ #FIRMW_R100@\"${FIRMWARES_R100}\"@g"    \
169                 ${WRKSRC}/regen-firmware.sh                             \
170                 ${WRKSRC}/remove-firmware.sh
171
172 post-build-R600-on:
173         ${REINPLACE_CMD} -e "s@ #FIRMW_R600@\"${FIRMWARES_R600}\"@g"    \
174                 ${WRKSRC}/regen-firmware.sh                             \
175                 ${WRKSRC}/remove-firmware.sh
176
177 post-build-RCIK-on:
178         ${REINPLACE_CMD} -e "s@ #FIRMW_RCIK@\"${FIRMWARES_RCIK}\"@g"    \
179                 ${WRKSRC}/regen-firmware.sh                             \
180                 ${WRKSRC}/remove-firmware.sh
181
182 post-build-RNI-on:
183         ${REINPLACE_CMD} -e "s@ #FIRMW_RNI@\"${FIRMWARES_RNI}\"@g"      \
184                 ${WRKSRC}/regen-firmware.sh                             \
185                 ${WRKSRC}/remove-firmware.sh
186
187 post-build-RSI-on:
188         ${REINPLACE_CMD} -e "s@ #FIRMW_RSI@\"${FIRMWARES_RSI}\"@g"      \
189                 ${WRKSRC}/regen-firmware.sh                             \
190                 ${WRKSRC}/remove-firmware.sh
191
192 post-build-UVDVCE-on:
193         ${REINPLACE_CMD} -e "s@ #FIRMW_UV@\"${FIRMWARES_UV}\"@g"        \
194                 ${WRKSRC}/regen-firmware.sh                             \
195                 ${WRKSRC}/remove-firmware.sh
196
197 do-install:
198         ${MKDIR} ${STAGEDIR}${DATADIR}/
199         ${INSTALL_DATA} ${WRKSRC}/LICENSE.radeon ${STAGEDIR}${DATADIR}
200         ${INSTALL_SCRIPT} ${WRKSRC}/regen-firmware.sh ${STAGEDIR}${DATADIR}
201         ${INSTALL_SCRIPT} ${WRKSRC}/remove-firmware.sh ${STAGEDIR}${DATADIR}
202
203 do-install-OLD-on:
204         ${CP} -r ${WRKSRC}/old ${STAGEDIR}${DATADIR}
205
206 do-install-R100-on:
207         ${CP} -r ${WRKSRC}/r100 ${STAGEDIR}${DATADIR}
208
209 do-install-R600-on:
210         ${CP} -r ${WRKSRC}/r600 ${STAGEDIR}${DATADIR}
211
212 do-install-RCIK-on:
213         ${CP} -r ${WRKSRC}/rcik ${STAGEDIR}${DATADIR}
214
215 do-install-RNI-on:
216         ${CP} -r ${WRKSRC}/rni ${STAGEDIR}${DATADIR}
217
218 do-install-RSI-on:
219         ${CP} -r ${WRKSRC}/rsi ${STAGEDIR}${DATADIR}
220
221 do-install-UVDVCE-on:
222         ${CP} -r ${WRKSRC}/uvdvce ${STAGEDIR}${DATADIR}
223
224 .include <bsd.port.mk>