]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - LinuxGUI/build_gtk.sh
Fix the issue that cannot boot Tails 6.13+ (#3171)
[Ventoy.git] / LinuxGUI / build_gtk.sh
1 #!/bin/bash
2
3 build_func() {
4 libsuffix=$2
5 toolDir=$3
6 gtkver=$4
7
8 if [ "$libsuffix" = "aa64" ]; then
9 EXD=./EXLIB/aarch64
10 GTKFLAG="-pthread -I$EXD/usr/include/gtk-3.0 -I$EXD/usr/include/atk-1.0 -I$EXD/usr/include/at-spi2-atk/2.0 -I$EXD/usr/include/pango-1.0 -I$EXD/usr/include/gio-unix-2.0/ -I$EXD/usr/include/cairo -I$EXD/usr/include/gdk-pixbuf-2.0 -I$EXD/usr/include/glib-2.0 -I$EXD/usr/lib64/glib-2.0/include -I$EXD/usr/include/at-spi-2.0 -I$EXD/usr/include/dbus-1.0 -I$EXD/usr/lib64/dbus-1.0/include -I$EXD/usr/include/harfbuzz -I$EXD/usr/include/freetype2 -I$EXD/usr/include/pixman-1 -I$EXD/usr/include/libpng15 -I$EXD/usr/include/libdrm"
11 XXLIB="-Wl,-rpath-link $EXD/usr/lib64 -Wl,-rpath-link $EXD/lib64 -Wno-deprecated-declarations -L$EXD/usr/lib64 -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 "
12 elif [ "$libsuffix" = "m64e" ]; then
13 EXDI=./EXLIB/mips64el
14 EXDL=./EXLIB/mips64el/usr/lib/mips64el-linux-gnuabi64
15 EXDL2=./EXLIB/mips64el/lib/mips64el-linux-gnuabi64
16 GTKFLAG="-pthread -I$EXDI/usr/include/gtk-3.0 -I$EXDI/usr/include/at-spi2-atk/2.0 -I$EXDI/usr/include/at-spi-2.0 -I$EXDI/usr/include/dbus-1.0 -I./EXLIB/mips64el/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I$EXDI/usr/include/gtk-3.0 -I$EXDI/usr/include/gio-unix-2.0 -I$EXDI/usr/include/cairo -I$EXDI/usr/include/pango-1.0 -I$EXDI/usr/include/harfbuzz -I$EXDI/usr/include/pango-1.0 -I$EXDI/usr/include/fribidi -I$EXDI/usr/include/harfbuzz -I$EXDI/usr/include/atk-1.0 -I$EXDI/usr/include/cairo -I$EXDI/usr/include/pixman-1 -I$EXDI/usr/include/uuid -I$EXDI/usr/include/freetype2 -I$EXDI/usr/include/libpng16 -I$EXDI/usr/include/gdk-pixbuf-2.0 -I$EXDI/usr/include/libmount -I$EXDI/usr/include/blkid -I$EXDI/usr/include/glib-2.0 -I$EXDL/glib-2.0/include"
17 XXLIB="-Wl,-rpath-link $EXDL -Wl,-rpath-link $EXDL2 -Wno-deprecated-declarations -L$EXDL -L$EXDL2 -lm -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lpcre "
18 else
19 if [ "$gtkver" = "gtk3" ]; then
20 GTKFLAG=$(pkg-config --cflags --libs gtk+-3.0)
21 GLADE=""
22 else
23 GTKFLAG=$(pkg-config --cflags --libs gtk+-2.0)
24 GLADE=$(pkg-config --cflags --libs libglade-2.0)
25 fi
26 XXLIB=""
27 fi
28
29 XXFLAG="-std=gnu99 -D_FILE_OFFSET_BITS=64 $GTKFLAG $GLADE -Wall"
30
31
32 echo "CC=$1 libsuffix=$libsuffix toolDir=$toolDir $gtkver"
33
34 $1 $XXFLAG -c -Wall -Wextra -Wshadow -Wformat-security -Winit-self \
35 -Wmissing-prototypes -O2 -DLINUX \
36 -I./Ventoy2Disk/Lib/libhttp/include \
37 -DNDEBUG -DNO_CGI -DNO_CACHING -DNO_SSL -DSQLITE_DISABLE_LFS -DSSL_ALREADY_INITIALIZED \
38 -DUSE_STACK_SIZE=102400 -DNDEBUG -fPIC \
39 ./Ventoy2Disk/Lib/libhttp/include/civetweb.c \
40 -o ./civetweb.o
41
42 $1 -O2 -Wall -Wno-unused-function -DSTATIC=static -DINIT= \
43 -I./Ventoy2Disk \
44 -I./Ventoy2Disk/Core \
45 -I./Ventoy2Disk/Web \
46 -I./Ventoy2Disk/GTK \
47 -I./Ventoy2Disk/Include \
48 -I./Ventoy2Disk/Lib/libhttp/include \
49 -I./Ventoy2Disk/Lib/fat_io_lib/include \
50 -I./Ventoy2Disk/Lib/xz-embedded/linux/include \
51 -I./Ventoy2Disk/Lib/xz-embedded/linux/include/linux \
52 -I./Ventoy2Disk/Lib/xz-embedded/userspace \
53 -I ./Ventoy2Disk/Lib/exfat/src/libexfat \
54 -I ./Ventoy2Disk/Lib/exfat/src/mkfs \
55 -I ./Ventoy2Disk/Lib/fat_io_lib \
56 \
57 -L ./Ventoy2Disk/Lib/fat_io_lib/lib \
58 Ventoy2Disk/main_gtk.c \
59 Ventoy2Disk/Core/*.c \
60 Ventoy2Disk/Web/*.c \
61 Ventoy2Disk/GTK/*.c \
62 Ventoy2Disk/Lib/xz-embedded/linux/lib/decompress_unxz.c \
63 Ventoy2Disk/Lib/exfat/src/libexfat/*.c \
64 Ventoy2Disk/Lib/exfat/src/mkfs/*.c \
65 Ventoy2Disk/Lib/fat_io_lib/*.c \
66 $XXLIB \
67 -l pthread \
68 ./civetweb.o \
69 -o Ventoy2Disk.${gtkver}_$libsuffix $XXFLAG
70
71 rm -f *.o
72
73 if [ "$libsuffix" = "aa64" ]; then
74 aarch64-linux-gnu-strip Ventoy2Disk.${gtkver}_$libsuffix
75 elif [ "$libsuffix" = "m64e" ]; then
76 mips-linux-gnu-strip Ventoy2Disk.${gtkver}_$libsuffix
77 else
78 strip Ventoy2Disk.${gtkver}_$libsuffix
79 fi
80
81 rm -f ../INSTALL/tool/$toolDir/Ventoy2Disk.${gtkver}_$libsuffix
82 cp -a Ventoy2Disk.${gtkver}_$libsuffix ../INSTALL/tool/$toolDir/Ventoy2Disk.${gtkver}
83
84 $1 -O2 -D_FILE_OFFSET_BITS=64 Ventoy2Disk/ventoy_gui.c Ventoy2Disk/Core/ventoy_json.c -I Ventoy2Disk/Core -DVTOY_GUI_ARCH="\"$toolDir\"" -o VentoyGUI.$toolDir
85 cp -a VentoyGUI.$toolDir ../INSTALL/
86 }
87
88
89 build_func "gcc" '64' 'x86_64' 'gtk3'
90
91 build_func "gcc" '64' 'x86_64' 'gtk2'
92
93 build_func "gcc -m32" '32' 'i386' 'gtk2'
94 build_func "gcc -m32" '32' 'i386' 'gtk3'
95
96 build_func "aarch64-linux-gnu-gcc" 'aa64' 'aarch64' 'gtk3'
97
98 export PATH=/opt/mips-loongson-gcc8-linux-gnu-2021-02-08/bin/:$PATH
99 build_func "mips-linux-gnu-gcc -mips64r2 -mabi=64" 'm64e' 'mips64el' 'gtk3'
100