Commit graph

194 commits

Author SHA1 Message Date
Mihai Moldovan
315d242ebe buildsys.mk.in: reorder ${{,FRAMEWORK_}LIBS} and ${LDFLAGS}.
${LDFLAGS} often contains additional (system) library directories that
also often contain old/already installed versions of the libraries to be
linked and are passed via ${{,FRAMEWORK_}LIBS}. While
${{,FRAMEWORK_}LIBS} pretty much always contains -Llocal_build_dir to
make the linker/compiler pick the newly built library for the later
referenced libraries, that location will be overridden and the build
system hence eventually tries to link against the old system library.

This issue is not seen often on Linux-based systems (since they don't
need to supply additional system library directories), but abundant on
others.

For instance, on macOS with MacPorts, LDFLAGS contains -L${prefix}/lib
(with /opt/local being the default prefix).

This leads to link calls such as these:

$LD ... -L${prefix}/lib ... -L../dependent_library -ldependent_library ...

which will, sadly, pick libdependent_library from ${prefix}/lib if the
software has been previously installed there.

Reordering both variables will lead to local library directories appear
earlier on the command line and hence have a higher priority, fixing the
issue.
2020-03-10 06:35:51 +01:00
59839af13c
Make use of -include again
OpenBSD make supports it now, so there's no need anymore to touch empty
deps files.
2020-02-19 00:52:12 +01:00
8a66174c54
Eliminate dependency generation step entirely
Instead, create an empty .dep file that is replaced with the actual
dependencies once the file is compiled.
2020-02-18 22:57:45 +01:00
c0b3a8bd35
Keep .dep files to avoid unnecessary regeneration
This prevents regenerating all dependencies even when only a single file
was changed, which can be prohibitively expensive.
2020-02-18 02:47:54 +01:00
966a80e855
Do not use - prefix to suppress errors
While this suppresses the errors, OpenBSD make still emits an error.
2018-11-10 11:55:29 +01:00
4a595a025e
Allow specifying start files for Amiga libraries
This has already been in ObjFW for a while.
2018-11-10 11:54:28 +01:00
4736b3c162
Install Amiga libraries 2018-05-06 04:15:51 +02:00
77f95cc9d8
Improve Amiga library support 2018-04-29 20:38:31 +02:00
3c3a971059
Replace MORPHOS_LIB with more generic AMIGA_LIB 2018-04-29 01:39:09 +02:00
a44616d977
Use OBJCXXFLAGS to generate deps for .mm 2018-03-11 00:06:17 +01:00
43a9c14622
Fall back to using no colors if tput is missing 2018-02-11 16:17:32 +01:00
517f3ac632
Unbreak building without shared 2018-02-10 12:41:00 +01:00
ec57014019
Make building .frameworks less noisy 2018-02-09 00:35:57 +01:00
3c08b8b64a
Copy Info.plist into .bundle, if it exists 2018-02-09 00:13:45 +01:00
9462fbe785
Remove deprecated -undefined dynamic_lookup
Instead, use ${PLUGIN_LDFLAGS_BUNDLE_LOADER} when building a .bundle,
which can then be set to -bundle_loader path_to_executable.
2018-02-07 23:38:16 +01:00
f4f8be325a
Build plugins as proper .bundles 2018-02-07 22:05:21 +01:00
4c0591c56f
Small cleanup 2018-02-07 21:14:57 +01:00
6b639af512
Use FRAMEWORK_LIBS instead of LIBS for .frameworks
This allows linking the framework against other frameworks rather than
other shared libs.
2018-01-21 22:45:44 +01:00
639eb974c9
Allow BUILDSYS_FRAMEWORK to take a code block 2018-01-21 20:00:25 +01:00
1ae4553a83
Update copyright 2018-01-21 19:39:34 +01:00
60c40342c4
Delete existing .framework before installing it 2018-01-20 20:11:26 +01:00
863de1adea
Automatically build and (un)install .frameworks 2018-01-20 17:47:44 +01:00
7add4e1c99
Fix using wrong .o files with Apple libtool 2018-01-20 00:16:11 +01:00
408f3121a3
Use Apple libtool if build and host are Darwin
This allows combining fat .a files.
2018-01-19 01:17:05 +01:00
d49633ffc4
Fix make install running several times 2017-10-29 03:25:24 +01:00
2f5e82f4a5
Do not extract .a files to link them in
This is only required to combine multiple .a files into one.
2017-10-25 00:07:16 +02:00
78aa912fc1
Check for codesign 2017-10-24 23:48:38 +02:00
d35a7f1bb8
Allow flags per source in addition to per object 2017-10-20 22:19:36 +02:00
16e662fb88
Sign framework after copying Info.plist
Otherwise the signature is wrong.
2017-10-20 00:21:09 +02:00
687567e857
Codesign frameworks 2017-10-19 23:44:18 +02:00
297bc60f00
Add support for building iOS frameworks
Those use a different install name than macOS frameworks.
2017-10-19 22:54:02 +02:00
d7a5ac12cd
Fix copying .framework headers into wrong dir 2017-10-17 00:48:01 +02:00
fcd2b51d19
Use module.modulemap instead of module.map 2017-10-15 22:50:28 +02:00
b7dfe42375
Do not use LIB_LDFLAGS for .frameworks
Instead, use FRAMEWORK_LDFLAGS.
2017-10-15 22:22:10 +02:00
77cbe02256
Include Info.plist in .framework 2017-10-15 21:32:24 +02:00
a14e5d7e93
Improve building .frameworks
* Recursively install framework headers, by adding and using a new
  install-includes target.
* Install module.map if it exists.
* Don't include .framework in all target.
* Remove .frameworks with make clean.
2017-10-15 21:05:47 +02:00
b2a58d571d
Add support for building .frameworks 2017-10-15 19:50:58 +02:00
ed15fe408b
OpenBSD wants setaf * 0 0 on *-256color terms 2017-09-10 22:56:12 +02:00
1a884a9510
Properly clean for MorphOS libraries 2017-07-16 20:28:20 +02:00
1884d1beab
Add support for building MorphOS libraries 2017-07-08 22:10:28 +02:00
060bcd3202
Only use OBJCXXFLAGS and CPPFLAGS with OBJCXX 2017-04-18 01:50:21 +02:00
932a1fc478
Make sure we never end up with "for i in ;"
DJGPP's bash.exe bails out on this.
2017-01-16 03:53:23 +01:00
a4288737c4
Always use -Wl,--export-all-symbols for libs
While this should be the default, it seems it's not the default when
using Clang.
2017-01-08 00:07:32 +01:00
15b9bf12c6
Update copyright 2016-07-09 22:09:53 +02:00
61097f9d19
Don't match against androideabi*, but android*
On AArch64, it's just -android and not -androideabi.
2016-07-09 21:58:56 +02:00
953b1d1e78
Don't use ${MFLAGS} with ${MAKE}
gmake starts complaining about this starting with 4.2.
2016-07-03 21:03:27 +02:00
d9cf426fe1
Disable rpath for Android EABI
Android's dynamic linker does not support rpath and issues a warning
when starting a binary linked with rpath.
2016-06-27 18:07:09 +02:00
0b0ece0849
Add support for per-object flags 2015-03-24 23:31:03 +01:00
9407b955af Move install name to new variable 2014-12-24 16:30:02 +01:00
8d95b6e820 Add print-hierarchy and print-var 2014-08-01 22:59:48 +02:00