packaging: add vcgencmd aarch64 package
[platform/adaptation/broadcom/libomxil-vc4.git] / packaging / libomxil-vc4.spec
1 Name:          libomxil-vc4
2 Version:       0.0.1
3 Release:       4
4 Summary:       Libraries for interfacing to Raspberry Pi GPU
5 Group:         System/Libraries
6 URL:           https://github.com/raspberrypi/userland
7 Source:         %{name}-%{version}.tar.gz
8 License:       BSD-3-Clause
9 BuildRequires: cmake
10 BuildRequires: gcc-c++
11 BuildRequires: pkgconfig(libtbm)
12 BuildRequires: hal-api-common-devel
13 ExclusiveArch: %{arm} aarch64
14
15 %description
16 Libraries for interfacing to Raspberry Pi GPU.
17
18 %ifarch %{arm}
19 %package       utils
20 Group:         System/Tools
21 Summary:       System tools for the Raspberry Pi
22
23 %description   utils
24 This package contains some system tools for the Raspberry Pi.
25 Source: https://github.com/raspberrypi/userland.git
26
27 %package       devel
28 Group:         Development/Libraries
29 Summary:       Development files for the Raspberry Pi GPU
30 Requires:      %{name} = %{version}
31
32 %description   devel
33 This package contains libraries and header files for developing applications that use Raspberry Pi GPU.
34 %endif
35
36 %package -n    vcgencmd
37 Group:         System/Tools
38 Summary:       vcgencmd tools for the Raspberry Pi
39
40 %description -n vcgencmd
41 This package contains vcgencmd system tools for the Raspberry Pi.
42 Source: https://github.com/raspberrypi/userland.git
43
44 %prep
45 %setup -q
46
47 %build
48 %ifarch %{arm}
49         ARM64=OFF
50 %else
51         ARM64=ON
52 %endif
53 BUILDTYPE=Release
54 BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
55 mkdir -p build/armv7l-linux/$BUILDSUBDIR
56 pushd build/armv7l-linux/$BUILDSUBDIR
57 cmake -DCMAKE_BUILD_TYPE=Release ../../../ \
58         -DCMAKE_INSTALL_RPATH=%{_hal_libdir}/vc \
59         -DARM64=$ARM64
60 make %{?_smp_mflags}
61 popd
62
63 %post
64 /sbin/ldconfig
65
66 %postun
67 /sbin/ldconfig
68
69 %install
70 %ifarch %{arm}
71 mkdir -p %{buildroot}/etc/ld.so.conf.d/
72 cp %{_builddir}/%{name}-%{version}/packaging/libomxil-vc4.conf %{buildroot}/etc/ld.so.conf.d
73 mkdir -p %{buildroot}/opt/vc/lib/plugins
74 mkdir %{buildroot}/opt/vc/lib/pkgconfig
75 mkdir %{buildroot}/opt/vc/bin
76 mkdir -p %{buildroot}/opt/vc/include/interface
77 pushd %{buildroot}/opt/vc/lib
78 cp %{_builddir}/%{name}-%{version}/build/lib/lib*.so ./
79 cp %{_builddir}/%{name}-%{version}/build/armv7l-linux/release/bcm_host.pc ./pkgconfig
80 cp %{_builddir}/%{name}-%{version}/build/armv7l-linux/release/brcmegl.pc ./pkgconfig
81 cp %{_builddir}/%{name}-%{version}/build/armv7l-linux/release/brcmglesv2.pc ./pkgconfig
82 cp %{_builddir}/%{name}-%{version}/build/armv7l-linux/release/brcmvg.pc ./pkgconfig
83 cp %{_builddir}/%{name}-%{version}/build/armv7l-linux/release/mmal.pc ./pkgconfig
84 cp %{_builddir}/%{name}-%{version}/build/armv7l-linux/release/vcsm.pc ./pkgconfig
85 cd ./plugins
86 cp %{_builddir}/%{name}-%{version}/build/lib/reader_*.so ./
87 cp %{_builddir}/%{name}-%{version}/build/lib/writer_*.so ./
88 cd ../../bin
89 cp %{_builddir}/%{name}-%{version}/build/bin/* ./
90
91 cd ../lib
92 cp %{_builddir}/%{name}-%{version}/build/lib/lib*.a ./
93 cd ../include
94 cp -a %{_builddir}/%{name}-%{version}/interface/khronos/include/EGL ./
95 cp -a %{_builddir}/%{name}-%{version}/interface/khronos/include/GLES ./
96 cp -a %{_builddir}/%{name}-%{version}/interface/khronos/include/GLES2 ./
97 cp -a %{_builddir}/%{name}-%{version}/interface/khronos/include/KHR ./
98 cp -a %{_builddir}/%{name}-%{version}/interface/khronos/include/VG ./
99 cp -a %{_builddir}/%{name}-%{version}/interface/khronos/include/WF ./
100 cp -a %{_builddir}/%{name}-%{version}/interface/vmcs_host/khronos/IL ./
101 cp -a %{_builddir}/%{name}-%{version}/interface/mmal ./interface/
102 cp -a %{_builddir}/%{name}-%{version}/interface/vchi ./interface/
103 cp -a %{_builddir}/%{name}-%{version}/interface/vchiq_arm ./interface/
104 cp -a %{_builddir}/%{name}-%{version}/interface/vcos ./interface/
105 cp -a %{_builddir}/%{name}-%{version}/interface/vctypes ./interface/
106 cp -a %{_builddir}/%{name}-%{version}/interface/vmcs_host ./interface/
107 cp -a %{_builddir}/%{name}-%{version}/vcinclude ./
108 cp %{_builddir}/%{name}-%{version}/host_applications/linux/libs/bcm_host/include/bcm_host.h ./
109 popd
110 %endif
111
112 # install and package vcgencmd to /hal with RPATH
113 BUILDTYPE=Release
114 BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
115 pushd build/armv7l-linux/$BUILDSUBDIR
116 make install \
117         DESTDIR=%{_builddir}/%{name}-%{version}/build/armv7l-linux/install \
118         INSTALL_ROOT=%{_builddir}/%{name}-%{version}/build/armv7l-linux/install
119 popd
120
121 mkdir -p %{buildroot}/%{_hal_bindir}
122 mkdir -p %{buildroot}/%{_hal_libdir}/vc
123 mkdir -p %{buildroot}/%{_hal_licensedir}/vcgencmd
124 cp build/armv7l-linux/install/opt/vc/bin/vcgencmd %{buildroot}/%{_hal_bindir}
125 cp build/armv7l-linux/install/opt/vc/lib/libvchiq_arm.so %{buildroot}/%{_hal_libdir}/vc
126 cp build/armv7l-linux/install/opt/vc/lib/libvcos.so %{buildroot}/%{_hal_libdir}/vc
127 cp LICENSE %{buildroot}/%{_hal_licensedir}/vcgencmd
128
129 %clean
130 [ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
131
132 %ifarch %{arm}
133 %files
134 %manifest packaging/%{name}.manifest
135 %defattr(-,root,root)
136 %license LICENSE
137 /opt/vc/lib/lib*.so
138 /opt/vc/lib/plugins/*.so
139 /etc/ld.so.conf.d/libomxil-vc4.conf
140
141 %files utils
142 /opt/vc/bin/*
143 %doc LICENSE
144
145 %files devel
146 /opt/vc/lib/lib*.a
147 /opt/vc/include/EGL
148 /opt/vc/include/GLES
149 /opt/vc/include/GLES2
150 /opt/vc/include/IL
151 /opt/vc/include/KHR
152 /opt/vc/include/VG
153 /opt/vc/include/WF
154 /opt/vc/include/interface
155 /opt/vc/include/vcinclude
156 /opt/vc/include/*.h
157 /opt/vc/lib/pkgconfig/*.pc
158 %endif
159
160 %files -n vcgencmd
161 %manifest packaging/%{name}.manifest
162 %{_hal_licensedir}/vcgencmd/LICENSE
163 %{_hal_bindir}/vcgencmd
164 %{_hal_libdir}/vc/*.so