Commit graph

62 commits

Author SHA1 Message Date
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
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
2c14110947 Use variable 'system' when evaluating 'for{Linux,Darwin,Windows}
This evaluates correctly in the case where 'system' is defined for
the purpose of cross compiling. This commit addresses issue #31.
2016-11-22 17:40:13 +01:00
IOhannes m zmölnig
cb839ed470 note (within the pd-lib-builder Makefile) how to update the file. 2016-11-22 16:28:25 +01:00
IOhannes m zmölnig
cdd3b43978 removed trailing whitespace 2016-11-22 16:28:25 +01:00
katja
426b38bb35 Replace flags '-fpic' with '-fPIC'
Reportedly '-fPIC' should work for all architectures while '-fpic'
does not.
2016-11-02 01:41:30 +01:00
katja
2e13d8f7a3 Fix bug where incorrect message about m_pd.h is given
And bump to version 0.4.2
2016-10-30 22:15:18 +01:00
katja
48c4127297 Bump version to 0.4.1 after merging 'configurable-minimum-osxversion' 2016-10-27 00:44:56 +02:00
katja
ff9b40c451 Merge branch 'configurable-minimum-osxversion'
This merges commit a7d3098 which responded to issue #22. With this commit,
cflag '-mmacosx-version-min=*' from a lib makefile is respected, not
overridden by a default minimum version.
2016-10-27 00:43:02 +02:00
katja
cf04da9b47 Rewrite variable descriptions after introduction of 'PDDIR' & Co.
Variables PDDIR, PDINCLUDEDIR, PDBINDIR and PDLIBDIR were introduced in
the previous commit as API replacement for a less coherent set of path
variable names, and made these paths settable in the environment.
This commit (re)writes variable descriptions accordingly and reorganizes
descriptions with the intention to give a more comprehensible overview of
the API structure.
2016-10-14 11:50:34 +02:00
katja
b0dab729b9 Introduce variables PDDIR, PDINCLUDEDIR, PDBINDIR, PDLIBDIR
These new path variables are aliases of existing ones that didn't have
coherent names. The new variables are all defined such that they are
overridable from the environment, as indicated by the upper case syntax.
2016-10-14 00:27:39 +02:00
katja
a0c87bea5e Defer expansion of $(pdbinpath) to correctly find pd.dll (bugfix)
The issue was introduced in version 0.3.0 from the previous commit
(41e9743).
2016-10-14 00:15:10 +02:00
katja
41e9743ed5 Introduce variable 'PD_PATH', bump version to 0.3.0
This variable is useful when building against a 'portable' pd install.
Makefile.pdlibbuilder should now be compatible with centralized build
systems when PD_PATH is passed as make argument, or set in environment.
2016-10-09 22:07:23 +02:00
katja
5b920b194d Set version to 0.2.8 after merging 'install-dollarfiles'
Update version number because of previous (merge) commit. The
merge was done with github's 'Merge' button. Never again. The merged
commit was 49a0b2f from 2016-06-28 allowing installed files to
contain weirdo characters, and closing issue #19.
2016-10-09 14:12:31 +02:00
katja
a7d309822d Respect flag '-mmacosx-version-min=*' from lib makefile
Makefile.pdlibbuilder sets a default minimum OSX version for optimal
support of older OSX versions. With this commit, '-mmacosx-version-min=*'
in variable 'cflags' from the lib makefile is respected, not overridden.

A lib makefile can now determine the minimum OSX version (for example to
support C++11, which was the direct motivation for this change).

This is a response to pull request #22 'Making minimum Mac OS X version
configurable', but note that it is implemented in a different way.
2016-10-09 11:56:14 +02:00
katja
7b5e3599ce Merge branch 'install-dollarfiles' 2016-10-05 17:16:13 +02:00
katja
a6a89dc021 Scrap all default include / bin paths except vanilla's
Multiple defaults cause confusion and after discussion vanilla is preferred
default because:

1. vanilla is actively maintained
2. currently most pd lib authors develop against vanilla
3. unlike other pd flavors, vanilla is not part of a centralized build system
   with internal include path
2016-10-04 23:20:14 +02:00
katja
2832db38fd Remove old dependency-check workaround for OSX <= 10.5 2016-09-20 13:01:10 +02:00
katja
9fd17957c7 Do not pass architecture flags for dependency checking
Only pass flags categories which can be expected to hold -I flags
to the preprocessor for dependency checking. Omit categories which
may contain architecture and tuning flags. This is a small and
hopefully reasonable limitation of dependency-checking functionality.
The preprocessor will still see predefined macros, amongst which
architecture definition. Thus, eventual architecture-dependent include
statements in the source code are considered for native architecture
during dependency checking.

This commit should resolve the rebuild issue on OSX, where some compiler
versions can not handle multiple architecture flags during dependency
checking.
2016-09-20 12:52:33 +02:00
IOhannes m zmölnig
49a0b2fa5e allow installed files to contain weirdo characters
...like '$' (e.g. "$arg-help.pd")
by installing them one-by-one and using single-quotes
(so the shell doesn't expand the dollargs)

NOTE: this does not fix compiling such weirdo filenames

Closes: https://github.com/pure-data/pd-lib-builder/issues/19
2016-06-28 11:33:25 +02:00
katja
f06e550a3a Fix dependency checking for object files in other directories
And bump version to 0.2.5
2016-06-26 11:31:33 +02:00
katja
b1a4c9b525 Print Makefile.pdlibbuilder version 2016-06-25 23:19:32 +02:00
katja
1d7bb5e154 Fix regression bug that disabled all dependency checking
The bug was probably introduced with version 0.2.3.
Bump version to 0.2.4.
2016-06-25 22:26:33 +02:00
katja
eb614fdf16 Disable dep. checking for fat builds on OSX <= 10.5. Version 0.2.3
Multiple arch flags are incompatible with option -MM for preprocessor
on (at least) OSX <= 10.5. Non clean builds would stall on this. This
commit disables dependency checking for fat builds (current default
for OSX) on ppc and i386. Assuming that development is done on newer
systems / machines it should rarely hurt.
2016-03-29 11:26:52 +02:00
katja
c989c8e0b0 Bump to version 0.2.2 after removal of 'pre' target
Also remove associated documentation comments.
2016-03-28 10:59:13 +02:00
katja
d94538e1bb Remove target 'pre' from Makefile.pdlibbuilder
Phony target 'pre' forces rebuilds. This should not be default
behavior of Makefile.pdlibbuilder. If one needs a pre-build target
(phony or real file), declare it as prerequisite of $(all.objects)
in the library makefile after inclusion of Makefile.pdlibbuilder.
A pre-build target can have any name that isn't a target in
Makefile.pdlibbuilder.
2016-03-26 14:55:55 +01:00
katja
98f3582cf5 Merge branch 'command-line-build-flags', bump version to 0.2.1
Command line variable CFLAGS now work according to conventions (overriding
all non-essential C flags). CPPFLAGS and LDFLAGS are also implemented.
Built-in documentation updated.
2015-12-27 22:20:28 +01:00
katja
c6fe1832fc Document CPPFLAGS, CFLAGS, LDFLAGS 2015-12-22 00:45:26 +01:00
katja
3946ea50de Merge branch 'eval-system-specific-defines', update version to 0.2.0
This merge introduces the evaluation of optional multiline defines
'forLinux', 'forDarwin' and 'forWindows', which can be used as a flexible
replacement for system-specific variables as in Pd-extended's Makefile
template. Example code is added to Makefile.pdlibbuilder's built-in
documentation.
2015-12-19 11:25:46 +01:00
katja
8cba158c9a Remove cruft from a variable definition 2015-12-08 14:41:30 +01:00
katja
abeb4dec6e Remove cruft from .PHONY: 2015-12-08 14:35:12 +01:00
katja
a5678ac1e0 bump version 0.0.2 > 0.1.0 for added feature (targets pre / post) 2015-12-08 13:17:54 +01:00
katja
c42845611f Introduce pre and post targets.
Targets pre and post can be defined in the including (library) makefile.
They are added to provide extra flexibility. Target all will
build pre, $(executable) and post in deterministic order. Built-in
documentation is modified to reflect the new situation.
2015-12-08 13:04:13 +01:00
katja
ed37e6bbb5 Bumped to version 0.0.2. 2015-12-06 20:52:45 +01:00