Commit Graph

35 Commits

Author SHA1 Message Date
X512
ef240bfffa 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>
2023-05-20 14:05:57 +00:00
Mark Barnett
072d3935c2 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>
2020-10-30 07:41:17 +00:00
Augustin Cavalier
478aa96dd7 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.
2019-01-23 23:39:46 -05:00
Humdinger
a1f3d79db8 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
2019-01-21 16:55:56 +01:00
Augustin Cavalier
f84c53e4ac makefile_engine: Fix installing to a path with spaces in it.
Fixes #11419.
2019-01-09 22:08:01 -05:00
Kacper Kasper
4abe18063a makefile-engine: add .cxx extension handling
Change-Id: I67312f69c71b0653013bd001613dbac5cb464594
Reviewed-on: https://review.haiku-os.org/654
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2018-11-02 21:18:35 +00:00
Jérôme Duval
cdf894ce17 makefile-engine: use $(CC) and $(CXX) instead of gcc and g++.
* so that one can build with clang.
2017-01-24 17:30:36 +01:00
Kacper Kasper
4d83a710f5 makefile-engine: Fix catkey generation.
Fixes #13146.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
2017-01-10 17:21:39 -05:00
François Revol
8a6724a0ee 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.
2016-11-05 00:55:53 +01:00
Augustin Cavalier
114bdfb3b4 makefile-engine: fix typo.
That's what I get for not checking the diffs after a merge/rebase/reset...
2015-06-22 13:25:52 -04:00
Augustin Cavalier
a6d8195475 makefile-engine: use .PHONY for "clean". 2015-06-22 13:20:15 -04:00
Augustin Cavalier
9436959d0a makefile-engine: use mkdir -p instead of a complicated expression. 2015-06-22 13:20:12 -04:00
Augustin Cavalier
d17092ceb1 makefile-engine: whitespace / comments cleanup. No functional change. 2015-06-22 13:20:09 -04:00
Adrien Destugues
6288f7b453 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.
2014-08-13 08:05:13 +02:00
Fredrik Holmqvist
c57c62505e It's -fno-pic not -no-fpic. 2014-06-10 23:09:04 +02:00
Axel Dörfler
bff2690587 makefile-engine: fixed build of kernel add-ons.
* Actually, hopefully: not yet tested.
* Automatic whitespace cleanup.
2014-03-25 23:36:26 +01:00
Siarzhuk Zharski
a5862816b1 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.
2013-05-26 12:42:46 +02:00
Siarzhuk Zharski
c7e76f70bc Support x86_64 platform in makefile-engine 2013-01-09 21:51:44 +01:00
Siarzhuk Zharski
b6a086e314 * "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
2011-11-06 13:15:57 +00:00
Siarzhuk Zharski
9de720a4ac * 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
2011-10-26 20:12:09 +00:00
Siarzhuk Zharski
6b063167dc 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
2011-10-16 16:02:34 +00:00
Siarzhuk Zharski
4f36bcc2d7 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
2011-02-28 20:38:05 +00:00
Siarzhuk Zharski
4142f7dcef 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
2011-02-28 19:17:55 +00:00
Alexander von Gluck IV
fe0019dda4 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
2011-01-27 22:30:25 +00:00
Philippe Houdoin
8a07a69693 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
2010-12-13 11:58:15 +00:00
Siarzhuk Zharski
f80ea08d71 - 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
2010-06-19 20:26:04 +00:00
Siarzhuk Zharski
53c50a9d1a - 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
2010-06-19 09:39:04 +00:00
Axel Dörfler
b4c6a820b9 * 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
2009-10-29 21:30:56 +00:00
Axel Dörfler
609a4bc570 * Better handling of spaces in file names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33834 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-29 19:43:57 +00:00
Axel Dörfler
50d73c508f * 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
2009-08-04 16:49:06 +00:00
Axel Dörfler
1ef6dcaceb * 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
2009-08-04 16:34:30 +00:00
imker
b2329f081e - 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
2009-06-01 10:26:58 +00:00
Ingo Weinhold
c154b94624 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
2009-05-21 15:04:37 +00:00
Axel Dörfler
314854708a * 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
2009-05-16 20:10:01 +00:00
Stephan Aßmus
432ce3738d * 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
2009-03-19 12:19:41 +00:00