Add Windows support and clean up toolchain #10
							
								
								
									
										50
									
								
								build.sh
									
									
									
									
									
								
							
							
						
						
									
										50
									
								
								build.sh
									
									
									
									
									
								
							| @@ -14,7 +14,6 @@ WRKDIR="$(pwd)" | |||||||
|  |  | ||||||
| # Architecture Settings | # Architecture Settings | ||||||
| ARCHS="aarch64 armv7 i686 x86_64" | ARCHS="aarch64 armv7 i686 x86_64" | ||||||
| GENERIC="generic-w64-mingw32" |  | ||||||
|  |  | ||||||
| # Default Configuration | # Default Configuration | ||||||
| BUILD_JOBS=0 | BUILD_JOBS=0 | ||||||
| @@ -78,7 +77,7 @@ cmake_build() | |||||||
|     local CMAKE_PARAMETERS="" |     local CMAKE_PARAMETERS="" | ||||||
|  |  | ||||||
|     # Clean old build if necessary |     # Clean old build if necessary | ||||||
|     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${WINEDIR}/build-${GENERIC} |     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${WINEDIR}/build-${SYSTEM_NAME} | ||||||
|  |  | ||||||
|     # Additional, target-specific configuration options |     # Additional, target-specific configuration options | ||||||
|     case "${SYSTEM_NAME}" in |     case "${SYSTEM_NAME}" in | ||||||
| @@ -90,18 +89,20 @@ cmake_build() | |||||||
|  |  | ||||||
|         # Build CMake |         # Build CMake | ||||||
|     echo ">>> Building CMAKE ..." |     echo ">>> Building CMAKE ..." | ||||||
|     mkdir -p ${CMAKEDIR}/build-${GENERIC} |     mkdir -p ${CMAKEDIR}/build-${SYSTEM_NAME} | ||||||
|     cd ${CMAKEDIR}/build-${GENERIC} |     cd ${CMAKEDIR}/build-${SYSTEM_NAME} | ||||||
|     cmake \ |     cmake \ | ||||||
|         -DCMAKE_BUILD_TYPE=Release \ |         -DCMAKE_BUILD_TYPE=Release \ | ||||||
|         -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \ |         -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \ | ||||||
|         -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \ |         -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \ | ||||||
|         -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \ |         -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \ | ||||||
|  |         -DCMAKE_INSTALL_PREFIX=${BINDIR} \ | ||||||
|         -DCMAKE_SYSTEM_NAME=${SYSTEM_NAME} \ |         -DCMAKE_SYSTEM_NAME=${SYSTEM_NAME} \ | ||||||
|         -DCMAKE_USE_OPENSSL=OFF \ |         -DCMAKE_USE_OPENSSL=OFF \ | ||||||
|         ${CMAKE_PARAMETERS} \ |         ${CMAKE_PARAMETERS} \ | ||||||
|         .. |         .. | ||||||
|     cmake --build . |     cmake --build . | ||||||
|  |     cmake --install . | ||||||
|     cd ${WRKDIR} |     cd ${WRKDIR} | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -124,7 +125,7 @@ llvm_build() | |||||||
|     local LLVM_ARCHS=() |     local LLVM_ARCHS=() | ||||||
|  |  | ||||||
|     # Clean old build if necessary |     # Clean old build if necessary | ||||||
|     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${LLVMDIR}/llvm/build |     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${LLVMDIR}/llvm/build-${SYSTEM_NAME} | ||||||
|  |  | ||||||
|     # Set supported architectures |     # Set supported architectures | ||||||
|     for ARCH in ${ARCHS}; do |     for ARCH in ${ARCHS}; do | ||||||
| @@ -166,8 +167,8 @@ llvm_build() | |||||||
|             ln -sf ../../${UTIL} . |             ln -sf ../../${UTIL} . | ||||||
|         fi |         fi | ||||||
|     done |     done | ||||||
|     mkdir -p ${LLVMDIR}/llvm/build |     mkdir -p ${LLVMDIR}/llvm/build-${SYSTEM_NAME} | ||||||
|     cd ${LLVMDIR}/llvm/build |     cd ${LLVMDIR}/llvm/build-${SYSTEM_NAME} | ||||||
|     cmake -G Ninja \ |     cmake -G Ninja \ | ||||||
|         -DCMAKE_BUILD_TYPE="Release" \ |         -DCMAKE_BUILD_TYPE="Release" \ | ||||||
|         -DCMAKE_C_COMPILER=clang \ |         -DCMAKE_C_COMPILER=clang \ | ||||||
| @@ -214,7 +215,7 @@ ninja_build() | |||||||
|     local NINJA_PLATFORM="" |     local NINJA_PLATFORM="" | ||||||
|  |  | ||||||
|     # Clean old build if necessary |     # Clean old build if necessary | ||||||
|     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${NINJADIR}/build-${GENERIC} |     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${NINJADIR}/build-${SYSTEM_NAME} | ||||||
|  |  | ||||||
|     # Additional, target-specific configuration options |     # Additional, target-specific configuration options | ||||||
|     case "${SYSTEM_NAME}" in |     case "${SYSTEM_NAME}" in | ||||||
| @@ -230,8 +231,8 @@ ninja_build() | |||||||
|  |  | ||||||
|     # Build Ninja |     # Build Ninja | ||||||
|     echo ">>> Building NINJA ..." |     echo ">>> Building NINJA ..." | ||||||
|     mkdir -p ${NINJADIR}/build-${GENERIC} |     mkdir -p ${NINJADIR}/build-${SYSTEM_NAME} | ||||||
|     cd ${NINJADIR}/build-${GENERIC} |     cd ${NINJADIR}/build-${SYSTEM_NAME} | ||||||
|     CXX=${NINJA_CXX_COMPILER} ../configure.py --platform=${NINJA_PLATFORM} |     CXX=${NINJA_CXX_COMPILER} ../configure.py --platform=${NINJA_PLATFORM} | ||||||
|     ninja |     ninja | ||||||
|     install ninja ${BINDIR}/bin/ |     install ninja ${BINDIR}/bin/ | ||||||
| @@ -295,26 +296,28 @@ print_usage() | |||||||
| wine_build() | wine_build() | ||||||
| { | { | ||||||
|     local CONFIGURE_PARAMETERS="" |     local CONFIGURE_PARAMETERS="" | ||||||
|  |     local EXTENSION="" | ||||||
|  |  | ||||||
|     # Clean old build if necessary |     # Clean old build if necessary | ||||||
|     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${WINEDIR}/{build-${GENERIC},build-tools} |     [ "${CLEAN_BUILD}" -eq 1 ] && rm -rf ${WINEDIR}/{build-${SYSTEM_NAME},build-tools} | ||||||
|  |  | ||||||
|     # Additional, target-specific configuration options |     # Additional, target-specific configuration options | ||||||
|     case "${SYSTEM_NAME}" in |     case "${SYSTEM_NAME}" in | ||||||
|         Windows) |         Windows) | ||||||
|             CONFIGURE_PARAMETERS="${CONFIGURE_PARAMETERS} --host=${SYSTEM_HOST}" |             CONFIGURE_PARAMETERS="${CONFIGURE_PARAMETERS} --host=${SYSTEM_HOST}" | ||||||
|  |             EXTENSION=".exe" | ||||||
|             ;; |             ;; | ||||||
|     esac |     esac | ||||||
|  |  | ||||||
|     # Build Wine (first configuration builds makedep) |     # Build Wine (first configuration builds makedep) | ||||||
|     echo ">>> Building Wine ..." |     echo ">>> Building Wine ..." | ||||||
|     mkdir -p ${WINEDIR}/{build-${GENERIC},build-tools} |     mkdir -p ${WINEDIR}/{build-${SYSTEM_NAME},build-tools} | ||||||
|     cd ${WINEDIR}/build-tools |     cd ${WINEDIR}/build-tools | ||||||
|     ../configure \ |     ../configure \ | ||||||
|         --enable-win64 \ |         --enable-win64 \ | ||||||
|         --without-freetype \ |         --without-freetype \ | ||||||
|         --without-x |         --without-x | ||||||
|     cd ${WINEDIR}/build-${GENERIC} |     cd ${WINEDIR}/build-${SYSTEM_NAME} | ||||||
|     ../configure \ |     ../configure \ | ||||||
|         --enable-tools \ |         --enable-tools \ | ||||||
|         --enable-win64 \ |         --enable-win64 \ | ||||||
| @@ -324,12 +327,7 @@ wine_build() | |||||||
|         ${CONFIGURE_PARAMETERS} |         ${CONFIGURE_PARAMETERS} | ||||||
|     for TOOL in widl wmc wrc; do |     for TOOL in widl wmc wrc; do | ||||||
|         make -j20 tools/${TOOL}/all |         make -j20 tools/${TOOL}/all | ||||||
| #        cp tools/${TOOL}/${TOOL} ${BINDIR}/bin/ |         cp tools/${TOOL}/${TOOL}${ENTENSION} ${BINDIR}/bin/ | ||||||
| #        for ARCH in ${ARCHS}; do |  | ||||||
| #            if [ ! -e ${BINDIR}/bin/${ARCH}-w64-mingw32-${TOOL} ]; then |  | ||||||
| #                ln -sf ${TOOL} ${BINDIR}/bin/${ARCH}-w64-mingw32-${TOOL} |  | ||||||
| #            fi |  | ||||||
| #        done |  | ||||||
|     done |     done | ||||||
|     cd ${WRKDIR} |     cd ${WRKDIR} | ||||||
| } | } | ||||||
| @@ -364,8 +362,6 @@ xtchain_build() | |||||||
|     echo ">>> Building XTchain tools ..." |     echo ">>> Building XTchain tools ..." | ||||||
|     mkdir -p ${BINDIR}/bin |     mkdir -p ${BINDIR}/bin | ||||||
|     mkdir -p ${BINDIR}/lib/xtchain |     mkdir -p ${BINDIR}/lib/xtchain | ||||||
|     mkdir -p ${BINDIR}/${GENERIC}/bin |  | ||||||
|     cp ${WRKDIR}/scripts/*-wrapper ${BINDIR}/${GENERIC}/bin |  | ||||||
|     for EXEC in bin2c exetool xtcspecc; do |     for EXEC in bin2c exetool xtcspecc; do | ||||||
|         if [ ! -e ${BINDIR}/bin/${EXEC} ]; then |         if [ ! -e ${BINDIR}/bin/${EXEC} ]; then | ||||||
|             ${CCOMPILER} ${WRKDIR}/tools/${EXEC}.c -o ${BINDIR}/bin/${EXEC} |             ${CCOMPILER} ${WRKDIR}/tools/${EXEC}.c -o ${BINDIR}/bin/${EXEC} | ||||||
| @@ -429,14 +425,17 @@ fi | |||||||
| mkdir -p ${BINDIR} | mkdir -p ${BINDIR} | ||||||
| mkdir -p ${SRCDIR} | mkdir -p ${SRCDIR} | ||||||
|  |  | ||||||
| # Download and build LLVM | # Build XTChain tools | ||||||
| #llvm_fetch | #xtchain_build | ||||||
| #llvm_build |  | ||||||
|  |  | ||||||
| # Download and build Wine tools | # Download and build Wine tools | ||||||
| #wine_fetch | #wine_fetch | ||||||
| #wine_build | #wine_build | ||||||
|  |  | ||||||
|  | # Download and build LLVM | ||||||
|  | #llvm_fetch | ||||||
|  | #llvm_build | ||||||
|  |  | ||||||
| # Download and build CMake | # Download and build CMake | ||||||
| #cmake_fetch | #cmake_fetch | ||||||
| #cmake_build | #cmake_build | ||||||
| @@ -445,9 +444,6 @@ mkdir -p ${SRCDIR} | |||||||
| #ninja_fetch | #ninja_fetch | ||||||
| #ninja_build | #ninja_build | ||||||
|  |  | ||||||
| # Build XTChain tools |  | ||||||
| #xtchain_build |  | ||||||
|  |  | ||||||
| # Save XT Toolchain version | # Save XT Toolchain version | ||||||
| cd ${WRKDIR} | cd ${WRKDIR} | ||||||
| : ${XTCVER:=$(git describe --exact-match --tags 2>/dev/null)} | : ${XTCVER:=$(git describe --exact-match --tags 2>/dev/null)} | ||||||
|   | |||||||
		新增問題並參考
	
	封鎖使用者