Coder Social home page Coder Social logo

julnadeauca / bsdbuild Goto Github PK

View Code? Open in Web Editor NEW
7.0 2.0 1.0 1.83 MB

Cross-platform make library and configure script generator (stable)

Home Page: http://bsdbuild.hypertriton.com

Perl 22.39% Makefile 16.83% Shell 32.07% C 0.68% Raku 23.61% Vim Script 4.42%
build build-tool build-tool-cross-platform build-system makefile make makefile-generation makefile-collection tests testing-tools

bsdbuild's Introduction

BSDBuild

What is it?

BSDBuild is a compact, cross-platform build system which follows the Principle of Least Astonishment. Derived from the traditional 4.4BSD make libraries, BSDBuild allows programs and libraries to be built portably using simple BSD-style Makefiles (without BSD make extensions). BSDBuild works on most operating systems and make flavors.

It can generate Bourne configure scripts, foo-config installation scripts, pkg-config .pc files and platform-specific application/framework bundles. BSDBuild-generated configure scripts look and function similar to a GNU autotools generated script, although BSDBuild uses a different configure.in language.

The base distribution currently includes over 100 built-in Test Modules for detecting and testing the compatibility of various software. New test modules can be written quickly. BSDBuild tests can also be used from CMake. The configure script generator outputs a CMake macro package that contains all BSDBuild tests available as CMake macros.

For an introductory tutorial, see the FAQ. Please direct any issues, comments or suggestions to GitHub Issues. You can chat with the developers over at the LibAgar Discord.

Components

  • mkconfigure: Generate portable Bourne configure scripts.
  • build.common.mk: Common definitions (filesystem paths, etc).
  • build.man.mk: Process mdoc sources into ASCII, PostScript, PDF and HTML.
  • build.lib.mk: Compile (or cross-compile) static or shared libraries from sources (Ada, assembly, C, C++, Objective C, Lex, Yacc).
  • build.prog.mk: Compile (or cross-compile) programs from sources (Ada, assembly, C, C++, Objective C, Lex, Yacc).
  • build.www.mk: Compile HTML documents (and optionally language/character set variants) from sources using m4 and xsltproc.

Availability

Latest Stable Release

Latest Development Sources

License

Contributing

Support on Patreon

You can support the BSDBuild project through the LibAgar Patreon.

bsdbuild's People

Contributors

charlesdaniels avatar julnadeauca avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

begasus

bsdbuild's Issues

[configure script] The information about CXX is not printed

Only the information about CC is printed even though my project is 100% C++. I tried to put require(cxx) on configure.in but that doesn't help. But it seems the configure script really probed the information about CXX, it only doesn't print them on the screen. I guess it's the case because I tried to put a target on Makefile to print the value of CXX. It printed g++.

Please put a bit more love into C++

I know you only do C stuff but this build system advertised that it supports C++. On build.prog.mk I found you are using CC to link object files. The result is it will fail to link C++ binaries because missing of references to the C++ standard library (libstdc++ or libc++).

We should test the pkg-config / pkgconf version

We should test the pkg-config / pkgconf version so it is at least 0.9.0. We may also want to test which implementation is
used:

  • The original freedesktop.org implementation.
  • The OpenBSD re-implementation (which appeared in OpenBSD 4.1) installed under /usr/bin/pkg-config. Note: It does not manage the Conflicts keyword.
  • The FreeBSD pkgconf which is installed both as pkgconf and pkg-config by devel/pkgconf.

Getting Started tutorial is definitely needed

Assuming I'm creating a new project from scratch with only test.cpp, configure.in, Makefile and the mk directory I copied from BSDBuild directory. There is no documents or tutorials about how to getting started. What on your page at http://bsdbuild.hypertriton.com/ is only a manual page at most. I have to guess everything and do trial and error based on the layout of your Vislak project.

How to start from scratch?

What I found is if I run make configure, it will complain that Makefile.config is not found. This means I have to run the configure script to generate Makefile.config. But I have no configure script, this is the reason why I attempted to run make configure in the first place. Are you joking with me?

I ended up have to run these commands manually to have a configure script (they are extracted from Makefile):

cat configure.in | mkconfigure > configure
chmod 755 configure

Then I have to run this configure script to have Makefile.config so I will be able to run make configure. How ridiculous it is!

Where to get support?

There are new commits. But there are no answers for the submitted issues. There is no replies from the developer so far.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.