- C 86.3%
- Shell 4.8%
- Roff 3.9%
- Makefile 2.5%
- Python 2%
- Other 0.5%
Build/actual win support See merge request cse2000-software-project/2025-2026/cluster-i/09a/09a!78 |
||
|---|---|---|
| dist | ||
| doc | ||
| legacy_documentation | ||
| src | ||
| system_tests | ||
| .clangd | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| build_dist.sh | ||
| cfg_fuzzing.py | ||
| CONTRIBUTING.md | ||
| ff.sh | ||
| insert-header-guards.sh | ||
| list-decls.py | ||
| list-hidden-signatures.sh | ||
| README.md | ||
| report_coverage.sh | ||
| requirements.txt | ||
| run_tests.sh | ||
| signature_modernizer.py | ||
| TODO | ||
Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 2026.
README
Thank you for trying out ABC!
In this document, you will find instructions on how to build and run it.
If you are looking to make a distribution binary yourself, go to the "DISTRIBUTION.md" file.
If you are looking to run the test suite, go to the "TESTS.md" file.
DEPENDENCIES
- ncurses 6 (with dev headers): gets you termcap and termcap compatibility (this provides termcap headers too)
- GCC version 14 or higher, or Clang version 18 or higher (on older versions you will struggle with C23 support)
- GNU make
HOW TO INSTALL DEPENDENCIES
Dependencies for Ubuntu
When compiling a 64-bit executable:
sudo apt-get install build-essential libncurses-dev
When compiling a 32-bit executable:
sudo apt-get install build-essential gcc-multilib lib32ncurses-dev
Dependencies for MacOS
Compilation for 64-bit platforms only. Requires Homebrew; instructions found on the official Homebrew page: text
Install ncurses via Homebrew:
brew install ncurses
Install GCC via Homebrew (if not already installed):
brew install gcc
Check your GCC version by running:
ls /opt/homebrew/bin/gcc*
Look for a folder named /opt/homebrew/bin/gcc-xx, where xx is the current version number. This will tell you the GCC version you are running. When compiling, make sure to:
- Manually set the CC flag to the GCC version present on your computer;
- Manually set the SYSTEM flag to macos.
Dependencies for Windows
TODO: Write
HOW TO RUN
-
Install dependencies (or, if you already have them, check that your versions are recent enough)
Read the instructions under HOW TO INSTALL DEPENDENCIES
-
Change directory to
src/cd src/ -
Compile everything
make allIf you want to compile 32-bit instead:
make all BIT=32Or, if you are compiling on a system which uses a custom compiler and system configuration (on MacOS, gcc-15) instead of the default one:
make all CC=gcc-15 SYSTEM=macosSet the gcc-version to your current installed version.
Note
If you have previously built ABC for a different architecture (eg. 32-bit vs 64-bit), you need to clean up the build artifacts before compiling to another architecture.
-
Run ABC
./abc
When you want to clean up the compilation artifacts, run
make clean
Create Dynamic Distribution Build for MacOS
-
Go to the
src/foldercd src/ -
Build the project with the strip flag
make all CC=gcc-15 SYSTEM=macos EXTRA_FLAGS=-s -
Strip the executables
strip abc abckeys -
Make a new folder to put the necessary files in
mkdir temp -
Open Finder and copy abc, abc.1, abc.hlp, abc.msg and abckeys from src into the newly created temp folder.
-
Open Disk Utility and go to File > New Image > Image from Folder.
-
Select the temp folder you created.
-
Save it under the name ABC-v1.00.06-rc1.