{"id":18152247,"url":"https://github.com/bsdelf/simple-build","last_synced_at":"2026-04-29T12:33:22.646Z","repository":{"id":4124680,"uuid":"5235919","full_name":"bsdelf/simple-build","owner":"bsdelf","description":"Simple build tool for small C/C++ projects","archived":false,"fork":false,"pushed_at":"2023-07-08T11:59:50.000Z","size":122,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T23:45:55.701Z","etag":null,"topics":["build","c","c-plus-plus","clang","cpp17","freebsd","gcc","linux","macos","make","makefile"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bsdelf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-07-30T18:20:02.000Z","updated_at":"2025-03-12T21:31:30.000Z","dependencies_parsed_at":"2024-12-20T12:12:46.392Z","dependency_job_id":"d3cbcb11-06e4-4c22-8802-8bf1c8aa7fc8","html_url":"https://github.com/bsdelf/simple-build","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bsdelf/simple-build","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsdelf%2Fsimple-build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsdelf%2Fsimple-build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsdelf%2Fsimple-build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsdelf%2Fsimple-build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bsdelf","download_url":"https://codeload.github.com/bsdelf/simple-build/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsdelf%2Fsimple-build/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32426579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T12:24:25.982Z","status":"ssl_error","status_checked_at":"2026-04-29T12:24:24.439Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build","c","c-plus-plus","clang","cpp17","freebsd","gcc","linux","macos","make","makefile"],"created_at":"2024-11-02T02:06:08.574Z","updated_at":"2026-04-29T12:33:22.622Z","avatar_url":"https://github.com/bsdelf.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Build\n\n`sb` is a build tool which is suitable for small C/C++ projects.\n\nFor given source files, `sb` can detect all dependencies and figure out which source files should be (re)compiled and linked together. Therefore, developers can be fully focused on project implementation details without the need to amend Makefiles every now and then.\n\n## Features\n\n- Build automation\n- Utilize all CPU cores\n\n## Requirements\n\n- Compiler: Clang or GCC\n- System: FreeBSD / Linux / macOS\n\n## Install\n\nTo build `sb`, you need a C++ compiler with c++17 support. Instructions:\n\n```\ngit clone https://github.com/bsdelf/sb.git\ncd sb \u0026\u0026 ./bootstrap.sh\ncp sb /usr/local/bin\n```\n\n## Usage\n\nSuppose we have a project with following structure:\n\n```\n.\n├── clib.c\n├── clib.h\n├── main.cpp\n├── utils.cpp\n└── utils.h\n```\n\n### Scenario 1\n\nTo build this project, just type `sb`. The output will be:\n\n```\nBuild 3 file(s)\n[  25% ] ./utils.cpp =\u003e ./utils.cpp.o\n[  50% ] ./main.cpp =\u003e ./main.cpp.o\n[  75% ] ./clib.c =\u003e ./clib.c.o\n[ 100% ] ./a.out\n```\n\nAfter then, an executable binary `a.out` will be available. To customize name, for example \"demo\", use following command:\n\n```\nsb target=demo\n```\n\n### Scenario 2\n\nTo use c++17 features for C++ source files and c89 features for C source files, use following command:\n\n```\nsb c++17 c89\n```\n\n### Scenario 3\n\nTo build \"clib\" into a shared library and link the rests against with \"libclib\",\nuse following two commands:\n\n```\nsb clib.c shared target=libclib.dylib\n```\n\n```\nsb main.cpp utils.cpp ldflags=\"-L./ -lclib\"\n```\n\nNote: \".dylib\" is a shared library extension on macOS, for Linux or FreeBSD, \".so\" should be used.\n\n## Help\n\n```\nUsage:\n\n    sb [options...] [files...] [directories...]\n\nOptions:\n\n    clean       clean files\n    jobs        set number of jobs\n    target      set target name\n    workdir     set working directory\n    verbose     set verbose level\n\n    as          set assembler\n    asflags     add assembler flags\n    cc          set c compiler\n    cflags      add c compiler flags\n    cxx         set c++ compiler\n    cxxflags    add c++ compiler flags\n    ld          set linker\n    ldflags     add linker flags\n    prefix      add search directories\n\n    wol         without link\n    thread      use pthreads\n    optimize    set optimize level\n    debug       enable -g\n    release     enable -DNDEBUG\n    strict      enable -Wall -Wextra -Werror\n    shared      enable -fPIC -shared\n    lto         enable -flto\n    c89         enable -std=c89\n    c99         enable -std=c99\n    c11         enable -std=c11\n    c18         enable -std=c18\n    c++11       enable -std=c++11\n    c++14       enable -std=c++14\n    c++17       enable -std=c++17\n    c++20       enable -std=c++20\n\n    help        show help\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsdelf%2Fsimple-build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbsdelf%2Fsimple-build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsdelf%2Fsimple-build/lists"}