diff --git a/.gitignore b/.gitignore index ca2b526..bedc75f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ build/ chocolatey/kos32-gcc*.nupkg chocolatey/install.ps1 chocolatey/tools/install.ps1 +bat/builds.kolibrios.org *.7z diff --git a/CMakeLists.txt b/CMakeLists.txt index adad16d..5a36b5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.10) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12) project( KolibriOS-gcc-Toolchain-installer diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..92c83c0 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,3 @@ +# Как законтрибьютить? + +просто форкаешь репозиторий, делаешь нужные изменения, делаешь запрос на слияние, ждёшь принятия запроса diff --git a/README.md b/README.md index 2f3b310..a6b86b6 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,11 @@ wget для windows можно поискать в GnuWin32 например, 7z Нужно добавить в PATH. -Тулчейн по умолчанию устанавливается в папку `C:/MinGW/msys/1.0/home/autobuild/tools/win32`, но вы можете изменить путь добавив аргумент - путь установки(пустой - путь по умолчанию). +Тулчейн по умолчанию устанавливается в папку `C:/MinGW/msys/1.0/home/autobuild/tools/win32`, но вы можете изменить путь добавив аргумент - путь установки(пустой - путь по умолчанию). Например: + +``` +install.bat Path +``` ## Сборка установщиков diff --git a/bat/cleanArchives.bat b/bat/cleanArchives.bat new file mode 100644 index 0000000..e10ab8a --- /dev/null +++ b/bat/cleanArchives.bat @@ -0,0 +1,4 @@ +set TOOLCHAIN_DIR=%1 + +del /Q %TOOLCHAIN_DIR%\kos32-toolchain.7z +del /Q %TOOLCHAIN_DIR%\win32\mingw32\sdk-28-10-16.7z diff --git a/bat/downloadLibraries.bat b/bat/downloadLibraries.bat new file mode 100644 index 0000000..bf3f12b --- /dev/null +++ b/bat/downloadLibraries.bat @@ -0,0 +1,6 @@ +set TOOLCHAIN_DIR=%1 + + +wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -O %TOOLCHAIN_DIR%\win32\mingw32\sdk-28-10-16.7z + +7z x -y %TOOLCHAIN_DIR%\win32\mingw32\sdk-28-10-16.7z -o%TOOLCHAIN_DIR%\win32\mingw32 diff --git a/bat/downloadToolchain.bat b/bat/downloadToolchain.bat new file mode 100644 index 0000000..07b02eb --- /dev/null +++ b/bat/downloadToolchain.bat @@ -0,0 +1,5 @@ +set TOOLCHAIN_DIR=%1 + +wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -O %TOOLCHAIN_DIR%\kos32-toolchain.7z + +7z x -y %TOOLCHAIN_DIR%\kos32-toolchain.7z -o%TOOLCHAIN_DIR% diff --git a/bat/updateLibraries.bat b/bat/updateLibraries.bat new file mode 100644 index 0000000..6de8aba --- /dev/null +++ b/bat/updateLibraries.bat @@ -0,0 +1,5 @@ +set TOOLCHAIN_DIR=%1 + +wget -r --no-parent http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/ +move /y builds.kolibrios.org\en_US\data\contrib\sdk\lib\* %TOOLCHAIN_DIR%\win32\mingw32\lib +rd /s /q builds.kolibrios.org diff --git a/install.bat b/install.bat index c5568e9..1cfbe58 100644 --- a/install.bat +++ b/install.bat @@ -1,4 +1,4 @@ -@echo off +rem@echo off for /f %%a in ('echo prompt $E^| cmd') do set "ESC=%%a" @@ -12,6 +12,7 @@ else ( set TOOLCHAIN_DIR=%1 ) +echo %TOOLCHAIN_DIR% Call :print_msg Create the %TOOLCHAIN_DIR% folder... @@ -20,14 +21,11 @@ mkdir %TOOLCHAIN_DIR% Call :print_ok Successfully! +cd bat call :print_msg Download the kos32-gcc toolchain... -cd %TOOLCHAIN_DIR% - -wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -O %TOOLCHAIN_DIR%\kos32-toolchain.7z - -7z x -y %TOOLCHAIN_DIR%\kos32-toolchain.7z -o%TOOLCHAIN_DIR% +downloadToolchain %TOOLCHAIN_DIR% Call :print_ok Successfully! @@ -35,11 +33,7 @@ Call :print_ok Successfully! Call :print_msg Downloading libraries... -cd %TOOLCHAIN_DIR%\win32\mingw32 - -wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -O %TOOLCHAIN_DIR%\win32\mingw32\sdk-28-10-16.7z - -7z x -y %TOOLCHAIN_DIR%\win32\mingw32\sdk-28-10-16.7z +downloadLibraries.bat %TOOLCHAIN_DIR% Call :print_ok Successfully! @@ -47,17 +41,7 @@ Call :print_ok Successfully! Call :print_msg Updating libraries -cd %TOOLCHAIN_DIR%\win32\mingw32\lib - -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libdll.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libdll.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libfreetype.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libfreetype.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libc.dll.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libc.dll.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libSDLn.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libSDLn.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libcurses.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libcurses.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libz.dll.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libz.dll.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libogg.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libogg.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libvorbis.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libvorbis.a -wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libopenjpeg.a -O %TOOLCHAIN_DIR%\win32\mingw32\lib\libopenjpeg.a +updateLibraries %TOOLCHAIN_DIR% Call :print_ok Successfully! diff --git a/install.sh b/install.sh index 2aca3b0..822f610 100755 --- a/install.sh +++ b/install.sh @@ -5,6 +5,11 @@ # modified by Egor00f (Egor) set -e +pwd + +DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools" + +TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR print_msg(){ echo -e "\e[34m$1\e[0m" @@ -29,22 +34,14 @@ check_utils(){ fi } -pwd - -DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools" - -TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR - -MESSAGE="Toolchain install path(default is $TOOLCHAIN_DIR): " - -echo -n $MESSAGE +echo -n -e "\e[0mToolchain install path \e[90m(default is $TOOLCHAIN_DIR)\e[97m: " read INPUT if [[ ! -z "$INPUT" ]]; then TOOLCHAIN_DIR=$INPUT fi -echo "Installing toolchain to $TOOLCHAIN_DIR" +echo -e "\e[0mInstalling toolchain to \e[97m$TOOLCHAIN_DIR\e[0m" print_msg "Checking utilities..." @@ -84,7 +81,7 @@ print_msg "Downloading libraries..." cd $TOOLCHAIN_DIR/win32/mingw32 sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q -O sdk-28-10-16.7z -sudo 7z x -y sdk-28-10-16.7z +sudo 7z x -y -bso0 -bsp0 sdk-28-10-16.7z sudo rm -rf sdk-28-10-16.7z print_ok "Successfully!" @@ -94,7 +91,7 @@ print_ok "Successfully!" print_msg "Updating libraries" cd lib -sudo wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib +sudo wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/ sudo mv builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ./ sudo rm -R builds.kolibrios.org @@ -105,9 +102,10 @@ print_ok "Successfully!" if ["$1" == "online"]; then print_msg "Downloading libisl..." - cd /tmp - sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O /tmp/libisl.so.10.2.2.7z - sudo 7z x -y libisl.so.10.2.2.7z +cd /tmp +sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O /tmp/libisl.so.10.2.2.7z +sudo 7z x -y -bso0 -bsp0 libisl.so.10.2.2.7z + if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then sudo mkdir -p /usr/lib/x86_64-linux-gnu/ @@ -156,8 +154,9 @@ fi sudo chmod 775 $TOOLCHAIN_DIR/win32/bin/* sudo chmod 774 $TOOLCHAIN_DIR/win32/include/* -sudo chmod -R 775 /home/autobuild/tools/win32/lib/gcc sudo chmod 774 $TOOLCHAIN_DIR/win32/lib/* +sudo chmod 774 $TOOLCHAIN_DIR/win32/mingw32/lib/* +sudo chmod -R 775 /home/autobuild/tools/win32/lib/gcc cd "$OLDPWD" diff --git a/installator.iss b/installator.iss index 9df7666..ee0a4f9 100644 --- a/installator.iss +++ b/installator.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "KolibriOS gcc toolchain" -#define MyAppVersion "0.1.6" +#define MyAppVersion "0.1.5" #define MyAppPublisher "Egor00f" #define MyAppURL "https://github.com/Egor00f/kolibrios-gcc-toolchain" @@ -65,17 +65,25 @@ Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environmen Check: NeedsAddPath('{app}\win32\bin') [Files] -Source: ".\build\libs"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs -Source: ".\build\win32"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\bat\downloadToolchain.bat"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\bat\downloadLibraries.bat"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\bat\updateLibraries.bat"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs + ; NOTE: Don't use "Flags: ignoreversion" on any shared system files +[Run] +Filename: "{app}\downloadToolchain.bat"; description: "install toolchain script"; StatusMsg: "Installing toolchain"; Parameters: "{app}"; Flags: runhidden logoutput +Filename: "{app}\downloadLibraries.bat"; description: "download libraries script"; StatusMsg: "Download libraries"; Parameters: "{app}"; Flags: runhidden logoutput +Filename: "{app}\updateLibraries.bat"; description: "update libraries script"; StatusMsg: "Updating libraries"; Parameters: "{app}"; Flags: runhidden logoutput +Filename: "{app}\cleanArchives.bat"; description: "Delete downloaded archives script"; StatusMsg: "Delete downloaded archives"; Parameters: "{app}"; Flags: runhidden logoutput [Icons] Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}" [UninstallDelete] -Type: files; Name: "{app}\*" +Type: files; Name: "{app}" +Type: filesandordirs; Name: "{app}\win32" [Code] function NeedsAddPath(Param: string): boolean; @@ -92,4 +100,4 @@ begin { look for the path with leading and trailing semicolon } { Pos() returns 0 if not found } Result := Pos(';' + Param + ';', ';' + OrigPath + ';') = 0; -end; \ No newline at end of file +end; diff --git a/package/DEBIAN/control b/package/DEBIAN/control index cfd9eef..9cd3714 100755 --- a/package/DEBIAN/control +++ b/package/DEBIAN/control @@ -1,6 +1,6 @@ Package: kos32-gcc -Version: 0.1.6 -Architecture: all +Version: 0.1.7 +Architecture: amd64 Section: devel Depends: libc6-i386:amd64, libmpc3:amd64 Pre-Depends: p7zip-full, wget diff --git a/package/DEBIAN/postrm b/package/DEBIAN/postrm index 20eddeb..f4be720 100755 --- a/package/DEBIAN/postrm +++ b/package/DEBIAN/postrm @@ -2,11 +2,11 @@ TOOLCHAIN_DIR=$(head -n 1 /etc/kos32-gcc/install-path) + + MESSAGE="PATH=\$PATH:$TOOLCHAIN_DIR/win32/bin" -if grep -q '$MESSAGE' /etc/profile; then - sudo sed -i '/$MESSAGE/d' /etc/profile -fi +sudo sed -i '/$MESSAGE/d' /etc/profile rm /etc/kos32-gcc -R