diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index d4f7c40..15e5716 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -1,17 +1,23 @@
-name: test
+name: Test packages
on:
push:
branches: [ "main" ]
+ paths-ignore:
+ - '.vscode/**'
+ - '.devcontainer/**'
+ - '.gitignore'
+ - 'CONTRIBUTING.md'
pull_request:
branches: [ "main" ]
workflow_dispatch:
jobs:
+
#Test linux install script
linux-install:
+ name: linux(sh) script install test
runs-on: ubuntu-latest
-
steps:
- uses: actions/checkout@v4
@@ -26,8 +32,9 @@ jobs:
kos32-gcc -v
kos32-g++ -v
- #Test windows install script
- windows-install:
+ #Test Batch install script
+ batch-install:
+ name: Batch script install test
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
@@ -38,11 +45,33 @@ jobs:
choco install 7zip
- name: Run script
- run: ${{ github.workspace }}/install.bat
+ run: ${{ github.workspace }}\install.bat
+
+ #Test PowerShell install script
+ PowerShell-install:
+ name: PowerShell install script test
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install modules
+ run: |
+ Set-PSRepository PSGallery -InstallationPolicy Trusted
+ Install-Module -Name 7Zip4PowerShell
+
+ - name: Run script
+ run: ${{ github.workspace }}\install.ps1
+
+ - name: Test
+ run: |
+ kos32-gcc -v
+ kos32-g++ -v
#Test Windows Installer
build-Installer:
+ name: Build windows installer test
runs-on: windows-latest
+ needs: PowerShell-install
steps:
- uses: actions/checkout@v4
@@ -58,8 +87,9 @@ jobs:
# Upload entire repository
path: './build/installer.exe'
- # Test Package
- package:
+ # Test deb package build
+ deb-package-build:
+ name: Debian package build test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@@ -67,15 +97,28 @@ jobs:
- name: Build
run: |
cmake -B ${{ github.workspace }}/build
- cmake --build ${{ github.workspace }}/build --target Package
+ cmake --build ${{ github.workspace }}/build --target deb
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
- name: package
+ name: deb-package
# Upload entire repository
path: './build/package.deb'
-
+
+ # Test deb package install/remove
+ deb-package-test:
+ name: Debian package install/remove test
+ runs-on: ubuntu-latest
+ needs: deb-package-build
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Build
+ run: |
+ cmake -B ${{ github.workspace }}/build
+ cmake --build ${{ github.workspace }}/build --target deb
+
- name: Install package
run: echo '/kolibrios-toolchain' | sudo apt install ${{ github.workspace }}/build/package.deb -y
@@ -94,3 +137,52 @@ jobs:
- name: Remove package
run: sudo apt remove kos32-gcc
+ #Test chocolatey package build
+ chocolatey-package-build:
+ name: Chocolatey build package test
+ runs-on: windows-latest
+ needs: PowerShell-install
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Build
+ run: |
+ cmake -B ${{ github.workspace }}/build
+ cmake --build ${{ github.workspace }}/build --target choco
+
+ - name: Upload artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: choco-package
+ # Upload entire repository
+ path: './build/choco-package.nupkg'
+
+ # Test chocolatey package install/remove
+ chocolatey-package-test:
+ name: chocolatey install test
+ runs-on: windows-latest
+ needs: chocolatey-package-build
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Install modules
+ run: |
+ Set-PSRepository PSGallery -InstallationPolicy Trusted
+ Install-Module -Name 7Zip4PowerShell
+
+ - name: Build
+ run: |
+ cmake -B ${{ github.workspace }}/build
+ cmake --build ${{ github.workspace }}/build --target choco
+
+ - name: Install package
+ run: choco install ${{ github.workspace }}\build\choco-package.nupkg
+
+ - name: Test
+ run: |
+ kos32-gcc -v
+ kos32-g++ -v
+
+ - name: Remove package
+ run: choco uninstall kos32-gcc
+
diff --git a/.gitignore b/.gitignore
index 8ff6a58..bc41e5e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,7 @@
Output/
-package/DEBIAN/postinst
-package/DEBIAN/copyright
-package.deb
build/
+chocolatey/kos32-gcc*.nupkg
+chocolatey/install.ps1
+chocolatey/tools/install.ps1
+bat/builds.kolibrios.org
+*.7z
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index d801e45..05773af 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -1,9 +1,6 @@
{
"recommendations": [
"chouzz.vscode-innosetup",
- "streetsidesoftware.code-spell-checker",
- "streetsidesoftware.code-spell-checker-russian",
"ms-vscode.cmake-tools",
- "github.vscode-github-actions"
]
}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 6418f2d..b5ed4a7 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -6,5 +6,13 @@
"msys",
"kolibrios",
"Egor"
- ]
+ ],
+ "cSpell.ignorePaths": [
+ "vscode-extension",
+ ".git/objects",
+ ".vscode",
+ ".vscode-insiders",
+ "package/DEBIAN"
+ ],
+ "cmake.parallelJobs": 1
}
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1277121..df7b218 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,26 +1,130 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
project(
KolibriOS-gcc-Toolchain-installer
DESCRIPTION "Installer of gcc toolchain for KolibriOS"
)
-
add_custom_target(
- Package
- COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postinst
- COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/copyright
- COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN
- COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/control
- COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/prerm
- COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postinst
- COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postrm
- COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/copyright
- COMMAND dpkg-deb --build ${CMAKE_CURRENT_SOURCE_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb
+ download_libraries
+ COMMAND wget -q -N http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -O ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z
+ COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/lib
+ COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ${CMAKE_CURRENT_BINARY_DIR}/lib
+ COMMAND rm -R ${CMAKE_CURRENT_BINARY_DIR}/builds.kolibrios.org
+ COMMENT "Download libraries"
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(
- Installer
- COMMAND iscc /O"${CMAKE_CURRENT_BINARY_DIR}" ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss
+ archive_libraries
+ COMMAND 7z x -y -bso0 -bsp0 ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z -o${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND 7z a -bso0 -bsp0 ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ${CMAKE_CURRENT_BINARY_DIR}/lib
+ COMMENT "Add libraries to archive"
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/lib.7z
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/lib.7z
+ DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/sdk-28-10-16.7z
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+add_custom_target(
+ download_linux
+ COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z
+ COMMAND wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z
+ COMMENT "Download linux toolchain"
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z
+ ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z
+ ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+add_custom_target(
+ download_windows
+ COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z
+ COMMENT "Download windows toolchain"
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+add_custom_target(
+ extract_linux
+ COMMAND 7z x -y -bso0 -bsp0 ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z
+ COMMENT "Extract linux archives"
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2
+ DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+add_custom_target(
+ configureDebPackage
+ COMMENT "Setup debian package"
+ COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/package
+ COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/package/ ${CMAKE_CURRENT_BINARY_DIR}/package
+ COMMAND chmod -R 775 ${CMAKE_CURRENT_BINARY_DIR}/package
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/package/usr/lib/x86_64-linux-gnu
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ OUTPUT
+ ${CMAKE_CURRENT_SOURCE_DIR}/package/
+ BYPRODUCTS
+ ${CMAKE_CURRENT_BINARY_DIR}/package/
+)
+
+
+add_custom_target(
+ deb
+ COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 ${CMAKE_CURRENT_BINARY_DIR}/package/usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
+ COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools
+ COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/lib.7z ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools
+ COMMAND dpkg-deb --build ${CMAKE_CURRENT_BINARY_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Build deb package"
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/package.deb
+ DEPENDS
+ ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2
+ ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z
+ ${CMAKE_CURRENT_BINARY_DIR}/lib.7z
+ configureDebPackage
+)
+
+add_custom_target(
+ Installer
+ COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z -o ${CMAKE_CURRENT_BINARY_DIR}
+ COMMAND iscc /O"${CMAKE_CURRENT_BINARY_DIR}" ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss
+ COMMENT "Build windows installer"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ SOURCES
+ ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss
+ ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE
+ ${CMAKE_CURRENT_SOURCE_DIR}/README.md
+)
+
+add_custom_target(
+ choco
+ COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools
+ COMMAND choco pack
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey
+ COMMENT "Build chocolatey package"
+ SOURCES
+ ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/kos32-gcc.nuspec
+ ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools/chocolateyInstall.ps1
+ ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools/chocolateyUninstall.ps1
)
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 614b6d0..d3c2ba3 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,25 @@
+[](https://github.com/Egor00f/kolibrios-gcc-toolchain/actions/workflows/test.yml)
+
# Установщик gcc тулчейна для KolibriOS
-Просто устанавливает тулчейн.
+Просто устанавливает тулчейн C/C++ компилятора для KolinriOS от Serge.
-оригинальный скрипт для linux взят из http://board.kolibrios.org/viewtopic.php?p=76227&hilit=%D1%82%D1%83%D0%BB%D1%87%D0%B5%D0%B9%D0%BD#p76227
-(скрипт подправлен)
+Оригинальный скрипт для linux взят [по ссылке](http://board.kolibrios.org/viewtopic.php?p=76227&hilit=%D1%82%D1%83%D0%BB%D1%87%D0%B5%D0%B9%D0%BD#p76227) (скрипт был значительно изменён).
## Установка
-Для установки требуются `7z` и `wget`. При выборе своего пути в любом случае будет создана папка win32 в выбранной папке.
+Для установки требуются `7z` и `wget`. При выборе своего пути в любом случае будет создана папка win32 в выбранной папке.
### Linux
-Просто запустите `install.sh`.
+Просто запустите `install.sh`:
+```
+./install.sh
+```
-Некоторые команды требуют sudo
+Некоторые команды требуют sudo.
+
+Или установите пакет. [Ссылка на пакет](https://git.kolibrios.org/Egor00f/-/packages/debian/kos32-gcc/) или в релизах.
Тулчейн по умолчанию устанавливается в папку `/home/autobuild/tools/win32`, но скрипт вас спросит перед установкой.
@@ -21,24 +27,41 @@
Желательно чтобы вы перед установкой тулчейна установите msys из установщика MinGW.
-Для windows есть установщик(посмотрите в релизах) или просто запустите `install.bat`. Рекомендуется запускать с повышенными правами
+Для windows есть установщик(посмотрите в релизах) или просто запустите `install.bat`. Нужно запускать с повышенными правами.
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
+```
+
+Так же вы можете установить тулчейн с помощью установщика(можете найти его в [релизах](https://git.kolibrios.org/Egor00f/-/packages/debian/kos32-gcc/))
## Сборка установщиков
-Установщики полностью базируются на скриптах установки, так что без разницы что вы будете использовать скрипт или установщик, но установщики могут и удалить тулчейн.
+Установщики базируются на скриптах установки, так что без разницы что вы будете использовать скрипт или установщик, но установщики могут и удалить тулчейн.
-Установщики собираются с помощью cmake (cmake просто потому что могу)
+Установщики собираются с помощью cmake.
+
+Просто запустите:
+
+```
+mkdir build
+cd build
+cmake ..
+make <установщик>
+```
### Linux
-Можно собрать deb пакет. Цель для сборки Package. Для сборки требуется `dpkg-deb`
+Можно собрать deb пакет. Цель для сборки Package. Для сборки требуется `dpkg-deb`.
### Windows
+Для сборки установщиков необходимы `CoreUtils` и `wget` из `GnuWin32` или ещё откуда то.
+
Установщик собирается с помощью Inno Setup. Цель для сборки Installer. Для сборки требуется компилятор Inno Setup.
-Если сборка не работает, добавьте папку Inno Setup(например: `C:\Programs Files\Inno Setup 6`) в PATH
+Если сборка не работает, добавьте папку Inno Setup (например: `C:\Programs Files\Inno Setup 6`) в 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/chocolatey/kos32-gcc.nuspec b/chocolatey/kos32-gcc.nuspec
new file mode 100644
index 0000000..5f0398b
--- /dev/null
+++ b/chocolatey/kos32-gcc.nuspec
@@ -0,0 +1,22 @@
+
+
+
+ kos32-gcc
+ KolibriOS gcc toolchain installer
+ 0.1.6
+ Egor00f
+ Egor00f
+ idk
+ _KolibriOS gcc toolchain installer. This package installing KolibriOS gcc toolchain by Serge.
+ https://github.com/Egor00f/kolibrios-gcc-toolchain/
+ kolibrios toolchain compiler C/C++
+
+ https://github.com/Egor00f/kolibrios-gcc-toolchain/blob/main/LICENSE
+ false
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/chocolatey/tools/chocolateyInstall.ps1 b/chocolatey/tools/chocolateyInstall.ps1
new file mode 100644
index 0000000..ccde14b
--- /dev/null
+++ b/chocolatey/tools/chocolateyInstall.ps1
@@ -0,0 +1,15 @@
+#NOTE: Please remove any commented lines to tidy up prior to releasing the package, including this one
+
+$packageName = 'kos32-gcc' # arbitrary name for the package, used in messages
+
+# main helpers - these have error handling tucked into them already
+# installer, will assert administrative rights
+
+
+$INSTALL_PATH = Read-Host 'Path to install toolchain(Enter - default)'
+
+Expand-7Zip -ArchiveFileName C:\ProgramData\Chocolatey\lib\kos32-gcc\tools\kos32-toolchain-win.7z -TargetPath $INSTALL_PATH
+
+
+Out-File -FilePath C:\ProgramData\Chocolatey\lib\kos32-gcc\install-path -InputObject $INSTALL_PATH
+
diff --git a/chocolatey/tools/chocolateyUninstall.ps1 b/chocolatey/tools/chocolateyUninstall.ps1
new file mode 100644
index 0000000..33802c6
--- /dev/null
+++ b/chocolatey/tools/chocolateyUninstall.ps1
@@ -0,0 +1,4 @@
+
+$installPath = Get-Content C:\ProgramData\Chocolatey\lib\kos32-gcc\install-path | Out-String | ConvertFrom-StringData
+
+Remove-Item -LiteralPath $installPath -Force -Recurse
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.ps1 b/install.ps1
new file mode 100644
index 0000000..6cc03de
--- /dev/null
+++ b/install.ps1
@@ -0,0 +1,57 @@
+#Requires -RunAsAdministrator
+
+param(
+ [string]$InstallPath='C:\MinGW\msys\1.0\home\autobuild\tools'
+)
+
+if (Get-Module -ListAvailable -Name 7Zip4PowerShell)
+{}
+else
+{
+ Install-Module -Name 7Zip4PowerShell
+}
+
+$LIBS_PATH = '$InstallPath\win32\mingw32\lib\'
+$LIBS_URL = 'http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/'
+
+
+Write-Progress -Activity 'Installing toolchain' -Status 'Installing toolchain' -PercentComplete 0 -CurrentOperation 'Create the $InstallPath folder'
+
+mkdir $InstallPath -Force
+
+
+Write-Progress -Activity 'Installing toolchain' -Status 'Installing toolchain' -PercentComplete 1 -CurrentOperation 'Download the kos32-gcc toolchain'
+
+Invoke-WebRequest http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -OutFile $InstallPath\kos32-toolchain.7z
+
+
+Write-Progress -Activity 'Installing toolchain' -Status 'Installing toolchain' -PercentComplete 20 -CurrentOperation 'Unpacking kos32-gcc toolchain'
+
+Expand-7Zip -ArchiveFileName $InstallPath\kos32-toolchain.7z -TargetPath $InstallPath
+
+
+Write-Progress -Activity 'Installing toolchain' -Status 'Installing libraries' -PercentComplete 40 -CurrentOperation 'Downloading libraries'
+
+Invoke-WebRequest http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -OutFile $InstallPath\win32\mingw32\sdk-28-10-16.7z
+
+
+Write-Progress -Activity 'Installing toolchain' -Status 'Installing libraries' -PercentComplete 50 -CurrentOperation 'Unpacking libraries'
+
+Expand-7Zip -ArchiveFileName $InstallPath\win32\mingw32\sdk-28-10-16.7z -TargetPath $InstallPath\win32\mingw32\
+
+
+
+Write-Progress -Activity 'Installing toolchain' -Status 'Installing libraries' -PercentComplete 60 -CurrentOperation "Download libraries"
+
+
+$response = Invoke-WebRequest -Uri $LIBS_URL -Method GET
+
+$files = @( $response.Content -split [environment]::NewLine | ? { $_ -like '*tageswerte*.zip*' } | % { $_ -replace '^(.*>)(tages.*\.zip)<.*', '$2' } )
+
+foreach( $file in $files ) {
+
+ Invoke-WebRequest -Uri ($LIBS_URL + $file) -Method GET -OutFile ($LIBS_PATH + $file)
+}
+
+Write-Progress -Activity 'Installing toolchain' -Status 'Done!' -PercentComplete 99 -CurrentOperation "end"
+
diff --git a/install.sh b/install.sh
index 7a0fc8e..243ff8a 100755
--- a/install.sh
+++ b/install.sh
@@ -2,49 +2,52 @@
# Written by turbocat2001 (Maxim Logaev)
# Installation steps described by maxcodehack (Maxim Kuzmitsky)
+# modified by Egor00f (Egor)
set -e
+pwd
+
+CONFIG_FOLDER="/etc/kos32-gcc"
+INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path"
+DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools"
+
print_msg(){
- echo -e "\e[34m$1\e[0m"
+ echo -e "\e[34m$1\e[0m"
}
print_ok(){
- echo -e "\e[32m$1\e[0m"
+ echo -e "\e[32m$1\e[0m"
}
print_err(){
- echo -e "\e[31m$1\e[0m"
- exit
+ echo -e "\e[31m$1\e[0m"
+ exit
}
check_utils(){
- printf "%s: " $1
- if command -v $1 &> /dev/null
- then
- print_ok "ok\r"
- else
- print_err "no\r"
- fi
+ printf "%s: " $1
+ if command -v $1 &> /dev/null
+ then
+ print_ok "ok\r"
+ else
+ print_err "no\r"
+ fi
}
-pwd
-
-DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools"
-
-TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR
-
-MESSAGE="Toolchain install path(default is $TOOLCHAIN_DIR): "
-
-echo -n $MESSAGE
-read INPUT
-
-if [[ ! -z "$INPUT" ]]; then
- TOOLCHAIN_DIR=$INPUT
+if [ -f $INSTALL_PATH_FILE ]; then
+ TOOLCHAIN_DIR=$(head -n 1 $INSTALL_PATH_FILE)
+else
+ echo -n -e "\e[0mToolchain install path \e[90m(default is $DEFAULT_TOOLCHAIN_DIR)\e[97m: "
+ read INPUT
+ if [[ ! -z "$INPUT" ]]; then
+ TOOLCHAIN_DIR=$INPUT
+ else
+ TOOLCHAIN_DIR=$DEFAULT_TOOLCHAIN_DIR
+ fi
fi
-echo "Installing toolchain to $TOOLCHAIN_DIR"
-
+echo -e "\e[0mInstalling toolchain to \e[97m$TOOLCHAIN_DIR\e[0m"
print_msg "Checking utilities..."
@@ -75,7 +78,7 @@ print_ok "Successfully!"
print_msg "Extracting files ..."
cd $TOOLCHAIN_DIR
-sudo 7z x -y kos32-toolchain.7z
+sudo 7z x -y -bso0 -bsp0 kos32-toolchain.7z
sudo rm -rf kos32-toolchain.7z
print_ok "Successfully!"
@@ -86,7 +89,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!"
@@ -96,15 +99,9 @@ print_ok "Successfully!"
print_msg "Updating libraries"
cd lib
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libdll.a -q -O libdll.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libfreetype.a -q -O libfreetype.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libc.dll.a -q -O libc.dll.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libSDLn.a -q -O libSDLn.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libcurses.a -q -O libcurses.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libz.dll.a -q -O libz.dll.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libogg.a -q -O libogg.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libvorbis.a -q -O libvorbis.a
-sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libopenjpeg.a -q -O libopenjpeg.a
+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
print_ok "Successfully!"
@@ -114,10 +111,10 @@ 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
+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/
+ sudo mkdir -p /usr/lib/x86_64-linux-gnu/
fi
sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
@@ -138,7 +135,7 @@ print_ok "Successfully!"
if [ "$TOOLCHAIN_DIR" != "$DEFAULT_TOOLCHAIN_DIR" ]; then
- sudo ln -sf $TOOLCHAIN_DIR/win32 $DEFAULT_TOOLCHAIN_DIR
+ sudo ln -sf $TOOLCHAIN_DIR/win32 $DEFAULT_TOOLCHAIN_DIR
fi
@@ -150,19 +147,20 @@ if [ ! "$(id -u)" -ne 0 ]
then
echo $MESSAGE >> /etc/profile
- sudo mkdir -p /etc/kos32-gcc
- echo $TOOLCHAIN_DIR > /etc/kos32-gcc/install-path
+ sudo mkdir -p /etc/kos32-gcc
+ echo $TOOLCHAIN_DIR > /etc/kos32-gcc/install-path
else
- if ! grep -q $EXPORT_MESSSAGE ~/.bashrc; then
- print_msg "Adding '$TOOLCHAIN_DIR/win32/bin' to '~/.bashrc'"
- echo '$EXPORT_MESSSAGE' >> ~/.bashrc
- fi
+ if ! grep -q $EXPORT_MESSSAGE ~/.bashrc; then
+ print_msg "Adding '$TOOLCHAIN_DIR/win32/bin' to '~/.bashrc'"
+ echo '$EXPORT_MESSSAGE' >> ~/.bashrc
+ fi
fi
sudo chmod 775 $TOOLCHAIN_DIR/win32/bin/*
-sudo chmod 775 $TOOLCHAIN_DIR/win32/include/*
-sudo chmod 775 $TOOLCHAIN_DIR/win32/lib/gcc/mingw32/5.4.0/include/*
-sudo chmod 775 $TOOLCHAIN_DIR/win32/lib/gcc/mingw32/5.4.0/include/c++/*
+sudo chmod 774 $TOOLCHAIN_DIR/win32/include/*
+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 f48e834..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.4"
+#define MyAppVersion "0.1.5"
#define MyAppPublisher "Egor00f"
#define MyAppURL "https://github.com/Egor00f/kolibrios-gcc-toolchain"
@@ -65,18 +65,25 @@ Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environmen
Check: NeedsAddPath('{app}\win32\bin')
[Files]
-Source: ".\install.bat"; 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}\install.bat"; description: "install script"; StatusMsg: "Installing toolchain"; Parameters: "{app}"; Flags: runhidden logoutput
+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;
@@ -93,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 31fdda7..79a4fb7 100755
--- a/package/DEBIAN/control
+++ b/package/DEBIAN/control
@@ -1,14 +1,16 @@
-Package: kos32-gcc
-Version: 0.1.4
-Architecture: all
-Section: devel
-Depends: libc6-i386:amd64, libmpc3:amd64
-Pre-Depends: p7zip-full, wget
-Recommends: fasm
-Priority: optional
-Homepage: https://github.com/Egor00f/kolibrios-gcc-toolchain
-Origin: http://ftp.kolibrios.org/users/Serge/new/Toolchain
-Maintainer: Egor00f
+Package: kos32-gcc
+Version: 0.1.8
+Architecture: amd64
+Section: devel
+Depends: libc6-i386:amd64,
+ libmpc3:amd64
+Pre-Depends: p7zip-full,
+ wget
+Recommends: fasm
+Priority: optional
+Homepage: https://github.com/Egor00f/kolibrios-gcc-toolchain
+Origin: http://ftp.kolibrios.org/users/Serge/new/Toolchain
+Maintainer: Egor00f
Installed-Size: 131708
Description: KolibriOS gcc toolchain installer
This package installing KolibriOS gcc toolchain by Serge.
diff --git a/package/DEBIAN/postinst b/package/DEBIAN/postinst
new file mode 100755
index 0000000..1d12e54
--- /dev/null
+++ b/package/DEBIAN/postinst
@@ -0,0 +1,133 @@
+#!/bin/bash
+
+# Written by turbocat2001 (Maxim Logaev)
+# Installation steps described by maxcodehack (Maxim Kuzmitsky)
+# modified by Egor00f (Egor)
+
+set -e
+pwd
+
+CONFIG_FOLDER="/etc/kos32-gcc"
+INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path"
+DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools"
+
+
+print_msg(){
+ echo -e "\e[34m$1\e[0m"
+}
+
+print_ok(){
+ echo -e "\e[32m$1\e[0m"
+}
+
+print_err(){
+ echo -e "\e[31m$1\e[0m"
+ exit
+}
+
+check_utils(){
+ printf "%s: " $1
+ if command -v $1 &> /dev/null
+ then
+ print_ok "ok\r"
+ else
+ print_err "no\r"
+ fi
+}
+
+TOOLCHAIN_DIR=$(head -n 1 $INSTALL_PATH_FILE)
+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 -e "\e[0mInstalling toolchain to \e[97m$TOOLCHAIN_DIR\e[0m"
+
+
+print_msg "Checking utilities..."
+
+check_utils wget
+check_utils 7z
+
+
+
+print_msg "Create the toolchain folders..."
+
+sudo mkdir -p $DEFAULT_TOOLCHAIN_DIR
+sudo mkdir -p $TOOLCHAIN_DIR
+
+print_ok "Successfully!"
+
+print_msg "Extracting toolchain ..."
+
+sudo 7z x -y -bso0 -bsp0 $DEFAULT_TOOLCHAIN_DIR/kos32-toolchain-linux.7z -o$TOOLCHAIN_DIR
+sudo rm -rf $DEFAULT_TOOLCHAIN_DIR/kos32-toolchain-linux.7z
+
+print_ok "Successfully!"
+
+
+
+
+print_msg "Extracting libraries..."
+
+cd $TOOLCHAIN_DIR/win32/mingw32
+sudo 7z x -y -bso0 -bsp0 $DEFAULT_TOOLCHAIN_DIR/lib.7z
+sudo rm -rf $DEFAULT_TOOLCHAIN_DIR/lib.7z
+
+print_ok "Successfully!"
+
+
+
+if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then
+ sudo mkdir -p /usr/lib/x86_64-linux-gnu/
+fi
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10
+sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10
+sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
+
+print_ok "Successfully!"
+
+
+print_msg "Fixing libmpfr..."
+
+sudo ln -sf /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
+sudo ln -sf /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4
+
+print_ok "Successfully!"
+
+
+if [ "$TOOLCHAIN_DIR" != "$DEFAULT_TOOLCHAIN_DIR" ]; then
+ sudo ln -sf $TOOLCHAIN_DIR/win32 $DEFAULT_TOOLCHAIN_DIR
+fi
+
+
+MESSAGE="PATH=\$PATH:$TOOLCHAIN_DIR/win32/bin"
+
+EXPORT_MESSSAGE="export $MESSAGE"
+
+if [ ! "$(id -u)" -ne 0 ]
+then
+ echo $MESSAGE >> /etc/profile
+ echo $TOOLCHAIN_DIR > $INSTALL_PATH_FILE
+else
+ if ! grep -q $EXPORT_MESSSAGE ~/.bashrc; then
+ print_msg "Adding '$TOOLCHAIN_DIR/win32/bin' to '~/.bashrc'"
+ echo '$EXPORT_MESSSAGE' >> ~/.bashrc
+ fi
+fi
+
+sudo chmod 775 $TOOLCHAIN_DIR/win32/bin/*
+sudo chmod 774 $TOOLCHAIN_DIR/win32/include/*
+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"
+
+export PATH=$PATH:$TOOLCHAIN_DIR/win32/bin
+
+print_ok "Installation was successful!"
diff --git a/package/DEBIAN/postrm b/package/DEBIAN/postrm
index 20eddeb..5048e26 100755
--- a/package/DEBIAN/postrm
+++ b/package/DEBIAN/postrm
@@ -1,12 +1,17 @@
#!/bin/bash
+CONFIG_FOLDER="/etc/kos32-gcc"
+INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path"
+DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools"
+
+
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
+FULL_PATH="$TOOLCHAIN_DIR/win32/bin"
+CHR="/"
+REPLACE_TO="\/"
-rm /etc/kos32-gcc -R
+MESSAGE="${FULL_PATH//$CHR/"$REPLACE_TO"}"
+sudo sed -i -e '/'$MESSAGE'/d' /etc/profile
diff --git a/package/DEBIAN/prerm b/package/DEBIAN/prerm
index a58ff21..78e120e 100755
--- a/package/DEBIAN/prerm
+++ b/package/DEBIAN/prerm
@@ -1,7 +1,12 @@
#!/bin/bash
-TOOLCHAIN_DIR=$(head -n 1 /etc/kos32-gcc/install-path)
+CONFIG_FOLDER="/etc/kos32-gcc"
+INSTALL_PATH_FILE="$CONFIG_FOLDER/install-path"
+DEFAULT_TOOLCHAIN_DIR="/home/autobuild/tools"
-rm -R $TOOLCHAIN_DIR
-rm -R /home/autobuild
+TOOLCHAIN_DIR=$(head -n 1 $INSTALL_PATH_FILE)
+
+rm -Rf $TOOLCHAIN_DIR
+
+rm -Rf /home/autobuild
diff --git a/package/etc/kos32-gcc/install-path b/package/etc/kos32-gcc/install-path
new file mode 100644
index 0000000..d35b78f
--- /dev/null
+++ b/package/etc/kos32-gcc/install-path
@@ -0,0 +1 @@
+/home/autobuild/tools