Home › Forums › Platform Specific › Linux › Once more: Compiling for Linux
- This topic has 18 replies, 4 voices, and was last updated 10 years, 11 months ago by atom.
-
AuthorPosts
-
January 21, 2013 at 2:53 am #5716
Today I tried compiling Ctrlr again, so far without success.
The Old Game: compiling Introjucer, changing the Juce Path
I notice you now seem to use precompiled headers.
The result is here that my compiler can’t find any of the “*.h” includes.
Shall I point gcc to each and every directory in “Source” that has header files in it?
Or is there a more sensible way?January 21, 2013 at 11:00 pm #5733As I see there is a folder structure like ctrlr[/…]/Source/{Core,MIDI, … } and these folders contain various header files and the related c++ files.
The headers are included e.g. like#include “CtrlrIDs.h”
so for gcc to find it I have to specify the path like “gcc […] -I “…/ctrlr/Source/Core” “. In the same way for …/Source/MIDI, …/Source/Lua etc.
Has this any benefit over including like e.g.#include “Core/CtrlrIDs.h”
#include “MIDI/CtrlrMidiDevice.h”
etc. etc.and specifying only “gcc […] -I “…/ctrlr/Source” “?
How do you handle this with the other compilers?I’d like to automate the compile process so I can easily rebuild the newest version of Ctrlr. I already made a patch to change the Juce Directory from within a script, which seems to work.
By the way, I have access to a rather powerful workstation (dual Opteron 6274).
If this works I can build you some Linux nightlies on a semi regular base, if you want.Best Regards,
RomanJanuary 22, 2013 at 12:03 am #5735Those -I are set in Introjucer project in the Makefile section you can see them there, it just helpes with code readability.
January 22, 2013 at 12:39 am #5736Im getting the nasty boost bug with the macro https://svn.boost.org/trac/boost/ticket/6631
but that’s all for now, i worked around it somehow, just don’t remember how now
January 22, 2013 at 3:23 am #5739Well… I “solved” the include thing. I suspected deeply dark magic there, but it was actually just a few folders.
Now I’m hitting the problem with boost and luabind.
I tried working around by using boost 1.48, but that version doesn’t compile on my system anymore…So this is probably where I can stop, until you remember your workaround or find another solution to make Ctrlr work with newer versions of boost…
I’d be glad if you did 😉Good Night!
January 22, 2013 at 11:11 pm #5756Try to update the source now and rebuild.
What the Introjucer project assumes, is that the structure of all sources looks like:
# /home/atom/devel Ctrlrv4 checked out from url https://ctrlrv4.svn.sourceforge.net/svnroot/ctrlrv4 # /home/atom/devel/ctrlrv4 Latest JUCE from SF.net or GitHub repo # /home/atom/devel/juce VSK SDK 2.4 needed for the plugin build # /home/atom/devel/vstsdk2.4
The rest of libraries (boost, Xorg, alsa, jack, freetype) are assumed to be installed in the system.
January 23, 2013 at 7:41 pm #5778The source structure should be taken care of by a few patches I created.
(will be switching to a sed based solution probably)As of today the nightly still doesn’t compile, due to errors with luabind.
I attached the commandline output in a textfile.- This reply was modified 11 years, 3 months ago by romsom.
Attachments:
You must be logged in to view attached files.January 23, 2013 at 9:49 pm #5783Ok here is my build log, from a pure source from the latest Ctrlr checked out of SVN. Notice gcc, boost versions (i use slackware, always did)
Attachments:
You must be logged in to view attached files.January 25, 2013 at 9:57 pm #5817Alright, boost 1.49 also won’t compile on my system (Arch just went for 1.52)
Is it likely that you will make Ctrlr compatible with boost 1.50 or 1.52 soon or should I setup a less cutting edge system if I want to use the latest ctrlr in the next few weeks?January 25, 2013 at 11:30 pm #5822I’ll see if later boost works on windows first if it does i’ll try to make it work on linux.
January 26, 2013 at 8:13 pm #5851Well i pupdated my boost on both windows and linux to 1.52
[atom@suonko:~/devel/ctrlrv4/nightly/Builds/Generated/Linux/Standalone]$ cat /usr/include/boost/version.hpp | grep BOOST_LIB_VERSION // BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION #define BOOST_LIB_VERSION "1_52"
And i can build Ctrlr. I’m at revision:
[atom@suonko:~/devel/ctrlrv4/nightly/Builds/Generated/Linux/Standalone]$ svn info Path: . Working Copy Root Path: /home/atom/devel/ctrlrv4 URL: https://ctrlrv4.svn.sourceforge.net/svnroot/ctrlrv4/nightly/Builds/Generated/Linux/Standalone Repository Root: https://ctrlrv4.svn.sourceforge.net/svnroot/ctrlrv4 Repository UUID: 559736a1-76c2-41ba-91cf-453531267ba5 Revision: 1234 Node Kind: directory Schedule: normal Last Changed Author: ctrlr Last Changed Rev: 1233 Last Changed Date: 2013-01-26 04:08:16 +0100 (Sat, 26 Jan 2013)
And my juce pull command returned you can see what ID of the source i have on disk “Updating d907508..c559b33”
[atom@suonko:~/devel/juce]$ git pull remote: Counting objects: 55134, done. remote: Compressing objects: 100% (11913/11913), done. remote: Total 54019 (delta 45303), reused 49545 (delta 40956) Receiving objects: 100% (54019/54019), 88.94 MiB | 2.29 MiB/s, done. Resolving deltas: 100% (45303/45303), completed with 790 local objects. From git://juce.git.sourceforge.net/gitroot/juce/juce d907508..c559b33 master -> origin/master * [new branch] modules -> origin/modules From git://juce.git.sourceforge.net/gitroot/juce/juce * [new tag] 1_52_release -> 1_52_release * [new tag] 1_53_release -> 1_53_release * [new tag] V1.51 -> V1.51 Updating d907508..c559b33 Fast-forward modules/juce_audio_devices/native/juce_win32_ASIO.cpp | 304 +++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------- modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm | 172 ++++++++++++++++++++++++++++++++++++--------------- modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp | 46 ++++++++------ modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp | 2 +- modules/juce_core/text/juce_String.h | 8 +-- modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h | 2 +- 6 files changed, 306 insertions(+), 228 deletions(-)
January 27, 2013 at 3:30 am #5857Success! rev 1234 just compiled without a single error/warning! The problem seems to have been my fault. Introjucer changed some includes and probably other stuff and the changes consequently went into my patches. After switching to a different approach using “sed”, everything went fine. I attached the little script I will use to build a new executables in the future.
Btw, the offer still stands: it takes about 2 minutes to build Ctrlr here, so it won’t be a problem to supply the flourishing linux ctrlr community (still countable with one hand I guess) with the occasionally nightly build.
Thx for your help, where none should have been needed 😉
- This reply was modified 11 years, 3 months ago by romsom.
- This reply was modified 11 years, 3 months ago by romsom.
- This reply was modified 11 years, 3 months ago by romsom.
Attachments:
You must be logged in to view attached files.January 28, 2013 at 9:53 pm #5888Hi there,
I would politely ask for recent nightly builds of ctrlr for Linux (I am using Xubuntu), if you don’t mind.
Greetings, Michael
January 29, 2013 at 1:59 pm #5894The problem with me building Linux binaries is compatibility i’d have to build this for Fedora/Ubuntu/Arch/Gentoo i don’t really what. There are binary dependencies and i assume they’ll be hard to meet on all those distros.
January 29, 2013 at 8:38 pm #5907I’ll spend a few hours and try to set up some usable build systems for DEB and RPM packages and setup a repository for yum and aptitude, that much i can do.
January 29, 2013 at 9:12 pm #5916Dear atom,
binaries just as in the download section wold be more than sufficient (at least for me). Thank you for your efforts!
Cheers, Michael
February 4, 2013 at 9:08 pm #6073Dear atom,
thank you very much – I saw that “Ctrlr_1261.bin” is online now.
Greetings, Michael
May 31, 2013 at 8:39 am #9428hi … im on linux meanwhile and not going back to win foshua! i just downloaded the compiled .bin from nightly. how would i run this in ubuntu? its not running in a terminal like that. any more plans for linux ports?
May 31, 2013 at 12:07 pm #9435It’s not a port it’s a native build. The binary should run, give it execute bits “chmod a+rx Ctrlr.bin” and run it, it’s a self extracting archive inside it there is a Standalone and a VST binary.
-
AuthorPosts
- The forum ‘Linux’ is closed to new topics and replies.