Commit graph

225 commits

Author SHA1 Message Date
Đoàn Trần Công Danh b400ac3e81 build-style/cmake: set find_root_path to cross_base/usr 2020-11-28 05:56:03 +07:00
Jürgen Buchmüller bba453427e build-style gnu-makefile: pass $OBJCOPY to make 2020-11-07 16:13:56 +01:00
Đoàn Trần Công Danh 3c1727cf31 build-style/cmake: only look into masterdir libraries
As of it's now, cmake will look into host's libraries, thus
bootstrapping will fail at ccache if host system doesn't have
libzstd-devel installed.
2020-11-01 21:22:23 +01:00
Érico Rolim 5af961ece2 common/build-style/meson.sh: set auto-features to auto.
This allows the build system to detect itself whether it should use
certain features, instead of defaulting to (potentially bad) enabled
status.

Features that aren't detected properly, be it because false positives or
negatives, should be explicitly called out in the templates.
2020-10-18 00:00:00 -03:00
Piotr Wójcik 6efc7dd98d xbps-src: quote wrksrc to allow whitespace 2020-09-03 21:03:32 +02:00
fosslinux 92fd1c57cc New build-helper: texmf
Co-authored-by: Piotr Wójcik <chocimier@tlen.pl>
2020-07-14 02:38:24 +02:00
John 335286d3e2 build-style/meson: add cups and llvm-config to crossfile 2020-07-13 19:14:53 +02:00
John 0e87174b5e build-style/cmake: set CTEST_OUTPUT_ON_FAILURE=TRUE in do_check
Currently a failed output has to be found somewhere in the build directory,
having it output also to stdout makes it far easier to see why it failed
2020-07-11 14:07:29 +02:00
Érico Rolim 2be5dd6156 build-style/cargo: use configure_args in do_check.
Cargo rebuilds the package if the command line arguments aren't the
same, which makes it test the wrong binary.
2020-07-06 09:01:06 +02:00
John 82734d940c
common/xbps-src: set PKG_CONFIG{,FOR_BUILD} env vars 2020-05-26 21:18:27 +02:00
Andy Weidenbaum d4bf579cde build_style/raku-dist.sh: RAKULIB=lib 2020-05-18 13:42:00 +02:00
Đoàn Trần Công Danh 368a1e571d build-style: scons: add lowercase compiler variable 2020-05-18 00:32:13 +02:00
q66 b5fd7971b5 build-style/cmake: recognize ppcle for cross 2020-04-30 01:06:52 +02:00
q66 81e7a17c79 build-style/meson: recognize ppcle for cross 2020-04-30 01:06:52 +02:00
Daniel Eyßer ef4596b546 build-style/cargo.sh: don't use post_install() for leftover removal 2020-04-12 18:43:18 +02:00
travankor 3610a35271 cargo.sh: don't hardcode the path.
Clean up the cargo remnants in the post install phase.
2020-04-07 21:25:12 +02:00
John aecf307fdb common/qmake.sh: reorder args
[ci skip]
2020-04-03 09:19:18 -07:00
John f4d315aaa8
build-style/meson: update for new env var behaviour
meson 0.54 now honors _FOR_BUILD env vars, and we don't have to set CC
and friends to the host system vars. Setting PKG_CONFIG_FOR_BUILD is
needed since otherwise it would pickup our cross wrapper
2020-03-31 16:01:20 +02:00
q66 2163ca2d03 build-style/meson.sh: drop unneeded AR export
This was fixed in Meson upstream ages ago. We have also fixed this
in gcc itself.
2020-03-15 22:03:35 +01:00
Alexander Gehrke a28a777a95 build-style/cargo.sh: also delete /usr/.crates2.json 2020-02-25 12:23:45 +01:00
travankor 3842294972 build-style/cargo.sh: append configure_args to cargo install
Cargo will only activate the default features for a package.
Instead, pass the correct features to cargo install.
2020-02-22 19:09:05 +01:00
John 0adf0a781c build-style/cmake: pass DESTDIR as env var to make install
this ensures that the build-style also works with ninja when setting
-GNinja and make_cmd=ninja
2020-02-06 10:34:36 +01:00
Andy Weidenbaum e8e2b2e90a build-style/perl6-dist: rename to raku-dist. 2020-02-05 09:58:38 +01:00
q66 f317ed5e7e common/build-style/cmake.sh: strip -pipe if present in C(XX)FLAGS
Reason: https://gitlab.kitware.com/cmake/cmake/issues/19590

Our workaround within cmake is not sufficient as it does not
address the issue fully and things still break sometimes. So
work around this in the build-style for the time being (and
drop the cmake patch).

Once this is fixed upstream (probably needs special casing
for the -pipe flag and strip it during compile tests) we
can drop this.
2020-01-11 18:52:12 +01:00
Leah Neukirchen d3968bef3c build-style/python[3]-module: override _PYTHON_SYSCONFIGDATA_NAME
Use the sysconfigdata for the appropriate cross arch.
Upstream change: https://bugs.python.org/issue36235
2019-12-23 17:15:51 +01:00
Leah Neukirchen 915fe2de9f common/environment/setup/python.sh: update to Python 3.8. 2019-12-23 14:11:45 +01:00
John f20e10cd44 Revert "build-style meson: fix _MESON_CPU_FAMILY=ppc64le"
This reverts commit 0d23f73635.
2019-11-27 21:41:55 +01:00
Jürgen Buchmüller 0d23f73635
build-style meson: fix _MESON_CPU_FAMILY=ppc64le
Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
2019-11-27 11:16:20 +01:00
Doan Tran Cong Danh ad5e48816c build-style/go: use glob instead of find 2019-11-16 12:49:56 +01:00
John f4273541b8 New build-helper: qemu 2019-10-26 00:59:41 +02:00
John 260ce1acd2 build_style/meson.sh: add support for using qemu as exe_wrapper 2019-10-16 23:41:46 +02:00
Johannes a2be11a086 build-style/cargo.sh: run cargo install with --locked
Without --locked, cargo ignores the Cargo.lock file during install
and rebuilds the crate with updated dependencies.
This wastes time and makes builds unreproducable.
2019-09-26 15:11:46 +02:00
Cameron Nemo 5e35764d3f build-style: use XBPS_MAKEJOBS to set go processes
Clean up some minor unnecessary bashisms, and an unquoted variable.
2019-08-09 23:09:12 +02:00
q66 f0b03f1df1 common/build-style/haskell-stack.sh: use --skip-ghc-check
This forces all haskell-stack build-style using templates to use
the system ghc and never download any binary distributions even
if the version does not match. This is usually fine as long as
the stackage used for the template is recent enough. If it's
not, it should probably be bumped anyway.

This also enables stack to work on all platforms, even those for
which stack does not offer any binary ghc downloads, as long as
the system ghc is provided, e.g. for ppc64le.
2019-08-07 10:42:10 +02:00
John b562ba0202 common/build-style/qmake: use custom qt.conf for cross compiling
[ci skip]
2019-07-11 04:29:48 +00:00
Juan RP f36f3fe28f
Revert "build-style/go: use XBPS_MAKEJOBS to control parallelism"
This reverts commit 12b15b0d72.

I thought the conversation was already resolved, my fault.

Reverting until this gets resolved.
2019-06-25 23:05:17 +02:00
Cameron Nemo 12b15b0d72 build-style/go: use XBPS_MAKEJOBS to control parallelism 2019-06-25 22:04:46 +02:00
q66 c7989e5693
build-style/cmake: powerpc->ppc for CMAKE_SYSTEM_PROCESSOR
ppc is the correct name which cmake reports in a native ppc32
environment, therefore the cross toolchain definition is wrong.

Closes: #12061 [via git-merge-pr]
Signed-off-by: Jürgen Buchmüller <pullmoll@t-online.de>
2019-06-01 00:58:57 +02:00
q66 53b1190139 build-style/meson: use correct endian on musl ppc64 2019-04-27 16:10:35 +02:00
John 851a83b478 Revert "build-style/cmake.sh: Use -DCMAKE_BUILD_TYPE=RelWithDebInfo when having XBPS_DEBUG_PKGS set"
This reverts commit 6638dc5526.

Setting RelWithDebInfo can cause issues since cmake macros often handle
only Release or Debug build but not RelWithDebInf which might cause
issues https://github.com/void-linux/void-packages/pull/10948

It is advised to set -DCMAKE_BUILD_TYPE=RelWithDebInfo manually in
packages that ignore our CFLAGS or patch them to use them

closes #10948
2019-04-15 04:26:07 +02:00
John 86a7cb8689 build-style/cmake: only set CMAKE_CROSSCOMPILING_EMULATOR when qemu is in hostdeps 2019-04-15 03:11:14 +02:00
maxice8 1219c3a3dd build-style/go.sh: remove dirname usage 2019-04-14 06:22:09 -03:00
maxice8 7708dac69e build-style/gemspec.sh: remove usage of dirname 2019-04-14 06:22:09 -03:00
maxice8 a540dc2247 build-style/gem.sh: remove usage of dirname 2019-04-14 06:22:09 -03:00
Juan RP 1ee6a3174f xbps-src: reduce basename(1) usage.
This saves a few exec()s.
2019-04-14 01:47:16 -03:00
John 01d11a4938 build-style/cmake: set CMAKE_CROSSCOMPILING_EMULATOR 2019-04-05 23:04:14 +02:00
Piotr Wójcik a4e3f89907 build-style/python-module.sh: add do_check 2019-03-21 13:28:56 -03:00
maxice8 20f91ac1c0
meta: set meson_crossfile on both do-patch and do-configure 2019-02-28 09:42:55 -03:00
maxice8 237da231cb build-style/meson: use do_patch to create crossfile 2019-02-27 22:56:19 -03:00
maxice8 1df181b32a build-style/meson.sh: add objcopy to provided binaries 2019-02-25 13:42:40 -03:00
Piotr Wójcik 9291e28d14
build-style/python3-module.sh: add do_check
closes #8969

Co-authored-by: maxice8 <thinkabit.ukim@gmail.com>
2019-02-22 07:24:17 -03:00
Foxlet f726125246 common: Set system processor for PPC cmake 2019-02-09 02:29:24 -02:00
maxice8 069b217655
common/build-style: don't be explicit about pie, fails vala. 2019-02-05 04:40:31 -02:00
maxice8 f421389bd9 build-style/meson.sh: explicitly enable staticpic and pie. 2019-02-05 04:14:56 -02:00
maxice8 3e6ea8d31a build-style/python-module: reset CFLAGS and LDFLAGS in each run 2019-01-31 12:22:30 -02:00
maxice8 732180dc1d build-style/meson.sh: Provide path for gir tools. 2019-01-29 19:39:34 -02:00
q66 82eec0d023 common/build-style/waf,waf3: explicitly pass libdir
Waf has a utility function ('lib64' in waflib/Utils.py) which
either returns an empty string or '64' depending on if either of
the paths '/usr/lib64' or '/usr/local/lib64' exist. Then, the
build system itself decides its default LIBDIR to be either
/usr/lib or /usr/lib64 depending on the result of that function,
except when libdir is passed explicitly.

We don't allow lib64 in our packages. We do have the /usr/lib64
path as that is a symlink. Therefore, do not ever allow waf to
configure the path that way.
2019-01-26 18:43:09 -02:00
John 9518d3c77c
build-style/cmake: add missing space before closing bracket 2019-01-21 22:52:56 +01:00
maxice8 5512d7e69f
build-style/meson.sh: fix binary name 2019-01-21 02:16:03 -02:00
maxice8 a59075f1d1
build-style/meson.sh: add path to 'rustc' 2019-01-21 01:59:23 -02:00
maxice8 8ddc68306e build-style/cargo: don't manually configure with cargo, use the
environment.
2019-01-20 15:33:10 -02:00
Thomas Batten c785cfd34e common: Add ppc target 2019-01-19 10:15:01 +01:00
Noel Cower e892b46432 build-styles: use go install instead of go build.
Fixes multi-package builds.

[ci skip]
2019-01-18 20:18:52 -08:00
John 6f0fee9429 build-style/cmake: add check fo nodebug flag
[ci skip]
2019-01-17 14:04:27 +00:00
John 6638dc5526 build-style/cmake.sh: Use -DCMAKE_BUILD_TYPE=RelWithDebInfo when having XBPS_DEBUG_PKGS set 2019-01-15 16:15:13 +01:00
Enno Boland 0832e1adfa
build-style/cmake: fix typo 2019-01-05 23:45:27 +01:00
q66 151f876627 common: add ppc64 build profiles and other ppc64 bits
This adds the build profiles for ppc64 targets as well as
modifications in other parts of the infra.

These targets are supported:

- ppc64le (glibc little endian elfv2)
- ppc64le-musl (musl little endian)
- ppc64-musl (musl big endian)

ELFv1 targets are explicitly not supported at this point.

Big endian musl supports ppc 970 or newer, while little endian
targets are set to a generic powerpc64le which effectively means
POWER8 and newer. Tuning is always set for POWER9, which is the
most likely target hardware. We also make sure AltiVec is always
on, because it is supported on all hardware we target.

[ci skip]
2019-01-05 23:38:00 +01:00
Noel Cower 43db1c25dc build-styles: Add support for Go modules.
Adds support for Go modules by detecting a go.mod file and, if
available, using it. In addition, to continue supporting vendoring (and
avoid the need for git on all module builds), if a package includes
a vendor directory, the module mode will switch to vendor mode if not
already set. This will use vendored source code for dependencies
instead of downloading that code again using the descriptions under
go.mod.

go_mod_mode=vendor also skips the go.sum check because nothing is
downloaded that isn't already verified, so this fixes packages with
vendored code that have checksum mismatches due to Go 1.11.4 module
checksum changes.

[ci skip]

Closes: #6036 [via git-merge-pr]
2019-01-02 20:10:56 -08:00
John ee4ce35a68 build-style/cmake: dehardcode gtk2 wxWdigets when cross compiling 2018-11-28 16:49:52 -02:00
Andy Weidenbaum afdfdf9991 build_style=perl6-dist: add 2018-11-26 04:11:50 -02:00
maxice8 c646f89f87 build-style/gem.sh: ignore ~> operator 2018-11-19 02:29:28 -02:00
maxice8 6ce9a1636a build-style/gemspec.sh: ignore ~> operator 2018-11-19 02:29:28 -02:00
maxice8 e946d7cfa2 build-style/gemspec.sh: fix cross compilation 2018-11-03 15:38:33 -03:00
Johannes 3aa797cb3a build-style cargo: move cargo config from wrksrc to home
since cargo 0.31.0 ${wrksrc}/.cargo/config is ignored for cargo install
fixes: https://github.com/void-linux/void-packages/issues/4328
2018-11-02 13:39:53 +01:00
Jürgen Buchmüller 7e0642f4ca build-style: qmake.sh add missing QMAKE_LINK_C=$CC 2018-11-02 12:25:31 +01:00
maxice8 70dce3d920
build-style/gemspec.sh: guard against usage of find on man and etc 2018-11-02 07:41:49 -03:00
maxice8 a8bbc60f5b
build-style/gem.sh: guard usage of find on etc and man 2018-11-02 07:41:36 -03:00
maxice8 03ea181231 build_style: Add gemspec build_style 2018-11-02 07:15:08 -03:00
maxice8 49e11e1ca5 build_style: Add gem build_style 2018-11-02 07:15:08 -03:00
Rasmus Thomsen 0318d0385a build-style/cargo.sh: add 2018-10-15 20:58:51 +02:00
maxice8 58d5cc4105 build-style/meson: enable b_ndebug and be explicit about paths used. 2018-10-09 10:36:32 -03:00
maxice8 b552a5f05d build-style/cmake.sh: set CMAKE_SYSTEM_PROCESSOR on cross-builds 2018-10-04 10:30:10 +02:00
maxice8 ea1b905d26
build-style/meson: enable Link-Time-Optimization by default. 2018-10-01 01:59:37 -03:00
Kyle Nusbaum 422e3461fe Fail go build when $go_import_path is not set
Closes: #2881 [via git-merge-pr]
2018-09-20 22:38:35 -07:00
maxice8 2748e21418
build-style/go.sh: fix indent 2018-09-18 21:41:08 -03:00
maxice8 608f10ea59
build-style/meson: add nm to binaries and export LD, AR, CPPFLAGS and
LDFLAGS.
2018-09-12 21:24:31 -03:00
maxice8 d0562177a5
build-style/meson: define PKG_CONFIG for host usage.
PKG_CONFIG environment variable should point to the pkg-config executable
to be used to fetch dependencies that use 'native: true' (indicate to build
against host libraries not cross-compiled ones)

To meet those requirements we set an absolute path to the host
pkg-config since the relative path to pkg-config is taken by the
wrapper.

This currently requires a patch that is a milestone of meson-0.48 that
was generated by the issue:

https://github.com/mesonbuild/meson/issues/1736
2018-09-10 01:17:05 -03:00
newbluemoon 435f99d4a7
common/build-style/perl-ModuleBuild.sh: use target perl includes 2018-09-08 07:10:55 -03:00
newbluemoon 4528a706ff
common/build-style/perl-module.sh: use target perl includes 2018-09-08 07:10:55 -03:00
maxice8 775ad8deba
build_style/meson: also unset _MESON_CPU_FAMILY. 2018-09-08 05:54:44 -03:00
newbluemoon 5e6ed15aa9 build-style/perl-ModuleBuild.sh: fix cross 2018-08-26 14:06:35 -03:00
maxice8 6580c8d657
build_style/meson.sh: export CFLAGS and CXXFLAGS from host
meson when compiling something with 'native: true' (for building
executables that are meant to be run on the host system) uses CFLAGS
and CXXFLAGS environment variables, we "pollute" them with
TARGET system cflags/cxxflags, such as -march= for the cross-compiled
arch.

so to fix it we export CFLAGS and CXXFLAGS to be CFLAGS_host and
CXXFLAGS_host respectively, they are set by XBPS and correspond to
the XBPS_CFLAGS/XBPS_CXXFLAGS. This same set of changes is also done
with CC and CXX see L#61

this was found when cross-compiling lighttpd which created the
'lemon' executable to generate inputs

thanks to @Cogitri from Exherbo for helping me debug this

[ci skip]
2018-08-16 01:49:38 -03:00
Alessio Sergi b0feeed60e build-styles/waf{,3}: make sure waf uses the correct python version 2018-08-09 19:53:32 +02:00
maxice8 97b348502c meson.sh: Fix cross-compilation
following https://mesonbuild.com/Cross-compilation.html

- host_machine is our XBPS_TARGET_MACHINE
- build_machine is our XBPS_MACHINE, and meson can find out the details
on it's own
- also don't include -musl in the CPU because meson doesn't recognize it
and projects like Mesa (LibGL) don't enable optimizations for it
- cpu_family and cpu are different, they need to be set properly:
 - armv* is arm
 - mips* is mips
 - i686 is x86
 - x86_64 is x86_64
 - aarch64 is aarch64
2018-07-29 14:30:20 -03:00
Leah Neukirchen d4e6c49808 build-style/haskell-stack.sh: init using --system-ghc too. 2018-04-05 14:32:40 +02:00
Piotr Wójcik e1a62f4018 build-style/cmake.sh: fix default do_check 2018-03-09 13:43:10 -05:00
Michael Gehring 5d6b70bd29 common/build-style/scons.sh: fix comment 2018-03-05 20:49:36 +00:00
Enno Boland 4ae8c6e8e8
common/build-style: revert last fix, instead fix a typo 2018-02-26 19:52:04 +01:00
Enno Boland 2f792446a5
common/build-style: do not leak host CFLAGS 2018-02-26 19:19:12 +01:00
Jürgen Buchmüller c43b120be0 perl-module: fall back to use host files
If perl is not installed for the target when cross building a module,
fall back to use the host Config*.p? and Errno.pm files.
2018-02-26 09:35:44 +01:00