Thanks for the input on cross compiling with cmake. Using the latest
version of cmake, and the documentation I made a number of attempts to
use mingw to build a win32 plplot from a linux host. By the end of the
day Friday I reached the conclusion that although this is probably
possible using the new cmake, almost certainly the cmake project itself
would needs some tweaks. If anyone is interested I can go into the
details of that.
So today I try a new strategy. I'll try to make a special purpose
Makefile for this, manually edited config.h etc, and see what happens.
Before I go trying to get the cross compile to work, I'll try a native
(linux) version first as an incremental step. This appears to be "so
close", but maybe I'm still light years away. This is my runtime error
for my test program (the test program runs fine with a native build via
cmake):
*** PLPLOT ERROR, IMMEDIATE EXIT ***
Unable to either (1) open/find or (2) allocate memory for the font file
Program aborted
and that's not a segmentation fault which is certainly something to
celebrate! Maybe someone who actually knows what the real build system
is suppose to do will get this at first sight? Keep in mind, that
(especially for the sake of reducing build complexity in this special
case) all I'm trying to build is the C core library with extcairo. I
suspect I need to change a #define or something since I'm guessing font
files don't enter the picture with pangocairo / cairo? I'm on x86_64
ubuntu 8.04. I think this is all the relevant files:
====== Makefile.linux
============================================================
#experimental Makefile based mostly
CC = gcc -g
LIBS=`pkg-config --libs cairo pangocairo`
CFLAGS = -I ./include `pkg-config --cflags cairo pangocairo glib-2.0`
-DHAVE_CONFIG_H
HEADERS = ./include/config.h ./include/plcore.h \
./include/pldebug.h ./include/plDevs.h \
./include/plplot.h ./include/plplotP.h \
./include/plstrm.h ./include/pldll.h \
./include/pdf.h ./include/disptab.h \
./include/drivers.h ./include/metadefs.h \
./lib/nn/nan.h ./include/plevent.h \
./include/mt19937ar.h ./include/plhershey-unicode.h
LIBOBJS = ./obj/cairo.o ./obj/null.o ./obj/plargs.o \
./obj/plbox.o ./obj/plbuf.o ./obj/plcont.o \
./obj/plcore.o ./obj/plctrl.o ./obj/plcvt.o \
./obj/pldtik.o ./obj/plfill.o ./obj/plgridd.o \
./obj/plhist.o ./obj/plimage.o ./obj/plline.o \
./obj/plmap.o ./obj/plot3d.o ./obj/plpage.o \
./obj/plsdef.o ./obj/plshade.o ./obj/plstdio.o \
./obj/plstripc.o ./obj/plsym.o ./obj/pltick.o \
./obj/plvect.o ./obj/plvpor.o ./obj/plwind.o \
./obj/pdfutils.o ./obj/mt19937ar.o
all: libplplot.so libcsirocsa.so test1
./obj/csa.o : ./lib/csa/csa.c ./lib/csa/csa.h ./lib/csa/nan.h
./lib/csa/version.h
$(CC) -fpic $(CFLAGS) -c ./lib/csa/csa.c -o ./obj/csa.o
libcsirocsa.so : ./obj/csa.o
$(CC) -shared -Wl,-soname,libcsirocsa.so -o libcsirocsa.so
libplplot.so : $(LIBOBJS) libcsirocsa.so
$(CC) -shared -Wl,-soname,libplplot.so -o libplplot.so $(LIBOBJS)
$(LIBS) libcsirocsa.so
./obj/mt19937ar.o : ./src/mt19937ar.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/mt19937ar.c -o ./obj/mt19937ar.o
./obj/cairo.o : ./drivers/cairo.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./drivers/cairo.c -o ./obj/cairo.o
./obj/null.o : ./drivers/null.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./drivers/null.c -o ./obj/null.o
./obj/plargs.o : ./src/plargs.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plargs.c -o ./obj/plargs.o
./obj/plbox.o : ./src/plbox.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plbox.c -o ./obj/plbox.o
./obj/plbuf.o : ./src/plbuf.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plbuf.c -o ./obj/plbuf.o
./obj/plcont.o : ./src/plcont.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plcont.c -o ./obj/plcont.o
./obj/plcore.o : ./src/plcore.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plcore.c -o ./obj/plcore.o
./obj/plctrl.o : ./src/plctrl.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plctrl.c -o ./obj/plctrl.o
./obj/plcvt.o : ./src/plcvt.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plcvt.c -o ./obj/plcvt.o
./obj/pldtik.o : ./src/pldtik.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/pldtik.c -o ./obj/pldtik.o
./obj/plfill.o : ./src/plfill.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plfill.c -o ./obj/plfill.o
./obj/plgridd.o : ./src/plgridd.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plgridd.c -o ./obj/plgridd.o
./obj/plhist.o : ./src/plhist.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plhist.c -o ./obj/plhist.o
./obj/plimage.o : ./src/plimage.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plimage.c -o ./obj/plimage.o
./obj/plline.o : ./src/plline.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plline.c -o ./obj/plline.o
./obj/plmap.o : ./src/plmap.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plmap.c -o ./obj/plmap.o
./obj/plot3d.o : ./src/plot3d.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plot3d.c -o ./obj/plot3d.o
./obj/plpage.o : ./src/plpage.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plpage.c -o ./obj/plpage.o
./obj/plsdef.o : ./src/plsdef.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plsdef.c -o ./obj/plsdef.o
./obj/plshade.o : ./src/plshade.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plshade.c -o ./obj/plshade.o
./obj/plstdio.o : ./src/plstdio.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plstdio.c -o ./obj/plstdio.o
./obj/plstripc.o : ./src/plstripc.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plstripc.c -o ./obj/plstripc.o
./obj/pltick.o : ./src/pltick.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/pltick.c -o ./obj/pltick.o
./obj/plvect.o : ./src/plvect.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plvect.c -o ./obj/plvect.o
./obj/plvpor.o : ./src/plvpor.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plvpor.c -o ./obj/plvpor.o
./obj/plwind.o : ./src/plwind.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plwind.c -o ./obj/plwind.o
./obj/plsym.o : ./src/plsym.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/plsym.c -o ./obj/plsym.o
./obj/pdfutils.o : ./src/pdfutils.c $(HEADERS)
$(CC) -fpic $(CFLAGS) -c ./src/pdfutils.c -o ./obj/pdfutils.o
test1 : libplplot.so
$(CC) -I ./include `pkg-config --cflags cairo` test1.c libplplot.so
libcsirocsa.so -o test1
clean:
rm -f ./obj/*
rm -f libcsirocsa.so
rm -f libplplot.so
rm -f test1
============ test1.c - taken from mailing list archives ==================
#include <stdio.h>
#include <cairo.h>
#include <cairo-ps.h>
#include <plplot.h>
int main(int argc, char *argv[])
{
cairo_surface_t *cairoSurface;
cairo_t *cairoContext;
cairoSurface = cairo_ps_surface_create("test.ps", 720, 540);
cairoContext = cairo_create(cairoSurface);
plsdev("extcairo");
plinit();
pl_cmd(PLESC_DEVINIT, cairoContext);
plenv(0.0, 1.0, 0.0, 1.0, 1, 0);
pllab("x", "y", "title");
plend();
cairo_destroy(cairoContext);
cairo_surface_destroy(cairoSurface);
return 0;
}
================ config.h (total guessing) =========================
this is long so I'll post if anyone cares.
------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Plplot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plplot-devel