Commit Graph

491 Commits

Author SHA1 Message Date
Tony Theodore 1cf2afb5d3 Makefile: explicitly set .DEFAULT_GOAL
first target read can be affected by definitions in included files
2017-03-21 23:41:38 +11:00
Tony Theodore 6b40c10316 github: add check-gh-conf targets to verify updates and downloads 2017-03-21 15:59:32 +11:00
Boris Nagaev 13b5f5e047 add MANLINKS to MXE_DISABLE_DOCS
It is used in libotr (toolkit/Makefile.am) to define a list
of symlinks to the main man page. Search for MANLINKS reveals
that it is used in many other projects.
2017-03-20 17:35:18 +03:00
Tony Theodore b2d99407c0 Makefile: suppress messages in update-package 2017-03-19 12:51:54 +11:00
Tony Theodore 4ed90733c9 github: use `if` instead of `and` 2017-03-19 11:29:05 +11:00
Tony Theodore b4161379ee Makefile: add check-update-package-% target 2017-03-18 22:16:07 +11:00
Tony Theodore 96dd1ec4a0 add functions to standardise GitHub downloads and updates 2017-03-18 22:16:07 +11:00
Boris Nagaev 28e1101e65 Merge pull request #1660 from tonytheodore/cmake-conf
cmake: update and improve configuration with templates
2017-03-14 01:48:58 -07:00
Boris Nagaev a3ac9460ce use http version of gitlab.com backup
The rationale: bd2c77f4c2 (commitcomment-21229420)

> If you absolutely want to disable secure transport I think it'd be a
> better choice to use the http:// protocol instead, making the
> insecurity unambiguously visible in logs/screen output. (Not sure if
> GitLab supports it, but the first two does I think.)
2017-03-12 14:07:10 +01:00
Boris Nagaev 096c509099 no --no-check-certificate while updating packages
Regular downloads of packages are verified by checksums, so
--no-check-certificate doesn't compromise the build system,
but the checksums themselves are often updated with update-checksum-%
which in turn calls the regular package download mechanism, so there
is a possibility of downloading and sealing a poisoned file.

On the one hand, old systems may still rely on --no-check-certificate,
so it is not nice to completely disable it for regular downloads.
However keeping this option enabled for backup servers only is enough
to support such systems because of the fallback mechanism.
On the other hand, download from a backup doesn't make sense while
updating a package, because the package is definetely not in the backup yet.

So --no-check-certificate is now enabled only for backup servers
and backup servers are disabled while updating packages.

See https://github.com/mxe/mxe/pull/1694#issuecomment-285324739
2017-03-12 14:07:10 +01:00
Tony Theodore 24d37efa5d cmake: improve configuration with templates
- move cmake configuration from mxe-conf to cmake-conf
 - replace `echo` with templates for readability and maintenance
 - allow packages to set other dep files
 - set CMAKE_POLICY_DEFAULT_CMPNNNN in wrapper since
   `cmake_minimum_required` or `cmake_policy` can't be set in
   toolchain (closes #971)
2017-03-12 17:30:18 +11:00
Viktor Szakats 3166d4b715 add explicit protocol to backup urls 2017-03-10 22:17:46 +00:00
Viktor Szakats 45d34aaac7 more URL updates 2017-03-10 13:59:00 +00:00
Tony Theodore b8850b2bd0 Makefile: add [POSIX | WIN32]_THREADS variable 2017-02-07 14:52:48 +11:00
Tony Theodore 5da8168263 allow non-default exception handling targets 2017-02-07 14:33:26 +11:00
Tony Theodore 9bb609a73e Merge branch 'LuaAndC-levmar-ua' of https://github.com/tonytheodore/mxe into ua 2017-02-04 18:47:19 +11:00
Tony Theodore 48e792b9e7 Makefile: simplify setting default user agent 2017-01-21 16:49:18 +11:00
Tony Theodore 4fa1f12db8 Makefile: fix target validation checks
fixes #1497
2017-01-19 20:36:02 +11:00
Boris Nagaev ff36def5d3 add new packages backup: gitlab
See http://lists.nongnu.org/archive/html/mingw-cross-env-list/2017-01/msg00005.html
2017-01-08 03:17:31 +01:00
Boris Nagaev 2a9736d370 make core to be the first item of MXE_PLUGIN_DIRS
see https://github.com/mxe/mxe/issues/1614
2016-12-26 02:29:44 +01:00
Boris Nagaev 23c5e209d4 add descriptions and websites to packages.json
See https://github.com/mxe/mxe/issues/1422
2016-12-22 22:28:29 +01:00
Boris Nagaev 5d832ebf70 core packages are now a plugin
See https://github.com/mxe/mxe/issues/1422
2016-12-22 22:25:48 +01:00
Boris Nagaev f06ef1c01b mv docs/versions.json docs/packages.json
See https://github.com/mxe/mxe/issues/1422
2016-12-22 22:25:48 +01:00
Boris Nagaev f1a5deded9 fix detection of openssl in Debian Sid
$ openssl --help
Invalid command '--help'; type "help" for a list.
$ echo $?
1

$ openssl help
...
$ echo $?
0

fix https://github.com/mxe/mxe/issues/1593
2016-12-14 00:44:51 +01:00
Boris Nagaev f82e39dcef cleanup-deps-style: omit pkgs with derived deps
Do not touch lines like this:

  $(PKG)_DEPS     := $(patsubst $(TOP_DIR)/src/%.mk,%,\
  ...

(src/qt5.mk)
2016-12-05 09:40:54 +01:00
Boris Nagaev 1e9d757021 make cleanup-deps-style aware of plugins 2016-12-05 09:40:53 +01:00
Boris Nagaev 592c429875 fix updating docs/versions.json with plugins
fix https://github.com/mxe/mxe/issues/1580
2016-12-05 09:40:53 +01:00
Boris Nagaev 894608bf4d pkg download: do not append to previous attempt
Slow HTTP server with lag for tests:
https://gist.github.com/45472174f8bd97989c1eb9bc64d50468

Fix https://github.com/mxe/mxe/issues/1552
2016-12-05 09:39:36 +01:00
Boris Nagaev 634054b51d add MXE_PLUGIN_DIRS to autogenerated settings.mk 2016-11-19 01:15:43 +03:00
Boris Nagaev b826422ab8 add new variables: BUILD_CROSS, BUILD_NATIVE
They are useful for applying flags only to cross or only to native targets.
2016-10-29 13:07:41 +03:00
Tony Theodore c255ff8b5a Add options to strip toolchain, executables, and libs
Minimal implementation to strip the [largest files][lf-gist] by
default, mostly made up of gcc/binutils and test programs.

gdal and geos both produce large libraries, but the libs themselves
aren't worth stripping, it's the 20 odd programs produced by gdal
with those libs statically linked that consume the most space.

I'm leaving these undocumented as the defaults seems reasonable and
the interface may well change when we enable debug/release variants.

closes #985
closes #1249

[lf-gist]:https://github.com/mxe/mxe/issues/1249#issuecomment-193392038
2016-10-23 17:59:21 +03:00
Tony Theodore 08ea4ee0e6 Makefile: enable relative paths for SOURCE_TREE 2016-10-23 05:10:39 +04:00
Boris Nagaev 0420370efd allow to change User Agent; fix levmar download
Parameter $(PKG)_UA overrides default user agent used by wget to download
a package. It is needed, because download server www.ics.forth.gr from where
levmar is downloaded, crashes on default user agent Wget/1.13.4.
User agent for levmar was set to MXE. Now the server works.

see https://github.com/mxe/mxe/issues/1519
2016-10-17 23:55:47 +03:00
Boris Nagaev fa636a2eab print wget command to download logs
This command is useful for downloading problems debugging.
2016-10-16 23:55:47 +03:00
Boris Nagaev 4e8c132550 move CNAME to docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev 8e35c23242 move index.html to docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev cce8094fb0 add missing things
index.html: make docs/build-matrix.html a link
mxe-activate: add versions.json
add .PHONY for build-matrix.html
2016-08-27 12:31:30 +03:00
Boris Nagaev f5567f2c37 mv versions.json build-matrix.html assets docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev d0e424038e rename doc/ to docs/
See https://github.com/mxe/mxe/issues/1500
2016-08-27 12:31:30 +03:00
Boris Nagaev 6adb5ade12 Copyright headers: point to LICENSE.md and shorten
The following script was applied:

    sed ':a;/part of MXE.$/{N;s/\n//;ba}' -i $(git grep -l 'part of MXE')

    sed 's/\(part of MXE\).*\(See index.html\)/\1. \2/' -i \
        $(git grep -l 'part of MXE.*See index.html')

    before='This file is part of MXE. See index.html for further information.'
    after='This file is part of MXE. See LICENSE.md for licensing information.'
    sed "s/$before/$after/" -i $(git grep -l 'part of MXE')

Then git grep 'index.html for further information' revealed two other files.
One of them was patched manually (patch.mk). Makefile has text
"See index.html for further information" unrelated to licensing.

See https://github.com/mxe/mxe/issues/1500#issuecomment-241340792
2016-08-27 12:31:29 +03:00
Boris Nagaev d8543d104b fix MXE_GET_GITHUB_TAGS
Error message:

    $ make update-package-pire
    ...
    bash: -c: line 0: syntax error near unexpected token `|'
    ...

Overlooked in b52d3c0c9c
See https://github.com/mxe/mxe/pull/1439
2016-08-24 14:11:18 +03:00
Tony Theodore ca90832bd7 Makefile: enable local $(PKG)_SOURCE_TREE
This is very handy for testing against a local repo, especially when
upstream changes are happening quickly.

See also #183
2016-08-12 02:54:56 +10:00
Boris Nagaev 071e3062f0 remove trailing spaces from main log 2016-08-03 00:54:09 +03:00
Tony Theodore f88bbe7ffd Makefile: add BUILD_TYPE [debug | release] varaibles for pkg build rules 2016-07-17 00:26:09 +10:00
Boris Nagaev b52d3c0c9c refactor macro MXE_GET_GITHUB_ALL_TAGS
It is needed to get full list of tags and apply grep or sed manually.
2016-07-13 23:04:01 +03:00
Tony Theodore 5920eb8de3 Makefile: add `TEST_FILE` to variables for pkg build rules 2016-07-11 20:56:22 +10:00
Tony Theodore 1d75e1f353 Makefile: add SOURCE_DIR and BUILD_DIR variables
* use `*.build_` until all packages are converted

see #1159

This commit was amended by Boris Nagaev on Jul 11, 2016.
2016-07-11 09:27:22 +03:00
Tony Theodore a0a3340772 Makefile: allow packages to specify a list of zero or more patches 2016-07-05 16:26:15 +10:00
Boris Nagaev b791ffd4e7 Merge pull request #1417 from tonytheodore/make-target-specific
Makefile: note use of target-specific variables
2016-07-04 11:15:02 +04:00
Tony Theodore 0030112958 Makefile: note use of target-specific variables 2016-07-04 15:26:13 +10:00
Tony Theodore 85de732ad4 fix multiple downloads of same file
see #1415
fixes #1079
2016-07-04 14:26:12 +10:00
Boris Nagaev aab2b70253 create tmp-*/readonly instead of usr/readonly
Removing MXE directory with "rm -rf" used to fail on file
usr/readonly/.gitkeep because directory usr/readonly was readonly.
Now readonly directory is created in tmp-* directory and .gitkeep
is not created for it (because tmp-* is not under usr/).
Problems with removing MXE directory are fixed even in case
of interrupted build.

fix #1221
2016-06-12 02:08:38 +03:00
Tony Theodore 959bb5f85d fix native plugins when additional dirs are specified
When plugins are specified on the command line, automatic native plugins
are not included (for darwin and wheezy):

```
$ make gmsl-print-MXE_PLUGIN_DIRS MXE_PLUGIN_DIRS=plugins/apps/
MXE_PLUGIN_DIRS = plugins/apps/
```

https://www.gnu.org/software/make/manual/make.html#Override-Directive
https://github.com/mxe/mxe/issues/1259#issuecomment-217376756
2016-06-03 03:32:33 +10:00
Thomas Danckaert 31ecd36182 Treat files ending in .tar.Z as gzipped tar files. 2016-05-30 13:45:27 +02:00
Boris Nagaev 3672fda373 add host compiler version to log
see #1351
2016-05-19 23:19:22 +03:00
Tony Theodore 580828183a clarify rationale for env whitelist entries
* add EDITOR, PS1, TERM for basic functionality of interactive shells
* separate mxe related variables
* identify source of ACLOCAL_PATH and LD_LIBRARY_PATH
2016-04-12 08:26:26 +10:00
Tony Theodore 632085f2f7 add `nonetwork` lib to `shell` target dependencies 2016-04-11 21:04:18 +10:00
Boris Nagaev 87163ff7be add "make shell" command
It provides interactive shell with the environment of MXE build.
2016-04-11 03:30:08 +03:00
Boris Nagaev f11e66f365 fix dependencies of build-matrix.html
Dependencies of build-matrix.html were written without
regarding plugins. It resulted in the following error
on Debian Wheezy (which uses plugin "plugins/native/wheezy/"):

  $ make build-matrix.html
  make: *** No rule to make target `src/autoconf.mk',
  needed by `build-matrix.html'.  Stop.
2016-02-23 17:09:49 +03:00
Boris Pek ad883ac8f9 Makefile: fix make clean target when $$WINEPREFIX directory doesn't exist 2016-02-21 18:03:38 +03:00
Tony Theodore a2e79fec92 automatically set MXE_PLUGIN_DIRS for native requirements 2016-01-31 16:56:58 +11:00
Tony Theodore dfec326366 Makefile and mxe-conf: create basic non-empty directory hierarchy
https://github.com/mxe/mxe/pull/1061/files#r49049496
https://github.com/mxe/mxe/issues/1111#issuecomment-169280181
2016-01-12 15:17:21 +11:00
Boris Nagaev efc287a8d9 move patching functions and targets to patch.mk
See https://github.com/mxe/mxe/pull/1134#issuecomment-168873410
See https://github.com/mxe/mxe/pull/1134#issuecomment-169867926
2016-01-08 15:39:41 +03:00
Boris Nagaev adb07e2153 patch-tool-mxe can import all patches of a package 2016-01-08 15:39:41 +03:00
Boris Nagaev a516d920ef reimplement patch-tool-mxe in Makefile
fix #1063
2016-01-08 15:39:41 +03:00
Boris Nagaev 53a92a86df print Perl version to log
See https://github.com/mxe/mxe/issues/1108#issuecomment-169556116
See https://github.com/mxe/mxe/issues/1112
2016-01-07 17:59:52 +03:00
Tony Theodore 7804a5775c Makefile: don't clean build-matrix.html 2016-01-06 17:15:33 +11:00
Boris Nagaev d0f9a3df95 print Python version to log 2016-01-03 15:09:42 +03:00
Tony Theodore 0ccb9e2f6b Add git commit hash to log and build message
* use short form for build status
* use full hash and refs for logs
* add `TERM` to env whitelist (`git log` assumes a terminal)

closes #1095
2015-12-27 13:59:24 +11:00
Tony Theodore 5ebcb2ebde Makefile: error on paths with dollar signs
see #1085
2015-12-22 20:10:47 +11:00
Tony Theodore 11aee96888 Makefile: add link to gmake issue with spaces in filenames 2015-12-20 15:27:49 +11:00
Alexande B 8d44c858e7 #782 fix, wrong checksum calculation command for OSX 2015-12-13 16:40:06 +03:00
Tony Theodore d7a5efbbaa disable doxygen in MXE_CONFIGURE_OPTS
fixes #952 and should provide a general solution
2015-12-08 18:04:31 +11:00
Boris Nagaev b0f15f8a42 add unpacker for .deb files 2015-12-07 01:15:59 +03:00
Tony Theodore 46d0d0dac8 Makefile: remove cmake from requirements check 2015-12-06 02:42:56 +11:00
Tony Theodore c62b62966b Makefile: build universal nonetwork.dylib 2015-12-02 00:20:11 +11:00
Tony Theodore 768c11246e cmake wrapper: use common TryRunResults.cmake 2015-12-01 20:31:10 +11:00
Tony Theodore 79f424fb29 Makefile: echo nonetwork build and remove mkdir in recipe 2015-11-30 18:45:08 +11:00
Tony Theodore 8861c392ef Makefile: fix nonetwork location and `make -t` 2015-11-30 18:39:57 +11:00
Tony Theodore 2944ccde5d Makefile: remove *_MAKEFILE boilerplate and enable all-<plugin> target 2015-11-30 16:49:34 +11:00
Tony Theodore 70c4d91a07 Makefile: also disable networking during build on OSX
closes #986
2015-11-30 15:05:00 +11:00
Tony Theodore d6e2ad3805 Makefile: only call UPDATE if rule exists 2015-11-30 14:50:10 +11:00
Tony Theodore d6c4884455 Makefile: add plugins functionality to include makefiles from MXE_PLUGIN_DIRS 2015-11-26 16:48:53 +11:00
Tony Theodore cdb7e99dd6 remove optional native pkgs and build-requirements target 2015-11-26 15:01:47 +11:00
Tony Theodore 656d5c5066 Merge pull request #998 from LuaAndC/update-gh-packages
MXE_GET_GITHUB_TAGS: new argument, stripped prefix
2015-11-16 20:25:51 +11:00
Tony Theodore 51f6aef1f7 update requirement versions
fixes #978
2015-11-16 13:33:02 +11:00
Boris Nagaev b28501f031 MXE_GET_GITHUB_TAGS: new argument, stripped prefix 2015-11-15 18:41:26 +03:00
Tony Theodore 7875b279d9 Makefile: don't echo nonetwork.so recipe 2015-11-16 00:04:59 +11:00
Boris Nagaev 66514d4c96 set WGET=false when build
Prevent $(WGET) from downloading on platforms not supporting LD_PRELOAD.

fix #969
2015-11-10 11:19:45 +03:00
Boris Nagaev 8448d43531 disable networking with LD_PRELOAD when build
see #969
2015-11-10 11:19:45 +03:00
Tony Theodore 30b7b7164f enbale MXE_GCC_THREADS and allow target spec <triplet>.<link>.<threads>
* enables optional c++11 <thread>, <mutex>, and <future> in libgcc
* avoid double build advice:
  http://sigrok.org/gitweb/?p=sigrok-util.git;a=blob;f=cross-compile/mingw/README;h=248af546f939a81855dda33142d834eecf2979c2;hb=HEAD#l44
* not heavily tested but should be released for feedback
2015-10-31 20:18:21 +11:00
Tony Theodore 6b1a7962cf Makefile: filter out MXE_CONF_PKGS for inter-target deps 2015-10-27 21:29:47 +11:00
Tony Theodore 3a462ae25c Makefile: clean files created by build-pkg 2015-10-25 12:23:28 +11:00
Tony Theodore a8ed815d82 Makefile: add print-deps-for-build-pkg target with inter-target deps 2015-10-25 12:23:28 +11:00
Tony Theodore c8dd7556b4 Makefile: enable target deps and native pkg build rules 2015-10-25 12:23:27 +11:00
Boris Nagaev 08d7f265a1 remove strange quote from comment about MXE_TMP
see #929
2015-10-16 23:50:15 +03:00
Uwe Koloska 6fa3b9f986 add variable to define directory for tmp-directories
sometimes it's necessary to not build inside the mxe folder. The
variable MXE_TMP can be used to change the base directory for creating
tmp directories that are used for building.

Rationale: when using virtualbox to build the cross-compile environment
and the mxe project is in a shared folder, at least stripping is not
working because of an internal error of the shared filesystem.  So the
solution is to change the tmp-directory to a place inside the VM.
2015-10-14 16:48:15 +02:00
Boris Nagaev 94f55814e9 check-requirements: check for native gdk-pixbuf
Check with command `gdk-pixbuf-csource --help`.

close #927
2015-10-14 01:26:21 +03:00
Boris Nagaev 530d479b4f require patch number to start with a digit
MXE recongized file src/lua-rapidjson-1-use-unix-file-functions.patch
as a patch for lua, however it was intended to be a patch for lua-rapidjson.
Patch filename pattern was src/$(1)-*.patch.
* captured "rapidjson-1-use-unix-file-functions".

Currently * was replaced with [0-9]* to require patch name starting with
a digit.

close #921
2015-10-12 22:24:48 +03:00
Tony Theodore 6c01c7dc55 Makefile: fix download for script only packages
fixes #899

also cleanup download-foo dependencies
2015-10-01 14:52:33 +10:00