c3d / build Goto Github PK
View Code? Open in Web Editor NEWA simple makefile-based build system that I split from ELFE / XL
License: GNU General Public License v3.0
A simple makefile-based build system that I split from ELFE / XL
License: GNU General Public License v3.0
Hello, Christophe!
I really like this project and want to say thank you for your work! But I wasn't able to find how to specify static libraries for the product. I mean how to pass -L and -l options to the linker?
Say I want to build strace with build
... strace uses autoconf, so what would be the steps to get there?
Is there a way to use clang on linux?
From looking at config.gnu.mk - it hardcodes CC/CXX to gcc/g++
The build products seem to go in a weird (to me place). I'd like libraries, executables to just be output in the directory where the makefile/product is defined. I'm not clear on how to achieve this.
Will there be a licensing exception for distributing build with projects that use it for building themselves (similar to the GNU Autotools exception: https://www.gnu.org/software/autoconf/manual/autoconf.html#Distributing)?
Thanks!
Would be great to add links to ELFE and XL to readme so people can follow to more advanced examples of build usage.
I'm running into a problem where I specify -m32
for CFLAGS and LDFLAGS. This works fine for the compilation, but when it comes time to link, I get this complaint:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/6/libstdc++.so when searching for -lstdc++
This is due to the fact that g++ is being used to link instead of gcc which implies libstdc++, but all my source files were plain C files so the logic could detect this and use gcc instead for the link.
I have specified LIBRARIES like this:
LIBRARIES=some/path/src
Which results in this error:
gcc: error: build/objects/linux/opt/src.a: No such file or directory
On the other hand, if I do this:
LIBRARIES=some/path/src/foo.lib
This result in the following error:
cd: some/path/foo.lib: No such file or directory
You seem to have settled on a convention that directories are specified with trailing slash. In which case it should also apply to library specifications I would think. However, I should point out that the convention of requiring ending "/" for directories will likely cause pain down the road if build begins to see wider adoption because that is typically not expected. Moving the semantics for that sort of thing to the variable name itself would be more conventional.
unionsq~/dev/projectm* build € make -C src/libprojectM/
****************************************************************
* The BUILDENV environment variable is not set
* You will accelerate builds by setting it as appropriate for
* your system. The best guess is BUILDENV=macosx-clang
* Attempting to build opt with macosx-clang DIR=/src/libprojectM
****************************************************************
[BEGIN] opt macosx-clang in [top]/src/libprojectM
[COMPILE 1/14] projectM.cpp
In file included from projectM.cpp:23:
Renderer/RenderItemMergeFunction.hpp:122:74: warning: expression result unused [-Wunused-value]
target.imageUrl = (ratio > 0.5) ? lhs->imageUrl : rhs->imageUrl, ratio;
....
[BEGIN] debug macosx-clang in [top]/src/libprojectM
libtool -no_warning_for_no_symbols -static ../../build/objects/macosx-clang/debug/src/libprojectM/projectM.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/PCM.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/Preset.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/fftsg.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/KeyHandler.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/timer.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/wipemalloc.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/PresetLoader.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/PresetChooser.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/PipelineMerger.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/ConfigFile.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/TimeKeeper.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/PresetFactory.cpp.o ../../build/objects/macosx-clang/debug/src/libprojectM/PresetFactoryManager.cpp.o -o ../../build/objects/macosx-clang/debug/libprojectM.a
Usage: /usr/local/bin/libtool [OPTION]... [MODE-ARG]...
Try 'libtool --help' for more information.
libtool: error: unrecognised option: '-no_warning_for_no_symbols'
make[2]: *** [../../build/objects/macosx-clang/debug/libprojectM.a] Error 1
Is there some way to use CROSS_COMPILE or specify the cross-building toolchain to use?
There is no support for DESTDIR
in the install
target
I'd like to have a top-level makefile that just specifies LIBRARIES/SUBDIRS but I can't because it yells at me if I'm missing a product
Standard makefile definitions like CC, LD, etc should probably be specified in rules.mk using "?=" so that they can be defined prior to the include $(BUILD)rule.mk
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.