Now I have problem with compiling programs with SDL lib.
I'm really bad in makefiles and it's beacoming anoying !
here is my program :
#include <stdio.h>
#include <stdlib.h>
#include <pspkernel.h>
#include <pspdebug.h>
#include <pspdisplay.h>
#include <pspctrl.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
PSP_MODULE_INFO("SDL_image", 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);
int SetupCallbacks(void);
int exit_callback(int arg1, int arg2, void *common);
int CallbackThread(SceSize args, void *argp);
int main()
{
SDL_Init(SDL_INIT_VIDEO);
SDL_Surface *ecran = NULL;
SDL_Surface *image = NULL;
ecran = SDL_SetVideoMode(480, 272, 32, SDL_HWSURFACE | SDL_DOUBLEBUF);
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
image = IMG_Load("image.png");
SDL_Rect coordonnee_image;
coordonnee_image.x = ecran->w / 2 - image->w / 2;
coordonnee_image.y = ecran->h / 2 - image->h / 2;
int continuer = 1;
pspDebugScreenInit();
SetupCallbacks();
SceCtrlData pad;
while(continuer)
{
sceCtrlReadBufferPositive (&pad, 1);
if (pad.Buttons & PSP_CTRL_UP)
{
coordonnee_image.y--;
}
else if (pad.Buttons & PSP_CTRL_DOWN)
{
coordonnee_image.y++;
}
if (pad.Buttons & PSP_CTRL_RIGHT)
{
coordonnee_image.x++;
}
else if (pad.Buttons & PSP_CTRL_LEFT)
{
coordonnee_image.x--;
}
SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 0, 0, 0));
SDL_BlitSurface(image, NULL, ecran, &coordonnee_image);
SDL_Flip(ecran);
}
SDL_FreeSurface(image);
SDL_FreeSurface(ecran);
SDL_Quit();
sceKernelSleepThread();
return 0;
}
int exit_callback(int arg1, int arg2, void *common)
{
sceKernelExitGame();
return 0;
}
int CallbackThread(SceSize args, void *argp)
{
int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL);
sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;
}
int SetupCallbacks(void)
{
int thid = 0;
thid = sceKernelCreateThread("update_thread", CallbackThread, 0x11, 0xFA0, 0, 0);
if(thid >= 0)
{
sceKernelStartThread(thid, 0, 0);
}
return thid;
}
and this is my makefile :
TARGET = SDL_image
OBJS = main.o
INCDIR =
CFLAGS = -G4 -Wall -O3
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
PSPSDK=$(shell psp-config --pspsdk-path)
PSPBIN = $(PSPSDK)/../bin
LIBDIR =
LDFLAGS =
STDLIBS= -lSDLmain -lSDL_image -lSDL -lpng -ljpeg -lm -lz \
-lpspsdk -lpspctrl -lpsprtc -lpsppower -lpspgu -lpspaudiolib -lpspaudio -lpsphprm
LIBS=$(STDLIBS)$(YOURLIBS)
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Les images
PSPSDK=$(shell psp-config --pspsdk-path)
DEFAULT_CFLAGS = $(shell $(SDL_CONFIG) --cflags)
include $(PSPSDK)/lib/build.mak
and here is the compiler response :
psp-gcc -I. -Ie:/devkitPro/devkitPSP/psp/sdk/include -G4 -Wall -O3 -D_PSP_FW_VER
SION=150 -L. -Le:/devkitPro/devkitPSP/psp/sdk/lib main.o -lSDLmain -lSDL_imag
e -lSDL -lpng -ljpeg -lm -lz -lpspsdk -lpspctrl -lpsprtc -lpsppower -lpspgu -lps
paudiolib -lpspaudio -lpsphprm -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsd
k -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpsp
user -lpspkernel -o SDL_image.elf
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o): In function `PSP_GL_Init':
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:109: undefine
d reference to `eglGetDisplay'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:109: undefine
d reference to `eglGetError'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:110: undefine
d reference to `eglInitialize'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:110: undefine
d reference to `eglGetError'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:135: undefine
d reference to `eglChooseConfig'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:135: undefine
d reference to `eglGetError'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:143: undefine
d reference to `eglCreateContext'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:143: undefine
d reference to `eglGetError'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:144: undefine
d reference to `eglCreateWindowSurface'
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:144: undefine
d reference to `eglGetError'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o): In function `PSP_GL_SwapBuffers':
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:82: undefined
reference to `eglSwapBuffers'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o): In function `PSP_GL_MakeCurrent':
x:\workspace\minpspw\devpaks\017_SDL\SDL\src\video\psp/SDL_pspgl.c:69: undefined
reference to `eglMakeCurrent'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x4): undefined reference to `glBegin'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xc): undefined reference to `glBindTexture'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x14): undefined reference to `glBlendFunc'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x1c): undefined reference to `glColor4f'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x2c): undefined reference to `glDisable'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x34): undefined reference to `glEnable'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x3c): undefined reference to `glEnd'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x44): undefined reference to `glFlush'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x4c): undefined reference to `glGenTextures'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x54): undefined reference to `glGetString'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x5c): undefined reference to `glLoadIdentity'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x64): undefined reference to `glMatrixMode'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x6c): undefined reference to `glOrtho'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x74): undefined reference to `glPixelStorei'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x7c): undefined reference to `glPopAttrib'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x84): undefined reference to `glPopClientAttrib'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x8c): undefined reference to `glPopMatrix'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x94): undefined reference to `glPushAttrib'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0x9c): undefined reference to `glPushClientAttrib'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xa4): undefined reference to `glPushMatrix'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xac): undefined reference to `glTexCoord2f'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xb4): undefined reference to `glTexEnvf'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xbc): undefined reference to `glTexImage2D'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xc4): undefined reference to `glTexParameteri'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xcc): undefined reference to `glTexSubImage2D'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xd4): undefined reference to `glVertex2i'
e:/devkitpro/devkitpsp/bin/../lib/gcc/psp/4.3.2/../../../../psp/lib\libSDL.a(SDL
_pspgl.o):(.rodata+0xdc): undefined reference to `glViewport'
collect2: ld a retourné 1 code d'état d'exécution
make: *** [SDL_image.elf] Error 1
please, can you help me ??