raynebc/editor-on-fire

Provide updated instructions or a development environment

Closed this issue ยท 15 comments

Hello,

I would like to develop some features (public; but for my own use) in EoF :

  • key config ini (bootcamp shorts don't work and so stuck with the weird super super slow menus and 5 sec per action delay)
  • some buttons to get the my most common functions w/o short-keys (i.e. change track, Select rest)
  • open directly out of rocksmith-custom-song-toolkit/Psarc the song for quick edits...i.e. add Sections, edit timing on lyrics

and the current instructions are very old and deprecated (dead links, old unavailable software components) and I could not set it up. Please update them
or share a VM(VirtualBox, Vmware, Docker, etc.)

Hope the above makes sense&is feasible,
Bogdan.

Which platform are you needing build instructions for?

win

How do you feel about using MSYS2? I now use that for all my Windows builds. I think I can probably get EOF to build using that fairly easily.

The current Windows build instructions (https://github.com/raynebc/editor-on-fire/blob/wiki/Building_EOF_in_Windows.md) do include using MSYS2. The dead links in question are the ones for zlib, libpng, MSYS and the TDM compiler toolchain. You could try:
http://gnuwin32.sourceforge.net/packages/zlib.htm
http://gnuwin32.sourceforge.net/packages/libpng.htm
https://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/

And if you prefer TDM-GCC instead of another compiler like MinGW, this one may work:
https://jmeubank.github.io/tdm-gcc/

I was able to build EOF fairly easily under MSYS2. The build instructions in the wiki only seem to be using MSYS for building dependencies. With MSYS2 we don't actually have to build any of those (other than Allegro 4) since they are included in the package manager.

I'll probably add a new makefile.msys build script that takes advantage of MSYS2 to simplify the build process. The current makefile.mingw assumes you are using a MinGW compiler without MSYS and thus fails to build EOF.

The hardest part of building EOF is going to be building Allegro 4. This is mainly due to the lack of DirectX headers in a default MSYS2 install. You have to download those and manually place them in the correct location. I'll include proper links in the instructions.

I've updated the build scripts to include an MSYS variant. When running make from the MSYS2 MinGW 32-bit terminal in the root of the EOF source code directory, MSYS will be auto-detected and the MSYS build script will be used.

The build instructions have also been updated to provide all the instructions necessary for building EOF from source. Please let me know if you have any issues.

installed CMake in mSYS/...had some issue with path finding cmake...working after some restarts and terminal kick off from start menu link
ran msys 32b terminal in admin mode to make install due to issues writing in C:\Program Files (x86)\ALLEGRO

now stuck at building EoF:

make

make -C src -f makefile.msys
make[1]: Entering directory '/home/editor-on-fire/src'
gcc -Wall -O2 -fomit-frame-pointer -ffast-math -funroll-loops -mwindows -static -static-libgcc -static-libstdc++ -flto -Ialogg/include -DEOF_BUILD -DALLEGRO_STATICLINK -c -o menu/file.o menu/file.c
menu/file.c:1:10: fatal error: allegro.h: No such file or directory
1 | #include <allegro.h>
| ^~~~~~~~~~~
compilation terminated.
make[1]: *** [: menu/file.o] Error 1
make[1]: Leaving directory '/home/editor-on-fire/src'
make: *** [Makefile:28: top] Error 2

Looks like I forgot to include installing CMake in the instructions. Also, looks like Allegro is installing in the wrong directory. It should be installing in c:\msys64\mingw32. I'll update the instructions to make it specify the correct install directory when building Allegro.

I've updated the instructions. They should work now.

1st glance couple of things missing preventing EoF compilation:

  • menu/edit.c:2:10: fatal error: rubberband/rubberband-c.h: No such file or directory
  • menu/edit.c:4:10: fatal error: vorbis/vorbisfile.h: No such file or directory
  • menu/codec.h:25:10: fatal error: ogg.h: No such file or directory
  • menu/../spectrogram.h:3:10: fatal error: fftw3.h: No such file or directory

other things cmake info: -- Could NOT find VORBIS (missing: OGG_INCLUDE_DIR VORBIS_INCLUDE_DIR OGG_LIBRARY VORBIS_LIBRARY VORBISFILE_LIBRARY)

Alright, I've updated the instructions again to install libogg and libvorbis. If EOF still doesn't build with the new instructions, please post the output from the build and also from this command: echo | gcc -E -Wp,-v -

With the updated instructions, all of the needed header files should exist under /mingw32/include (C:\msys64\mingw32\include in Windows-speak). If they are not found when building EOF, they are either installed incorrectly or gcc is not looking in the right place for them.

fftw3 and rubberband (potentially sample rate) headers still missing

capit@BOGWX MINGW32 ~
$ git clone https://github.com/raynebc/editor-on-fire.git
cd editor-on-fire
make
Cloning into 'editor-on-fire'...
remote: Enumerating objects: 17624, done.
remote: Counting objects: 100% (362/362), done.
remote: Compressing objects: 100% (252/252), done.
remote: Total 17624 (delta 231), reused 204 (delta 107), pack-reused 17262
Receiving objects: 100% (17624/17624), 17.97 MiB | 7.53 MiB/s, done.
Resolving deltas: 100% (15036/15036), done.
Updating files: 100% (397/397), done.
make -C src -f makefile.msys
make[1]: Entering directory '/home/capit/editor-on-fire/src'
gcc -Wall -O2 -fomit-frame-pointer -ffast-math -funroll-loops -mwindows -static -static-libgcc -static-libstdc++ -flto -Ialogg/include -DEOF_BUILD -DALLEGRO_STATICLINK -c -o menu/file.o menu/file.c
In file included from menu/../main.h:12,
from menu/file.c:5:
menu/../pathing.h:203:13: warning: inline function 'eof_big_number_add_big_number' declared but never defined
203 | inline void eof_big_number_add_big_number(EOF_BIG_NUMBER *bignum, EOF_BIG_NUMBER *addend);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
menu/../pathing.h:201:13: warning: inline function 'eof_big_number_increment' declared but never defined
201 | inline void eof_big_number_increment(EOF_BIG_NUMBER *bignum);
| ^~~~~~~~~~~~~~~~~~~~~~~~
menu/../pathing.h:199:13: warning: inline function 'eof_big_number_add' declared but never defined
199 | inline void eof_big_number_add(EOF_BIG_NUMBER *bignum, unsigned long addend);
| ^~~~~~~~~~~~~~~~~~
gcc -Wall -O2 -fomit-frame-pointer -ffast-math -funroll-loops -mwindows -static -static-libgcc -static-libstdc++ -flto -Ialogg/include -DEOF_BUILD -DALLEGRO_STATICLINK -c -o menu/edit.o menu/edit.c
menu/edit.c:2:10: fatal error: rubberband/rubberband-c.h: No such file or directory
2 | #include <rubberband/rubberband-c.h> //For rubberband benchmarking
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [: menu/edit.o] Error 1
make[1]: Leaving directory '/home/capit/editor-on-fire/src'
make: *** [Makefile:28: top] Error 2

capit@BOGWX MINGW32 ~/editor-on-fire
$ echo | gcc -E -Wp,-v -

1 ""

1 ""

1 ""

1 ""

ignoring duplicate directory "C:/msys64/mingw32/lib/gcc/../../lib/gcc/i686-w64-mingw32/10.2.0/include"
ignoring nonexistent directory "D:/a/_temp/msys/msys64/mingw32/include"
ignoring nonexistent directory "/mingw32/include"
ignoring duplicate directory "C:/msys64/mingw32/lib/gcc/../../lib/gcc/i686-w64-mingw32/10.2.0/include-fixed"
ignoring duplicate directory "C:/msys64/mingw32/lib/gcc/../../lib/gcc/i686-w64-mingw32/10.2.0/../../../../i686-w64-mingw32/include"
ignoring nonexistent directory "D:/a/_temp/msys/msys64/mingw32/i686-w64-mingw32/include"
#include "..." search starts here:
#include <...> search starts here:
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.2.0/include
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.2.0/../../../../include
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.2.0/include-fixed
C:/msys64/mingw32/bin/../lib/gcc/i686-w64-mingw32/10.2.0/../../../../i686-w64-mingw32/include
End of search list.

capit@BOGWX MINGW32 ~/editor-on-fire

I went back over the instructions and found some errors. I forgot to include FFTW in the dependencies and Rubber Band was missing from the Quick Setup section. libsamplerate is a dependency of Rubber Band, so it should be installed when that is installed.

The instructions have been updated.

I should have included them too using your existing instructions as examples...instead of adding h. files myself to no avail

all good now ..much appreciated...
next now to do the hello world test ... and followup on m y own promise to make this tool..more accessible...for myself and who knows for others (doubtful as a bad programmer ...to bad to merge with standards I mean...)

I might ask about how to dev my ideas potentially with Visual studio as super familiar with from my Rocksmith toolkit fork; although I understand totally off topic

No reason you can't write code in Visual Studio and pop into the MSYS terminal for compilation. Also, if you do make changes you'd like to share, feel free to send them our way.

If you're going to want to send in patches, it's probably a good idea to create your own fork so you can send pull requests for review.

Since the instructions are working now, I'm going to go ahead and close this issue.