No description
  • C 86.3%
  • Shell 4.8%
  • Roff 3.9%
  • Makefile 2.5%
  • Python 2%
  • Other 0.5%
Find a file
Mateusz Gilowski d51124deb1 Merge branch 'build/actual-win-support' into 'main'
Build/actual win support

See merge request cse2000-software-project/2025-2026/cluster-i/09a/09a!78
2026-06-19 12:59:24 +02:00
dist doc: add README.txt to be included in the linux distribution 2026-06-17 14:04:40 +02:00
doc format: Hard-wrap lines at 80 columns as common courtesy 2026-06-16 12:03:45 +02:00
legacy_documentation legal: Update Copyright notice to 2026 2026-06-17 10:17:09 +02:00
src Build: Fix merge conflict problem 2026-06-19 12:31:20 +02:00
system_tests Merge branch 'test/bad-weather-inputerr' into 'main' 2026-06-18 11:23:34 +02:00
.clangd build: Update clangd to point to linux/ not unix/ 2026-06-17 15:08:47 +02:00
.editorconfig Fix: allowed for CRLF in .cmd, returned .cmd as the howto file 2026-06-16 16:13:28 +02:00
.gitattributes Fix: updated the files in tests to be .cmd 2026-06-16 16:17:18 +02:00
.gitignore chore: Gitingore irrelevant testing artifact 2026-06-11 11:28:32 +02:00
.gitlab-ci.yml ci: Run make on 8 threads to speed up build times 2026-05-30 02:55:38 +02:00
build_dist.sh build: Make the build process "just work" on aarch64 linux 2026-06-12 14:03:44 +02:00
cfg_fuzzing.py Make instructions clearer and remove the make commands 2026-06-05 15:15:01 +02:00
CONTRIBUTING.md doc: Add sample CONTRIBUTING.md 2026-04-22 14:54:00 +02:00
ff.sh script: Add helper scripts used in refactoring 2026-05-08 12:51:36 +02:00
insert-header-guards.sh chore: Add insert-header-guards.sh 2026-04-30 12:28:52 +02:00
list-decls.py fix: Add back defines to list-decls.py 2026-05-06 15:18:20 +02:00
list-hidden-signatures.sh script: Add helper scripts used in refactoring 2026-05-08 12:51:36 +02:00
README.md Merge branch 'remove-redundant-warnings' into 'main' 2026-06-18 12:20:16 +02:00
report_coverage.sh Fix: added branch coverage to gcov and changed realname to realpath 2026-06-03 15:38:57 +02:00
requirements.txt Make instructions clearer and remove the make commands 2026-06-05 15:15:01 +02:00
run_tests.sh build: fix script that sometimes makes pipeline fail 2026-06-09 14:41:41 +02:00
signature_modernizer.py Update file signature_modernizer.py 2026-05-07 14:28:16 +02:00
TODO chore: Unset the executable flag on source files 2026-04-22 14:54:00 +02:00

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:

  1. Manually set the CC flag to the GCC version present on your computer;
  2. Manually set the SYSTEM flag to macos.

Dependencies for Windows

TODO: Write

HOW TO RUN

  1. Install dependencies (or, if you already have them, check that your versions are recent enough)

    Read the instructions under HOW TO INSTALL DEPENDENCIES

  2. Change directory to src/

    cd src/
    
  3. Compile everything

    make all
    

    If you want to compile 32-bit instead:

    make all BIT=32
    

    Or, 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=macos
    

    Set 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.

  4. Run ABC

    ./abc
    

When you want to clean up the compilation artifacts, run

make clean

Create Dynamic Distribution Build for MacOS

  1. Go to the src/ folder

    cd src/
    
  2. Build the project with the strip flag

    make all CC=gcc-15 SYSTEM=macos EXTRA_FLAGS=-s
    
  3. Strip the executables

    strip abc abckeys
    
  4. Make a new folder to put the necessary files in

    mkdir temp
    
  5. Open Finder and copy abc, abc.1, abc.hlp, abc.msg and abckeys from src into the newly created temp folder.

  6. Open Disk Utility and go to File > New Image > Image from Folder.

  7. Select the temp folder you created.

  8. Save it under the name ABC-v1.00.06-rc1.