History log of /haiku/data/develop/makefile-engine
Revision Date Author Comments
# ef240bff 25-Jul-2021 X512 <danger_mail@list.ru>

makefile-engine: fix for riscv64

Change-Id: I85c18ce812db65606ef6aba64f81b80872618263
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4317
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 072d3935 27-Oct-2020 Mark Barnett <mark@mnetcs.com>

makefile-engine: Fix driver compilation on x86_64

Remove unnecessary -fno-pic and make sure x64 linker output doesn't
put too much space between program header sections. By default, the
GNU linker will align program headers to page boundaries. In Haiku's
x86_64 builds this is 2MB, which the kernel considers to be too
much wasted space.

Fixes #15702

Change-Id: I2adce69b3de74340b05f7c0e8cda44d1b25b69fa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3361
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 478aa96d 23-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

Makefile Engine: Add quotes around INSTALL_DIR.

This is the correct solution to #11419; I missed in my original commit
that $(NAME) will already be escaped, and adding quotes double-escaped
it erroneously.


# a1f3d79d 21-Jan-2019 Humdinger <humdingerb@gmail.com>

makefile_engine: Revert hrev52738

Reverts hrev52738, as discussed with waddlesplash on IRC.
Re-opens #11419 "makefile_engine's install function fails on paths with blanks"

Turns out this change results in escaped filenames, e.g. "Open Origin Package"
becomes "Open\ Origin\ Package", see
https://github.com/haikuports/haikuports/pull/3580


# f84c53e4 09-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

makefile_engine: Fix installing to a path with spaces in it.

Fixes #11419.


# 4abe1806 02-Nov-2018 Kacper Kasper <kacperkasper@gmail.com>

makefile-engine: add .cxx extension handling

Change-Id: I67312f69c71b0653013bd001613dbac5cb464594
Reviewed-on: https://review.haiku-os.org/654
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# cdf894ce 24-Jan-2017 Jérôme Duval <jerome.duval@gmail.com>

makefile-engine: use $(CC) and $(CXX) instead of gcc and g++.

* so that one can build with clang.


# 4d83a710 10-Jan-2017 Kacper Kasper <kacperkasper@gmail.com>

makefile-engine: Fix catkey generation.

Fixes #13146.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>


# 8a6724a0 04-Nov-2016 François Revol <revol@free.fr>

makefile-engine: use grep -a for RDEF parsing

ThemeManager has an UTF-8 copyright symbol in its rdef file.
The chroot set up by haikuporter doesn't export anything that would
hint grep to accept UTF-8 as text, so it freaks out...
So we force it to accept anything as text.


# 114bdfb3 22-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: fix typo.

That's what I get for not checking the diffs after a merge/rebase/reset...


# a6d81954 22-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: use .PHONY for "clean".


# 9436959d 21-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: use mkdir -p instead of a complicated expression.


# d17092ce 21-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: whitespace / comments cleanup. No functional change.


# 6288f7b4 13-Aug-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Allow rdefs in subdirectories in makefile-engine.

Also use finddir instead of hardcoded paths for drivers and locale
catalog helper rules.

Fixes #11115. Thanks to Waddlesplash and Puckipedia for investigating
the issue.


# c57c6250 10-Jun-2014 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

It's -fno-pic not -no-fpic.


# bff26905 25-Mar-2014 Axel Dörfler <axeld@pinc-software.de>

makefile-engine: fixed build of kernel add-ons.

* Actually, hopefully: not yet tested.
* Automatic whitespace cleanup.


# a5862816 25-May-2013 Siarzhuk Zharski <zharik@gmx.li>

Jamfile/makefile-engines:replace -nostart with -shared

Starting from our GCC 4.7.3 the shared library -nostart option is not
valid anymore. Replace it with -shared one that works in GCC2 build
environment too.


# c7e76f70 09-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Support x86_64 platform in makefile-engine


# b6a086e3 06-Nov-2011 Siarzhuk Zharski <zharik@gmx.li>

* "bindcatalogs" target added to store localization catalogs in the programm
resources instead of separate folder under ~/config/data/locale/catalogs.
Thanks to Adrien for fixing this feature in the Locale kit!
* STATIC libraries should have .a extension.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9de720a4 26-Oct-2011 Siarzhuk Zharski <zharik@gmx.li>

* Propose using $(STDCPPLIBS) definition for version-independent linking
of standard C++ libraries (stdc++.r4 <-> stdc++ supc++);
* Force C++ language at preprocessing the sources before localization catkeys
collecting. It gives a hint for compiler to handle .pre file as C++ one
preventing breaking on "unfound" C++ headers. Thanks to Vitaly Diger for
pointing it out.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b063167 16-Oct-2011 Siarzhuk Zharski <zharik@gmx.li>

Strip the leading and trailing spaces from the makefile-defined variables to make
the engine more input robust.
Fixes #8019


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42864 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f36bcc2 28-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

Added support for localization features into makefile-engine
and makefile template. Have fun!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4142f7dc 28-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

A workaround for compatibility problem, originated from r40300 changes.
Proposed in it "LD ?= gcc" assignment doesn't works both with existing
makefiles and with current version of the makefile template. User must
define LD in it's makefile to let them work. That is bad.

This workaround uses $origin function to check for redefinition of LD
variable in user's makefile.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40739 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fe0019dd 27-Jan-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

allow end users to modify linker used in makefiles, resolves #5375

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40300 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a07a696 13-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Add input rdef location to include dir, otherwise when rc reads from stdin,
no include dir is defined and import commands will failed then.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39825 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f80ea08d 19-Jun-2010 Siarzhuk Zharski <zharik@gmx.li>

- prefix for system include paths was changed from -I to -system;
- objects directories are separated for release and debug builds too.

Thanks to Axel for pointing those details!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37178 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 53c50a9d 19-Jun-2010 Siarzhuk Zharski <zharik@gmx.li>

- separate object directories for different compiler versions. This prevent from link errors after compiler was switched between gcc2 and gcc4 versions;
- correspondently use "-iquote" instead of "-I-" that is treated as obsolete by GCC 4. This fixes warning messages mentioned in #6177;
- use $(TARGET) instead of $(OBJ_DIR)/$(NAME) in driverinstall: rules too. Patch by Evgeny Abdraimov.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37174 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4c6a820 29-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Now you can actually use a $(NAME) with spaces in it. Might not work for the
$(INSTALL_DIR) anymore, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33836 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 609a4bc5 29-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Better handling of spaces in file names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 50d73c50 04-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* driverinstall now also depends on "default"
* Added install target using INSTALL_DIR variable.
* Made "clean" and "rmapp" targets whitespace friendly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ef6dcac 04-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Added support for TARGET_DIR.
* Now uses g++ instead of gcc for C++ files.
* Removed mwcc support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2329f08 01-Jun-2009 imker <imker@nowhere.fake>

- added preprocessing of RDEF scripts during resource compilation;
- version of makefile template increased to 2.3 because of adding RDEFS list in previous commit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30936 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c154b946 21-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added haiku_version_glue.o "glue code" containing the Haiku/ABI version
symbols recently introduced. Until init_term_dyn.o is linked into kernel
add-ons, too, we link with haiku_version_glue.o, so we have those symbols
in kernel add-ons as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30818 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 31485470 16-May-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Siarzhuk Zharski that adds support for .rdef files to the
makefile-engine. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30771 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 432ce373 18-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

* Tracked down the mkdepend tool which Ingo used in his updated makefile-engine
which auto-generates dependencies. It was written by Lars Duening for BeOS
and uses libglob, which is also part of make. To re-use libglob and since
make is already part of the Haiku tree, I added mkdepend to the bin tools.
* Added Lars Duening's copyright to AboutSystem.
* Added skeleton makefile and makefile-engine to data/develop.
* Added mkdepend and makefile-engine files to the Development optional package.
It could be argued to move the make bin command there too, from it's current
location in the HaikuImage file. However, make could be useful to always
have available.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29609 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 114bdfb3b4f3bd9d12d0ac960d164c80eee85cab 22-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: fix typo.

That's what I get for not checking the diffs after a merge/rebase/reset...


# a6d81954758fda4dd91ac385b6fe18bf19925094 22-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: use .PHONY for "clean".


# 9436959d0a2f2bf9f0da4a54cdb70aaa7ea5093b 21-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: use mkdir -p instead of a complicated expression.


# d17092ceb18bf47a96dbaf8a1acf10e6e3070704 21-Jun-2015 Augustin Cavalier <waddlesplash@gmail.com>

makefile-engine: whitespace / comments cleanup. No functional change.


# 6288f7b4537703bfaa43bf8f8fa0c58e4c8dd82b 13-Aug-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Allow rdefs in subdirectories in makefile-engine.

Also use finddir instead of hardcoded paths for drivers and locale
catalog helper rules.

Fixes #11115. Thanks to Waddlesplash and Puckipedia for investigating
the issue.


# c57c62505eb4f46d12b206ac48393e4f4167eed4 10-Jun-2014 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

It's -fno-pic not -no-fpic.


# bff26905875330ea486e316f9c4279556917bfb5 25-Mar-2014 Axel Dörfler <axeld@pinc-software.de>

makefile-engine: fixed build of kernel add-ons.

* Actually, hopefully: not yet tested.
* Automatic whitespace cleanup.


# a5862816b1b28f8cf94e601057f8e4fb21969f17 25-May-2013 Siarzhuk Zharski <zharik@gmx.li>

Jamfile/makefile-engines:replace -nostart with -shared

Starting from our GCC 4.7.3 the shared library -nostart option is not
valid anymore. Replace it with -shared one that works in GCC2 build
environment too.


# c7e76f70bc8ae9edd12dadfd9af11e741583c455 09-Jan-2013 Siarzhuk Zharski <zharik@gmx.li>

Support x86_64 platform in makefile-engine


# b6a086e314c28b5adc75ea1cfe1a84eb4c1bea38 06-Nov-2011 Siarzhuk Zharski <zharik@gmx.li>

* "bindcatalogs" target added to store localization catalogs in the programm
resources instead of separate folder under ~/config/data/locale/catalogs.
Thanks to Adrien for fixing this feature in the Locale kit!
* STATIC libraries should have .a extension.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9de720a4ac2c6ee092da299d6948670b4c17ad10 26-Oct-2011 Siarzhuk Zharski <zharik@gmx.li>

* Propose using $(STDCPPLIBS) definition for version-independent linking
of standard C++ libraries (stdc++.r4 <-> stdc++ supc++);
* Force C++ language at preprocessing the sources before localization catkeys
collecting. It gives a hint for compiler to handle .pre file as C++ one
preventing breaking on "unfound" C++ headers. Thanks to Vitaly Diger for
pointing it out.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b063167dce0855c81f8050bab58aec6a411575d 16-Oct-2011 Siarzhuk Zharski <zharik@gmx.li>

Strip the leading and trailing spaces from the makefile-defined variables to make
the engine more input robust.
Fixes #8019


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42864 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4f36bcc2d7f45ab8fb5daf00438f38a038b134ac 28-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

Added support for localization features into makefile-engine
and makefile template. Have fun!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40742 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4142f7dcef8b1fb17fdf5519a2d3e79a64a4c8c0 28-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

A workaround for compatibility problem, originated from r40300 changes.
Proposed in it "LD ?= gcc" assignment doesn't works both with existing
makefiles and with current version of the makefile template. User must
define LD in it's makefile to let them work. That is bad.

This workaround uses $origin function to check for redefinition of LD
variable in user's makefile.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40739 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fe0019dda4b526b81108132813db2a719cf23924 27-Jan-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

allow end users to modify linker used in makefiles, resolves #5375

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40300 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8a07a696935255881e91f8790c41f2b9b5de2b07 13-Dec-2010 Philippe Houdoin <philippe.houdoin@gmail.com>

Add input rdef location to include dir, otherwise when rc reads from stdin,
no include dir is defined and import commands will failed then.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39825 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f80ea08d71e75ce537a565f822326b805e4cfd75 19-Jun-2010 Siarzhuk Zharski <zharik@gmx.li>

- prefix for system include paths was changed from -I to -system;
- objects directories are separated for release and debug builds too.

Thanks to Axel for pointing those details!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37178 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 53c50a9d1a37a7ec00df6ce3d4c4e71f04d6655a 19-Jun-2010 Siarzhuk Zharski <zharik@gmx.li>

- separate object directories for different compiler versions. This prevent from link errors after compiler was switched between gcc2 and gcc4 versions;
- correspondently use "-iquote" instead of "-I-" that is treated as obsolete by GCC 4. This fixes warning messages mentioned in #6177;
- use $(TARGET) instead of $(OBJ_DIR)/$(NAME) in driverinstall: rules too. Patch by Evgeny Abdraimov.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37174 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b4c6a820b9e0e1d79caac4263dea4bcfd44ffc44 29-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Now you can actually use a $(NAME) with spaces in it. Might not work for the
$(INSTALL_DIR) anymore, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33836 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 609a4bc570c2d280faf4ae9b21731ba782ef7e22 29-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Better handling of spaces in file names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 50d73c508f96d3736e58af3aa41dd8a01a8722ac 04-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* driverinstall now also depends on "default"
* Added install target using INSTALL_DIR variable.
* Made "clean" and "rmapp" targets whitespace friendly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32115 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ef6dcaceb025b16ec9c964c71092c856d5ec2e8 04-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Added support for TARGET_DIR.
* Now uses g++ instead of gcc for C++ files.
* Removed mwcc support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b2329f081e3104d2f1f36f0c08692a6bad38cc5d 01-Jun-2009 imker <imker@nowhere.fake>

- added preprocessing of RDEF scripts during resource compilation;
- version of makefile template increased to 2.3 because of adding RDEFS list in previous commit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30936 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c154b94624d37e53245540edfcdc6625e906987f 21-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added haiku_version_glue.o "glue code" containing the Haiku/ABI version
symbols recently introduced. Until init_term_dyn.o is linked into kernel
add-ons, too, we link with haiku_version_glue.o, so we have those symbols
in kernel add-ons as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30818 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 314854708a73802d582b5098b6020e5a2c882aa3 16-May-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Siarzhuk Zharski that adds support for .rdef files to the
makefile-engine. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30771 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 432ce3738dcbf41a0849e3fec7b6fde6808f468f 18-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

* Tracked down the mkdepend tool which Ingo used in his updated makefile-engine
which auto-generates dependencies. It was written by Lars Duening for BeOS
and uses libglob, which is also part of make. To re-use libglob and since
make is already part of the Haiku tree, I added mkdepend to the bin tools.
* Added Lars Duening's copyright to AboutSystem.
* Added skeleton makefile and makefile-engine to data/develop.
* Added mkdepend and makefile-engine files to the Development optional package.
It could be argued to move the make bin command there too, from it's current
location in the HaikuImage file. However, make could be useful to always
have available.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29609 a95241bf-73f2-0310-859d-f6bbb57e9c96