I tried copying the new cairo include in the original (2008) cairo include obtaing the following:
ppc-amigaos-c++ -I/SDK/local/common/include/cairo -ggdb -Iinclude -c -o source/main.o source/main.cpp In file included from source/main.cpp:38: /SDK/local/common/include/cairo/cairo-amigaos.h:21:3: error: #error Cairo was not compiled with support for the amigaos backend source/main.cpp: In function 'void LoadImage()': source/main.cpp:173: error: 'cairo_image_surface_create_from_png' was not declared in this scope source/main.cpp: In function 'void Draw(uint32, uint32, BitMap*)': source/main.cpp:1368: error: 'cairo_amigaos_surface_create' was not declared in this scope make: *** [source/main.o] Error 1
The same happen if i delete the old cairo include and point to the latest include directory.
I've added the cairo-amigaos.h together with the other new include files, but i get the same error as above
Patched the original cairo.h adding amiga os surface...
in the typedef enum _cairo_surface_type Configuring again... compiling...
nothing same error:
i wonder how many steps remain to have a full compiled cairo
patched cairo-features.h too.
included the define CAIRO_HAS_AMIGAOS_SURFACE 1 ...
It worked now!!!
Since the cairo-feature is generated by the configure process, what i have to modify in the configure file to make the process more clean?
Edited by AmigaBlitter on 2015/6/9 12:10:15 Edited by AmigaBlitter on 2015/6/9 12:46:54 Edited by AmigaBlitter on 2015/6/9 13:14:10 Edited by AmigaBlitter on 2015/6/9 13:29:47
I'm asking now: "Since the cairo-feature is generated by the configure process, what i have to modify in the configure file to make the process more clean?"
i've just installed the new sdk. Moreover, i'm using a new version of the gnu compiler: 4.9.1.
When i try to configure again pixman: i get the following error:
sh configure --prefix=/SDK/local/newlib --host=ppc-amigaos --enable-static=yes --enable-shared=no --disable-vmx --enable-timers=no --enable-gtk=no --enable-libpng=no
gcc:bin/rm: cannot lstat `conf1500228416.dir/conf1500228416.file': File or path name too long gcc:bin/rm: cannot lstat `conf1500228416.dir/conf1500228416.file': File or path name too long configure: WARNING: unrecognized options: --enable-0, --enable-0, --disable-0, --enable-0, --enable-0, --enable-0 configure: error: expected an absolute directory name for --prefix: 0
The issue is in the coreutils bundled with the 4.9.1 I gave you.
I tracked it to 2 files, rm and expr in SDK:gcc/bin. Delete them from that directory and it'll use the ones in SDK:local/C
Note that this is going effect no-one but you and me at the moment, since everyone else won't have the compiling environment I sent to you.
It might be best to either delete the coreutils out of SDK:gcc/bin, or copy what's in SDK:local/C into there, so you know you're working with a good set of coreutils.
Edited by MickJT on 2015/9/1 20:29:04 Edited by MickJT on 2015/9/1 20:31:37 Edited by MickJT on 2015/9/1 20:34:03 Edited by MickJT on 2015/9/1 20:35:13
These are just static libraries and all of the extra features that can be disabled during configure are which is why I'm calling the archive libcairo-lite.
I had sent him a native build of gcc 4.9.1 bundled with binutils 2.23.2 and whatever coreutils was available in the adtools trunk. Looks like the coreutils that were built as part of that (specifically rm & expr) had issues, for whatever reason.
I don't have time right at this moment to see if it's anything to do with the 4.9.1 I sent you. I'd just suggest copying everything in SDK:local/C into SDK:gcc/bin, or going 1 by 1 through SDK:gcc/bin deleting everything that already exists in SDK:local/C (don't delete anything in local/C).
Assuming the earlier (53.24) SDK works fine when unmodified, then if you merge in the newer gcc and do the above steps but it still doesn't work, then I'm out of ideas.
just noticed that the cairo.h doesn't have the amiga os surface. Maybe i'm wrong.
i Still having the error "cairo was not compiled for amiga os surface" if i point to /SDL/local/newlib/include/cairo. oreover, using the flags -lpng12 -lz i get: Id: cannot find -lz
If i point to /SDL/local/common/include/cairo seems that i have the amiga os surface for cairo.