Skip to content

Enable ESPS compilation on Ubuntu 24.04 - #1

Merged
wooters merged 3 commits into
mainfrom
compile
Feb 27, 2026
Merged

Enable ESPS compilation on Ubuntu 24.04#1
wooters merged 3 commits into
mainfrom
compile

Conversation

@wooters

@wooters wooters commented Feb 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add Linux (Ubuntu 24.04) build support: 154 CLI utilities compile with GCC 13 on arm64/x86_64
  • Provide containerized build via Dockerfile and make container-test (Apple container CLI)
  • Fix cross-platform issues: GNU ld circular deps, GCC 10+ -fno-common default, macOS ar compatibility
  • Document Linux build instructions in README

Changes

  • SETUP — Linux CC flags (-std=gnu89 -fcommon), warning suppressions, arch-agnostic X_LIB, library link order for GNU ld circular dependencies
  • COMPILElibexv.a stub via dummy object (works on both macOS and Linux ar)
  • Dockerfile — Ubuntu 24.04 build environment with gcc, make, bison, flex, X11 dev headers
  • .dockerignore — Exclude build artifacts, .git, docs, devtools
  • Makefilecontainer-test target
  • README.md — Linux build instructions, corrected binary counts

Test plan

  • make container-test builds successfully (154 binaries in container)
  • macOS native build still works (166 binaries: 154 compiled + 12 platform-specific)
  • Binary sets match across platforms (diff is only macOS audio scripts)

🤖 Generated with Claude Code

wooters and others added 3 commits February 26, 2026 18:10
Minimal changes to get the ESPS 6.0 codebase compiling on modern macOS
with Apple clang 17 targeting arm64. GUI/X11/audio components are excluded.

Build system changes:
- SETUP: Add C89 compatibility flags (-std=gnu89, -Wno-implicit-*) for macOS,
  make XView detection non-fatal, guard macAudio binary copy
- COMPILE: Copy other_includes before build, comment out GUI/X11/audio/HP
  components (libxv, xwaves, image, formsy, ps_ana, gpstohp, etc.)
- lib/makefile: Remove xsend.o (X11-dependent) from library objects
- ATT/libsig/Makefile: Remove -DFOR_XVIEW to avoid xview.h dependency
- sphere2.6 Makefiles: Replace gcc -ansi with gnu89 + warning suppression
- lib_header/makefile: Add mkdir -p for esps/waves/ers subdirectories

Source code fixes (minimal, compiler-required only):
- sphere.h: Guard u_int macro with __APPLE__ to avoid typedef conflict
- fixio.c: Add #include <unistd.h> for swab() declaration
- vqdesign.c: Add #include <stdlib.h>, fix implicit int declaration
- vqencode.c: Add #include <stdlib.h> for exit() declaration
- addfeahd.c, btosps.c: Add LINUX_OR_MAC to platform guards for lvalue cast

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add container-based Linux build alongside existing macOS support.
154 CLI utilities compile on Ubuntu 24.04 (GCC 13, arm64/x86_64).

Build system changes:
- SETUP: Linux section with gnu89 mode, -fcommon, warning suppressions,
  architecture-agnostic X11 path, circular library dep resolution
- COMPILE: cross-platform libexv.a stub for disabled XView
- Dockerfile, .dockerignore, Makefile: containerized build via Apple
  container CLI (same pattern as miniDSP)
- README: Linux build instructions and corrected binary counts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@wooters
wooters merged commit 6ccf6e2 into main Feb 27, 2026
1 check passed
@wooters
wooters deleted the compile branch February 27, 2026 04:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant