Author Topic: Guide for building C::B on Linux request due to wiki 502 error  (Read 2467 times)

Offline AndrewCot

  • Almost regular
  • **
  • Posts: 193
Guide for building C::B on Linux request due to wiki 502 error
« on: September 07, 2021, 06:22:38 am »
Does anyone have an up to date guide for building C::B on Linux that they can give me or if someone can post a copy of the following wiki page as I cannot get to the wiki page due to the 502 errors:
  http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Linux

The 502's seem to have gotten worse over the last 2 days as I was able to get to it a week ago, but I only started to try and build it earlier today and have hit issues with missing or miss configured packages that should hopefully be documented on the wiki or if someone has an up to date guide.

Online Commaster

  • Almost regular
  • **
  • Posts: 129
Re: Guide for building C::B on Linux request due to wiki 502 error
« Reply #1 on: September 07, 2021, 06:45:37 am »
Surprisingly I have no issues. Must be that IPv6/IPv4 thing again  ;)

Offline AndrewCot

  • Almost regular
  • **
  • Posts: 193
Re: Guide for building C::B on Linux request due to wiki 502 error
« Reply #2 on: September 07, 2021, 09:32:40 am »
Thanks for the doc.

BTW I have IP6 disabled on my router.

Offline cacb

  • Regular
  • ***
  • Posts: 487
Re: Guide for building C::B on Linux request due to wiki 502 error
« Reply #3 on: September 07, 2021, 03:13:25 pm »
This is my build script under Kubuntu 20.04

Code
#!/bin/bash

#install build essentials for codeblocks with gtk2 and gtk3
sudo apt install cmake
sudo apt install build-essential
sudo apt install libgtk2.0-dev libhunspell-dev libgamin-dev
sudo apt install libwxgtk3.0-gtk3-dev

#path to wxWidgets configuration scripts
WX_CONFIG_DIR=/usr/local/lib/wx/config

#actual wxWidgets configuration to use
#to see alternatives use: find /usr/local/lib/wx/config/*
WX_CONFIG=gtk2-unicode-3.0
WX_CONFIG_FULLPATH="$WX_CONFIG_DIR/$WX_CONFIG"

#build and install paths
CB_DIR=/ssd1/codeblocks
CB_BUILD_PATH="$CB_DIR/$WX_CONFIG/build"
CB_INSTALL_PATH="$CB_DIR/$WX_CONFIG/install"

#create build area
mkdir -p "$CB_BUILD_PATH"
pushd    "$CB_BUILD_PATH"
pwd
git clone https://github.com/obfuscated/codeblocks_sf
cd codeblocks_sf/

#configure, build & install using selected configuration
./bootstrap
./configure --with-contrib-plugins=all             \
            --with-wx-config="$WX_CONFIG_FULLPATH" \
            --prefix="$CB_INSTALL_PATH"
make
make install
ls -l "$CB_INSTALL_PATH/bin"
popd

Offline AndrewCot

  • Almost regular
  • **
  • Posts: 193
Re: Guide for building C::B on Linux request due to wiki 502 error
« Reply #4 on: September 08, 2021, 10:54:52 am »
@cacb than you very much for the script. I used it instead of the WIKI doc as the WIKI was for WxWidget 2.8 and as such was way out of date. I used GTK3. I was able to build and run the SF 12529 trunk code.


I had to add a few more packages from the default xubuntu-20.04.2.0-desktop-amd64.iso install (on Virtualbox using a script) to get it to compile and remove the  --with-wx-config="$WX_CONFIG_FULLPATH" ./configure option as the wxconfig was not in the directory specified, but was in the path.

My updated script is below:
Code
#!/bin/bash

#---- install build essentials for codeblocks with gtk2 and gtk3 ----
sudo apt install -y git
sudo apt install -y cmake
sudo apt install -y build-essential
sudo apt install subversion
sudo apt install -y libhunspell-dev libgamin-dev
sudo apt-get install libboost-system-dev

#-------- install build packages for codeblocks with gtk2 --------
# GTK2 #sudo apt install -y libgtk2.0-dev 

#-------- install build packages for codeblocks with gtk3 --------
sudo apt install -y libgtk-3-devmake
sudo apt install -y libwxgtk3.0-gtk3-0v5 libwxgtk3.0-gtk3-dev

# -----------------------------------------------------------------

#path to wxWidgets configuration scripts
WX_CONFIG_DIR=/usr/local/lib/wx/config

#actual wxWidgets configuration to use
#to see alternatives use: find /usr/local/lib/wx/config/*
WX_CONFIG=gtk3-unicode-3.0
WX_CONFIG_FULLPATH="$WX_CONFIG_DIR/$WX_CONFIG"

#build and install paths
CB_DIR=~/code/codeblocks
CB_BUILD_PATH="$CB_DIR/$WX_CONFIG/build"
CB_INSTALL_PATH="$CB_DIR/$WX_CONFIG/install"

#create build area
mkdir -p "$CB_BUILD_PATH"
pushd    "$CB_BUILD_PATH"
pwd
#git clone https://github.com/obfuscated/codeblocks_sf codeblocks_git
#cd codeblocks_git
svn checkout https://svn.code.sf.net/p/codeblocks/code/trunk codeblocks_sf
cd codeblocks_sf

# -----------------------------------------------------------------

#configure, build & install using selected configuration
./bootstrap
./configure --with-contrib-plugins=all             \
            --prefix="$CB_INSTALL_PATH"
#./configure --with-contrib-plugins=all             \
#            --with-wx-config="$WX_CONFIG_FULLPATH" \
#            --prefix="$CB_INSTALL_PATH"

make
make install
ls -l "$CB_INSTALL_PATH/bin"
popd

Below is the VirtualBox script I use to install the initial XUbuntu and then did an upgrade and ran the script. I hope this may save you time in the future if you need to use VB as it can be modified for Windows very easily as most of the lines are for configuring the Virtualbox common HDD, Network, Video, Sound and serial port settings.


Code
@rem https://kifarunix.com/how-to-automate-virtual-machine-installation-on-virtualbox/

set VM_Name=XUbuntu-2004-CB
set UserName=UNAME
set UserPassword=UPASSWORD
set ISO_IMAGE="%CD%\xubuntu-20.04.2.0-desktop-amd64.iso"

@rem ==============================================================================

set VM_Directory=G:\VirtualBox
set VBoxManageExe="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

@rem goto end
@rem goto OS_Install
@echo off
%VBoxManageExe% createvm --name %VM_Name% --ostype Ubuntu_64 --register --basefolder "%VM_Directory%"
%VBoxManageExe% createmedium --filename "%VM_Directory%\%VM_Name%\%VM_Name%.vdi" --format VDI --size 102200

%VBoxManageExe% storagectl %VM_Name% --name SATA --add SATA --controller IntelAhci
%VBoxManageExe% storageattach %VM_Name% --storagectl SATA --port 0 --device 0 --type hdd --medium "%VM_Directory%\%VM_Name%\%VM_Name%.vdi"

%VBoxManageExe% storagectl %VM_Name% --name IDE --add IDE --controller PIIX4
@rem %VBoxManageExe% storageattach %VM_Name% --storagectl IDE --port 0 --device 0 --type dvddrive --medium "none"

%VBoxManageExe% modifyvm %VM_Name% --clipboard-mode bidirectional --draganddrop bidirectional
%VBoxManageExe% modifyvm %VM_Name% --memory 8192 --vram 128
%VBoxManageExe% modifyvm %VM_Name% --graphicscontroller vmsvga --monitorcount 2 --accelerate3d on
%VBoxManageExe% modifyvm %VM_Name% --ioapic on
%VBoxManageExe% modifyvm %VM_Name% --boot1 dvd --boot2 disk --boot3 none --boot4 none
%VBoxManageExe% modifyvm %VM_Name% --cpus 4
%VBoxManageExe% modifyvm %VM_Name% --audio dsound  --audiocontroller hda  --audioin off    --audioout on

%VBoxManageExe% modifyvm %VM_Name% --usb off
%VBoxManageExe% modifyvm %VM_Name% --usbohci off
%VBoxManageExe% modifyvm %VM_Name% --usbehci off
%VBoxManageExe% modifyvm %VM_Name% --usbxhci off

%VBoxManageExe% modifyvm %VM_Name% --nic1 nat --nictype1 82540EM --cableconnected1 on --natpf1 ["EGM Simulator"],tcp,[0.0.0.0],3321,[0.0.0.0],3321

%VBoxManageExe% modifyvm %VM_Name% --nic2 none
%VBoxManageExe% modifyvm %VM_Name% --nic3 none
%VBoxManageExe% modifyvm %VM_Name% --nic4 none

%VBoxManageExe% modifyvm %VM_Name% --uart1 0x3f8 4 --uartmode1 COM1
%VBoxManageExe% modifyvm %VM_Name% --uart2 off
%VBoxManageExe% modifyvm %VM_Name% --uart3 0x3e8 4 --uartmode3 COM3
%VBoxManageExe% modifyvm %VM_Name% --uart4 0x2e8 3 --uartmode4 COM4

%VBoxManageExe% sharedfolder add %VM_Name% --name="VirtualBoxTransfer" --hostpath="%VM_Directory%\VB_Transfer" --automount --auto-mount-point="/home/%UserName%/Transfer"

:OS_Install
@rem  NOTE: A caret at the line end, appends the next line, the first character of the appended line will be escaped.

@echo on
%VBoxManageExe% unattended install "%VM_Name%" --user=%UserName% --password=%UserPassword% --country=AU --time-zone="Australia/Sydney" --hostname="%VM_Name%".myguest.virtualbox.org ^
--iso="%ISO_IMAGE%" --start-vm=gui --install-additions --post-install-command="/home/%UserName%/Transfer/SU_Install_Common_and_GamingMachine.sh"

@rem --additionsIsoPath = C:\Program Files\Oracle\VirtualBox\ VBoxGuestAdditions.iso

@rem does NOT work %VBoxManageExe% guestproperty wait "%VM_Name%" installation_finished
@rem %VBoxManageExe%VBoxManage controlvm "%VM_Name%" acpipowerbutton
@rem %VBoxManageExe%VBoxManage startvm "%VM_Name%"

@rem %VBoxManageExe% --nologo guestcontrol "%VM_Name%" run --exe "usermod -G vboxsf -a ubuntu" --username su --password ubuntu --wait-stdout
@echo.
@echo.
@echo ^+=====================================================================================^+
@echo ^+                                                                                     ^|
@echo ^+  REBOOT THE VM ONCE THE INSTALL FINISHES FOR THE TRASFER DIRECTORY MAPPING TO SETUP ^|
@echo ^+                                                                                     ^|
@echo ^+=====================================================================================^+
@echo ^+                                                                                     ^|
@echo ^+  After the reboot run follwoing (su password is ubuntu):                            ^|
@echo ^+                                                                                     ^|
@echo ^+          su                                                                         ^|
@echo ^+          adduser ubuntu sudo                                                        ^|
@echo ^+  and then reboot.                                                                   ^|
@echo ^+                                                                                     ^|
@echo ^+ and then:                                                                           ^|
@echo ^+          su                                                                         ^|
@echo ^+          cd ./Transfer                                                              ^|
@echo ^+          ./SU_Install_Common_and_GamingMachine.sh                                   ^|
@echo ^+                                                                                     ^|
@echo ^+=====================================================================================^+
@echo.
@echo.

goto end

:end

Offline AndrewCot

  • Almost regular
  • **
  • Posts: 193
Re: Guide for building C::B on Linux request due to wiki 502 error
« Reply #5 on: September 08, 2021, 12:27:06 pm »
Small update:

I have installed GCC 11.1.0 and have successfully built C::B with iGCC 11.1.0 and it runs.

Offline cacb

  • Regular
  • ***
  • Posts: 487
Re: Guide for building C::B on Linux request due to wiki 502 error
« Reply #6 on: September 08, 2021, 07:33:57 pm »
@cacb than you very much for the script.
You're welcome, thanks for the updates on GTK3 packages. I am building under Kubuntu 20.04 and find GTK2 works best in my case, but will be ready for GTK3.

Maintaining such a script is easier than a wiki I guess.

Offline AndrewCot

  • Almost regular
  • **
  • Posts: 193
Re: Guide for building C::B on Linux request due to wiki 502 error
« Reply #7 on: September 10, 2021, 06:11:57 am »
Watch out when build C::B via workspace and/or project file on Linux as some of the project files include references to GTK2 like the following:

               <Add option="`pkg-config gdk-2.0 --cflags`" />
               <Add option="`pkg-config --libs gtk+-2.0`" />

Hope this of some use for the future. Now for me to start working on getting the projects files to build with GTK3.