File: Dockerfile-aarch64

package info (click to toggle)
faust 2.79.3%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 397,496 kB
  • sloc: cpp: 278,433; ansic: 116,164; javascript: 18,529; vhdl: 14,052; sh: 13,884; java: 5,900; objc: 3,852; python: 3,222; makefile: 2,655; cs: 1,672; lisp: 1,146; ruby: 954; yacc: 586; xml: 471; lex: 247; awk: 110; tcl: 26
file content (51 lines) | stat: -rw-r--r-- 1,693 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
FROM quay.io/pypa/manylinux_2_28_aarch64

RUN mkdir /faust
WORKDIR /faust
COPY . /faust

# need ncurses-devel for `tinfo` -ltinfo
RUN yum install -y libxml2-devel ncurses-devel libmicrohttpd-devel git cmake pkgconfig
RUN yum update -y cmake

# build ncurses because we need libncurses.a in `Make.llvm.static`,
# and the yum package `ncurses-devel` may not have it
RUN git clone https://github.com/mirror/ncurses.git
WORKDIR ncurses
RUN ./configure --prefix=/usr/local/ncurses/6_4 --with-shared --with-pkg-config-libdir=/usr/local/ncurses/6_4/lib/pkgconfig --enable-pc-files
RUN make && make install

WORKDIR /faust
ENV LLVM_CONFIG="/faust/llvm/bin/llvm-config"
RUN chmod u+x $LLVM_CONFIG

WORKDIR /faust/build
RUN cmake -C ./backends/all.cmake . -Bbuild -DCMAKE_PREFIX_PATH="/usr/local/ncurses/6_4/lib/pkgconfig" -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON -DINCLUDE_DYNAMIC=ON -DINCLUDE_STATIC=ON -DINCLUDE_LLVM=ON -DUSE_LLVM_CONFIG=ON -DLLVM_CONFIG=$LLVM_CONFIG
RUN cmake --build build --config Release

WORKDIR /faust/build/lib
RUN rm -f libfaust.so libfaust.so.2
# get the newest libfaust.
RUN mv $(ls -1 libfaust.so.* | tail -n1) libfaust.so
RUN strip --strip-unneeded libfaust.so

# cleanup to prevent running out of space during GitHub Action
RUN yum clean all
RUN rm -rf /var/cache/yum
WORKDIR /faust/build
RUN rm -rf build
RUN rm -rf bin
WORKDIR /faust
RUN rm -rf ncurses
RUN rm -rf llvm
RUN rm -rf architecture
RUN rm -rf embedded
RUN rm -rf examples
RUN rm -rf libraries
RUN rm -rf tests

# Create the zip of libfaust
WORKDIR /faust/build
RUN yum install -y zip
RUN zip -r libfaust-ubuntu-aarch64.zip lib
RUN rm -rf lib