mirror of
https://github.com/superconvert/smart-os.git
synced 2024-11-22 10:10:02 +08:00
add llvm support
This commit is contained in:
parent
d1a95e421c
commit
9d956731f1
@ -167,18 +167,36 @@ echo "${CYAN}--- build diskfs ---${NC}"
|
|||||||
cp rootfs/* ${diskfs} -r
|
cp rootfs/* ${diskfs} -r
|
||||||
# 带有 gcc 编译器
|
# 带有 gcc 编译器
|
||||||
if [ "${with_gcc}" = true ]; then
|
if [ "${with_gcc}" = true ]; then
|
||||||
echo "${RED} ... build gcc tools${NC}"
|
echo "${RED} ... build with-gcc${NC}"
|
||||||
cp ${gcc_install}/* ${diskfs} -r
|
cp ${gcc_install}/* ${diskfs} -r
|
||||||
cp ${binutils_install}/usr/x86_64-pc-linux-gnu/* ${diskfs} -r
|
cp ${binutils_install}/usr/x86_64-pc-linux-gnu/* ${diskfs} -r
|
||||||
fi
|
fi
|
||||||
rm -rf ${diskfs}/init ${diskfs}/lost+found
|
rm -rf ${diskfs}/init ${diskfs}/lost+found
|
||||||
|
|
||||||
|
# 测试用户登陆模式: root/123456
|
||||||
|
if [ "${with_login}" = true ]; then
|
||||||
|
echo "${RED} ... build with-login${NC}"
|
||||||
|
./mk_login.sh ${diskfs}
|
||||||
|
fi
|
||||||
|
|
||||||
# 带有 xfce 编译器
|
# 带有 xfce 编译器
|
||||||
if [ "${with_xfce}" = true ]; then
|
if [ "${with_xfce}" = true ]; then
|
||||||
echo "${RED} ... build xfce desktop${NC}"
|
echo "${RED} ... build xfce desktop${NC}"
|
||||||
|
# 构建 Xorg 的键盘数据
|
||||||
rm ${xfce_install}/usr/local/share/X11/xkb -rf
|
rm ${xfce_install}/usr/local/share/X11/xkb -rf
|
||||||
ln -s /usr/share/X11/xkb ${xfce_install}/usr/local/share/X11
|
ln -s /usr/share/X11/xkb ${xfce_install}/usr/local/share/X11
|
||||||
mv ${xfce_install}/usr/local/lib/libpcre.so.1 ${xfce_install}/usr/local/lib/libpcre.so.3
|
# 依赖版本 3
|
||||||
|
if [ -f "${xfce_install}/usr/local/lib/libpcre.so.1" ]; then
|
||||||
|
mv ${xfce_install}/usr/local/lib/libpcre.so.1 ${xfce_install}/usr/local/lib/libpcre.so.3
|
||||||
|
fi
|
||||||
|
# dbus 用户添加
|
||||||
|
echo "messagebus:x:107:" >> ${diskfs}/etc/group
|
||||||
|
echo "messagebus:x:103:107::/nonexistent:/usr/sbin/nologin" >> ${diskfs}/etc/passwd
|
||||||
|
# dbus 启动脚本
|
||||||
|
# dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
|
||||||
|
# dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
|
||||||
|
# dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
|
||||||
|
# 拷贝 xfce4 到镜像目录
|
||||||
cp ${xfce_install}/* ${diskfs} -r -n
|
cp ${xfce_install}/* ${diskfs} -r -n
|
||||||
echo "xinit /usr/local/bin/xfce4-session -- /usr/local/bin/Xorg :10" > ${diskfs}/xfce.sh
|
echo "xinit /usr/local/bin/xfce4-session -- /usr/local/bin/Xorg :10" > ${diskfs}/xfce.sh
|
||||||
chmod +x ${diskfs}/xfce.sh
|
chmod +x ${diskfs}/xfce.sh
|
||||||
@ -190,12 +208,6 @@ if [ "${with_xfce}" = true ]; then
|
|||||||
# 3. xfce4-session 需要 libuuid.so
|
# 3. xfce4-session 需要 libuuid.so
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 测试用户登陆模式: root/123456
|
|
||||||
if [ "${with_login}" = true ]; then
|
|
||||||
echo "${RED} ... with-login${NC}"
|
|
||||||
./mk_login.sh ${diskfs}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 我们测试驱动, 制作的镜像启动后,我们进入此目录 insmod hello_world.ko 即可
|
# 我们测试驱动, 制作的镜像启动后,我们进入此目录 insmod hello_world.ko 即可
|
||||||
./mk_drv.sh $(pwd)/${diskfs}/lib/modules
|
./mk_drv.sh $(pwd)/${diskfs}/lib/modules
|
||||||
# 编译网卡驱动 ( 目前版本内核已集成 e1000 )
|
# 编译网卡驱动 ( 目前版本内核已集成 e1000 )
|
||||||
|
26
mk_xfce.sh
26
mk_xfce.sh
@ -47,6 +47,7 @@ EXPAT_SRC_URL=https://nchc.dl.sourceforge.net/project/expat/expat/2.4.9/expat-2.
|
|||||||
LIBUDEV_SRC_URL=https://dev.gentoo.org/~blueness/eudev/eudev-3.2.9.tar.gz
|
LIBUDEV_SRC_URL=https://dev.gentoo.org/~blueness/eudev/eudev-3.2.9.tar.gz
|
||||||
LIBNETTLE_SRC_URL=https://ftp.gnu.org/gnu/nettle/nettle-3.8.1.tar.gz
|
LIBNETTLE_SRC_URL=https://ftp.gnu.org/gnu/nettle/nettle-3.8.1.tar.gz
|
||||||
LIBPCRE_SRC_URL=https://nchc.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
|
LIBPCRE_SRC_URL=https://nchc.dl.sourceforge.net/project/pcre/pcre/8.39/pcre-8.39.tar.gz
|
||||||
|
LLVM_SRC_URL=https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/llvm-10.0.0.src.tar.xz
|
||||||
NCURSES_SRC_URL=https://invisible-island.net/datafiles/release/ncurses.tar.gz
|
NCURSES_SRC_URL=https://invisible-island.net/datafiles/release/ncurses.tar.gz
|
||||||
XFCE_SRC_URL=https://archive.xfce.org/xfce/4.16/fat_tarballs/xfce-4.16.tar.bz2
|
XFCE_SRC_URL=https://archive.xfce.org/xfce/4.16/fat_tarballs/xfce-4.16.tar.bz2
|
||||||
|
|
||||||
@ -165,6 +166,7 @@ LIBPCRE_SRC_NAME=$(download_src ${LIBPCRE_SRC_URL})
|
|||||||
LIBPCRE2_SRC_NAME=$(download_src ${LIBPCRE2_SRC_URL})
|
LIBPCRE2_SRC_NAME=$(download_src ${LIBPCRE2_SRC_URL})
|
||||||
LIBNOTIFY_SRC_NAME=$(download_src ${LIBNOTIFY_SRC_URL})
|
LIBNOTIFY_SRC_NAME=$(download_src ${LIBNOTIFY_SRC_URL})
|
||||||
GLIB_SRC_NAME=$(download_src ${GLIB_SRC_URL})
|
GLIB_SRC_NAME=$(download_src ${GLIB_SRC_URL})
|
||||||
|
LLVM_SRC_NAME=$(download_src ${LLVM_SRC_URL})
|
||||||
EXPAT_SRC_NAME=$(download_src ${EXPAT_SRC_URL})
|
EXPAT_SRC_NAME=$(download_src ${EXPAT_SRC_URL})
|
||||||
PIXMAN_SRC_NAME=$(download_src ${PIXMAN_SRC_URL})
|
PIXMAN_SRC_NAME=$(download_src ${PIXMAN_SRC_URL})
|
||||||
FREETYPE_SRC_NAME=$(download_src ${FREETYPE_SRC_URL})
|
FREETYPE_SRC_NAME=$(download_src ${FREETYPE_SRC_URL})
|
||||||
@ -294,6 +296,7 @@ LIBPCRE_SRC_DIR=$(unzip_src ".tar.gz" ${LIBPCRE_SRC_NAME}); echo "unzip ${LIBPCR
|
|||||||
LIBPCRE2_SRC_DIR=$(unzip_src ".tar.gz" ${LIBPCRE2_SRC_NAME}); echo "unzip ${LIBPCRE2_SRC_NAME} source code"
|
LIBPCRE2_SRC_DIR=$(unzip_src ".tar.gz" ${LIBPCRE2_SRC_NAME}); echo "unzip ${LIBPCRE2_SRC_NAME} source code"
|
||||||
LIBNOTIFY_SRC_DIR=$(unzip_src ".tar.xz" ${LIBNOTIFY_SRC_NAME}); echo "unzip ${LIBNOTIFY_SRC_NAME} source code"
|
LIBNOTIFY_SRC_DIR=$(unzip_src ".tar.xz" ${LIBNOTIFY_SRC_NAME}); echo "unzip ${LIBNOTIFY_SRC_NAME} source code"
|
||||||
GLIB_SRC_DIR=$(unzip_src ".tar.xz" ${GLIB_SRC_NAME}); echo "unzip ${GLIB_SRC_NAME} source code"
|
GLIB_SRC_DIR=$(unzip_src ".tar.xz" ${GLIB_SRC_NAME}); echo "unzip ${GLIB_SRC_NAME} source code"
|
||||||
|
LLVM_SRC_DIR=$(unzip_src ".tar.xz" ${LLVM_SRC_NAME}); echo "unzip ${LLVM_SRC_NAME} source code"
|
||||||
EXPAT_SRC_DIR=$(unzip_src ".tar.xz" ${EXPAT_SRC_NAME}); echo "unzip ${EXPAT_SRC_NAME} source code"
|
EXPAT_SRC_DIR=$(unzip_src ".tar.xz" ${EXPAT_SRC_NAME}); echo "unzip ${EXPAT_SRC_NAME} source code"
|
||||||
PIXMAN_SRC_DIR=$(unzip_src ".tar.gz" ${PIXMAN_SRC_NAME}); echo "unzip ${PIXMAN_SRC_NAME} source code"
|
PIXMAN_SRC_DIR=$(unzip_src ".tar.gz" ${PIXMAN_SRC_NAME}); echo "unzip ${PIXMAN_SRC_NAME} source code"
|
||||||
FREETYPE_SRC_DIR=$(unzip_src ".tar.xz" ${FREETYPE_SRC_NAME}); echo "unzip ${FREETYPE_SRC_NAME} source code"
|
FREETYPE_SRC_DIR=$(unzip_src ".tar.xz" ${FREETYPE_SRC_NAME}); echo "unzip ${FREETYPE_SRC_NAME} source code"
|
||||||
@ -577,6 +580,27 @@ common_build() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------------------------------------------
|
||||||
|
# llvm 编译
|
||||||
|
#----------------------------------------------------------------------------------------------------------------
|
||||||
|
llvm_build() {
|
||||||
|
local name=$1
|
||||||
|
local srcdir=$2
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
if [ ! -f .${name} ]; then
|
||||||
|
echo "${CYAN}build ${name} begin${NC}" && cd ${srcdir} && mkdir -pv build && cd build
|
||||||
|
if [ -f CMakeLists.txt ]; then
|
||||||
|
cmake . -DCMAKE_INSTALL_PREFIX=/usr
|
||||||
|
fi
|
||||||
|
if [ -f ./configure ]; then
|
||||||
|
./configure ${cfg_opt} "$@" ${xwin_opt}
|
||||||
|
fi
|
||||||
|
make -j8 && make install DESTDIR=${xfce_install} && echo "ok" > ../../.${name} || exit
|
||||||
|
cd ../.. && echo "${GREEN}build ${name} end${NC}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
#
|
#
|
||||||
# 编译 harfbuzz 遇到问题: linking of temporary binary failed,关闭 glibc 的链接,问题就解决了,原因推测如下:
|
# 编译 harfbuzz 遇到问题: linking of temporary binary failed,关闭 glibc 的链接,问题就解决了,原因推测如下:
|
||||||
@ -709,6 +733,8 @@ common_build() {
|
|||||||
meson_build pango ${PANGO_SRC_DIR}
|
meson_build pango ${PANGO_SRC_DIR}
|
||||||
# 编译基础库 ( 这些都是系统库,新系统需要集成 )
|
# 编译基础库 ( 这些都是系统库,新系统需要集成 )
|
||||||
if [ "${with_xfce}" = true ] && [ "$1" = "img" ]; then
|
if [ "${with_xfce}" = true ] && [ "$1" = "img" ]; then
|
||||||
|
# 编译 llvm ( swrast 依赖此库 )
|
||||||
|
llvm_build llvm ${LLVM_SRC_DIR}
|
||||||
# 编译 expat
|
# 编译 expat
|
||||||
common_build expat ${EXPAT_SRC_DIR}
|
common_build expat ${EXPAT_SRC_DIR}
|
||||||
# 编译 libudev
|
# 编译 libudev
|
||||||
|
Loading…
Reference in New Issue
Block a user