Commit graph

105 commits

Author SHA1 Message Date
katjav
f2a5b6614c Add target 'dumpmachine' for verification purposes 2019-12-15 21:47:41 +01:00
katjav
262143b66d Introduce optional user variable 'PLATFORM' for cross compilation 2019-12-15 21:40:05 +01:00
katjav
65e9fc78d7 For Darwin build fat binaries when extension=d_fat
This gives a convenient and logical approach to still build fat
binaries. Only ppc is left out in the cold.
2019-12-15 21:30:00 +01:00
katjav
69e2002ac8 Reorganize definition of -mmacosx-version-min
Minimum version 10.4 was previously set for fat binaries built on i386.
Since fat-by-default is dropped, minimum version can simply be 10.6
if not specified otherwise in cflags.
2019-12-15 21:08:38 +01:00
katjav
2cfb2714a8 For Darwin do not build fat binaries by default
Now that we detect target arch rather than build arch it seems even
less consistent than before to build fat binaries by default.
2019-12-15 16:31:21 +01:00
katjav
53caa9ca78 Change test to see whether -fcheck-new must be used on Darwin 2019-12-15 15:31:26 +01:00
katjav
e13255de24 Test target arch more consistently on Windows 2019-12-15 15:19:16 +01:00
katjav
a140d2165d Terminate if target triplet remained empty 2019-12-15 15:09:04 +01:00
katjav
1dc4219bcb Detect target platform consistently with $(CC) -dumpmachine
We already used this for Windows, now use it for all platforms to
simplify cross compilation in general.
2019-12-15 13:55:32 +01:00
katjav
1137cca2fa Specify minimum OSX version 10.6 instead of 10.5
OSX 10.14.3 can not build for 10.5 and stalls the build. Specifying
10.6 as minimum solves the issue (#49). For building with OSX on i386
architectures, minimum OSX version remains unchanged (10.4).
2019-03-20 13:53:59 +01:00
katjav
ece8e6b8b7 Fix omission of flag for minimum OSX version
This commit fixes a regression bug introduced with commit 48c4127
for v0.4.1. If minimum OSX version is not specified the compiler will
assume the version of the build machine and the build may not be
fully compatible with older OSX versions.
2018-08-03 07:39:40 +02:00
IOhannes m zmölnig
9dd4f36886 Removed trailing whitespace 2018-05-30 23:34:25 +02:00
katjav
b19fe37198 Bump version to 0.5.1 for several Windows fixes 2018-03-15 22:04:08 +01:00
katjav
5b4f636ed8 Document 'STRIP' variable 2018-03-15 09:39:11 +01:00
katjav
397b72eb9e Strip when 'stripflags' is defined (default for Windows only)
Stripping of installed binaries for Windows is done by default because
their unstripped size is ridiculously large when built with Mingw-w64.
This default behavior can still be overriden by defining 'stripflags'
empty during install.
2018-03-12 09:34:57 +01:00
katjav
f334dd4e47 Revert "Introduce target 'install-strip' in the battle against Mingw-w64 bloat"
This reverts commit 6bfaba6. Target 'install-strip' wasn't a good idea. A
library makefile may want to define a post install target.
Makefile.pdlibbuilder should define only one installation target, that
can be defined as prerequisite for other targets. A stripping method is
still needed, but not this one.
2018-03-12 08:47:08 +01:00
katjav
6bfaba6df0 Introduce target 'install-strip' in the battle against Mingw-w64 bloat
It seems that externals built with Mingw-w64 are ~10 times larger than
equivalent builds on other platforms (including original Mingw). Stripping
is therefore desirable. As suggested by IOhannes Zmoelnig stripping is not
done by default, instead this alternative installation target is provided
(like in autotools).
2018-02-18 14:33:11 +01:00
IOhannes m zmölnig
44a32fd009 fixed small typo 2018-02-08 13:05:07 +01:00
IOhannes m zmölnig
1b9f3d8895 Do wildcard-search for MSYS when checking Windows platform 2018-02-08 12:17:05 +01:00
IOhannes m zmölnig
b715b0e2ca sed -e's| sed | set |' 2018-02-07 16:21:01 +01:00
IOhannes m zmölnig
7e47b9878b how to build double/W64/double+W64 externals 2018-02-07 16:21:01 +01:00
IOhannes m zmölnig
fa7f798c54 drop "pd-lib-builder" from headings when there's only general advise 2018-02-07 16:21:01 +01:00
IOhannes m zmölnig
e90da163ac Moved git-submodule down the page 2018-02-07 16:21:01 +01:00
IOhannes m zmölnig
e9a67fd0d6 use ~~ for strikethrough 2018-02-07 16:21:01 +01:00
IOhannes m zmölnig
07c5e784f3 document git subtree
and `git submodule` with heavy WARNING signs
2018-02-07 16:21:01 +01:00
IOhannes m zmölnig
b2ce500709 sections and TODOs 2018-02-07 16:21:01 +01:00
IOhannes m zmölnig
0493d4a1e8 Started a small tips&tricks page
with handy commands to achieve specific goals
2018-02-07 16:21:01 +01:00
katjav
f1b0e3c7b6 Add linker option '-static-libgcc' for C++ code on Windows
It seems that standard C libs are needed for C++ externals because
of 'extern "C"' functions (setup, Pd API).
2018-02-01 21:45:54 +01:00
katjav
a1ad2e9c88 Merge branch 'windows-paths'
This merges a series of commits that solve a few issues with paths
for Windows builds.

Variables 'PDDIR' and 'PDBINDIR' now have precedence over 'pdbinpath' as they
should.

Default paths for 32 bit builds on 64 bit Windows are now implemented (thanks
to Lucas Cordiviola).

Probing of 'pdincludepath' and 'pdbinpath' through 'ls' is removed to avoid
confusing error messages.
2018-01-31 13:20:42 +01:00
katjav
3e974fdf21 Update makefile comments related to paths 2018-01-31 13:19:21 +01:00
katjav
fe45bcb376 Avoid ls errors when default paths for Pd on Windows do not exist
Such error messages are confusing if you do not intend to use default
paths. Therefore the probes with ls are removed. Paths to m_pd.h and
pd.dll are probed later in the process when they are possibly
overriden by user definitions.
2018-01-28 20:58:12 +01:00
katjav
9240b64eba Evaluate 'PDBINDIR' before ld flags
So ld flags can be evaluated as immediate variables. Otherwise it
was too confusing, hard to understand why it worked at all.
2018-01-27 14:10:12 +01:00
katjav
f3887bbe7d Update Windows search path documentation in makefile 2018-01-27 12:40:46 +01:00
katjav
1bcf78f86e Define default paths for 32 bit build on 64 bit Windows 2018-01-27 00:07:21 +01:00
katjav
7740128257 Fix priority for user path variables 'PDDIR' & Co.
The order of variable expansion prevented this for the path
to binary 'pd.dll'.
2018-01-24 22:50:20 +01:00
katjav
1361dd3999 Remove unuseful variable 'PD_PATH'
The variable was introduced in commit 41e9743 for compatibility
with centralized build system as inherited from Pd-extended by
Pd-L2ork and Purr Data. But it doesn't work in that context because
$(PD_PATH)/bin is absent. Therefore better remove 'PD_PATH' and
focus on making variables 'PDDIR' & Co. work as expected.
2018-01-24 13:56:36 +01:00
katjav
80d7dc0a13 Bump version to 0.5.0, ready for Windows 64 bit
Update version number after merge commit 215bf3e. This is the first
version handling 64 bit builds for Windows.
2018-01-23 21:25:23 +01:00
katjav
215bf3edc8 Merge branch 'target-arch-mingw'
This merges a series of commits implementing target
architecture detection for Windows builds, and the
setting of appropriate options for 32 and 64 bit builds.
2018-01-23 18:03:23 +01:00
katjav
a01ee169cd Revert 'uname --machine' to 'uname -m' (bug fix OSX)
Long option name '--machine' was introduced in commit fa3c2ca for
explicitness, however it is not supported by clang / OSX.
2018-01-22 23:19:24 +01:00
katjav
13796bfee2 Add option '-msse3' for Windows on x86_64 architecture 2018-01-21 22:52:19 +01:00
katjav
77ff876401 Fix conditional checks broken in commits e4d42f2 and f83d429 2018-01-21 22:42:47 +01:00
katjav
e4d42f2227 Assume system is "Windows" when uname says "MSYS"
Needed for building with pd-lib-builder on AppVeyor.
2018-01-21 14:59:38 +01:00
katjav
231e344b44 Use variables 'build.arch' and 'target.arch' consistently 2018-01-21 14:45:32 +01:00
katjav
867ad5e8e8 Introduce general remainder architecture category 2018-01-21 11:54:01 +01:00
katjav
f83d4293bd Introduce remainder architecture category for Windows
And explicitly specify Intel 32 bit architectures, where 'mingw32'
is included to support MSYS1.
2018-01-21 11:42:55 +01:00
katjav
37d23530c6 Leave out architecture 'ia64'
As per suggestion of Johannes Zmoelnig. It is not relevant and
also not compatible with x86_64.
2018-01-21 11:19:43 +01:00
katjav
ef21a16eb0 Introduce architecture dependent settings for Windows 2018-01-20 23:11:15 +01:00
katjav
fa3c2ca71d Introduce variable 'target.arch'
It stores the first field of <cpu>-<vendor>-<os> triplet
as retrieved from command '<compiler> -dumpmachine' where <compiler>
is g++ or gcc.
2018-01-20 17:45:31 +01:00
katjav
4be3e99acb Swap OS and machine detection so OS comes first
This is in preparation for target architecture detection through
gcc / g++.
2018-01-20 17:18:34 +01:00
katjav
872c34b1d3 Update CHANGELOG.txt for v0.4.4 2016-11-22 17:56:20 +01:00