无构建系统
偶尔,一些非常小的软件包只是作为单个.c
文件发布。在这种情况下,您可以编写自己的Makefile
并将其与源代码压缩包一起发布,或者直接在 ebuild 中手动编译,最好解释原因。以下是一个示例,来自app-misc/hilite
src_compile() {
$(tc-getCC) ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -o ${PN} ${P}.c || die
}
以下是一个来自x11-plugins/asclock
的示例,它附带了一个实际上不起作用的损坏的构建系统。
src_compile() {
local x
for x in asclock parser symbols config
do
$(tc-getCC) \
${CPPFLAGS} ${CFLAGS} ${ASFLAGS} \
-I"${EPREFIX}"/usr/include \
-Dlinux \
-D_POSIX_C_SOURCE=199309L \
-D_POSIX_SOURCE \
-D_XOPEN_SOURCE \
-D_BSD_SOURCE \
-D_SVID_SOURCE \
-DFUNCPROTO=15 \
-DNARROWPROTO \
-c -o ${x}.o ${x}.c || die "compile asclock failed"
done
$(tc-getCC) \
${LDFLAGS} \
-o asclock \
asclock.o parser.o symbols.o config.o \
-L"${EPREFIX}"/usr/lib \
-L"${EPREFIX}"/usr/lib/X11 \
-lXpm -lXext -lX11 || die "link asclock failed"
}
一个可能更好的替代方案是修补构建系统并将其发送到上游。