Jump to content


Photo

Yactfeau


  • Please log in to reply
113 replies to this topic

#16 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 07 February 2011 - 04:05 AM

See `config.log' for more details

Your answer is here. You'll have a line speaking about cc1. Give it to me, I'll tell you what to do ;)

#17 OilySalmon

OilySalmon

    GP32 User

  • Members
  • PipPipPip
  • 45 posts

Posted 07 February 2011 - 04:32 AM


See `config.log' for more details

Your answer is here. You'll have a line speaking about cc1. Give it to me, I'll tell you what to do ;)


Spoiler


It claims to be missing a library, but it's there, and so is the libgmp-dev package. I'm going look further into this, but I don't really have a first inclination of what to do here.

#18 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 07 February 2011 - 04:48 AM

What is your distribution ?

It claims to be missing a library, but it's there, and so is the libgmp-dev package. I'm going look further into this, but I don't really have a first inclination of what to do here.

Indeed, /usr/lib/libgmp.so.3 dont exist on your system.
The simplest way to cheat that is t create a symlink to your existant library on your system.
Here is what I do have on my system :
seb@seb:/usr/lib$ ls -latr libgmp*
-rw-r--r-- 1 root root 383648  9 jan  2010 libgmp.so.3.5.2
lrwxrwxrwx 1 root root     15  4 jui  2010 libgmp.so.3 -> libgmp.so.3.5.2
To create the libgmp.so.3 on my system I would (as root, in that directory) :
ln -s libgmp.so.3.5.2 libgmp.so.3

Alternativly, you can grab that and extrct it to /usr/local/angstrom/arm/lib. (that will be in futur release).

#19 OilySalmon

OilySalmon

    GP32 User

  • Members
  • PipPipPip
  • 45 posts

Posted 07 February 2011 - 04:58 AM

Ah! That was the problem! It doesn't seem to have been included, and opkg-target would obviously only check the target system rather than the tools actually being used. Thanks! I think that's why I was so confused. There are so many lib folders in here. :P

EDIT: Hmm... it seems like pndconfigure is set to check /tmp/utmp/* for dependencies, but from some reason it doesn't seem to be doing that. I've satisfied a dependency in the program I want to port, but instead of showing that the dependency is satisfied, I get a missing file error. The dependency I'm talking about is gettext. I'm not sure if that helps you. Maybe I'm not installing it correctly? It installs to the correct directory it seems, and I'm following your directions. The strangest part of this is that it's installed in the toolchain as well as /mnt/utmp/*. So is the dev package.

Edited by OilySalmon, 07 February 2011 - 06:04 AM.


#20 silver

silver

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 149 posts

Posted 09 February 2011 - 09:46 AM

...
fsdb.c:346: warning: pointer targets in passing argument 1 of ‘__builtin_strcmp’ differ in signedness
mv -f .deps/fsdb.Tpo .deps/fsdb.Po
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc -DHAVE_CONFIG_H -I.  -I/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT  -DCPUEMU_0 -DCPUEMU_11 -DCPUEMU_12 -DCPUEMU_20 -DCPUEMU_21 -DCPUEMU_31 -DMMU -DFPUEMU -DAMAX -DGAYLE -DNCR -DAGA -DAUTOCONFIG -DFILESYS -DSCSIEMU -DSCSIEMU_LINUX_IOCTL -DA2091 -DCDTV -DCD32 -DBSDSOCKET -DSUPPORT_THREADS -DUSE_SDL -DFDI2RAW -DDEBUGGER -DSAVESTATE -DENFORCER -DACTION_REPLAY -DXARCADE -DDRIVESOUND  -I../src/include -I../src -I../src -I..   -DPANDORA -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -fomit-frame-pointer -ffast-math   -Wall -Wno-unused -Wno-format -W -Wmissing-prototypes -Wstrict-prototypes -DREGPARAM= -DPANDORA -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant    -DPANDORA -O3 -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -ftree-vectorize -ffast-math -fsingle-precision-constant -MT fsusage.o -MD -MP -MF .deps/fsusage.Tpo -c -o fsusage.o fsusage.c
fsusage.c:204: warning: function declaration isn’t a prototype
fsusage.c: In function ‘get_fs_usage’:
fsusage.c:373: warning: implicit declaration of function ‘CONVERT_BLOCKS’
fsusage.c:373: error: ‘fsd’ undeclared (first use in this function)
fsusage.c:373: error: (Each undeclared identifier is reported only once
fsusage.c:373: error: for each function it appears in.)
make[3]: *** [fsusage.o] Error 1
make[3]: Leaving directory `/home/silver/Pandora/PUAE/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/silver/Pandora/PUAE/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/silver/Pandora/PUAE/src'
make: *** [all-recursive] Error 1

...

EDIT: Hmm, still not sorted this. Does not look like a missing dependancy, but unexpected results out of some of the Autotools checks - it checks for SVR2/3/4 etc.. so it knows to access the filesystem to pull filesystem usage information. The results are different from the pandora native tests, breaks when compiling based on the #defines.


For the record, I've sorted this and got a successful cross-compilation by hacking up the sysconfig.h file to match various defines autodetected on the Pandora - might cause other problems, we shall see.

#21 zRichi

zRichi

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 119 posts

Posted 23 February 2011 - 07:31 PM

Few Q's on this, sorry I'm not that familiar with compiling (pretty much learned how to program this month in Python and Pygame)

How do I include the bit to my BashRC?
Edit - Have now edited the BashRC, for future people just go to your home directory and press ctrl + h and it'll appear. I've copied to the bottom of the file.
Qmake is optional? Do I install it, do i not?
Edit - installed Qmake anyway.
Ideally it'd be great if someone could hand hold me to getting a surface window of 800 * 600 which quits on a button press in C++ and SDL then I reckon I'd be ok.
Want to use KDevelop but wouldn't mind code blocks if people reckon that's better.

Edited by zRichi, 23 February 2011 - 07:50 PM.


#22 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 23 February 2011 - 07:38 PM

How do I include the bit to my BashRC?

bashrc is a file in your home directory named .bashrc

Qmake is optional? Do I install it, do i not?

As you want, it depend on what you want to do. I f you plan to use the KDE ide, it might be a good idea.

Ideally it'd be great if someone could hand hold me to getting a surface window of 800 * 600 which quits on a button press in C++ and SDL then I reckon I'd be ok.

have a look here.

Want to use KDevelop but wouldn't mind code blocks if people reckon that's better.

I'm a command-line/vi guy, so I cant help you here ;)

#23 zRichi

zRichi

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 119 posts

Posted 23 February 2011 - 08:13 PM

Decided to go commmand line and I'll learn the IDE set-up later.
I copied the below code and ran the command. Didn't return any errors but created a file called myprogram in the directory of my cpp file.
The program doesn't do anything when I click on it though :unsure:

1)Create a source file with the following code:

#include "SDL/SDL.h" 
int main( int argc, char* args[] ) 

{ //Start SDL SDL_Init( SDL_INIT_EVERYTHING );

 //Quit SDL SDL_Quit(); return 0; }

2)Then type at the command line:
g++ -o myprogram mysource.cpp -lSDL
and you're done. 

Also how do I Setup your environnement : setprj audacious
As I'm using command line?
When I do the step after that I get

snow@snow:~/Pandora/Audacious/libmowgli-0.7.1$     make all install
Makefile:4: buildsys.mk: No such file or directory
make: *** No rule to make target `buildsys.mk'. Stop.
snow@snow:~/Pandora/Audacious/libmowgli-0.7.1$     cd ..

Sorry these questions probably come off really stupid =/

Edited by zRichi, 23 February 2011 - 08:34 PM.


#24 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 23 February 2011 - 10:45 PM

Here is simple test :

Start a new terminal, and :
mkdir ~/Pandora/simpletest
setprj simpletest
In that directory, create 2 files, here is the code (test.cpp) :
#include <SDL/SDL.h>

int main( void )
{
        SDL_Surface* test = NULL;
        SDL_Surface* screen = NULL;
        SDL_Event event;
        SDL_Rect offset;

        int quit = 0;

        // Init the Video fullscreen
        SDL_Init( SDL_INIT_VIDEO );
        screen = SDL_SetVideoMode( 800, 480, 16, SDL_SWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN );
        SDL_WM_SetCaption( "Test", NULL );

        // load an image
        test = SDL_LoadBMP( "image.bmp" );
        offset.x = 0;
        offset.y = 0;
        if (test != NULL)       // if the image have loaded display it on screen
                SDL_BlitSurface( test, NULL, screen, &offset );

        // actually render to the physical screen
        SDL_Flip( screen );

        // Simple wait even loop that will quit on key press
        while( quit == 0 ) {
                while( SDL_PollEvent( &event ) ) {
                        switch (event.type) {
                                case SDL_QUIT:
                                case SDL_KEYDOWN:
                                        quit = 1;
                                        break;
                        }
                }
                // As we haven't changed the screen, no need to flip <img src='http://www.gp32x.com/board/public/style_emoticons/<#EMO_DIR#>/wink.gif' class='bbc_emoticon' alt=';)' /> 
        }

        // Exit cleanly
        SDL_FreeSurface( test );
        SDL_Quit();

        return 0;
}
Here is your Makefile :
EXE = test
PREFIX  = /mnt/utmp/$(EXE)
RM = rm -f
INSTALL_PROG = install -m 755 
STRIP ?= $(CC:%gcc=%strip)

# Add SDL dependency
LDFLAGS +=-lSDL_gfx -lSDL_image $(shell sdl-config --libs)
CFLAGS +=$(shell sdl-config --cflags)

# Define targets
SRCS=$(shell echo *.cpp)
OBJS=$(SRCS:%.cpp=%.o)

ALL : $(EXE)

.c.o:
        $(CC) $(CFLAGS) $(CXXFLAGS) -c $*.c -o $*.o 
.cpp.o:
        $(CXX) $(CFLAGS) $(CXXFLAGS) -c $*.cpp -o $*.o 

$(EXE) : $(OBJS)
        $(CXX) $(OBJS) -o $(EXE) $(LDFLAGS)
        $(STRIP) $(EXE)

install : $(EXE)
        $(INSTALL_PROG) $(EXE) $(PREFIX)

uninstall :
        $(RM) $(PREFIX)/$(EXE)

clean :
        $(RM) $(OBJS) $(EXE)

.PHONY:clean install uninstall ALL

Now compile and install that :
make all install

It's now time to create a pnd out of that :
genpxml -v 1.0.0
pndmakeauto

copy $HOME/Pandora/PNDs/simpletest.pnd on your pandora and enjoy your new simpletest v1.0.0 rocking :D

EDIT: add an image.bmp (up to 640*480) in your /pandora/appdata/simpletest on pandora. (or in /mnt/utmp/simpletest before creating the PND) to actually have something on screen beside the black

Edited by sebt3, 23 February 2011 - 10:50 PM.


#25 zRichi

zRichi

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 119 posts

Posted 24 February 2011 - 01:02 PM

Thanks so much for this sebt3.

Now I'm almost there (ha sorry I hate asking!)
But the bottom line indicates I need version 4 of squashfs. I've done a google on squashfs and only found their website which had version 3.4 :S

snow@snow:~/Pandora/simpletest$ pndmakeauto
-c set, will create compressed squasfs image instead of iso -p
PNDNAME set to /home/snow/Pandora/PNDs/simpletest.pnd
FOLDER set to /mnt/utmp/simpletest
ICON set to /mnt/utmp/simpletest/icon.png
PXML set to /mnt/utmp/simpletest/PXML.xml
/usr/local/angstrom/arm/bin/pnd_make: line 44: mksquashfs: command not found
your squashfs version is older then version 4, pleas upgrade to 4.0 or later

Edited by zRichi, 24 February 2011 - 01:04 PM.


#26 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 24 February 2011 - 01:25 PM

Here is your real issue :

/usr/local/angstrom/arm/bin/pnd_make: line 44: mksquashfs: command not found

Solution (as you are using a debian base distro) :
sudo aptitude install squashfs-tools

#27 zRichi

zRichi

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 119 posts

Posted 24 February 2011 - 05:18 PM

Thanks a ton!!! :D
First app compiled and done, won't be long before I port Robo Hell to SDL :D

(had to use sudo apt-get, for anyone else trying to follow this on ubuntu)

#28 I_Like_Cake

I_Like_Cake

    Member

  • Members
  • PipPip
  • 2 posts

Posted 25 February 2011 - 01:05 AM

Howdy, first up, thanks for the tool chain and tutorial, it is mega awesome!

So, I'm running ubuntu on VirtualBox on Mac OS 10.6, I followed the tutorial to compile audacious and it all seems to work fine. I copy the audacious.pnd to the SD card and it shows up on the Pandora desktop, but when I try to launch it I get the error message:


Failed to open "/usr/share/applications/audacious-audacious2-21083" 
No such file or directory.

I'm way beyond my limits of what I know how to do, can anybody shed any light on what the matter might be?

Cheers

Cake

#29 sebt3

sebt3

    homebrew player (P. & C.)

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 1897 posts
  • Gender:Male
  • Location:QC

Posted 25 February 2011 - 02:17 AM

I'm way beyond my limits of what I know how to do, can anybody shed any light on what the matter might be?

I'll need your PXML.xml file and the /tmp/pndrun_audacious* file.

#30 I_Like_Cake

I_Like_Cake

    Member

  • Members
  • PipPip
  • 2 posts

Posted 25 February 2011 - 09:25 AM

[/quote]
I'll need your PXML.xml file and the /tmp/pndrun_audacious* file.
[/quote]

Cool, thanks, I tried recompiling the whole thing but I still get the same problem. I tried creating the directory /usr/share/applications/audacious-audacious2-21083 but when I try to launch audacious it just opens that folder in Thunar.

Here is the PXML:

<?xml version="1.0" encoding="UTF-8"?>
<PXML xmlns="http://openpandora.org/namespaces/PXML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PXML_schema.xsd">
<!-- please see http://pandorawiki.org/PXML_specification for more information before editing -->

  <application id="audacious-audacious2-6015" appdata="audacious">
    <exec command="scripts/audacious2.sh"/>
    <author name="sebt3" website="http://sebt3.openpandora.org/pnd/"/>         <!--Optional email and website, name required-->
    <osversion major="1" minor="0" release="0" build="0"/>              <!--The minimum OS version required-->
    <previewpics>
<!-- <pic src="previews/audacious2.png"/> -->
    </previewpics>
    <version major="2" minor="4" release="3" build="1"/>              <!--This programs version-->
    <title lang="en_US">Audacious</title>
    <description lang="en_US">Listen to music</description>
    <icon src="/mnt/utmp/audacious/share/icons/hicolor/48x48/apps/audacious.png"/>
    <categories>
      <!-- http://standards.freedesktop.org/menu-spec/latest/apa.html -->
      <category name="AudioVideo">
        <subcategory name="Audio"/>
      </category>
      <category name="Player">
        <subcategory name="GTK"/>
      </category>
    </categories>
  </application>

</PXML>


And I coudn't find a file at /tmp/pndrun_audacious*, but there was one at /tmp/pndrunaudacious_run.out, which I include here:

rm: cannot remove `/tmp/cpuspeed': No such file or directory
not mounted on loop yet, doing so
LoopMountedon: 
/dev/loop4
Filetype is Squashfs
sudo mount -t squashfs  /dev/loop4
mounting union!
Filesystem is vfat
[------------------------------]{ App start }[---------------------------------]

** (audacious2:2308): WARNING **: Failed to connect to the session manager: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed

ALL OUTPUT PLUGINS FAILED TO INITIALIZE.
/usr/pandora/scripts/pnd_run.sh: line 31:  2308 Segmentation fault      LD_LIBRARY_PATH="/mnt/utmp/$PND_NAME" "./$EXENAME" $ARGUMENTS
[-------------------------------]{ App end }[----------------------------------]
cleanup done


which seems to suggest that its looking for something in /mnt/utmp/, but /mnt/utmp/ is empty.