mirror of
				https://github.com/bensuperpc/dockcross.git
				synced 2025-10-31 16:16:23 +01:00 
			
		
		
		
	| @@ -44,6 +44,25 @@ jobs: | |||||||
|       - save_cache: |       - save_cache: | ||||||
|           key: android-arm-assets-{{ .Revision }} |           key: android-arm-assets-{{ .Revision }} | ||||||
|           paths: ~/docker/android-arm.tar |           paths: ~/docker/android-arm.tar | ||||||
|  |   android-arm64: | ||||||
|  |     <<: *build-settings | ||||||
|  |     steps: | ||||||
|  |       - restore_cache: | ||||||
|  |           key: base-assets-{{ .Revision }} | ||||||
|  |       - run: | ||||||
|  |          name: android-arm64 build | ||||||
|  |          no_output_timeout: 1.5h | ||||||
|  |          command: | | ||||||
|  |            docker load -i ~/docker/base.tar | ||||||
|  |            make android-arm64 | ||||||
|  |            docker save -o ~/docker/android-arm64.tar dockcross/android-arm64:latest | ||||||
|  |       - run: | ||||||
|  |          name: android-arm64 test | ||||||
|  |          command: | | ||||||
|  |            make android-arm64.test | ||||||
|  |       - save_cache: | ||||||
|  |           key: android-arm64-assets-{{ .Revision }} | ||||||
|  |           paths: ~/docker/android-arm64.tar | ||||||
|   browser-asmjs: |   browser-asmjs: | ||||||
|     <<: *build-settings |     <<: *build-settings | ||||||
|     steps: |     steps: | ||||||
| @@ -68,17 +87,18 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: base-assets-{{ .Revision }} |           key: base-assets-{{ .Revision }} | ||||||
|       - run: |       # Image build currently broken. See #209 | ||||||
|          name: linux-arm64 build |       #- run: | ||||||
|          no_output_timeout: 1.5h |          #name: linux-arm64 build | ||||||
|          command: | |          #no_output_timeout: 1.5h | ||||||
|            docker load -i ~/docker/base.tar |          #command: | | ||||||
|            make linux-arm64 |            #docker load -i ~/docker/base.tar | ||||||
|            docker save -o ~/docker/linux-arm64.tar dockcross/linux-arm64:latest |            #make linux-arm64 | ||||||
|       - run: |            #docker save -o ~/docker/linux-arm64.tar dockcross/linux-arm64:latest | ||||||
|          name: linux-arm64 test |       #- run: | ||||||
|          command: | |          #name: linux-arm64 test | ||||||
|            make linux-arm64.test |          #command: | | ||||||
|  |            #make linux-arm64.test | ||||||
|       - save_cache: |       - save_cache: | ||||||
|           key: linux-arm64-assets-{{ .Revision }} |           key: linux-arm64-assets-{{ .Revision }} | ||||||
|           paths: ~/docker/linux-arm64.tar |           paths: ~/docker/linux-arm64.tar | ||||||
| @@ -87,17 +107,18 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: base-assets-{{ .Revision }} |           key: base-assets-{{ .Revision }} | ||||||
|       - run: |       # Image build currently broken. See #209 | ||||||
|          name: linux-armv5 build |       #- run: | ||||||
|          no_output_timeout: 1.5h |          #name: linux-armv5 build | ||||||
|          command: | |          #no_output_timeout: 1.5h | ||||||
|            docker load -i ~/docker/base.tar |          #command: | | ||||||
|            make linux-armv5 |            #docker load -i ~/docker/base.tar | ||||||
|            docker save -o ~/docker/linux-armv5.tar dockcross/linux-armv5:latest |            #make linux-armv5 | ||||||
|       - run: |            #docker save -o ~/docker/linux-armv5.tar dockcross/linux-armv5:latest | ||||||
|          name: linux-armv5 test |       #- run: | ||||||
|          command: | |          #name: linux-armv5 test | ||||||
|            make linux-armv5.test |          #command: | | ||||||
|  |            #make linux-armv5.test | ||||||
|       - save_cache: |       - save_cache: | ||||||
|           key: linux-armv5-assets-{{ .Revision }} |           key: linux-armv5-assets-{{ .Revision }} | ||||||
|           paths: ~/docker/linux-armv5.tar |           paths: ~/docker/linux-armv5.tar | ||||||
| @@ -125,17 +146,18 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: base-assets-{{ .Revision }} |           key: base-assets-{{ .Revision }} | ||||||
|       - run: |       # Image build currently broken. See #209 | ||||||
|          name: linux-armv7 build |       #- run: | ||||||
|          no_output_timeout: 1.5h |          #name: linux-armv7 build | ||||||
|          command: | |          #no_output_timeout: 1.5h | ||||||
|            docker load -i ~/docker/base.tar |          #command: | | ||||||
|            make linux-armv7 |            #docker load -i ~/docker/base.tar | ||||||
|            docker save -o ~/docker/linux-armv7.tar dockcross/linux-armv7:latest |            #make linux-armv7 | ||||||
|       - run: |            #docker save -o ~/docker/linux-armv7.tar dockcross/linux-armv7:latest | ||||||
|          name: linux-armv7 test |       #- run: | ||||||
|          command: | |          #name: linux-armv7 test | ||||||
|            make linux-armv7.test |          #command: | | ||||||
|  |            #make linux-armv7.test | ||||||
|       - save_cache: |       - save_cache: | ||||||
|           key: linux-armv7-assets-{{ .Revision }} |           key: linux-armv7-assets-{{ .Revision }} | ||||||
|           paths: ~/docker/linux-armv7.tar |           paths: ~/docker/linux-armv7.tar | ||||||
| @@ -144,17 +166,18 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: base-assets-{{ .Revision }} |           key: base-assets-{{ .Revision }} | ||||||
|       - run: |       # Image build currently broken. See #209 | ||||||
|          name: linux-mipsel build |       #- run: | ||||||
|          no_output_timeout: 1.5h |          #name: linux-mipsel build | ||||||
|          command: | |          #no_output_timeout: 1.5h | ||||||
|            docker load -i ~/docker/base.tar |          #command: | | ||||||
|            make linux-mipsel |            #docker load -i ~/docker/base.tar | ||||||
|            docker save -o ~/docker/linux-mipsel.tar dockcross/linux-mipsel:latest |            #make linux-mipsel | ||||||
|       - run: |            #docker save -o ~/docker/linux-mipsel.tar dockcross/linux-mipsel:latest | ||||||
|          name: linux-mipsel test |       #- run: | ||||||
|          command: | |          #name: linux-mipsel test | ||||||
|            make linux-mipsel.test |          #command: | | ||||||
|  |            #make linux-mipsel.test | ||||||
|       - save_cache: |       - save_cache: | ||||||
|           key: linux-mipsel-assets-{{ .Revision }} |           key: linux-mipsel-assets-{{ .Revision }} | ||||||
|           paths: ~/docker/linux-mipsel.tar |           paths: ~/docker/linux-mipsel.tar | ||||||
| @@ -182,17 +205,18 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: base-assets-{{ .Revision }} |           key: base-assets-{{ .Revision }} | ||||||
|       - run: |       # Image build currently broken. See #209 | ||||||
|          name: linux-ppc64le build |       #- run: | ||||||
|          no_output_timeout: 1.5h |          #name: linux-ppc64le build | ||||||
|          command: | |          #no_output_timeout: 1.5h | ||||||
|            docker load -i ~/docker/base.tar |          #command: | | ||||||
|            make linux-ppc64le |            #docker load -i ~/docker/base.tar | ||||||
|            docker save -o ~/docker/linux-ppc64le.tar dockcross/linux-ppc64le:latest |            #make linux-ppc64le | ||||||
|       - run: |            #docker save -o ~/docker/linux-ppc64le.tar dockcross/linux-ppc64le:latest | ||||||
|          name: linux-ppc64le test |       #- run: | ||||||
|          command: | |          #name: linux-ppc64le test | ||||||
|            make linux-ppc64le.test |          #command: | | ||||||
|  |            #make linux-ppc64le.test | ||||||
|       - save_cache: |       - save_cache: | ||||||
|           key: linux-ppc64le-assets-{{ .Revision }} |           key: linux-ppc64le-assets-{{ .Revision }} | ||||||
|           paths: ~/docker/linux-ppc64le.tar |           paths: ~/docker/linux-ppc64le.tar | ||||||
| @@ -333,6 +357,16 @@ jobs: | |||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |               docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|               docker push dockcross/android-arm:latest |               docker push dockcross/android-arm:latest | ||||||
|             fi |             fi | ||||||
|  |       - restore_cache: | ||||||
|  |           key: android-arm64-assets-{{ .Revision }} | ||||||
|  |       - deploy: | ||||||
|  |           name: Deploy android-arm64 | ||||||
|  |           command: | | ||||||
|  |             docker load -i ~/docker/android-arm64.tar | ||||||
|  |             if [ "${CIRCLE_BRANCH}" == "master" ]; then | ||||||
|  |               docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|  |               docker push dockcross/android-arm64:latest | ||||||
|  |             fi | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: browser-asmjs-assets-{{ .Revision }} |           key: browser-asmjs-assets-{{ .Revision }} | ||||||
|       - deploy: |       - deploy: | ||||||
| @@ -343,26 +377,28 @@ jobs: | |||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |               docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|               docker push dockcross/browser-asmjs:latest |               docker push dockcross/browser-asmjs:latest | ||||||
|             fi |             fi | ||||||
|       - restore_cache: |       # Image build currently broken. See #209 | ||||||
|           key: linux-arm64-assets-{{ .Revision }} |       #- restore_cache: | ||||||
|       - deploy: |           #key: linux-arm64-assets-{{ .Revision }} | ||||||
|           name: Deploy linux-arm64 |       #- deploy: | ||||||
|           command: | |           #name: Deploy linux-arm64 | ||||||
|             docker load -i ~/docker/linux-arm64.tar |           #command: | | ||||||
|             if [ "${CIRCLE_BRANCH}" == "master" ]; then |             #docker load -i ~/docker/linux-arm64.tar | ||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |             #if [ "${CIRCLE_BRANCH}" == "master" ]; then | ||||||
|               docker push dockcross/linux-arm64:latest |               #docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|             fi |               #docker push dockcross/linux-arm64:latest | ||||||
|       - restore_cache: |             #fi | ||||||
|           key: linux-armv5-assets-{{ .Revision }} |       # Image build currently broken. See #209 | ||||||
|       - deploy: |       #- restore_cache: | ||||||
|           name: Deploy linux-armv5 |           #key: linux-armv5-assets-{{ .Revision }} | ||||||
|           command: | |       #- deploy: | ||||||
|             docker load -i ~/docker/linux-armv5.tar |           #name: Deploy linux-armv5 | ||||||
|             if [ "${CIRCLE_BRANCH}" == "master" ]; then |           #command: | | ||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |             #docker load -i ~/docker/linux-armv5.tar | ||||||
|               docker push dockcross/linux-armv5:latest |             #if [ "${CIRCLE_BRANCH}" == "master" ]; then | ||||||
|             fi |               #docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|  |               #docker push dockcross/linux-armv5:latest | ||||||
|  |             #fi | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: linux-armv6-assets-{{ .Revision }} |           key: linux-armv6-assets-{{ .Revision }} | ||||||
|       - deploy: |       - deploy: | ||||||
| @@ -373,26 +409,28 @@ jobs: | |||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |               docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|               docker push dockcross/linux-armv6:latest |               docker push dockcross/linux-armv6:latest | ||||||
|             fi |             fi | ||||||
|       - restore_cache: |       # Image build currently broken. See #209 | ||||||
|           key: linux-armv7-assets-{{ .Revision }} |       #- restore_cache: | ||||||
|       - deploy: |           #key: linux-armv7-assets-{{ .Revision }} | ||||||
|           name: Deploy linux-armv7 |       #- deploy: | ||||||
|           command: | |           #name: Deploy linux-armv7 | ||||||
|             docker load -i ~/docker/linux-armv7.tar |           #command: | | ||||||
|             if [ "${CIRCLE_BRANCH}" == "master" ]; then |             #docker load -i ~/docker/linux-armv7.tar | ||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |             #if [ "${CIRCLE_BRANCH}" == "master" ]; then | ||||||
|               docker push dockcross/linux-armv7:latest |               #docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|             fi |               #docker push dockcross/linux-armv7:latest | ||||||
|       - restore_cache: |             #fi | ||||||
|           key: linux-mipsel-assets-{{ .Revision }} |       # Image build currently broken. See #209 | ||||||
|       - deploy: |       #- restore_cache: | ||||||
|           name: Deploy linux-mipsel |           #key: linux-mipsel-assets-{{ .Revision }} | ||||||
|           command: | |       #- deploy: | ||||||
|             docker load -i ~/docker/linux-mipsel.tar |           #name: Deploy linux-mipsel | ||||||
|             if [ "${CIRCLE_BRANCH}" == "master" ]; then |           #command: | | ||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |             #docker load -i ~/docker/linux-mipsel.tar | ||||||
|               docker push dockcross/linux-mipsel:latest |             #if [ "${CIRCLE_BRANCH}" == "master" ]; then | ||||||
|             fi |               #docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|  |               #docker push dockcross/linux-mipsel:latest | ||||||
|  |             #fi | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: linux-s390x-assets-{{ .Revision }} |           key: linux-s390x-assets-{{ .Revision }} | ||||||
|       - deploy: |       - deploy: | ||||||
| @@ -403,16 +441,17 @@ jobs: | |||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |               docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|               docker push dockcross/linux-s390x:latest |               docker push dockcross/linux-s390x:latest | ||||||
|             fi |             fi | ||||||
|       - restore_cache: |       # Image build currently broken. See #209 | ||||||
|           key: linux-ppc64le-assets-{{ .Revision }} |       #- restore_cache: | ||||||
|       - deploy: |           #key: linux-ppc64le-assets-{{ .Revision }} | ||||||
|           name: Deploy linux-ppc64le |       #- deploy: | ||||||
|           command: | |           #name: Deploy linux-ppc64le | ||||||
|             docker load -i ~/docker/linux-ppc64le.tar |           #command: | | ||||||
|             if [ "${CIRCLE_BRANCH}" == "master" ]; then |             #docker load -i ~/docker/linux-ppc64le.tar | ||||||
|               docker login -u $DOCKER_USER -p $DOCKER_PASS |             #if [ "${CIRCLE_BRANCH}" == "master" ]; then | ||||||
|               docker push dockcross/linux-ppc64le:latest |               #docker login -u $DOCKER_USER -p $DOCKER_PASS | ||||||
|             fi |               #docker push dockcross/linux-ppc64le:latest | ||||||
|  |             #fi | ||||||
|       - restore_cache: |       - restore_cache: | ||||||
|           key: linux-x64-assets-{{ .Revision }} |           key: linux-x64-assets-{{ .Revision }} | ||||||
|       - deploy: |       - deploy: | ||||||
| @@ -482,30 +521,38 @@ workflows: | |||||||
|         - android-arm: |         - android-arm: | ||||||
|             requires: |             requires: | ||||||
|               - base |               - base | ||||||
|  |         - android-arm64: | ||||||
|  |             requires: | ||||||
|  |               - base | ||||||
|         - browser-asmjs: |         - browser-asmjs: | ||||||
|             requires: |             requires: | ||||||
|               - base |               - base | ||||||
|         - linux-arm64: |         # Image build currently broken. See #209 | ||||||
|             requires: |         #- linux-arm64: | ||||||
|               - base |             #requires: | ||||||
|         - linux-armv5: |               #- base | ||||||
|             requires: |         # Image build currently broken. See #209 | ||||||
|               - base |         #- linux-armv5: | ||||||
|  |             #requires: | ||||||
|  |               #- base | ||||||
|         - linux-armv6: |         - linux-armv6: | ||||||
|             requires: |             requires: | ||||||
|               - base |               - base | ||||||
|         - linux-armv7: |         # Image build currently broken. See #209 | ||||||
|             requires: |         #- linux-armv7: | ||||||
|               - base |             #requires: | ||||||
|         - linux-mipsel: |               #- base | ||||||
|             requires: |         # Image build currently broken. See #209 | ||||||
|               - base |         #- linux-mipsel: | ||||||
|  |             #requires: | ||||||
|  |               #- base | ||||||
|         - linux-s390x: |         - linux-s390x: | ||||||
|             requires: |             requires: | ||||||
|               - base |               - base | ||||||
|         - linux-ppc64le: |         # Image build currently broken. See #209 | ||||||
|             requires: |         #- linux-ppc64le: | ||||||
|               - base |             #requires: | ||||||
|  |               #- base | ||||||
|         - linux-x64: |         - linux-x64: | ||||||
|             requires: |             requires: | ||||||
|               - base |               - base | ||||||
| @@ -528,14 +575,18 @@ workflows: | |||||||
|             requires: |             requires: | ||||||
|               - base |               - base | ||||||
|               - android-arm |               - android-arm | ||||||
|  |               - android-arm64 | ||||||
|               - browser-asmjs |               - browser-asmjs | ||||||
|               - linux-arm64 |               # Image build currently broken. See #209 | ||||||
|               - linux-armv5 |               #- linux-arm64 | ||||||
|  |               #- linux-armv5 | ||||||
|               - linux-armv6 |               - linux-armv6 | ||||||
|               - linux-armv7 |               # Image build currently broken. See #209 | ||||||
|               - linux-mipsel |               #- linux-armv7 | ||||||
|  |               #- linux-mipsel | ||||||
|               - linux-s390x |               - linux-s390x | ||||||
|               - linux-ppc64le |               # Image build currently broken. See #209 | ||||||
|  |               #- linux-ppc64le | ||||||
|               - linux-x64 |               - linux-x64 | ||||||
|               - linux-x86 |               - linux-x86 | ||||||
|               - manylinux-x64 |               - manylinux-x64 | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -1,4 +1,4 @@ | |||||||
| Copyright (c) 2015 Steeve Morin, Rob Burns, Matthew McCormick | Copyright (c) 2015, 2016, 2017, 2018 Steeve Morin, Rob Burns, Matthew McCormick, Jean-Christophe-Fillion-Robin | ||||||
|  |  | ||||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | Permission is hereby granted, free of charge, to any person obtaining a copy | ||||||
| of this software and associated documentation files (the "Software"), to deal | of this software and associated documentation files (the "Software"), to deal | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| @@ -13,7 +13,7 @@ ORG = dockcross | |||||||
| BIN = ./bin | BIN = ./bin | ||||||
|  |  | ||||||
| # These images are built using the "build implicit rule" | # These images are built using the "build implicit rule" | ||||||
| STANDARD_IMAGES = linux-s390x android-arm linux-x86 linux-x64 linux-arm64 linux-armv5 linux-armv6 linux-armv7 linux-mips linux-mipsel linux-ppc64le windows-x86 windows-x64 | STANDARD_IMAGES = linux-s390x android-arm android-arm64 linux-x86 linux-x64 linux-arm64 linux-armv5 linux-armv6 linux-armv7 linux-mips linux-mipsel linux-ppc64le windows-x86 windows-x64 | ||||||
|  |  | ||||||
| # Generated Dockerfiles. | # Generated Dockerfiles. | ||||||
| GEN_IMAGES = linux-s390x linux-mips manylinux-x86 manylinux-x64 browser-asmjs | GEN_IMAGES = linux-s390x linux-mips manylinux-x86 manylinux-x64 browser-asmjs | ||||||
|   | |||||||
							
								
								
									
										135
									
								
								README.rst
									
									
									
									
									
								
							
							
						
						
									
										135
									
								
								README.rst
									
									
									
									
									
								
							| @@ -12,6 +12,7 @@ Features | |||||||
|  |  | ||||||
| * Pre-built and configured toolchains for cross compiling. | * Pre-built and configured toolchains for cross compiling. | ||||||
| * Most images also contain an emulator for the target system. | * Most images also contain an emulator for the target system. | ||||||
|  | * Clean separation of build tools, source code, and build artifacts. | ||||||
| * Commands in the container are run as the calling user, so that any created files have the expected ownership, (i.e. not root). | * Commands in the container are run as the calling user, so that any created files have the expected ownership, (i.e. not root). | ||||||
| * Make variables (`CC`, `LD` etc) are set to point to the appropriate tools in the container. | * Make variables (`CC`, `LD` etc) are set to point to the appropriate tools in the container. | ||||||
| * Recent `CMake <https://cmake.org>`_ and ninja are precompiled. | * Recent `CMake <https://cmake.org>`_ and ninja are precompiled. | ||||||
| @@ -20,6 +21,61 @@ Features | |||||||
| * Current directory is mounted as the container's workdir, ``/work``. | * Current directory is mounted as the container's workdir, ``/work``. | ||||||
| * Works with the `Docker for Mac <https://docs.docker.com/docker-for-mac/>`_ and `Docker for Windows <https://docs.docker.com/docker-for-windows/>`_. | * Works with the `Docker for Mac <https://docs.docker.com/docker-for-mac/>`_ and `Docker for Windows <https://docs.docker.com/docker-for-windows/>`_. | ||||||
|  |  | ||||||
|  | Examples | ||||||
|  | -------- | ||||||
|  |  | ||||||
|  | 1. ``dockcross make``: Build the *Makefile* in the current directory. | ||||||
|  | 2. ``dockcross cmake -Bbuild -H. -GNinja``: Run CMake with a build directory | ||||||
|  |    ``./build`` for a *CMakeLists.txt* file in the current directory and generate | ||||||
|  |    ``ninja`` build configuration files. | ||||||
|  | 3. ``dockcross ninja -Cbuild``: Run ninja in the ``./build`` directory. | ||||||
|  | 4. ``dockcross bash -c '$CC test/C/hello.c -o hello'``: Build the *hello.c* file | ||||||
|  |    with the compiler identified with the ``CC`` environmental variable in the | ||||||
|  |    build environment. | ||||||
|  | 5. ``dockcross bash``: Run an interactive shell in the build environment. | ||||||
|  |  | ||||||
|  | Note that commands are executed verbatim. If any shell processing for | ||||||
|  | environment variable expansion or redirection is required, please use | ||||||
|  | `bash -c 'command args...'`. | ||||||
|  |  | ||||||
|  | Installation | ||||||
|  | ------------ | ||||||
|  |  | ||||||
|  | This image does not need to be run manually. Instead, there is a helper script | ||||||
|  | to execute build commands on source code existing on the local host filesystem. This | ||||||
|  | script is bundled with the image. | ||||||
|  |  | ||||||
|  | To install the helper script, run one of the images with no arguments, and | ||||||
|  | redirect the output to a file:: | ||||||
|  |  | ||||||
|  |   docker run --rm CROSS_COMPILER_IMAGE_NAME > ./dockcross | ||||||
|  |   chmod +x ./dockcross | ||||||
|  |   mv ./dockcross ~/bin/ | ||||||
|  |  | ||||||
|  | Where `CROSS_COMPILER_IMAGE_NAME` is the name of the cross-compiler toolchain | ||||||
|  | Docker instance, e.g. `dockcross/linux-armv7`. | ||||||
|  |  | ||||||
|  | Only 64-bit x86_64 images are provided; a 64-bit x86_64 host system is required. | ||||||
|  |  | ||||||
|  | Usage | ||||||
|  | ----- | ||||||
|  |  | ||||||
|  | For the impatient, here's how to compile a hello world for armv7:: | ||||||
|  |  | ||||||
|  |   cd ~/src/dockcross | ||||||
|  |   docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7 | ||||||
|  |   chmod +x ./dockcross-linux-armv7 | ||||||
|  |   ./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm' | ||||||
|  |  | ||||||
|  | Note how invoking any toolchain command (make, gcc, etc.) is just a matter of prepending the **dockcross** script on the commandline:: | ||||||
|  |  | ||||||
|  |   ./dockcross-linux-armv7 [command] [args...] | ||||||
|  |  | ||||||
|  | The dockcross script will execute the given command-line inside the container, | ||||||
|  | along with all arguments passed after the command. Commands that evaluate | ||||||
|  | environmental variables in the image, like `$CC` above, should be executed in | ||||||
|  | `bash -c`. The present working directory is mounted within the image, which | ||||||
|  | can be used to make source code available in the Docker container. | ||||||
|  |  | ||||||
| Cross compilers | Cross compilers | ||||||
| --------------- | --------------- | ||||||
| @@ -40,6 +96,13 @@ dockcross/android-arm | |||||||
|   architecture. |   architecture. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | .. |android-arm64-images| image:: https://images.microbadger.com/badges/image/dockcross/android-arm64.svg | ||||||
|  |   :target: https://microbadger.com/images/dockcross/android-arm64 | ||||||
|  |  | ||||||
|  | dockcross/android-arm64 | ||||||
|  |   |android-arm64-images| The Android NDK standalone toolchain for the arm64 | ||||||
|  |   architecture. | ||||||
|  |  | ||||||
| .. |browser-asmjs-images| image:: https://images.microbadger.com/badges/image/dockcross/browser-asmjs.svg | .. |browser-asmjs-images| image:: https://images.microbadger.com/badges/image/dockcross/browser-asmjs.svg | ||||||
|   :target: https://microbadger.com/images/dockcross/browser-asmjs |   :target: https://microbadger.com/images/dockcross/browser-asmjs | ||||||
|  |  | ||||||
| @@ -148,44 +211,13 @@ dockcross/windows-x86 | |||||||
|   |windows-x86-images| 32-bit Windows cross-compiler based on MXE/MinGW-w64. |   |windows-x86-images| 32-bit Windows cross-compiler based on MXE/MinGW-w64. | ||||||
|  |  | ||||||
|  |  | ||||||
| Installation | Articles | ||||||
| ------------ | -------- | ||||||
|  |  | ||||||
| This image does not need to be run manually. Instead, there is a helper script | - `dockcross: C++ Write Once, Run Anywhere | ||||||
| to execute build commands on source code existing on the local host filesystem. This |   <https://nbviewer.jupyter.org/format/slides/github/dockcross/cxx-write-once-run-anywhere/blob/master/dockcross_CXX_Write_Once_Run_Anywhere.ipynb#/>`_ | ||||||
| script is bundled with the image. | - `Cross-compiling binaries for multiple architectures with Docker | ||||||
|  |   <https://web.archive.org/web/20170912153531/http://blogs.nopcode.org/brainstorm/2016/07/26/cross-compiling-with-docker>`_ | ||||||
| To install the helper script, run one of the images with no arguments, and |  | ||||||
| redirect the output to a file:: |  | ||||||
|  |  | ||||||
|   docker run --rm CROSS_COMPILER_IMAGE_NAME > ./dockcross |  | ||||||
|   chmod +x ./dockcross |  | ||||||
|   mv ./dockcross ~/bin/ |  | ||||||
|  |  | ||||||
| Where `CROSS_COMPILER_IMAGE_NAME` is the name of the cross-compiler toolchain |  | ||||||
| Docker instance, e.g. `dockcross/linux-armv7`. |  | ||||||
|  |  | ||||||
| Only 64-bit images are provided; a 64-bit host system is required. |  | ||||||
|  |  | ||||||
| Usage |  | ||||||
| ----- |  | ||||||
|  |  | ||||||
| For the impatient, here's how to compile a hello world for armv7:: |  | ||||||
|  |  | ||||||
|   cd ~/src/dockcross |  | ||||||
|   docker run --rm dockcross/linux-armv7 > ./dockcross-linux-armv7 |  | ||||||
|   chmod +x ./dockcross-linux-armv7 |  | ||||||
|   ./dockcross-linux-armv7 bash -c '$CC test/C/hello.c -o hello_arm' |  | ||||||
|  |  | ||||||
| Note how invoking any toolchain command (make, gcc, etc.) is just a matter of prepending the **dockcross** script on the commandline:: |  | ||||||
|  |  | ||||||
|   ./dockcross-linux-armv7 [command] [args...] |  | ||||||
|  |  | ||||||
| The dockcross script will execute the given command-line inside the container, |  | ||||||
| along with all arguments passed after the command. Commands that evaluate |  | ||||||
| environmental variables in the image, like `$CC` above, should be executed in |  | ||||||
| `bash -c`. The present working directory is mounted within the image, which |  | ||||||
| can be used to make source code available in the Docker container. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Built-in update commands | Built-in update commands | ||||||
| @@ -269,23 +301,6 @@ For example, commands like ``git config --global advice.detachedHead false`` can | |||||||
| be added to this script. | be added to this script. | ||||||
|  |  | ||||||
|  |  | ||||||
| Examples |  | ||||||
| -------- |  | ||||||
|  |  | ||||||
| 1. ``dockcross make``: Build the *Makefile* in the current directory. |  | ||||||
| 2. ``dockcross cmake -Bbuild -H. -GNinja``: Run CMake with a build directory |  | ||||||
|    ``./build`` for a *CMakeLists.txt* file in the current directory and generate |  | ||||||
|    ``ninja`` build configuration files. |  | ||||||
| 3. ``dockcross ninja -Cbuild``: Run ninja in the ``./build`` directory. |  | ||||||
| 4. ``dockcross bash -c '$CC test/C/hello.c -o hello'``: Build the *hello.c* file |  | ||||||
|    with the compiler identified with the ``CC`` environmental variable in the |  | ||||||
|    build environment. |  | ||||||
| 5. ``dockcross bash``: Run an interactive shell in the build environment. |  | ||||||
|  |  | ||||||
| Note that commands are executed verbatim. If any shell processing for |  | ||||||
| environment variable expansion or redirection is required, please use |  | ||||||
| `bash -c 'command args...'`. |  | ||||||
|  |  | ||||||
| How to extend Dockcross images | How to extend Dockcross images | ||||||
| ------------------------------ | ------------------------------ | ||||||
| In order to extend Dockcross images with your own commands, one must: | In order to extend Dockcross images with your own commands, one must: | ||||||
| @@ -308,13 +323,13 @@ And then in the shell:: | |||||||
|   ./linux-armv7 bash							# Runs the helper script with the argument "bash", which starts an interactive container using your extended image. |   ./linux-armv7 bash							# Runs the helper script with the argument "bash", which starts an interactive container using your extended image. | ||||||
|  |  | ||||||
|  |  | ||||||
| Articles | What is the difference between `dockcross` and `dockbuild` ? | ||||||
| -------- | ------------------------------------------------------------ | ||||||
|  |  | ||||||
| - `dockcross: C++ Write Once, Run Anywhere | The key difference is that `dockbuild <https://github.com/dockbuild/dockbuild#readme>`_ | ||||||
|   <https://nbviewer.jupyter.org/format/slides/github/dockcross/cxx-write-once-run-anywhere/blob/master/dockcross_CXX_Write_Once_Run_Anywhere.ipynb#/>`_ | images use the same method to conveniently isolate the build environment as | ||||||
| - `Cross-compiling binaries for multiple architectures with Docker | `dockcross <https://github.com/dockcross/dockcross#readme>`_ but they do **NOT** provide | ||||||
|   <http://blogs.nopcode.org/brainstorm/2016/07/26/cross-compiling-with-docker>`_ | a toolchain file. | ||||||
|  |  | ||||||
|  |  | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -11,12 +11,13 @@ ENV CROSS_TRIPLE=arm-linux-androideabi | |||||||
| ENV CROSS_ROOT=/usr/${CROSS_TRIPLE} | ENV CROSS_ROOT=/usr/${CROSS_TRIPLE} | ||||||
| ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \ | ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \ | ||||||
|     AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \ |     AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \ | ||||||
|     CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-gcc \ |     CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang \ | ||||||
|     CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \ |     CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \ | ||||||
|     CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ \ |     CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang++ \ | ||||||
|     LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld |     LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld | ||||||
|  |  | ||||||
| ENV ANDROID_NDK_REVISION 13b | ENV ANDROID_NDK_REVISION 16b | ||||||
|  | ENV ANDROID_NDK_API 16 | ||||||
| RUN mkdir -p /build && \ | RUN mkdir -p /build && \ | ||||||
|     cd /build && \ |     cd /build && \ | ||||||
|     curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \ |     curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \ | ||||||
| @@ -24,7 +25,8 @@ RUN mkdir -p /build && \ | |||||||
|     cd android-ndk-r${ANDROID_NDK_REVISION} && \ |     cd android-ndk-r${ANDROID_NDK_REVISION} && \ | ||||||
|     ./build/tools/make_standalone_toolchain.py \ |     ./build/tools/make_standalone_toolchain.py \ | ||||||
|       --arch arm \ |       --arch arm \ | ||||||
|       --api 16 \ |       --api ${ANDROID_NDK_API} \ | ||||||
|  |       --stl=libc++ \ | ||||||
|       --install-dir=${CROSS_ROOT} && \ |       --install-dir=${CROSS_ROOT} && \ | ||||||
|     cd / && \ |     cd / && \ | ||||||
|     rm -rf /build && \ |     rm -rf /build && \ | ||||||
|   | |||||||
| @@ -6,8 +6,8 @@ set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN /usr/${cross_triple}/) | |||||||
| set(CMAKE_ANDROID_ARM_MODE 1) | set(CMAKE_ANDROID_ARM_MODE 1) | ||||||
| set(CMAKE_ANDROID_ARM_NEON 1) | set(CMAKE_ANDROID_ARM_NEON 1) | ||||||
|  |  | ||||||
| set(CMAKE_C_COMPILER /usr/${cross_triple}/bin/${cross_triple}-gcc) | set(CMAKE_C_COMPILER /usr/${cross_triple}/bin/${cross_triple}-clang) | ||||||
| set(CMAKE_CXX_COMPILER /usr/${cross_triple}/bin/${cross_triple}-g++) | set(CMAKE_CXX_COMPILER /usr/${cross_triple}/bin/${cross_triple}-clang++) | ||||||
|  |  | ||||||
| set(CMAKE_FIND_ROOT_PATH /usr/${cross_triple}) | set(CMAKE_FIND_ROOT_PATH /usr/${cross_triple}) | ||||||
| set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | ||||||
|   | |||||||
							
								
								
									
										52
									
								
								android-arm64/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								android-arm64/Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  | FROM dockcross/base:latest | ||||||
|  | MAINTAINER Matt McCormick "matt.mccormick@kitware.com" | ||||||
|  | RUN dpkg --add-architecture arm64 ; apt-get update | ||||||
|  |  | ||||||
|  | # The cross-compiling emulator | ||||||
|  | RUN apt-get update && apt-get install -y \ | ||||||
|  |   qemu-user \ | ||||||
|  |   qemu-user-static \ | ||||||
|  |   unzip | ||||||
|  |  | ||||||
|  | ENV CROSS_TRIPLE=aarch64-linux-android | ||||||
|  | ENV CROSS_ROOT=/usr/${CROSS_TRIPLE} | ||||||
|  | ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \ | ||||||
|  |     AR=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ar \ | ||||||
|  |     CC=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang \ | ||||||
|  |     CPP=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-cpp \ | ||||||
|  |     CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-clang++ \ | ||||||
|  |     LD=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-ld | ||||||
|  |  | ||||||
|  | ENV ANDROID_NDK_REVISION 16b | ||||||
|  | ENV ANDROID_NDK_API 21 | ||||||
|  | RUN mkdir -p /build && \ | ||||||
|  |     cd /build && \ | ||||||
|  |     curl -O https://dl.google.com/android/repository/android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \ | ||||||
|  |     unzip ./android-ndk-r${ANDROID_NDK_REVISION}-linux-x86_64.zip && \ | ||||||
|  |     cd android-ndk-r${ANDROID_NDK_REVISION} && \ | ||||||
|  |     ./build/tools/make_standalone_toolchain.py \ | ||||||
|  |       --arch arm64 \ | ||||||
|  |       --api ${ANDROID_NDK_API} \ | ||||||
|  |       --stl=libc++ \ | ||||||
|  |       --install-dir=${CROSS_ROOT} && \ | ||||||
|  |     cd / && \ | ||||||
|  |     rm -rf /build && \ | ||||||
|  |     find ${CROSS_ROOT} -exec chmod a+r '{}' \; && \ | ||||||
|  |     find ${CROSS_ROOT} -executable -exec chmod a+x '{}' \; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ENV DEFAULT_DOCKCROSS_IMAGE dockcross/android-arm64 | ||||||
|  |  | ||||||
|  | COPY Toolchain.cmake ${CROSS_ROOT}/ | ||||||
|  | ENV CMAKE_TOOLCHAIN_FILE ${CROSS_ROOT}/Toolchain.cmake | ||||||
|  |  | ||||||
|  | # Build-time metadata as defined at http://label-schema.org | ||||||
|  | ARG BUILD_DATE | ||||||
|  | ARG IMAGE | ||||||
|  | ARG VCS_REF | ||||||
|  | ARG VCS_URL | ||||||
|  | LABEL org.label-schema.build-date=$BUILD_DATE \ | ||||||
|  |       org.label-schema.name=$IMAGE \ | ||||||
|  |       org.label-schema.vcs-ref=$VCS_REF \ | ||||||
|  |       org.label-schema.vcs-url=$VCS_URL \ | ||||||
|  |       org.label-schema.schema-version="1.0" | ||||||
							
								
								
									
										19
									
								
								android-arm64/Toolchain.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								android-arm64/Toolchain.cmake
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | set(CMAKE_SYSTEM_NAME Android) | ||||||
|  | set(CMAKE_SYSTEM_VERSION 1) | ||||||
|  |  | ||||||
|  | set(cross_triple aarch64-linux-android) | ||||||
|  | set(CMAKE_ANDROID_STANDALONE_TOOLCHAIN /usr/${cross_triple}/) | ||||||
|  | set(CMAKE_ANDROID_ARM_MODE 1) | ||||||
|  | set(CMAKE_ANDROID_ARM_NEON 1) | ||||||
|  |  | ||||||
|  | set(CMAKE_C_COMPILER /usr/${cross_triple}/bin/${cross_triple}-clang) | ||||||
|  | set(CMAKE_CXX_COMPILER /usr/${cross_triple}/bin/${cross_triple}-clang++) | ||||||
|  |  | ||||||
|  | set(CMAKE_FIND_ROOT_PATH /usr/${cross_triple}) | ||||||
|  | set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | ||||||
|  | set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | ||||||
|  | set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) | ||||||
|  | set(CMAKE_SYSROOT /usr/${cross_triple}/sysroot) | ||||||
|  |  | ||||||
|  | set(CMAKE_CROSSCOMPILING_EMULATOR /usr/bin/qemu-arm) | ||||||
|  |  | ||||||
| @@ -1,4 +1,4 @@ | |||||||
| FROM trzeci/emscripten-slim:sdk-tag-1.37.29-64bit | FROM trzeci/emscripten-slim:sdk-tag-1.37.37-64bit | ||||||
| MAINTAINER Matt McCormick "matt.mccormick@kitware.com" | MAINTAINER Matt McCormick "matt.mccormick@kitware.com" | ||||||
|  |  | ||||||
| # Revert back to "/bin/sh" as default shell | # Revert back to "/bin/sh" as default shell | ||||||
| @@ -9,7 +9,7 @@ RUN rm /bin/sh && ln -s /bin/dash /bin/sh | |||||||
|  |  | ||||||
| #include "common.docker" | #include "common.docker" | ||||||
|  |  | ||||||
| ENV EMSCRIPTEN_VERSION 1.37.29 | ENV EMSCRIPTEN_VERSION 1.37.37 | ||||||
|  |  | ||||||
| ENV PATH /emsdk_portable:/emsdk_portable/llvm/clang/bin/:/emsdk_portable/sdk/:${PATH} | ENV PATH /emsdk_portable:/emsdk_portable/llvm/clang/bin/:/emsdk_portable/sdk/:${PATH} | ||||||
| ENV CC=/emsdk_portable/sdk/emcc \ | ENV CC=/emsdk_portable/sdk/emcc \ | ||||||
|   | |||||||
| @@ -13,7 +13,7 @@ RUN apt-get update --yes && apt-get install --no-install-recommends --yes \ | |||||||
|   ca-certificates \ |   ca-certificates \ | ||||||
|   curl \ |   curl \ | ||||||
|   file \ |   file \ | ||||||
|   git \ |   gettext \ | ||||||
|   gzip \ |   gzip \ | ||||||
|   zip \ |   zip \ | ||||||
|   make \ |   make \ | ||||||
| @@ -31,15 +31,16 @@ RUN apt-get update --yes && apt-get install --no-install-recommends --yes \ | |||||||
|   pax \ |   pax \ | ||||||
|   vim \ |   vim \ | ||||||
|   wget \ |   wget \ | ||||||
|   xz-utils && \ |   xz-utils \ | ||||||
|  |   zlib1g-dev && \ | ||||||
|   apt-get clean --yes |   apt-get clean --yes | ||||||
|  |  | ||||||
| ENV GOSU_VERSION 1.10 | ENV GOSU_VERSION 1.10 | ||||||
| RUN set -x \ | RUN set -x \ | ||||||
|         && apt-get update && apt-get install -y --no-install-recommends ca-certificates wget && rm -rf /var/lib/apt/lists/* \ |         && apt-get update && rm -rf /var/lib/apt/lists/* \ | ||||||
|         && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ |         && dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')" \ | ||||||
|         && wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ |         && curl -# -o /usr/local/bin/gosu -LO "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ | ||||||
|         && wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \ |         && curl -# -o /usr/local/bin/gosu.asc -LO "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \ | ||||||
|         && export GNUPGHOME="$(mktemp -d)" \ |         && export GNUPGHOME="$(mktemp -d)" \ | ||||||
|         && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ |         && gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ | ||||||
|         && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ |         && gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \ | ||||||
|   | |||||||
| @@ -1,21 +1,38 @@ | |||||||
| WORKDIR /usr/share |  | ||||||
| RUN git clone "https://github.com/nojhan/liquidprompt.git" && \ |  | ||||||
|   cd liquidprompt && \ |  | ||||||
|   git checkout v_1.11 |  | ||||||
| COPY imagefiles/.bashrc /root/ |  | ||||||
|  |  | ||||||
| WORKDIR /usr/src | WORKDIR /usr/src | ||||||
|  |  | ||||||
| COPY imagefiles/install-openssl.sh imagefiles/install-cmake.sh /dockcross/ | ARG GIT_VERSION=2.16.2 | ||||||
|  | ARG CMAKE_VERSION=3.11.0 | ||||||
|  |  | ||||||
|  | COPY imagefiles/build-and-install-git.sh \ | ||||||
|  |   imagefiles/utils.sh \ | ||||||
|  |   imagefiles/build-and-install-openssl.sh \ | ||||||
|  |   imagefiles/build-and-install-openssh.sh \ | ||||||
|  |   imagefiles/build-and-install-cmake.sh \ | ||||||
|  |   imagefiles/install-cmake-binary.sh \ | ||||||
|  |   imagefiles/build-and-install-curl.sh \ | ||||||
|  |   /dockcross/ | ||||||
|  |  | ||||||
| RUN \ | RUN \ | ||||||
|   if [ "$DEFAULT_DOCKCROSS_IMAGE" = "dockcross/manylinux-x86" ]; then \ |   if [ "$DEFAULT_DOCKCROSS_IMAGE" = "dockcross/manylinux-x86" ]; then \ | ||||||
|     /dockcross/install-openssl.sh -32 && \ |     /dockcross/build-and-install-openssl.sh -32 && \ | ||||||
|     /dockcross/install-cmake.sh -32 || exit 1; \ |     /dockcross/build-and-install-openssh.sh && \ | ||||||
|  |     /dockcross/build-and-install-curl.sh && \ | ||||||
|  |     /dockcross/build-and-install-git.sh && \ | ||||||
|  |     /dockcross/build-and-install-cmake.sh -32 || exit 1; \ | ||||||
|   else \ |   else \ | ||||||
|     /dockcross/install-openssl.sh && \ |     /dockcross/build-and-install-openssl.sh && \ | ||||||
|     /dockcross/install-cmake.sh || exit 1; \ |     /dockcross/build-and-install-openssh.sh && \ | ||||||
|  |     /dockcross/build-and-install-curl.sh && \ | ||||||
|  |     /dockcross/build-and-install-git.sh && \ | ||||||
|  |     /dockcross/install-cmake-binary.sh || exit 1; \ | ||||||
|   fi; \ |   fi; \ | ||||||
|   rm /dockcross/install-openssl.sh /dockcross/install-cmake.sh |   rm /dockcross/build-and-install-git.sh \ | ||||||
|  |   /dockcross/utils.sh \ | ||||||
|  |   /dockcross/build-and-install-openssl.sh \ | ||||||
|  |   /dockcross/build-and-install-openssh.sh \ | ||||||
|  |   /dockcross/build-and-install-cmake.sh \ | ||||||
|  |   /dockcross/install-cmake-binary.sh \ | ||||||
|  |   /dockcross/build-and-install-curl.sh | ||||||
|  |  | ||||||
| COPY imagefiles/cmake.sh /usr/local/bin/cmake | COPY imagefiles/cmake.sh /usr/local/bin/cmake | ||||||
| COPY imagefiles/ccmake.sh /usr/local/bin/ccmake | COPY imagefiles/ccmake.sh /usr/local/bin/ccmake | ||||||
| @@ -31,13 +48,19 @@ RUN \ | |||||||
| RUN if [ -e /opt/python/cp35-cp35m/bin/python ]; then \ | RUN if [ -e /opt/python/cp35-cp35m/bin/python ]; then \ | ||||||
|     : nothing to do here since it is updated by manylinux-common/install-python-packages.sh ; \ |     : nothing to do here since it is updated by manylinux-common/install-python-packages.sh ; \ | ||||||
|   else \ |   else \ | ||||||
|     wget https://bootstrap.pypa.io/get-pip.py && \ |     curl -# -LO https://bootstrap.pypa.io/get-pip.py && \ | ||||||
|     python get-pip.py --ignore-installed && \ |     python get-pip.py --ignore-installed && \ | ||||||
|     rm get-pip.py || exit 1; \ |     rm get-pip.py || exit 1; \ | ||||||
|   fi |   fi | ||||||
|  |  | ||||||
| RUN $([ -e /opt/python/cp35-cp35m/bin/python ] && echo "/opt/python/cp35-cp35m/bin/python" || echo "python") -m pip install --ignore-installed conan | RUN $([ -e /opt/python/cp35-cp35m/bin/python ] && echo "/opt/python/cp35-cp35m/bin/python" || echo "python") -m pip install --ignore-installed conan | ||||||
|  |  | ||||||
|  | WORKDIR /usr/share | ||||||
|  | RUN git clone "https://github.com/nojhan/liquidprompt.git" && \ | ||||||
|  |   cd liquidprompt && \ | ||||||
|  |   git checkout v_1.11 | ||||||
|  | COPY imagefiles/.bashrc /root/ | ||||||
|  |  | ||||||
| RUN echo "root:root" | chpasswd | RUN echo "root:root" | chpasswd | ||||||
| WORKDIR /work | WORKDIR /work | ||||||
| ENTRYPOINT ["/dockcross/entrypoint.sh"] | ENTRYPOINT ["/dockcross/entrypoint.sh"] | ||||||
|   | |||||||
| @@ -1,10 +1,11 @@ | |||||||
| ENV GOSU_VERSION 1.10 | ENV GOSU_VERSION 1.10 | ||||||
| RUN set -x \ | RUN set -x \ | ||||||
| 	&& yum -y install epel-release \ | 	&& yum -y install epel-release \ | ||||||
| 	&& yum -y install wget gpg \ | 	&& yum -y install gpg \ | ||||||
|  | 	&& yum -y install zlib-devel gettext \ | ||||||
| 	&& dpkgArch=$(if test $(uname -m) = "x86_64"; then echo amd64; else echo i386; fi) \ | 	&& dpkgArch=$(if test $(uname -m) = "x86_64"; then echo amd64; else echo i386; fi) \ | ||||||
| 	&& wget -O /usr/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ | 	&& curl -o /usr/bin/gosu -LO "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch" \ | ||||||
| 	&& wget -O /tmp/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \ | 	&& curl -o /tmp/gosu.asc -LO "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc" \ | ||||||
| 	&& export GNUPGHOME="$(mktemp -d)" \ | 	&& export GNUPGHOME="$(mktemp -d)" \ | ||||||
| 	&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ | 	&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \ | ||||||
| 	&& gpg --batch --verify /tmp/gosu.asc /usr/bin/gosu \ | 	&& gpg --batch --verify /tmp/gosu.asc /usr/bin/gosu \ | ||||||
|   | |||||||
| @@ -1,17 +1,4 @@ | |||||||
| #!/bin/bash | #!/bin/bash | ||||||
| 
 |  | ||||||
| # |  | ||||||
| # Configure, build and install CMake |  | ||||||
| # |  | ||||||
| # Usage: |  | ||||||
| # |  | ||||||
| #  install-cmake.sh [-32] |  | ||||||
| # |  | ||||||
| # Options: |  | ||||||
| # |  | ||||||
| #  -32                 Build CMake as a 32-bit executable |  | ||||||
| # |  | ||||||
| # Notes: |  | ||||||
| # | # | ||||||
| #  * build directory is /usr/src/CMake | #  * build directory is /usr/src/CMake | ||||||
| # | # | ||||||
| @@ -19,20 +6,14 @@ | |||||||
| # | # | ||||||
| #  * after installation, archive, source and build directories are removed | #  * after installation, archive, source and build directories are removed | ||||||
| # | # | ||||||
| 
 | set -ex | ||||||
| set -e |  | ||||||
| set -o pipefail |  | ||||||
| 
 | 
 | ||||||
| WRAPPER="" | WRAPPER="" | ||||||
| CONFIG_FLAG="" |  | ||||||
| SUFFIX=64 |  | ||||||
| 
 | 
 | ||||||
| while [ $# -gt 0 ]; do | while [ $# -gt 0 ]; do | ||||||
|   case "$1" in |   case "$1" in | ||||||
|     -32) |     -32) | ||||||
|       WRAPPER="linux32" |       WRAPPER="linux32" | ||||||
|       CONFIG_FLAG="-m32" |  | ||||||
|       SUFFIX=32 |  | ||||||
|       ;; |       ;; | ||||||
|     *) |     *) | ||||||
|       echo "Usage: Usage: ${0##*/} [-32]" |       echo "Usage: Usage: ${0##*/} [-32]" | ||||||
| @@ -42,27 +23,43 @@ while [ $# -gt 0 ]; do | |||||||
|   shift |   shift | ||||||
| done | done | ||||||
| 
 | 
 | ||||||
|  | if ! command -v git &> /dev/null; then | ||||||
|  | 	echo >&2 'error: "git" not found!' | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
|  | if [[ "${CMAKE_VERSION}" == "" ]]; then | ||||||
|  |   echo >&2 'error: CMAKE_VERSION env. variable must be set to a non-empty value' | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  | 
 | ||||||
| cd /usr/src | cd /usr/src | ||||||
| 
 | 
 | ||||||
| # Download | git clone git://cmake.org/cmake.git CMake | ||||||
| CMAKE_REV=v3.10.1 | 
 | ||||||
| wget --progress=bar:force https://github.com/kitware/cmake/archive/$CMAKE_REV.tar.gz -O CMake.tar.gz | (cd CMake && git checkout v$CMAKE_VERSION) | ||||||
| mkdir CMake |  | ||||||
| tar -xzvf ./CMake.tar.gz --strip-components=1 -C ./CMake |  | ||||||
| 
 | 
 | ||||||
| mkdir /usr/src/CMake-build | mkdir /usr/src/CMake-build | ||||||
|  | cd /usr/src/CMake-build | ||||||
| 
 | 
 | ||||||
| pushd /usr/src/CMake-build |  | ||||||
| 
 |  | ||||||
| NUM_PROCESSOR=$(grep -c processor /proc/cpuinfo) |  | ||||||
| 
 |  | ||||||
| # Configure boostrap |  | ||||||
| ${WRAPPER} /usr/src/CMake/bootstrap \ | ${WRAPPER} /usr/src/CMake/bootstrap \ | ||||||
|   --parallel=$NUM_PROCESSOR \ |   --parallel=$(grep -c processor /proc/cpuinfo) | ||||||
|   --prefix=/usr | ${WRAPPER} make -j$(grep -c processor /proc/cpuinfo) | ||||||
| 
 | 
 | ||||||
| # Build and Install | mkdir /usr/src/CMake-ssl-build | ||||||
| ${WRAPPER} make install -j$NUM_PROCESSOR | cd /usr/src/CMake-ssl-build | ||||||
|  | ${WRAPPER} /usr/src/CMake-build/bin/cmake \ | ||||||
|  |   -DCMAKE_BUILD_TYPE:STRING=Release \ | ||||||
|  |   -DBUILD_TESTING:BOOL=ON \ | ||||||
|  |   -DCMAKE_INSTALL_PREFIX:PATH=/usr/src/cmake-$CMAKE_VERSION \ | ||||||
|  |   -DCMAKE_USE_OPENSSL:BOOL=ON \ | ||||||
|  |   -DOPENSSL_ROOT_DIR:PATH=/usr/local/ssl \ | ||||||
|  |   ../CMake | ||||||
|  | ${WRAPPER} make -j$(grep -c processor /proc/cpuinfo) install | ||||||
|  | 
 | ||||||
|  | cd /usr/src/cmake-$CMAKE_VERSION | ||||||
|  | rm -rf doc man | ||||||
|  | find . -type f -exec install -D "{}" "/usr/{}" \; | ||||||
| 
 | 
 | ||||||
| # Test | # Test | ||||||
| ctest -R CMake.FileDownload | ctest -R CMake.FileDownload | ||||||
| @@ -88,8 +85,5 @@ EOF | |||||||
| 
 | 
 | ||||||
| # Execute test script | # Execute test script | ||||||
| cmake -P cmake-test-https-download.cmake | cmake -P cmake-test-https-download.cmake | ||||||
| rm cmake-test-https-download.cmake |  | ||||||
| 
 | 
 | ||||||
| popd | rm -rf /usr/src/CMake* | ||||||
| 
 |  | ||||||
| rm -rf CMake* |  | ||||||
							
								
								
									
										49
									
								
								imagefiles/build-and-install-curl.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										49
									
								
								imagefiles/build-and-install-curl.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,49 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | set -ex | ||||||
|  |  | ||||||
|  | MY_DIR=$(dirname "${BASH_SOURCE[0]}") | ||||||
|  | source $MY_DIR/utils.sh | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Function 'do_curl_build' and 'build_curl' | ||||||
|  | # copied from https://github.com/pypa/manylinux/tree/master/docker/build_scripts | ||||||
|  | # | ||||||
|  |  | ||||||
|  | CURL_ROOT=curl_7.52.1 | ||||||
|  | CURL_HASH=a8984e8b20880b621f61a62d95ff3c0763a3152093a9f9ce4287cfd614add6ae | ||||||
|  |  | ||||||
|  | # We had to switch to a debian mirror because we can't use TLS until we | ||||||
|  | # bootstrap it with this curl + openssl | ||||||
|  | CURL_DOWNLOAD_URL=http://deb.debian.org/debian/pool/main/c/curl | ||||||
|  |  | ||||||
|  | function do_curl_build { | ||||||
|  |     # We do this shared to avoid obnoxious linker issues where git couldn't | ||||||
|  |     # link properly. If anyone wants to make this build statically go for it. | ||||||
|  |     LIBS=-ldl CFLAGS=-Wl,--exclude-libs,ALL ./configure --with-ssl --disable-static > /dev/null | ||||||
|  |     make > /dev/null | ||||||
|  |     make install > /dev/null | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | function build_curl { | ||||||
|  |     local curl_fname=$1 | ||||||
|  |     check_var ${curl_fname} | ||||||
|  |     local curl_sha256=$2 | ||||||
|  |     check_var ${curl_sha256} | ||||||
|  |     check_var ${CURL_DOWNLOAD_URL} | ||||||
|  |     # Can't use curl here because we don't have it yet...we are building it. | ||||||
|  |     wget -q ${CURL_DOWNLOAD_URL}/${curl_fname}.orig.tar.gz | ||||||
|  |     check_sha256sum ${curl_fname}.orig.tar.gz ${curl_sha256} | ||||||
|  |     tar -zxf ${curl_fname}.orig.tar.gz | ||||||
|  |     (cd curl-* && do_curl_build) | ||||||
|  |     rm -rf curl_* | ||||||
|  | } | ||||||
|  |  | ||||||
|  | cd /usr/src | ||||||
|  | build_curl $CURL_ROOT $CURL_HASH | ||||||
|  |  | ||||||
|  | (cat /etc/ld.so.conf.d/usr-local.conf 2> /dev/null | grep -q "^/usr/local/lib$") || | ||||||
|  |   echo '/usr/local/lib' >> /etc/ld.so.conf.d/usr-local.conf | ||||||
|  | ldconfig | ||||||
|  |  | ||||||
							
								
								
									
										44
									
								
								imagefiles/build-and-install-git.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										44
									
								
								imagefiles/build-and-install-git.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,44 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | set -ex | ||||||
|  |  | ||||||
|  | if ! command -v curl &> /dev/null; then | ||||||
|  | 	echo >&2 'error: "curl" not found!' | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if ! command -v tar &> /dev/null; then | ||||||
|  | 	echo >&2 'error: "tar" not found!' | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [[ "${GIT_VERSION}" == "" ]]; then | ||||||
|  |   echo >&2 'error: GIT_VERSION env. variable must be set to a non-empty value' | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | (cat /etc/ld.so.conf.d/usr-local.conf 2> /dev/null | grep -q "^/usr/local/lib$") || | ||||||
|  |   echo '/usr/local/lib' >> /etc/ld.so.conf.d/usr-local.conf | ||||||
|  | ldconfig | ||||||
|  |  | ||||||
|  | cd /usr/src | ||||||
|  |  | ||||||
|  | url="https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz" | ||||||
|  | echo "Downloading $url" | ||||||
|  | curl -# -LO $url | ||||||
|  |  | ||||||
|  | tar xvzf git-${GIT_VERSION}.tar.gz | ||||||
|  | rm -f git-${GIT_VERSION}.tar.gz | ||||||
|  |  | ||||||
|  | pushd git-${GIT_VERSION} | ||||||
|  | ./configure --prefix=/usr/local --with-curl | ||||||
|  | make | ||||||
|  | make install | ||||||
|  | popd | ||||||
|  |  | ||||||
|  | ldconfig | ||||||
|  |  | ||||||
|  | rm -rf git-${GIT_VERSION} | ||||||
|  |  | ||||||
|  | # turn the detached message off | ||||||
|  | git config --global advice.detachedHead false | ||||||
							
								
								
									
										22
									
								
								imagefiles/build-and-install-openssh.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								imagefiles/build-and-install-openssh.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | set -ex | ||||||
|  |  | ||||||
|  | OPENSSH_ROOT=V_7_6_P1 | ||||||
|  |  | ||||||
|  | cd /usr/src | ||||||
|  | curl -LO https://github.com/openssh/openssh-portable/archive/${OPENSSH_ROOT}.tar.gz | ||||||
|  | tar -xvf ${OPENSSH_ROOT}.tar.gz | ||||||
|  | rm -f ${OPENSSH_ROOT}.tar.gz | ||||||
|  |  | ||||||
|  | OPENSSH_SRC_DIR=openssh-portable-${OPENSSH_ROOT} | ||||||
|  | cd ${OPENSSH_SRC_DIR} | ||||||
|  |  | ||||||
|  | autoreconf | ||||||
|  |  | ||||||
|  | ./configure --prefix=/usr/local | ||||||
|  |  | ||||||
|  | make -j1 install | ||||||
|  |  | ||||||
|  | cd /usr/src | ||||||
|  | rm -rf ${OPENSSH_SRC_DIR} | ||||||
							
								
								
									
										81
									
								
								imagefiles/build-and-install-openssl.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										81
									
								
								imagefiles/build-and-install-openssl.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,81 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | # | ||||||
|  | # Configure, build and install OpenSSL | ||||||
|  | # | ||||||
|  | # Usage: | ||||||
|  | # | ||||||
|  | #  build-and-install-openssl.sh [-32] | ||||||
|  | # | ||||||
|  | # Options: | ||||||
|  | # | ||||||
|  | #  -32              Build OpenSSL as a 32-bit library | ||||||
|  | # | ||||||
|  | # Notes: | ||||||
|  | # | ||||||
|  | #  * build directory is /usr/src/openssl-$OPENSSL_VERSION | ||||||
|  | # | ||||||
|  | #  * install directory is /usr | ||||||
|  | # | ||||||
|  | #  * after installation, build directory and archive are removed | ||||||
|  | # | ||||||
|  |  | ||||||
|  | set -ex | ||||||
|  | set -o pipefail | ||||||
|  |  | ||||||
|  | WRAPPER="" | ||||||
|  | CONFIG_FLAG="-fPIC" | ||||||
|  |  | ||||||
|  | while [ $# -gt 0 ]; do | ||||||
|  |   case "$1" in | ||||||
|  |     -32) | ||||||
|  |       WRAPPER="linux32" | ||||||
|  |       CONFIG_FLAG="-m32" | ||||||
|  |       ;; | ||||||
|  |     *) | ||||||
|  |       echo "Usage: Usage: ${0##*/} [-32]" | ||||||
|  |       exit 1 | ||||||
|  |       ;; | ||||||
|  |   esac | ||||||
|  |   shift | ||||||
|  | done | ||||||
|  |  | ||||||
|  | MY_DIR=$(dirname "${BASH_SOURCE[0]}") | ||||||
|  | source $MY_DIR/utils.sh | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Function 'do_openssl_build' and 'build_openssl' | ||||||
|  | # copied from https://github.com/pypa/manylinux/tree/master/docker/build_scripts | ||||||
|  | # | ||||||
|  |  | ||||||
|  | OPENSSL_ROOT=openssl-1.0.2o | ||||||
|  | # Hash from https://www.openssl.org/source/openssl-1.0.2o.tar.gz.sha256 | ||||||
|  | # Matches hash at https://github.com/Homebrew/homebrew-core/blob/1766321103d9780f6e38d3ac7681b8fa42cdca86/Formula/openssl.rb#L11 | ||||||
|  | OPENSSL_HASH=ec3f5c9714ba0fd45cb4e087301eb1336c317e0d20b575a125050470e8089e4d | ||||||
|  |  | ||||||
|  | # XXX: the official https server at www.openssl.org cannot be reached | ||||||
|  | # with the old versions of openssl and curl in Centos 5.11 hence the fallback | ||||||
|  | # to the ftp mirror: | ||||||
|  | OPENSSL_DOWNLOAD_URL=ftp://ftp.openssl.org/source | ||||||
|  |  | ||||||
|  | function do_openssl_build { | ||||||
|  |     ${WRAPPER} ./config no-ssl2 no-shared -fPIC $CONFIG_FLAG --prefix=/usr/local/ssl > /dev/null | ||||||
|  |     ${WRAPPER} make > /dev/null | ||||||
|  |     ${WRAPPER} make install_sw > /dev/null | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function build_openssl { | ||||||
|  |     local openssl_fname=$1 | ||||||
|  |     check_var ${openssl_fname} | ||||||
|  |     local openssl_sha256=$2 | ||||||
|  |     check_var ${openssl_sha256} | ||||||
|  |     check_var ${OPENSSL_DOWNLOAD_URL} | ||||||
|  |     # Can't use curl here because we don't have it yet | ||||||
|  |     curl -# -LO ${OPENSSL_DOWNLOAD_URL}/${openssl_fname}.tar.gz | ||||||
|  |     check_sha256sum ${openssl_fname}.tar.gz ${openssl_sha256} | ||||||
|  |     tar -xzf ${openssl_fname}.tar.gz | ||||||
|  |     (cd ${openssl_fname} && do_openssl_build) | ||||||
|  |     rm -rf ${openssl_fname} ${openssl_fname}.tar.gz /usr/ssl/man | ||||||
|  | } | ||||||
|  |  | ||||||
|  | cd /usr/src | ||||||
|  | build_openssl $OPENSSL_ROOT $OPENSSL_HASH | ||||||
| @@ -9,7 +9,9 @@ if [[ $# == 0 ]]; then | |||||||
|     if [[ -n $DEFAULT_DOCKCROSS_IMAGE ]]; then |     if [[ -n $DEFAULT_DOCKCROSS_IMAGE ]]; then | ||||||
|         head -n 2 /dockcross/dockcross |         head -n 2 /dockcross/dockcross | ||||||
|         echo "DEFAULT_DOCKCROSS_IMAGE=$DEFAULT_DOCKCROSS_IMAGE" |         echo "DEFAULT_DOCKCROSS_IMAGE=$DEFAULT_DOCKCROSS_IMAGE" | ||||||
|         tail -n +4 /dockcross/dockcross |         tail -n +4 /dockcross/dockcross | | ||||||
|  |           sed -e "s@dockcross\/linux\-armv7@${DEFAULT_DOCKCROSS_IMAGE}@g" | | ||||||
|  |           sed -e "s@dockcross\-linux\-armv7@${DEFAULT_DOCKCROSS_IMAGE//[\/:]/-}@g" | ||||||
|     else |     else | ||||||
|         cat /dockcross/dockcross |         cat /dockcross/dockcross | ||||||
|     fi |     fi | ||||||
|   | |||||||
							
								
								
									
										35
									
								
								imagefiles/install-cmake-binary.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										35
									
								
								imagefiles/install-cmake-binary.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | set -ex | ||||||
|  |  | ||||||
|  | if ! command -v curl &> /dev/null; then | ||||||
|  | 	echo >&2 'error: "curl" not found!' | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if ! command -v tar &> /dev/null; then | ||||||
|  | 	echo >&2 'error: "tar" not found!' | ||||||
|  | 	exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [[ "${CMAKE_VERSION}" == "" ]]; then | ||||||
|  |   echo >&2 'error: CMAKE_VERSION env. variable must be set to a non-empty value' | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | cd /tmp | ||||||
|  |  | ||||||
|  | filename=cmake-${CMAKE_VERSION}-Centos5-x86_64 | ||||||
|  | url=https://github.com/dockbuild/CMake/releases/download/v${CMAKE_VERSION}/${filename}.tar.gz | ||||||
|  | echo "Downloading $url" | ||||||
|  | curl -# -LO $url | ||||||
|  |  | ||||||
|  | tar -xzvf ${filename}.tar.gz | ||||||
|  | rm -f ${filename}.tar.gz | ||||||
|  |  | ||||||
|  | cd ${filename} | ||||||
|  |  | ||||||
|  | rm -rf doc man | ||||||
|  | rm -rf bin/cmake-gui | ||||||
|  |  | ||||||
|  | find . -type f -exec install -D "{}" "/usr/{}" \; | ||||||
| @@ -58,7 +58,7 @@ cd "${CTNG}" | |||||||
|  |  | ||||||
| # Download and install the "crosstool-ng" source. | # Download and install the "crosstool-ng" source. | ||||||
| REV=1.23.0 | REV=1.23.0 | ||||||
| wget --progress=bar:force \ | curl -# -LO \ | ||||||
|   "https://github.com/crosstool-ng/crosstool-ng/archive/crosstool-ng-${REV}.tar.gz" |   "https://github.com/crosstool-ng/crosstool-ng/archive/crosstool-ng-${REV}.tar.gz" | ||||||
| tar -xf "crosstool-ng-${REV}.tar.gz" | tar -xf "crosstool-ng-${REV}.tar.gz" | ||||||
| cd "crosstool-ng-crosstool-ng-${REV}" | cd "crosstool-ng-crosstool-ng-${REV}" | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ done | |||||||
|  |  | ||||||
| # Download | # Download | ||||||
| REV=v1.7.2 | REV=v1.7.2 | ||||||
| wget --progress=bar:force https://github.com/ninja-build/ninja/archive/$REV.tar.gz -O ninja.tar.gz | curl -# -o ninja.tar.gz -LO https://github.com/ninja-build/ninja/archive/$REV.tar.gz | ||||||
| mkdir ninja | mkdir ninja | ||||||
| tar -xzvf ./ninja.tar.gz --strip-components=1 -C ./ninja | tar -xzvf ./ninja.tar.gz --strip-components=1 -C ./ninja | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,83 +0,0 @@ | |||||||
| #!/bin/bash |  | ||||||
|  |  | ||||||
| # |  | ||||||
| # Configure, build and install OpenSSL |  | ||||||
| # |  | ||||||
| # Usage: |  | ||||||
| # |  | ||||||
| #  install-openssl.sh [-32] |  | ||||||
| # |  | ||||||
| # Options: |  | ||||||
| # |  | ||||||
| #  -32              Build OpenSSL as a 32-bit library |  | ||||||
| # |  | ||||||
| # Notes: |  | ||||||
| # |  | ||||||
| #  * build directory is /usr/src/openssl-$OPENSSL_VERSION |  | ||||||
| # |  | ||||||
| #  * install directory is /usr |  | ||||||
| # |  | ||||||
| #  * after installation, build directory and archive are removed |  | ||||||
| # |  | ||||||
|  |  | ||||||
| set -e |  | ||||||
| set -o pipefail |  | ||||||
|  |  | ||||||
| WRAPPER="" |  | ||||||
| CONFIG_FLAG="-fPIC" |  | ||||||
| SUFFIX=64 |  | ||||||
|  |  | ||||||
| while [ $# -gt 0 ]; do |  | ||||||
|   case "$1" in |  | ||||||
|     -32) |  | ||||||
|       WRAPPER="linux32" |  | ||||||
|       CONFIG_FLAG="-m32" |  | ||||||
|       SUFFIX=32 |  | ||||||
|       ;; |  | ||||||
|     *) |  | ||||||
|       echo "Usage: Usage: ${0##*/} [-32]" |  | ||||||
|       exit 1 |  | ||||||
|       ;; |  | ||||||
|   esac |  | ||||||
|   shift |  | ||||||
| done |  | ||||||
|  |  | ||||||
| OPENSSL_VERSION=1.0.2j |  | ||||||
| OPENSSL_SHA256=e7aff292be21c259c6af26469c7a9b3ba26e9abaaffd325e3dccc9785256c431 |  | ||||||
|  |  | ||||||
| cd /usr/src |  | ||||||
|  |  | ||||||
| # Download |  | ||||||
| if [ ! -f ./openssl-$OPENSSL_VERSION.tar.gz ]; then |  | ||||||
|   wget --progress=bar:force https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz |  | ||||||
| else |  | ||||||
|   rm -rf ./openssl-$OPENSSL_VERSION |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Verify |  | ||||||
| sha256_openssl=`sha256sum ./openssl-$OPENSSL_VERSION.tar.gz | awk '{ print $1 }'` |  | ||||||
| if [ "$sha256_openssl" != "$OPENSSL_SHA256" ] |  | ||||||
| then |  | ||||||
|   echo "SHA256 mismatch. Problem downloading OpenSSL." |  | ||||||
|   echo "  current [$sha256_openssl]" |  | ||||||
|   echo "  expected[$OPENSSL_SHA256]" |  | ||||||
|   exit 1 |  | ||||||
| fi |  | ||||||
|  |  | ||||||
| # Extract |  | ||||||
| tar -xzvf openssl-$OPENSSL_VERSION.tar.gz |  | ||||||
|  |  | ||||||
| pushd openssl-$OPENSSL_VERSION |  | ||||||
|  |  | ||||||
| # Configure |  | ||||||
| ${WRAPPER} ./config --prefix=/usr $CONFIG_FLAG |  | ||||||
|  |  | ||||||
| # Build & Install |  | ||||||
| ${WRAPPER} make install |  | ||||||
|  |  | ||||||
| popd |  | ||||||
|  |  | ||||||
| # Clean |  | ||||||
| rm -rf ./openssl-$OPENSSL_VERSION* |  | ||||||
| rm -rf /usr/ssl/man |  | ||||||
|  |  | ||||||
							
								
								
									
										24
									
								
								imagefiles/utils.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								imagefiles/utils.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,24 @@ | |||||||
|  | #!/bin/bash | ||||||
|  |  | ||||||
|  | set -e | ||||||
|  |  | ||||||
|  | # Copied from https://github.com/pypa/manylinux/blob/master/docker/build_scripts/build_utils.sh | ||||||
|  | function check_var { | ||||||
|  |     if [ -z "$1" ]; then | ||||||
|  |         echo "required variable not defined" | ||||||
|  |         exit 1 | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  | # Copied from https://github.com/pypa/manylinux/blob/master/docker/build_scripts/build_utils.sh | ||||||
|  | function check_sha256sum { | ||||||
|  |     local fname=$1 | ||||||
|  |     check_var ${fname} | ||||||
|  |     local sha256=$2 | ||||||
|  |     check_var ${sha256} | ||||||
|  |  | ||||||
|  |     echo "${sha256}  ${fname}" > ${fname}.sha256 | ||||||
|  |     sha256sum -c ${fname}.sha256 | ||||||
|  |     rm -f ${fname}.sha256 | ||||||
|  | } | ||||||
|  |  | ||||||
| @@ -34,11 +34,6 @@ ENV AS=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-as \ | |||||||
|     CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ |     CXX=${CROSS_ROOT}/bin/${CROSS_TRIPLE}-g++ | ||||||
|  |  | ||||||
|  |  | ||||||
| COPY imagefiles/install-openssl.sh /dockcross/ |  | ||||||
| RUN \ |  | ||||||
|   /dockcross/install-openssl.sh -32 && \ |  | ||||||
|   rm /dockcross/install-openssl.sh |  | ||||||
|  |  | ||||||
| ENV DEFAULT_DOCKCROSS_IMAGE dockcross/linux-x86 | ENV DEFAULT_DOCKCROSS_IMAGE dockcross/linux-x86 | ||||||
|  |  | ||||||
| # Note: Toolchain file support is currently in debian Experimental: | # Note: Toolchain file support is currently in debian Experimental: | ||||||
|   | |||||||
| @@ -3,10 +3,10 @@ MAINTAINER Matt McCormick "matt.mccormick@kitware.com" | |||||||
|  |  | ||||||
| ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x64 | ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x64 | ||||||
|  |  | ||||||
| #include "common.docker" |  | ||||||
|  |  | ||||||
| #include "common.manylinux" | #include "common.manylinux" | ||||||
|  |  | ||||||
|  | #include "common.docker" | ||||||
|  |  | ||||||
| ENV CROSS_TRIPLE x86_64-linux-gnu | ENV CROSS_TRIPLE x86_64-linux-gnu | ||||||
| ENV CROSS_ROOT /opt/rh/devtoolset-2/root/usr/bin | ENV CROSS_ROOT /opt/rh/devtoolset-2/root/usr/bin | ||||||
| ENV AS=${CROSS_ROOT}/as \ | ENV AS=${CROSS_ROOT}/as \ | ||||||
|   | |||||||
| @@ -3,10 +3,10 @@ MAINTAINER Matt McCormick "matt.mccormick@kitware.com" | |||||||
|  |  | ||||||
| ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x86 | ENV DEFAULT_DOCKCROSS_IMAGE dockcross/manylinux-x86 | ||||||
|  |  | ||||||
| #include "common.docker" |  | ||||||
|  |  | ||||||
| #include "common.manylinux" | #include "common.manylinux" | ||||||
|  |  | ||||||
|  | #include "common.docker" | ||||||
|  |  | ||||||
| ENV CROSS_TRIPLE i686-linux-gnu | ENV CROSS_TRIPLE i686-linux-gnu | ||||||
| ENV CROSS_ROOT /opt/rh/devtoolset-2/root/usr/bin | ENV CROSS_ROOT /opt/rh/devtoolset-2/root/usr/bin | ||||||
| ENV AS=${CROSS_ROOT}/as \ | ENV AS=${CROSS_ROOT}/as \ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nadav
					Nadav