无构建系统

偶尔,一些非常小的软件包只是作为单个.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"
}

一个可能更好的替代方案是修补构建系统并将其发送到上游。