Hi, I'm using walkero dockers
walkero/amigagccondocker os4-gcc11-afxgroup 0fa2e72d58b1 10 months ago 4.61GB
walkero/amigagccondocker os4-gcc11-adtools 214178218446 10 months ago 3.36GB
when trying to crosscomìile vba emulator I get:
root@3c985447511a:/work/amiga/VisualBoyAdvance-1.8.0-SDL2# ./configure --host=ppc-amigaos --target=ppc-amigaos checking build system type... x86_64-unknown-linux-gnu checking host system type... powerpc-unknown-amigaos checking target system type... powerpc-unknown-amigaos checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... yes checking for ppc-amigaos-strip... ppc-amigaos-strip checking for ppc-amigaos-gcc... /opt/ppc-amigaos/bin/ppc-amigaos-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... yes checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether /opt/ppc-amigaos/bin/ppc-amigaos-gcc accepts -g... yes checking for /opt/ppc-amigaos/bin/ppc-amigaos-gcc option to accept ISO C89... none needed checking for style of include used by make... GNU checking dependency style of /opt/ppc-amigaos/bin/ppc-amigaos-gcc... gcc3 ./configure: line 3839: AM_PROG_CC_C_O: command not found checking for bison... bison -y checking for flex... flex checking lex output file root... lex.yy checking lex library... none needed checking whether yytext is a pointer... no checking whether we are using the GNU C++ compiler... yes checking whether /opt/ppc-amigaos/bin/ppc-amigaos-g++ accepts -g... yes checking dependency style of /opt/ppc-amigaos/bin/ppc-amigaos-g++... gcc3 checking for ppc-amigaos-ranlib... /opt/ppc-amigaos/bin/ppc-amigaos-ranlib checking for nasm... no checking for gzopen in -lz... yes checking for pthread_yield in -lpthread... no checking for pkg-config... /usr/bin/pkg-config checking for libpng... Package libpng was not found in the pkg-config search path. Perhaps you should add the directory containing 'libpng.pc' to the PKG_CONFIG_PATH environment variable No package 'libpng' found configure: error: Library requirements (libpng) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.
alas I just know minimal usage of dockers:
How can I "install" libpng?
Or do I need add extra parameters to ./configure to search through my "own" directory with such (missing) dependencies?
TiA
The docker containers are like linux installations in any computer. To install that library you have to get into the container and go to the SDK path /local/newlib and add the files you need.
The way to do it depends on how you run the docker containers. If you tell me how you execute them, I could help you do that installation.
Another way would be to extend the docker image with your changes by creating your own images.
ok, here is how I launch your image:
sudo docker run -it --rm --name gcc11-ppc -v ${PWD}:/work -w /work walkero/amigagccondocker:os4-gcc11-adtools /bin/bash
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
So, based on the way you run it, you create the docker container and get inside it, by running bash. If you do a
printenv
there should be an ENV variable named SDK_PATH or something like that, pointing to the SDK in the disk. You need to go in there and under local/newlib the library you want.
There is curl, wget to download it inside the container and also you have mc to do file manipulation.
Have in mind though, that when you exit the container, this is destroyed, which means you need to install that library every time you want to use it. To avoid that remove the --rm from the command you use when you run the docker container.
ok thx so will remove --rm option.
BTW when linking with existing libpng16 on such dokcer, then in amigaos4 I get:
#VisualBoyAdvance --help
assertion "PNG16Base != NULL" failed: file "static/autoinit_png16_base.c", line 48
Building/linking with the one I have/use in my amigaos4 SDK then no problem:
#VisualBoyAdvance --help
VisualBoyAdvance [option ...] file
Options:
-1, --video-1x 1x
-2, --video-2x 2x
-3, --video-3x 3x
...
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
libpng16 from docker image/container os4-gcc11-exp
/* png.h - header file for PNG reference library
*
* libpng version 1.6.38 - September 14, 2022
*
And the one I have/use:
/* png.h - header file for PNG reference library
*
* libpng version 1.6.43
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
You don't actually need to have the library installed into the SDK. You could have your own third-party subdirectory, and use GCC's -I and -L command line options to tell GCC where to find the header and library files.
I've done this with ZitaFTP server, so that it compiles out-of-the-box, without needing to install dependency files into the SDK on every machine.
Join the Kea Campus - upgrade your skills; support my work; enjoy the Amiga corner.
https://keasigmadelta.com/ - see more of my work
@jabirulo
Today I uploaded a new version of my docker containers with gcc11. From now on, they will have their own versions, starting from 2.0.0, so that people can use the version that works better for them.
These new docker image includes ppc-amigaos-gcc-11, which supports newlib, clib2 and clib4, with plenty of libraries already installed, including the libpng16
You can try it by pulling the image
walkero/amigagccondocker:os4-gcc11-2.0.0
or
walkero/amigagccondocker:os4-gcc11
which will be used as the latest image
If you try it, please let me know how it works with your projects. Have in mind that it worked fine with a few of my projects, but it is not extensively tested yet.
using your latest docker image above.
Still getting same issue when building ¿:-/
Just changing/copying libpng16.a from my aos4 system solves it:
The original (.BAK) is 191 856 bytes while the one I have/use 1 275 458
When using/building with .BAK I get on amigaos4 shell/CLI:
#VisualBoyAdvance
assertion "PNG16Base != NULL" failed: file "static/autoinit_png16_base.c", line 48
With the 1.2MB png16.a it works fine.
EDIT1: trying to build another tiny game that uses png and nop problem ¿:-/
no idea then what VBA makefile does (or does not) that executable fails with above issue.
EDIT2; I just change/use the latest libpng (http://www.os4depot.net/?function=showfile&file=development/library/graphics/libpng.lha) instead the one from the docker image (os4-gcc11) has.
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
The build(link stage is:
and it's from https://github.com/smarkusg/VisualBoyAdvance-1.8.0-SDL2
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
@jabirulo
Thank you so much for testing it. The libpng16 I use is from
https://github.com/salass00/png16_lib
If you had issues with it, as you described here, it would make sense to file an issue at that repo.
Meanwhile, I will change the docker image to take the latest from the OS4Depot as you did.
thx, done.
https://github.com/salass00/png16_lib/issues/2
EDIT: and seems I forgot that I needed to install the png16.library in LIBS: on my AmigaOS4 system.
EDIT2: build again VBA with docker image (and its libpng16.a 1.6.38) and now with png16.library on my aos4 LIBS: no problems, THX
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P
So the library from salass is working fine, right?
If yes, I will leave the docker image as it is, and if someone want to use a different version, they can override.
yes works ok, but it needs png16.library, so you need to include it somewhere so it can be "installed" in amigaos4.
Like is for clib4.library (...SDK/clib4)
AOS4.1/SAM460ex/PPC460EX-1155MHZ/2048MB/RadeonHD6570/SSD120GB/DVDRW :-P