Files
magic/.github/workflows/main.yml
T
Darryl L. MilesandClaude Opus 4.8 293c111bc3 build: remove the bundled readline/ subdirectory (Patch 3)
Delete readline/ (the vendored GNU readline 4.3, ~104 files / 2 MB) now that
configure requires the system readline (Patch 1) and the Makefiles no longer
wire the bundled build (Patch 2).  Sweep the remaining references:

  * commands/Makefile.in: drop the `module: ${MAGICDIR}/readline/readline` rule
    and the readline-create-symlinks delegation (bundled-only; commands now uses
    the default `module: libcommands.o`).
  * commands/CmdFI.c, textio/txMain.c, textio/txInput.c: the readline includes
    had a `#ifdef HAVE_READLINE <system> #else "readline/readline/*.h" (bundled)`
    split.  HAVE_READLINE/NEED_READLINE are used nowhere else and USE_READLINE now
    always implies the system library, so collapse to the plain
    `#include <readline/readline.h>` / `<history.h>`.
  * CI: main.yml's non-Tcl job installs libreadline-dev (was relying on bundled);
    canary-matrix drops the now-invalid no_tk_tcl_brl / --enable-readline-bundled
    variant.
  * .gitignore: drop the "readline/ intentionally not converted" note.

Verified: Tcl -j12 builds+installs 375 files (commands builds, no readline-dir
references); --without-tcl --disable-readline -j12 builds (x2); --without-tcl with
no readline dev package still errors with the guidance message.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-26 14:54:11 -04:00

56 lines
2.0 KiB
YAML

name: CI
on:
push:
pull_request:
workflow_dispatch:
jobs:
simple_build_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Get Dependencies
run: |
sudo apt-get update
# tcl/tk + cairo for the build; texlive (latex + dvips) so the default
# "make" also regenerates the PostScript documentation. Docs are
# best-effort — a missing texlive package just falls back to the
# pre-built PostScript, it does not fail the build.
sudo apt-get install -y tcl-dev tk-dev libcairo-dev \
texlive-latex-base texlive-latex-recommended texlive-fonts-recommended
- name: Build
run: |
./configure
make prepare
make -j$(nproc)
- name: Build Tcl auto-load modules
# These per-module Tcl shared libraries are real products but are not
# part of the default target (their modules are not in PROGRAMS), so
# build them explicitly to keep them from bit-rotting.
run: |
for m in lef plot router ext2spice ext2sim; do
make -C "$m" tcl-main
done
standard_build_linux:
# Non-Tcl "standard" configuration: native magic binary + system GNU
# readline. Distinct code paths (MAGIC_WRAPPER off, readline) that the Tcl
# build above does not exercise.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Get Dependencies
# X11 + cairo for graphics; readline (the non-Tcl line editor) + its
# ncurses dependency; texlive for the docs. NB: package set not validated
# on the runner -- adjust if the build cannot find a library.
run: |
sudo apt-get update
sudo apt-get install -y libx11-dev libcairo-dev libreadline-dev libncurses-dev \
texlive-latex-base texlive-latex-recommended texlive-fonts-recommended
- name: Build (non-Tcl / standard)
run: |
./configure --without-tcl --without-opengl
make prepare
make -j$(nproc)