Commit Graph

162 Commits

Author SHA1 Message Date
ed942b52f5 Add tinycc image
Add tinycc image

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-04 14:24:19 +02:00
55138d52e0 Update makefile N2
Update makefile N2

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-04 14:21:05 +02:00
4fd8fb9e09 Update makefile image variable
Update makefile image variable

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-04 14:17:15 +02:00
882a67b9d2 Add shellcheck
Add shellcheck CI and shellcheck in Makefile (bash-check rule)

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-08-03 00:47:26 +02:00
08a961f2c5 Add xtensa image
Add xtensa image

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-24 02:12:43 +02:00
3f91ce612f Fix merge with master
Fix merge with master

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-02 16:00:57 +02:00
c686ea6515 Add riscv32 and riscv64
Add riscv32 and riscv64

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-02 15:16:51 +02:00
7c50d020df Add linux-mk68
Add linux-mk68

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-07-01 23:31:41 +02:00
927f709819 Clean repos and fix clean rule
Move common files to common folder
Move patch files to patch folder
Fix clean rule in Makefile (Remove /Dockerfile in path, he is already there)

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-06-29 19:10:34 +02:00
3f338f3221 Fix merge
Fix merge

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-06-29 08:04:41 +02:00
Matt McCormick
4463ac02fc
Merge pull request #506 from bensuperpc/add_clang_image
Add linux-x64-clang
2021-06-28 16:54:51 -04:00
5a65786571 Merge remote-tracking branch 'origin/master' into remove_mipsel 2021-06-28 17:40:17 +02:00
ae3ed7e025 Update linux-arm64 to latest crosstool-ng version
GCC 11
Linux 5.12.12
GLIBC 2.33
Binutils 2.36

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-06-28 11:08:47 +02:00
a30e76d5cb Remove linux-mipsel and add linux-mips to CI
Removed the linux-mipsel image, as it no longer works and is no longer supported: https://wiki.debian.org/EmdebianToolchain
Add linux-mips image in the github workflow

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-06-27 17:31:24 +02:00
6a1843884d Add linux-x64-clang
Add linux-x64-clang

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-06-26 10:22:39 +02:00
Matt McCormick
795dd4dd1f
Merge pull request #503 from bensuperpc/master
Improve Makefile
2021-06-25 16:43:24 -04:00
8ebd448ba9 Upgrade to debian Buster and disable python builder script
Upgrade to debian Buster slim (later to debian bullseye, crosstool-ng must be updated first, version 1.23 is not compatible with debian bullseye)
Disable python script (build-and-install-python.sh), the version of python in the repositories is recent enough for crosstool-ng 1.24 and above.
Changed from python to python3 for compatibility
Adding the manual launch of a github workflow

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-06-25 16:34:53 +02:00
66b9c2b62c Improve Makefile
Since docker 1.10, It is possible to put several tags during build

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-06-25 15:21:18 +02:00
9891530c90 Update makefile and improve CI
Update makefile and improve CI:
Add clean rule in makefile
Change dockcross/ to /
Add dev branch in CI

Signed-off-by: Bensuperpc <bensuperpc@gmail.com>
2021-05-19 23:12:15 +02:00
Jean-Christophe Fillion-Robin
68b4549a50 Introduce "common.label-and-env"
This will simply the removal of deprecated "org.label-schema" annotation [1]
and the introduction of open containers ones [2]

[1] http://label-schema.org/rc1/
[2] https://github.com/opencontainers/image-spec/blob/master/annotations.md
2021-04-18 19:15:26 +02:00
Jean-Christophe Fillion-Robin
1fb2785377 Rename Dockerfile to Dockerfile.in to ensure consistency
All Dockerfiles are now configured similarly, this will support
future improvements.
2021-04-18 19:15:26 +02:00
Jonas Vautherin
8115b1dda3 Apply suggestions from code review 2021-03-13 00:13:33 +01:00
Jonas Vautherin
364e17c5d5 Tag base image like the others 2021-03-13 00:13:33 +01:00
Matt McCormick
a5d4d6dcb1
manylinux: Build pip with cp38
cp35 is no longer supported and get-pip.py fails to build.
2021-01-29 18:31:57 -05:00
Jonas Vautherin
0c1f2c9cbf Add android-x86_64 image 2021-01-12 10:46:18 +01:00
Jonas Vautherin
e9b6053f5d Add android-x86 image 2021-01-12 10:21:33 +01:00
Jonas Vautherin
acdf508e3d Add linux-armv6-musl image 2020-12-04 14:04:29 +01:00
Jonas Vautherin
14013efcdf Add linux-armv7l-musl image 2020-11-13 13:38:47 +01:00
Matt McCormick
7683a5ab13
Merge pull request #450 from JonasVautherin/add-linux-arm64-musl
Add linux-arm64-musl image
2020-11-11 16:57:00 -05:00
Jonas Vautherin
6bb13a8083 Add linux-arm64-musl image 2020-11-10 23:52:43 +01:00
Ryan Zoeller
d85a6ab93c Eagerly evaluate TAG, to ensure it's consistent
By deferring the evaluation of TAG, we risk the date changing mid-build
leading to images from the same make invocation having different tags.
2020-10-20 18:18:43 -05:00
Matt McCormick
1db5ed11bf
Merge pull request #427 from veblush/manylinux2014-x86
Added manylinux2014-x86
2020-07-12 22:04:10 -04:00
Esun Kim
de84690710 Added manylinux2014-x86 2020-07-04 16:46:50 -07:00
Nathan Genetzky
e2d20c0626 common.dockcross: Split minimal "dockcross" from 'debian' and 'docker' 2020-06-25 21:34:49 -05:00
odidev
fdb8d43e34
add support for manylinux2014-aarch64 2020-06-06 01:12:46 -04:00
Jonas Vautherin
42b7dd5602 add support for manylinux2014-x64 2019-12-23 10:20:32 +01:00
Esun Kim
2a3efdd548 Add manylinux2010-x86 2019-12-17 10:13:08 -08:00
Josiah Samuel
48f9bda187 re-enable ppc64le with crosstool-ng 2019-11-26 19:20:32 +05:30
alvarolb
b671432c6f
add support for armv5 using musl as libc version 2019-06-08 18:06:12 -04:00
Jean-Christophe Fillion-Robin
4793ea7c06
Add manylinux2010-x64 image
Since i686 image is not yet available in upstream project, this commit
only add the x64 version.
2019-05-22 03:21:10 -04:00
Jean-Christophe Fillion-Robin
1e0e89814b
Rename manylinux images to manylinux1 2019-05-22 03:11:45 -04:00
Mikhail Zemlyanukha
2a29197b3b added image for ARMv7-A 2019-03-03 18:54:14 +03:00
Stanley F
46c941df93 fix makefile 2019-03-01 16:22:44 +01:00
Stanley F
c9a7606f1f add windows images with shared linking 2019-03-01 16:22:44 +01:00
Matt McCormick
3c194a1914
web-wasm: Rename image from browser-asmjs
WebAssembly has a better mindshare than asm.js. In the future, it will
be used in much more than browsers. Also, newer versions of Emscripten
default to WebAssembly.
2019-01-19 16:05:29 -05:00
Matt McCormick
c96cbdc956
versioning: Set DEFAULT_DOCKCROSS_IMAGE based on the image tag
This ensures that the dockcross script will continue to use the specific
tagged version of the image that generates it.
2019-01-16 23:25:52 -05:00
Matt McCormick
03931af69b
browser-asmjs: Use tagged version for the default dockcross image 2019-01-01 21:15:02 -05:00
Matt McCormick
fce48bcfe3
build-deploy: Tag images by date and Git SHA
Tag with the pattern:

<imagename>:YYYYMMDD-SHA{N} where YYYYMMDD is the date of the build and
SHA{N} the output of `git rev-parse --short HEAD`

along with `latest` as discussed in Issue #223.

This helps clients use a fixed, reproducible image that will be
available for a long period of time.
2018-12-19 08:51:55 -05:00
Nadav Ruskin
bbf6d6d45e Crosstool-ng'd armv5 2018-07-15 13:43:55 +03:00
Nadav Ruskin
b3bcf24ffc Crosstool-ng'd armv7 2018-07-11 10:45:53 +03:00
Guillaume Jacquenot
9997a896ae
[windows_x64_posix] Updated Makefile to take into account windows-x64-posix 2018-06-12 00:45:44 -04:00
Jean-Christophe Fillion-Robin
aa202df283
windows-(x86|x64): Optimize images introducing "common.windows"
* Avoid duplication introducing common  script
* Optimize image size reducing the number of RUN instructions
2018-06-09 01:20:20 -04:00
Nadav Ruskin
6191491ba5 Fixed linux-arm64 compilation I hope. 2018-05-03 06:49:46 -04:00
Nadav
1cad97f9b2
Adding android-arm64 as a target 2018-03-19 14:50:17 +02:00
Junliang Yan
8b78b8d2d7 Add linux-s390x support 2017-09-14 16:59:57 -04:00
Dan Jacques
7dd46fa045 Implement "ct-ng" building, add "linux-mips".
Add a mechanism to construct a full cross-compiler environment using the
"crosstool-ng" cross-compiler building utility. This is implemented in
the new "common.crosstool" include, and augments the "dockcross/base"
base image.

Update Makefile to consolidate Dockerfile generation, notably the
"sed"-based inclusion directives.

Finally, employ all of this to generate a "linux-mips" 32-bit hard-float
MIPS cross-compiler Dockcross image.
2017-09-01 10:09:31 -04:00
Matt McCormick
499f8f5510 ci: Use CircleCI 2.0
Addresses #156
2017-08-28 13:24:53 -04:00
pancake
ae35e5ebbe Add linux-mipsel dockcross target 2017-01-22 23:07:53 +01:00
Jean-Christophe Fillion-Robin
5117ab6493
Makefile: Fix tests removing double quote from RM variable
This commit fixes a regression introduced in 6823cb1 (Makefile: Do not
specify "--rm" docker run argument when executing on CircleCI)
2016-11-28 23:47:26 -05:00
Jean-Christophe Fillion-Robin
6823cb1bd9
Makefile: Do not specify "--rm" docker run argument when executing on CircleCI
This will avoid the "Driver btrfs failed to remove" error message when
executing the command on CircleCI.
See https://circleci.com/docs/docker-btrfs-error/
2016-11-28 20:01:39 -05:00
Jean-Christophe Fillion-Robin
1560f4c3b6
makefile/browser-asmjs: Remove now unneeded dependency to "base"
Following 09868d5 (browser-asmjs: Update to depend on existing image from
"trzeci/emscripten"), browser-asmjs does NOT depend anymore on base image.
2016-11-26 18:20:35 -05:00
Jean-Christophe Fillion-Robin
09868d5289
browser-asmjs: Update to depend on existing image from "trzeci/emscripten"
This commit updates the "browser-asmjs" images to avoid systematic
rebuild of emscripten sdk. Instead, it introduces dependency on the
image maintained by @trzeci

Note also:

* emscripten sdk updated from 1.36.7 to 1.36.14

* symlinking of "/bin/bash" as "/bin/sh" is reverted. This ensures other
  images including file like "common.debian" and relying on standard "sh"
  behavior will work as expected.

* workaround associated with CMakeForceCompiler has been removed from
  Dockerfile. Emscripten as been fixed.
  See https://github.com/kripken/emscripten/pull/4477

* we will revisit once official images are available.
  See https://github.com/kripken/emscripten/issues/4682
2016-11-25 15:51:42 -05:00
Jean-Christophe Fillion-Robin
46cef1a33a
common: Introduce "common.debian"
This will facilitate the configuration of other images based on debian
but *NOT* depending on the dockcross/base image.
2016-11-25 15:51:42 -05:00
Jean-Christophe Fillion-Robin
191d773e01
makefile: Ensure imagefiles are available in build image context 2016-11-25 15:51:38 -05:00
Jean-Christophe Fillion-Robin
a68f2b6aa4
base: Optimize image build adding only image and vcs_url metatdata
To avoid dependent images to systematically rebuild, this commit
adds only "static" metatdata to the base image
2016-11-24 13:48:58 -05:00
Jean-Christophe Fillion-Robin
0552c37fea
common.docker: Improve OpenSSL and CMake install introducing helper scripts
To accommodate the requirements associated with x86 and x64 images, the
command building OpenSSL and CMake became overly complex and hard to
maintain.

This commit has multiple purposes:

(1) simplify common.docker

(2) fix the building of 64-bit shared libraries against the static openssl
libraries by passing the -fPIC flag.

(3) ensure [many]linux-x86 and [many]linux-x64 images have an up-to-date
OpenSSL install. Openssl static libraries are installed in /usr

(4) simplify and speedup CMake build avoiding the second build with
explicit -DCMAKE_USE_OPENSSL:BOOL=ON. Indeed, configuring CMake on Linux
already looks for OpenSSL.

(5) speedup download of CMake source directly downloading the archive
corresponding to the revision.

(6) test CMake by:
  - running CMake.FileDownload test
  - trying to download a file served over https
2016-11-21 06:08:30 -05:00
Matt McCormick
d9d65ffcc9 dockcross: Add support for Windows
Tested on Git Bash and Bash on Ubuntu for Windows.

There are some issue with building the Docker image itself, but using the
images works great.
2016-11-16 19:02:55 -08:00
Matt McCormick
26c5447d29
manylinux: Consolidate common content into common.manylinux 2016-11-03 21:50:41 -04:00
Jean-Christophe Fillion-Robin
cfcc7d6700
dockerfile: Keep track of buildtime metadata
This commit build each images with the following arguments:

* IMAGE: Name of the image (e.g dockcross/base, dockcross/manylinux-x64, ...)
* VCS_REF: dockcross/dockcross commit from which this image is built
* VCS_URL: this repository obtained reading remote.origin.url
* BUILD_DATE: Date and time when the build was initiated

Then, within the Dockerfile, the metadata are associated with the image
using the "LABEL" instruction.
See https://docs.docker.com/engine/reference/builder/#/label

The corresponding labels can be found here:
http://label-schema.org/rc1/#build-time-labels

See #28
2016-10-30 23:57:04 -04:00
Jean-Christophe Fillion-Robin
97385c1356
Makefile: Make sure base.test also create bin directory
This commit fixes a regression [1] introduced in 606d0b3 (Makefile: Make sure
BIN directory exist when running any test)

Reported below the dry-run summary before and after, we can confirm the
bin directory is now created when building the `base.test` target.

Before:

$ make base.test --dry-run
docker build -t dockcross/base .
docker run --rm dockcross/base > bin/dockcross-base && chmod +x bin/dockcross-base

After:

$ make base.test --dry-run
docker build -t dockcross/base .
mkdir -p bin
docker run --rm dockcross/base > bin/dockcross-base && chmod +x bin/dockcross-base


[1] Error fixed by this commit:

Successfully built e6388fe49824
docker run --rm dockcross/base > bin/dockcross-base && chmod +x bin/dockcross-base
/bin/sh: 1: cannot create bin/dockcross-base: Directory nonexistent
make: *** [base.test] Error 2

make base.test returned exit code 2
2016-09-26 11:38:43 -04:00
Jean-Christophe Fillion-Robin
606d0b3ed9
Makefile: Make sure BIN directory exist when running any test
This commit allows to run any test directly after checking out
the source code.
2016-09-26 00:21:16 -04:00
Jean-Christophe Fillion-Robin
8a4e0845da
Makefile: All images are tested. Remove ALL_IMAGES and DEFAULT_IMAGES vars.
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after has been compared.

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff --ignore-trailing-space ../dockcross-$target-baseline ../dockcross-$target-current> /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "-------------------------------" && \
    echo "Here is output of:" && \
    echo "  diff --ignore-trailing-space ../dockcross-$target-baseline ../dockcross-$target-current" && \
    echo "" && \
    diff --ignore-trailing-space ../dockcross-$target-baseline ../dockcross-$target-current
done
```

Output:

```
-------------------------------
Here is output of:
  diff --ignore-trailing-space ../dockcross-make-baseline ../dockcross-make-current

8a9
> docker build -t dockcross/linux-ppc64le linux-ppc64le
10a12,14
> cp -r test browser-asmjs/
> docker build -t dockcross/browser-asmjs browser-asmjs
> rm -rf browser-asmjs/test

-------------------------------
Here is output of:
  diff --ignore-trailing-space ../dockcross-make-test-baseline ../dockcross-make-test-current

24a25,27
> docker build -t dockcross/linux-ppc64le linux-ppc64le
> docker run --rm dockcross/linux-ppc64le > bin/dockcross-linux-ppc64le && chmod +x bin/dockcross-linux-ppc64le
> bin/dockcross-linux-ppc64le python test/run.py --languages C
30a34,38
> cp -r test browser-asmjs/
> docker build -t dockcross/browser-asmjs browser-asmjs
> rm -rf browser-asmjs/test
> docker run --rm dockcross/browser-asmjs > bin/dockcross-browser-asmjs && chmod +x bin/dockcross-browser-asmjs
> bin/dockcross-browser-asmjs python test/run.py --exe-suffix ".js"

```
2016-09-25 23:28:23 -04:00
Jean-Christophe Fillion-Robin
aa4735ddf2
Makefile: Add "display_default_images" and "display_all_images" targets 2016-09-25 19:46:49 -04:00
Jean-Christophe Fillion-Robin
4a0c6442c2
Makefile: Introduce NON_STANDARD_IMAGES, ALL_IMAGES and DEFAULT_IMAGES vars
This commit also ensures that:
* all image targets are declared as PHONY
* "test" and not "tests" is declared as PHONY


To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared.


Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
make browser-asmjs.test --dry-run > ../dockcross-make-browser-asmjs-test-baseline
make linux-ppc64le.test --dry-run > ../dockcross-make-linux-ppc64le-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current
make browser-asmjs.test --dry-run > ../dockcross-make-browser-asmjs-test-current
make linux-ppc64le.test --dry-run > ../dockcross-make-linux-ppc64le-test-current

for target in make make-test make-browser-asmjs-test make-linux-ppc64le-test; do
  diff --ignore-trailing-space ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 19:04:07 -04:00
Jean-Christophe Fillion-Robin
b033376284
Makefile: Add comments and move implicit rules at the end of the file
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared:

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff --ignore-trailing-space ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 18:38:26 -04:00
Jean-Christophe Fillion-Robin
0710c46745
Makefile: Treat windows-(x86|x64) as regular image introducing _ARGS var
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared.

The only difference was due to the extra space in the command line
associated with windows-x86

```
< bin/dockcross-windows-x86 python test/run.py  --exe-suffix ".exe"
---
> bin/dockcross-windows-x86 python test/run.py --exe-suffix ".exe"
```


Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff --ignore-trailing-space ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 18:20:02 -04:00
Jean-Christophe Fillion-Robin
f7f6989e46
Makefile: Add implicit rule for STANDARD_TESTS
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared:

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 18:03:28 -04:00
Jean-Christophe Fillion-Robin
53b158314a
Makefile: Add implicit rule for STANDARD_IMAGES
Adding a new images with the usual build rule:

  $(DOCKER) build -t $(ORG)/$@ $@

is now just a matter of adding an item to the "STANDARD_IMAGES" list.


To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared.

Note that since this patch changes the order in which the images are
listed (manylinux is now last), the baseline and current files are
different. After inspection, we can confirm the difference is explained
by the order of the commands.

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 17:44:08 -04:00
Jean-Christophe Fillion-Robin
2a12475d36
Makefile: Remove dependencies on a non-generated files
Since image targets are all "phony", they are always consider out-of-date
and will always be rebuilt. This means there is no need to add an explicit
dependency on non-generated files like  "Dockerfile", "settings.mk" and
"test/run.py".

The only required dependencies on Dockerfile are the one for the "base"
and "manylinux" images.

To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared:

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 17:38:20 -04:00
Jean-Christophe Fillion-Robin
caba0b0cef
Makefile: Remove "Toolchain.cmake" dependencies
Since image targets are all "phony", they are always consider out-of-date
and will always be rebuilt. This means there is no need to add an explicit
dependency on the "Toolchain.cmake" file.

Note also that the dependency on "Toolchain.cmake" was not consistent
for all images. For example, "linux-x64" was missing the dependency
whereas it was specified for "linux-x86".

This commit ensure all image targets are consistent removing the
dependency on "Toolchain.cmake".

To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared:

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 17:38:12 -04:00
Jean-Christophe Fillion-Robin
e428bb3c03
Makefile: Simplify test rule using "addsuffix" filename function
See https://www.gnu.org/software/make/manual/html_node/File-Name-Functions.html#File-Name-Functions

To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared:

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 17:38:05 -04:00
Jean-Christophe Fillion-Robin
92b57f511d
Makefile: Introduce IMAGES variable
To confirm that the Makefiles works as expected after this patch, the
list of executed commands before and after is compared:

Before:

```
make --dry-run > ../dockcross-make-baseline
make test --dry-run > ../dockcross-make-test-baseline
```

After:

```
make --dry-run > ../dockcross-make-current;
make test --dry-run > ../dockcross-make-test-current

for target in make make-test; do
  diff ../dockcross-$target-current ../dockcross-$target-baseline > /dev/null 2>&1
  [[ $? == 1 ]] && \
    echo "" && \
    echo "Error: Problem with '${target}' target: Dry-run output before and after this commit do not match."
done
```
2016-09-25 17:37:08 -04:00
Matt McCormick
1354fe2586 manylinux-x86: Initial addition 2016-09-24 23:14:33 -04:00
Matt McCormick
0bc1f257a6 makefile: Add manylinux-x64 to top level targets 2016-09-21 10:22:31 -04:00
Matt McCormick
b596ca6cd8 base,manylinux-x64: Use sed for Dockerfile composition
Suggested-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
2016-09-20 18:08:43 -04:00
Matt McCormick
5d90a72dfc manylinux-x64: Initial addition 2016-09-20 18:07:58 -04:00
Matt McCormick
755f45b412 base: Split into Dockerfile.in and common.docker
So common.docker can be re-used in other images that are not built FROM base.
2016-09-20 08:58:41 -04:00
Matt McCormick
e3ecfeb1a6 test: Use 'make test' as the Makefile target
This is a more common name for this target and it helps with tab completion.
2016-07-22 08:49:49 -04:00
Matt McCormick
1ed3548655 base: Add cmake wrapper scripts for CMAKE_TOOLCHAIN_FILE
All images should define this variables.

Disable build tests on the base image because it is not configured for cross
compiling.
2016-07-22 08:48:59 -04:00
Matt McCormick
24c0141bea ci: Fix make *.test invocation 2016-07-16 13:55:04 -04:00
Jean-Christophe Fillion-Robin
3c25505f52 Makefile: Add test targets
This commits add test targets for all images, this will facilitate local
testing.

In addition to the usual targets:

  make android-arm
  make browser-asmjs
  [...]

the following targets are now available:

  make tests
  make android-arm.test
  make browser-asmjs.test
  [...]

Note that the target "all" has been renamed into "images"
2016-07-16 02:45:23 -04:00
Matt McCormick
e1ef4f6194 Makefile: replace default target by all target 2016-07-16 01:27:13 -04:00
Jean-Christophe Fillion-Robin
c237fc9925 Makefile: Add "default" target
This commit adds a target named "default" at the top of the Makefile. Since
make will build the first target by default, simply typing "make" will
build all images.

See http://stackoverflow.com/questions/27242905/makefile-all-vs-default-targets/27243940#27243940

Note: Since "darwin-x64" needs some work, it has been excluded from the
default list.
2016-07-16 01:19:37 -04:00
Jean-Christophe Fillion-Robin
a3b7b03058 Makefile: Fix target linux-x64
There are no linux-x64/Toolchain.cmake file
2016-07-16 01:19:37 -04:00
Matt McCormick
04c7d0de18 Rename project and repository to dockcross 2016-07-15 23:46:08 -04:00
Matt McCormick
a5c84b842f arm64: Initial addition 2016-07-15 17:39:33 -04:00
Matt McCormick
30e29f3bbb browser-asmjs: cp ~/.emscripten, etc to the user home in the entrypoint 2016-07-06 15:33:35 -04:00
Roman Valls Guimera
7e6150cf29 Tidy up and consolidate both README.rst/README.md into one. Introduce linux-armv5. 2016-05-30 22:50:22 +02:00
Matt McCormick
af5c3fecec linux-x86: Update and add testing. 2016-04-06 16:48:12 -04:00
Matt McCormick
6e545319f0 browser-asmjs: Rename from javascript-asmjs.
We are one past the 30-character limit at DockerHub otherwise :-(.
2015-05-19 17:52:43 -04:00