# flex 2.6.4 — build-dep del kernel (frente kernel-from-source). # # El kbuild del kernel usa flex (analizador léxico) para generar el parser de kconfig (scripts/kconfig) # y otros lexers. No está en el toolchain Alpine base ⇒ se construye desde fuente. Herramienta de # build-time, no input del 4/4: build vainilla, sin patches. # # Tarball release (configure ya generado ⇒ AutoconfReady). Estático musl con zig cc. name = "flex" version = "2.6.4" [source] tarball = "https://github.com/westes/flex/releases/download/v2.6.4/flex-2.6.4.tar.gz" sha256 = "e87aae032bf07c26f85ac0ed3250998c37621d95f8bd748b31f15b33c45ee995" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "dynamic" # CC=gcc/CXX=g++ (NO zig), igual que binutils/python3/cmake: flex se auto-construye (un `stage1flex` # procesa su propio scan.l → stage1scan.c). Con `zig cc` ese stage1flex sale miscompilado y falla con # "unrecognized rule" al parsear scan.l (zig 0.16 miscompila binarios musl no-triviales). gcc nativo # (como Alpine) lo produce funcional. link=dynamic: gcc enlaza el musl del toolchain (estático con # libtool+stage-scanner es frágil; flex es herramienta de build-time, corre, no se enlaza en el 4/4). [build.phases] configure = "CC=gcc CXX=g++ ./configure --prefix=/usr --disable-nls --disable-shared" compile = "CC=gcc CXX=g++ make -j\"$(nproc)\"" install = "make install DESTDIR=/out PREFIX=/usr"