Khi tôi tạo cơ sở dữ liệu cscope hạt nhân Linux bằng cách phát hành make cscope
tôi nhận tệp cơ sở dữ liệu cùng với danh sách tệp có đường dẫn tương đối. Đây là một vấn đề đối với tôi vì sau này khi tôi đính kèm cơ sở dữ liệu của hạt nhân bên ngoài vào trình soạn thảo vim từ bất kỳ thư mục nào nhưng hạt nhân tôi có thể dễ dàng tìm kiếm biểu tượng cụ thể NHƯNG Tôi không thể mở tập tin đó có chứa mã vạch.Linux kernel makefile cscope target
tôi đã viết kịch bản bash tiếp theo
#!/bin/bash
SNAME="$0"
SNAME=${SNAME##*/}
function usage()
{
echo Generate Linux kernel cscope database
echo "Usage: $SNAME [PATH]"
echo -n "You must provide this script with an ABSOLUTE path of your "
echo "kernel's root directory"
}
if [[ -z "$1" ]]; then
usage
exit -1
fi
KDIR="$1"
echo -n "Collecting a list of files... "
if find "$KDIR" -path "${KDIR}/arch/*" ! -path "${KDIR}/arch/x86*" -prune -o \
-path "${KDIR}/include/asm-*" \
! -path "${KDIR}/include/asm-generic*" \
! -path "${KDIR}/include/asm-x86*" -prune -o \
-path "${KDIR}/tmp*" -prune -o \
-path "${KDIR}/Documentation*" -prune -o \
-path "${KDIR}/scripts*" -prune -o \
-name "*.[chxsS]" -print > cscope.files; then
echo done
else
echo failed
fi
echo -n "Building cscope database... "
cscope -k -qb && echo done || echo failed
thu thập tất cả các file tôi cần (x86/x86_64 kiến trúc) sử dụng tuyệt đối con đường và sau đó tôi xây dựng thành công cơ sở dữ liệu cscope bằng tay. Nhưng tôi nghĩ rằng nó phải là một cách dễ dàng hơn để thực hiện điều này. Có thể một số mục tiêu của Makefile như make cscope_abs
hoặc make cscope_ext
mà tôi chưa tìm thấy.
Mọi đề xuất?
+1 không biết nó có một tùy chọn cscope. –
Một điều mà tôi nghĩ đến là: nhìn vào Makefile cách cscope được gọi, nếu tồn tại một biến bạn có thể chỉ định một số tùy chọn để cscope trong dòng lệnh. – Chnossos