Coder Social home page Coder Social logo

Addition of a build system generator about libaco HOT 12 OPEN

hnes avatar hnes commented on July 4, 2024 5
Addition of a build system generator

from libaco.

Comments (12)

ddengster avatar ddengster commented on July 4, 2024 2

Don't agree with using an overly-complex build system. A simple makefile should be more than enough.

Check out this code philosophy; I think your code is so tiny it fits right in.
https://github.com/nothings/single_file_libs

from libaco.

hnes avatar hnes commented on July 4, 2024

Thanks Markus for your nice proposal :D

The reason why I choosed to write a simple bash script make.sh is because:

  • The libaco is very simple to build and also has very minimal dependencies on the POSIX.
gcc -g -O2 acosw.S aco.c app_of_libaco.c -o app_of_libaco
  • Using bash scripts could make the C flags matrix build process easier and clearer.

But still, adding the higher level build system support could even better.

I would like to add it to the ToDo list and it would be released in the future v1.3.0 since it is not so urgent.


Edit:

The reason why there is no such static or shared library makefile for libaco is because:

  • There are several C macro config choices in libaco's build;
  • The binary of libaco self is so tiny (15k~).

So, I think the best option for the developer is to configure the C macros and compile libaco himself. It would be clearer and is more impossible to make a mistake.

from libaco.

elfring avatar elfring commented on July 4, 2024

from libaco.

hnes avatar hnes commented on July 4, 2024

Maybe I'll choose to use CMake, but the priority of this issue is not so high.

from libaco.

hnes avatar hnes commented on July 4, 2024

I have just committed a simple Makefile demo for test_aco_synopsis.c. A full functional makefile (also including the test suites) will come with the release of v1.3.0.

from libaco.

elfring avatar elfring commented on July 4, 2024

I propose to invest development resources more in better build scripts than in a questionable make file.

from libaco.

hnes avatar hnes commented on July 4, 2024

Of course, we will. That Makefile is just temporary and will be substituted in the future with our formal build system generator. I should have commented on it clearly.

from libaco.

elfring avatar elfring commented on July 4, 2024

How do you think about to avoid intermediate work if you became convinced that other development approaches will provide better functionality?

from libaco.

hnes avatar hnes commented on July 4, 2024

from libaco.

hnes avatar hnes commented on July 4, 2024

Thank you very much for your kindly advice, @ddengster.

In the future, even we decide to add some build system generator, that would be only limited to the build of the test suites. There would be no such static or shared library makefile for libaco (the reason is described in the 2nd comment of this thread) unless there are some very strong benefits.

from libaco.

elfring avatar elfring commented on July 4, 2024

Is a build approach like “GNU Libtool” another incentive for further evolution in this software area?

from libaco.

techbech avatar techbech commented on July 4, 2024

Any updates on this @hnes ? 🙂

from libaco.

Related Issues (20)

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.