[Ohrrpgce] SVN: james/12141 Docker: add a first-draft attempt at an mxe build environment in a docke

Ralph Versteegen teeemcee at gmail.com
Sat Dec 26 20:24:58 PST 2020


You need the gpm library. It might be called libgpm-dev in ubuntu.

On Sun, 27 Dec 2020 at 10:33, James Paige <Bob at hamsterrepublic.com> wrote:

> Okay! Thank you for all those good clarifications.
>
> I tried to incorporate them into my Dockerfile, but no luck yet. Right now
> it is failing with
>
> CC src/rtlib/obj/linux-x86/io_print.o
> CC src/rtlib/obj/linux-x86/io_print_bool.o
> src/rtlib/linux/io_mouse.c:17:17: fatal error: gpm.h: No such file or
> directory
>  #include <gpm.h>
>                  ^
> compilation terminated.
> makefile:670: recipe for target 'src/rtlib/obj/linux-x86/io_mouse.o' failed
> make: *** [src/rtlib/obj/linux-x86/io_mouse.o] Error 1
> make: *** Waiting for unfinished jobs....
> The command '/bin/sh -c make compiler install-compiler install-includes
> -j6     && make rtlib install-rtlib gfxlib2 install-gfxlib2 MULTILIB=32 -j6
>     && make rtlib install-rtlib gfxlib2 install-gfxlib2 MULTILIB=64 -j6
> && make unit-tests     && echo "Done make linux and unit tests..."'
> returned a non-zero code: 2
>
>
>
> On Wed, Dec 23, 2020 at 7:31 PM Ralph Versteegen <teeemcee at gmail.com>
> wrote:
>
>> It isn't necessary to use a config.mk file. I ran
>> make rtlib install-rtlib gfxlib2 install-gfxlib2
>> TARGET=i686-w64-mingw32.static prefix=$HOME/local/fbc-git CFLAGS="-g
>> -DDISABLE_FFI"
>> and it worked for me. This should have worked regardless of which fbc
>> branch you were on; I didn't add that flag.
>>
>> Then I had a look at mxe's libffi test program and found that they use
>> pkg-config to get the include path. The following works:
>> TARGET=i686-w64-mingw32.static
>> make rtlib install-rtlib gfxlib2 install-gfxlib2 TARGET=$TARGET
>> prefix=$HOME/local/fbc-git CFLAGS="-g `$TARGET-pkg-config libffi --cflags`"
>> I'm guessing that ffi.h is hidden like this because it's arch-specific,
>> unlike normal headers.
>>
>> On Thu, 24 Dec 2020 at 03:54, Ralph Versteegen <teeemcee at gmail.com>
>> wrote:
>>
>>>
>>>
>>> On Thu, 24 Dec 2020 at 03:52, Ralph Versteegen <teeemcee at gmail.com>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Thu, 24 Dec 2020 at 03:45, Ralph Versteegen <teeemcee at gmail.com>
>>>> wrote:
>>>>
>>>>> Oh, sorry, I did write up instructions for compiling but didn't send
>>>>> them yet.
>>>>>
>>>>> In order to compile a fbc that can target android you of course need
>>>>> to use https://github.com/rversteegen/fbc.git which I have just
>>>>>
>>>>
>>> Argh, when I copy-pasted that link from github I failed to realise it
>>> didn't include the branch name. I meant my android branch from there.
>>>
>>>
>>>> merged upstream master into (and which therefore support emscripten
>>>>> too!) However this branch doesn't have the mac branch merged into it. That
>>>>> doesn't matter until we have a cross-compiler that targets Mac. At that
>>>>> point I can merge them. (Please ignore my androidmac branch, it's very old
>>>>> and I can't even remember what's going on in it.
>>>>>
>>>>> Anyway, to target android it isn't necessary to build the rtlib or
>>>>> gfxlib2 for it, unlike other platforms, due to our hacky android build
>>>>> system.
>>>>>
>>>>
>>>> To clarify: I used my android branch and compiled linux 32/64-bit and
>>>> windows libraries using it to get a multi-target FB installation.
>>>>
>>>> Also, I forgot to mention that recently when I tried to compile
>>>> ohrrpgce-game for Android I found it would crash when entering BROWSE(). I
>>>> didn't figure out why yet. I wonder whether it's due to something that went
>>>> wrong when I last merged upstream master into the android branch, back in
>>>> June. I think I must have successfully compiled for Android more recently
>>>> than that though. Would like to hear whether it works for you. I haven't
>>>> tried again since doing the latest merge.
>>>>
>>>>
>>>>> #!/bin/sh
>>>>>
>>>>> cat <<EOF > config.mk
>>>>> prefix=$HOME/local/fbc-git
>>>>> CFLAGS += -Wfatal-errors -g
>>>>> #FBC := ~/local/fbc-1.05/bin/fbc
>>>>>
>>>>> # For some reason mxe puts ffi.h in a separate include dir, so it
>>>>> can't be found.
>>>>> # libffi is only needed for FB's ThreadCall operator, which we don't
>>>>> use, so just disable it.
>>>>> CFLAGS += -DDISABLE_FFI
>>>>>
>>>>> EOF
>>>>>
>>>>> # Compiler and includes
>>>>> make compiler install-compiler install-includes -j6  || exit 1
>>>>> # Linux x86 libraries
>>>>> make rtlib install-rtlib gfxlib2 install-gfxlib2 MULTILIB=32 -j6  ||
>>>>> exit 1
>>>>> # Linux x86_64
>>>>> make rtlib install-rtlib gfxlib2 install-gfxlib2 MULTILIB=64 -j6  ||
>>>>> exit 1
>>>>> make unit-tests  || exit 1
>>>>> # Note: make doesn't return false if any log-tests fail. A number do
>>>>> fail,
>>>>> # should doublecheck none are due to changes on the android branch.
>>>>> #make log-tests  || exit 1
>>>>> # Windows x86 (using mxe; mxe's usr/bin must be in PATH)
>>>>> make rtlib install-rtlib gfxlib2 install-gfxlib2
>>>>> TARGET=i686-w64-mingw32.static -j6  || exit 1
>>>>>
>>>>> # The following are for compiling commandline Android test programs,
>>>>> but NOT needed for Game/Custom builds.
>>>>> # export PATH=$HOME/local/android-toolchain-r12b-api9-arm/bin:$PATH
>>>>> # export PATH=$HOME/local/android-toolchain-r12b-api17-x86/bin:$PATH
>>>>> # make rtlib install-rtlib TARGET=arm-linux-androideabi -j6  || exit 1
>>>>> # make rtlib install-rtlib TARGET=i686-linux-android -j6  || exit 1
>>>>>
>>>>>
>>>>>
>>>>> On Wed, 23 Dec 2020 at 09:38, James Paige <Bob at hamsterrepublic.com>
>>>>> wrote:
>>>>>
>>>>>> Right now this always fails in the step that does:
>>>>>>
>>>>>> RUN make TARGET=i686-w64-mingw32.static prefix=/usr/local/ rtlib
>>>>>> gfxlib2 install-rtlib install-gfxlib2
>>>>>>
>>>>>> It fails with this error message about ffi.h
>>>>>>
>>>>>> CC src/rtlib/obj/win32/sys_portio.o
>>>>>> CC src/rtlib/obj/win32/sys_rmdir.o
>>>>>> CC src/rtlib/obj/win32/sys_run.o
>>>>>> CC src/rtlib/obj/win32/sys_shell.o
>>>>>> CC src/rtlib/obj/win32/thread_call.o
>>>>>> src/rtlib/thread_call.c:33:17: fatal error: ffi.h: No such file or
>>>>>> directory
>>>>>> compilation terminated.
>>>>>> makefile:554: recipe for target 'src/rtlib/obj/win32/thread_call.o'
>>>>>> failed
>>>>>> make: *** [src/rtlib/obj/win32/thread_call.o] Error 1
>>>>>> The command '/bin/sh -c make TARGET=i686-w64-mingw32.static
>>>>>> prefix=/usr/local/ rtlib gfxlib2 install-rtlib install-gfxlib2' returned a
>>>>>> non-zero code: 2
>>>>>>
>>>>>> libffi-dev is definitely installed, so i don't know what the problem
>>>>>> is.
>>>>>>
>>>>>> I tried skipping libffi with CFLAGS=-DDISABLE_FFI per the
>>>>>> instructions in
>>>>>> https://rpg.hamsterrepublic.com/ohrrpgce/Cross-compiling but that
>>>>>> made no difference.
>>>>>>
>>>>>> I also tried switching from https://github.com/freebasic/fbc.git to
>>>>>> https://github.com/rversteegen/fbc for the FBC sources, and that
>>>>>> didn't help either (unless maybe I needed to use a specific branch?)
>>>>>>
>>>>>> Anyway, I'll look at it more later. This was as far as I got today :D
>>>>>>
>>>>>> ---
>>>>>> James Paige
>>>>>>
>>>>>> On Tue, Dec 22, 2020 at 3:32 PM <subversion at hamsterrepublic.com>
>>>>>> wrote:
>>>>>>
>>>>>>> james
>>>>>>> 2020-12-22 12:32:41 -0800 (Tue, 22 Dec 2020)
>>>>>>> 158
>>>>>>> Docker: add a first-draft attempt at an mxe build environment in a
>>>>>>> docker container.
>>>>>>>
>>>>>>> This does not work yet, but will provide a base for further
>>>>>>> improvements
>>>>>>> ---
>>>>>>> A   wip/docker/ohrrpgce-mxe-build-env/
>>>>>>> A   wip/docker/ohrrpgce-mxe-build-env/Dockerfile
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Ohrrpgce mailing list
>>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>>>
>>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>>
>>>>>> _______________________________________________
>>>>>> Ohrrpgce mailing list
>>>>>> ohrrpgce at lists.motherhamster.org
>>>>>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>>>>>
>>>>> _______________________________________________
>> Ohrrpgce mailing list
>> ohrrpgce at lists.motherhamster.org
>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>>
> _______________________________________________
> Ohrrpgce mailing list
> ohrrpgce at lists.motherhamster.org
> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.motherhamster.org/pipermail/ohrrpgce-motherhamster.org/attachments/20201227/967d3088/attachment-0001.html>


More information about the Ohrrpgce mailing list