Win32 native Toolchain for PSPSDK
Win32 native Toolchain for PSPSDK
-- Start of Editing
To keep it simple, the native SDK can be downloaded from here:
http://minpspw.sourceforge.net
No Cygwin or MSys required. It contains:
* Latest GCC
* Latest Newlib
* Documentation
* Popular dev libraries (DevPaks)
To get into MinPSPW you can use either Visual Studio, Eclipse or your favourite IDE.
If you like Eclipse have a look at this eBook (still in early alpha stage of development): http://minpspw.sourceforge.net/files/pspeclipse.pdf
-- End of Editing
Hi guys,
I've been playing around with the PSPSDK and found it quite boring to have to build it and use the cygwin POSIX emulation layer. I tried DevKitPro and the SDK is "quite old", almost 1 year.
So I decided to build it using both projects with the following ideas in mind:
* No need for any bash/shell use only the current DOS box from Win32
* Prefer ps2dev.org GCC/NEWLIB/BINUTILS patches to anyone else
* Make it compatible with Eclipse CDT
I managed to get it working, you can get the full details on my blog.
Or for the impatient:
http://sourceforge.net/project/showfile ... _id=223830
With this option, on a windows machine with XP and no cygwin and no c/c++ compiler you just install the installer and eclipse CDT, after you start eclipse set your "compiler invocation command" to psp-gcc et voilá
you have auto complete, syntax validation and build from the default makefiles.
Cheers[/i]
To keep it simple, the native SDK can be downloaded from here:
http://minpspw.sourceforge.net
No Cygwin or MSys required. It contains:
* Latest GCC
* Latest Newlib
* Documentation
* Popular dev libraries (DevPaks)
To get into MinPSPW you can use either Visual Studio, Eclipse or your favourite IDE.
If you like Eclipse have a look at this eBook (still in early alpha stage of development): http://minpspw.sourceforge.net/files/pspeclipse.pdf
-- End of Editing
Hi guys,
I've been playing around with the PSPSDK and found it quite boring to have to build it and use the cygwin POSIX emulation layer. I tried DevKitPro and the SDK is "quite old", almost 1 year.
So I decided to build it using both projects with the following ideas in mind:
* No need for any bash/shell use only the current DOS box from Win32
* Prefer ps2dev.org GCC/NEWLIB/BINUTILS patches to anyone else
* Make it compatible with Eclipse CDT
I managed to get it working, you can get the full details on my blog.
Or for the impatient:
http://sourceforge.net/project/showfile ... _id=223830
With this option, on a windows machine with XP and no cygwin and no c/c++ compiler you just install the installer and eclipse CDT, after you start eclipse set your "compiler invocation command" to psp-gcc et voilá
you have auto complete, syntax validation and build from the default makefiles.
Cheers[/i]
Last edited by Heimdall on Thu Jan 29, 2009 1:34 am, edited 2 times in total.
Speaking of IDEs, I'm still for netbeans...coding C/C++ with netbeans 6 is like stealing candies from a child without an arm...Eclipse was the first java based cross-platform IDE, but by now it's slow (don't tell me it isn't if you use it on a core duo II...) and generally speaking seems to be put togheter with glue and tape... only annoying thing about netbeans is its loooong startup time if you have some advanced modules installed....
PS: anyway, thanks a lot...i would have done something like this since a year, but never got time....Will surely try it!
PS: anyway, thanks a lot...i would have done something like this since a year, but never got time....Will surely try it!
I use both NetBeans and Eclipse, and yes Netbeans looks much much better but for some reason I feel that C++ development is easier on Eclipse mostly because the code complete works better, so when i'm typing Eclipse gives me better help since I'm kind of noob on the PSPSDK API.
About speed, i kind of cheat on it, I have the latest JRE 1.6.0_04 running on a ramdrive and launch the IDE using that JRE so the responsiveness is higher than loading everything from the HDD.
This means that you need some extra ram of course.
My specs are (it's a laptop):
Windows Media Center 2005
1.83GHz Intel Core Duo T2400
1GB PC4200 DDR2 RAM
160GB hard disk
256MB nVidia GeForce Go 7400 graphics
The script builds the cross compiler and the SDK in less than 90 minutes. I started it last night during a movie on TV and it finished before the movie.
I tryed it on a DELL Latitude D620 with 2GB of RAM and Windows XP Pro and I get the same results. Although Netbeans on this one sucks, i guess it's because of it's video card driver...
Anyway, since the compiler runs from the command line, using it with Netbeans C++ should be easy... i guess...
About speed, i kind of cheat on it, I have the latest JRE 1.6.0_04 running on a ramdrive and launch the IDE using that JRE so the responsiveness is higher than loading everything from the HDD.
This means that you need some extra ram of course.
My specs are (it's a laptop):
Windows Media Center 2005
1.83GHz Intel Core Duo T2400
1GB PC4200 DDR2 RAM
160GB hard disk
256MB nVidia GeForce Go 7400 graphics
The script builds the cross compiler and the SDK in less than 90 minutes. I started it last night during a movie on TV and it finished before the movie.
I tryed it on a DELL Latitude D620 with 2GB of RAM and Windows XP Pro and I get the same results. Although Netbeans on this one sucks, i guess it's because of it's video card driver...
Anyway, since the compiler runs from the command line, using it with Netbeans C++ should be easy... i guess...
-
- Posts: 11
- Joined: Fri Mar 02, 2007 5:06 pm
- Contact:
I never used Dev-C++ make sure you have a env variable called PSPSDK that points to %your install dir%/psp/sdk and that %your install dir%/bin is in your path.
Then try to run the makefile from a dos shell.
Note however that the makefiles were changed, all usages of the psp-path utility were removed because the make tool is not able to launch it.
In other words were you had:
PSPSDK.*=.*$(shell psp-config --pspsdk-path)
you should comment because the included build.mak will use a env var instead
i used a sed script to fix it like this:
cat $1 | sed 's/PSPSDK.*=.*$(shell psp-config --pspsdk-path)/# PSPSDK MUST BE AN ENV VAR/' > $1
Then try to run the makefile from a dos shell.
Note however that the makefiles were changed, all usages of the psp-path utility were removed because the make tool is not able to launch it.
In other words were you had:
PSPSDK.*=.*$(shell psp-config --pspsdk-path)
you should comment because the included build.mak will use a env var instead
i used a sed script to fix it like this:
cat $1 | sed 's/PSPSDK.*=.*$(shell psp-config --pspsdk-path)/# PSPSDK MUST BE AN ENV VAR/' > $1
-
- Posts: 11
- Joined: Fri Mar 02, 2007 5:06 pm
- Contact:
that did it, thanks :)Heimdall wrote:I never used Dev-C++ make sure you have a env variable called PSPSDK that points to %your install dir%/psp/sdk and that %your install dir%/bin is in your path.
Then try to run the makefile from a dos shell.
Note however that the makefiles were changed, all usages of the psp-path utility were removed because the make tool is not able to launch it.
In other words were you had:
PSPSDK.*=.*$(shell psp-config --pspsdk-path)
you should comment because the included build.mak will use a env var instead
i used a sed script to fix it like this:
cat $1 | sed 's/PSPSDK.*=.*$(shell psp-config --pspsdk-path)/# PSPSDK MUST BE AN ENV VAR/' > $1
Programmer van der C
I've updated the installer, it is now a big 27mb installer (made out of 3 sfx winrar files) and you have the full thing now:
* Latest GCC Cross Compiler SVN check at 20080218
* Latest PSPSDK SVN check at 20080218
* PSPLINKUSB built under Cygwin (still working on native build)
* SDK Docs
* GCC Docs
I had to split the installer because of the hosting site limits the file size to 10mb.
Once you run the installer you should be able to start building your psp apps.
get it here: http://sourceforge.net/project/showfile ... _id=223830
PSPLink native will take some time because there are some dependencies such as: ncurses, readline and pthreads that need to be addressed.
* Latest GCC Cross Compiler SVN check at 20080218
* Latest PSPSDK SVN check at 20080218
* PSPLINKUSB built under Cygwin (still working on native build)
* SDK Docs
* GCC Docs
I had to split the installer because of the hosting site limits the file size to 10mb.
Once you run the installer you should be able to start building your psp apps.
get it here: http://sourceforge.net/project/showfile ... _id=223830
PSPLink native will take some time because there are some dependencies such as: ncurses, readline and pthreads that need to be addressed.
Last edited by Heimdall on Tue Apr 08, 2008 6:46 pm, edited 1 time in total.
A simple tutorial on how to use the devkit with eclipse is here:
http://www.jetcube.eu/archives/2008/02/entry_72.html
http://www.jetcube.eu/archives/2008/02/entry_72.html
make: Nothing to be done for `all'.
Heimdall
I followed the instructions from the tutorial but eclipse doesn't build my project. The output window is showing:
I checked the makefile and saw the following line:
I checked the environment variables and PSPSDK is an env var and points to the correct location. Is there any other settings in Eclipse that I need to setup?
I followed the instructions from the tutorial but eclipse doesn't build my project. The output window is showing:
Code: Select all
**** Build of configuration Default for project Hello World ****
make all
make: Nothing to be done for `all'.
Code: Select all
# PSPSDK MUST BE AN ENV VAR
include $(PSPSDK)/lib/build.mak
Sorry about that I made something wrong on the screenshots.
You should create a C project, the select the Makefile Project folder (not the Hello World, this was the problem) and on the right you get to choose -- Other Toolchain --.
Once you open your project no Hello World.c file exists, only the files from the samples and if your eclipse is setup to build automatically (it is by default) you should get this output:
If you copy the EBOOT to your PSP it will say... Hello World
I'll update the screenshoots and the tutorial text...
Thanks for checking!
You should create a C project, the select the Makefile Project folder (not the Hello World, this was the problem) and on the right you get to choose -- Other Toolchain --.
Once you open your project no Hello World.c file exists, only the files from the samples and if your eclipse is setup to build automatically (it is by default) you should get this output:
Code: Select all
**** Build of configuration Default for project Hello World ****
make all
psp-gcc -I. -IC:\pspsdk\psp\sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150 -c -o main.o main.c
psp-gcc -I. -IC:\pspsdk\psp\sdk/include -O2 -G0 -Wall -D_PSP_FW_VERSION=150 -L. -LC:\pspsdk\psp\sdk/lib main.o -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk -lc -lpspnet -lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility -lpspuser -lpspkernel -o template.elf
psp-fixup-imports template.elf
mksfo 'Template' PARAM.SFO
psp-strip template.elf -o template_strip.elf
pack-pbp EBOOT.PBP PARAM.SFO NULL \
NULL NULL NULL \
NULL template_strip.elf NULL
[0] 408 bytes | PARAM.SFO
[1] 0 bytes | NULL
[2] 0 bytes | NULL
[3] 0 bytes | NULL
[4] 0 bytes | NULL
[5] 0 bytes | NULL
[6] 79004 bytes | template_strip.elf
[7] 0 bytes | NULL
rm2 -f template_strip.elf
I'll update the screenshoots and the tutorial text...
Thanks for checking!
Ive created a new makefile project (not the hello world) but now I get this error:
Any Ideas
Code: Select all
**** Build of configuration Default for project HelloWorld ****
(Exec error:Launching failed)
please show me the content of your makefile. the makefile must follow the rules of the pspsdk. For example, i'm trying to port plib to the psp this is my makefile for the utilities module:
I added a special rule for .cxx files which are C++ files and weren't handled by default by the top level include makefile. But this is to build a static library, then I've a demo eboot that is built with this:
I've been using these makefile on eclipse and they work for me... of course you need to update them to your needs... include libs, headers, code...
Code: Select all
TARGET_LIB = libplibul.a
HEADERS = ul.h \
ulRTTI.h
OBJS = ul.o \
ulClock.o \
ulError.o \
ulLinkedList.o \
ulList.o \
ulRTTI.o
PSP_FW_VERSION=399
INCDIR =
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = -fno-exceptions -fno-rtti
ASFLAGS =
LIBDIR =
LDFLAGS =
include $(PSPSDK)/lib/build.mak
%.o: %.cxx
$(CXX) $(CXXFLAGS) -c -o $@ $<
install: $(TARGET_LIB)
-$(MKDIR) -p $(PSPSDK)/extra/include/plib
-$(CP) $(HEADERS) $(PSPSDK)/extra/include/plib
-$(MKDIR) -p $(PSPSDK)/extra/lib
-$(CP) $(TARGET_LIB) $(PSPSDK)/extra/lib
all: $(TARGET_LIB) install
Code: Select all
TARGET = test_dir
OBJS = test_dir.o
LIBS = -lplibul -lstdc++
INCDIR = $(PSPSDK)/extra/include
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = -fno-exceptions -fno-rtti
ASFLAGS =
LIBDIR = $(PSPSDK)/extra/lib
LDFLAGS =
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = $(TARGET)
include $(PSPSDK)/lib/build.mak
%.o: %.cxx
$(CXX) $(CXXFLAGS) -c -o $@ $<
install: $(EXTRA_TARGETS)
-$(MKDIR) -p ../../bin/$(TARGET)
-$(CP) $(EXTRA_TARGETS) ../../bin/$(TARGET)
This toolchain and Visual Studio
If you prefer to use Visual Studio Instead you can, as usual make a makefile project and add unzip the file: optional-VS-make.zip from http://www.box.net/shared/7hp779s4kc to your sdk\bin
The vsmake is a batch file that uses sed as shown here in the forum to convert GCC output to MSCC style so the IDE understands it.
I'll pack this as a optional installation component it in the next release.
The vsmake is a batch file that uses sed as shown here in the forum to convert GCC output to MSCC style so the IDE understands it.
I'll pack this as a optional installation component it in the next release.
-
- Posts: 328
- Joined: Sun Jun 03, 2007 10:05 pm
Maybe, you and Oopo can collaborate and make this even better :)
--
Is there anyway to use these commands in Makefile?
The $PSPDIR variables donot work. I created a env variable called PSPDIR.
./configure ?
Oh, And I use cmd.exe
--
Is there anyway to use these commands in Makefile?
The $PSPDIR variables donot work. I created a env variable called PSPDIR.
andinstall: $(TARGET_LIB)
@echo "Installing libz into $(PSPDIR)"
@mkdir -p $(PSPDIR)/include $(PSPDIR)/lib
@cp zlib.h zconf.h $(PSPDIR)/include
@cp libz.a $(PSPDIR)/lib
@echo "Done"
./configure ?
Oh, And I use cmd.exe
Intrigued by PSP system Since December 2006.
Use it more for Development than for Gaming.
Use it more for Development than for Gaming.
First things first! Oopo is not responsible for my builds, I just use his excellent work to patch the core GCC, NEWLIB and BINUTILS to allow us to build binaries that run on the PSP. He works on *nix environments and I prefer windows for development, although most of the cool GNU tools are not available so therefore I had to gather ports from the internet and assemble them in a simple installation package.
Second! You can use any commands you like in the makefile as long they exist in your machine. If you pay attention to my modified makefiles you'll see that I've replaced rm by $(RM) and cp by $(CP) and mkdir by $(MKDIR). This wasn't an accident it was intentional because if you open a DOS prompt and type: cp that command doesn't exist and rm and mkdir exist but behave differently.
To surpass this problem I've included native ports of cp, rm, mkdir and sed under the name cp2 rm2 mkdir2 and sed2 and that's why you have the weird names $(...) on the makefiles.
Third: ./configure well my friend you're out of luck there! that script is generated by auto tools that are very *nix shell dependent, it would be crazy to try to convert that script to a DOS batch.
Now the good news:
How to fix your makefile sample: piece of cake!
and in your DOS box type:
voilá!
And now even more complicated :) how to work with autotools!
basically you only need a shell so you need to download 4 files from the mingw website www.mingw.org:
This is a shell for your windows but it is badly outdated i recommend you to install to C:\msys and not to C:\msys\1.0
Then download the following files and decompress them over the msys installation: e.g. (C:\msys)
You should have now a lame M icon in your desktop if you start it you have a shell that is able to run your ./configure scripts and compile using the SDK.
But remember this is not so easy for beginners and there are lots of reports that msys doesn't work properly on windows vista that's why it was never my goal to include it on my builds.
Second! You can use any commands you like in the makefile as long they exist in your machine. If you pay attention to my modified makefiles you'll see that I've replaced rm by $(RM) and cp by $(CP) and mkdir by $(MKDIR). This wasn't an accident it was intentional because if you open a DOS prompt and type: cp that command doesn't exist and rm and mkdir exist but behave differently.
To surpass this problem I've included native ports of cp, rm, mkdir and sed under the name cp2 rm2 mkdir2 and sed2 and that's why you have the weird names $(...) on the makefiles.
Third: ./configure well my friend you're out of luck there! that script is generated by auto tools that are very *nix shell dependent, it would be crazy to try to convert that script to a DOS batch.
Now the good news:
How to fix your makefile sample: piece of cake!
Code: Select all
install: $(TARGET_LIB)
@echo "Installing libz into $(PSPDIR)"
@$(MKDIR) -p $(PSPDIR)/include $(PSPDIR)/lib
@$(CP) zlib.h zconf.h $(PSPDIR)/include
@$(CP) libz.a $(PSPDIR)/lib
@echo "Done"
Code: Select all
SET PSPDIR=F:/PSP
make install
And now even more complicated :) how to work with autotools!
basically you only need a shell so you need to download 4 files from the mingw website www.mingw.org:
This is a shell for your windows but it is badly outdated i recommend you to install to C:\msys and not to C:\msys\1.0
Code: Select all
MSYS-1.0.11-2004.04.30-1.exe
Code: Select all
MSYS-1.0.11-20071204.tar.bz2
bash-3.1-MSYS-1.0.11-snapshot.tar.bz2
coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2
But remember this is not so easy for beginners and there are lots of reports that msys doesn't work properly on windows vista that's why it was never my goal to include it on my builds.
At the time of this post I'm uploading a new build 0.3 (from last night) it includes:
* Visual Studio Support
* PSPLink now works (i broke the cygwin1.dll when strip it to reduce size)
* USB driver for the debugger
Get it from the my public box:
http://sourceforge.net/project/showfile ... _id=223830
I'll add some extra info on my blog later today
http://www.jetcube.eu
* Visual Studio Support
* PSPLink now works (i broke the cygwin1.dll when strip it to reduce size)
* USB driver for the debugger
Get it from the my public box:
http://sourceforge.net/project/showfile ... _id=223830
I'll add some extra info on my blog later today
http://www.jetcube.eu
Last edited by Heimdall on Tue Apr 08, 2008 6:47 pm, edited 1 time in total.
I just added a Tutorial on how to use it under Visual Studio C++ Express 2008. Under other VS should be quite similar.
http://www.jetcube.eu/
However the latest installed has corrupted Makefiles for the examples, i guess my HDD is dieing i'll try to fix it a make a new release soon.
http://www.jetcube.eu/
However the latest installed has corrupted Makefiles for the examples, i guess my HDD is dieing i'll try to fix it a make a new release soon.
I'm uploading a new build 0.4 this time with good samples Makefiles.
http://sourceforge.net/project/showfile ... _id=223830
http://sourceforge.net/project/showfile ... _id=223830
Last edited by Heimdall on Tue Apr 08, 2008 6:47 pm, edited 1 time in total.
nbollom i have to look first, maybe it would be nice to create devpaks with those libs already compiled. In theory all those libs that on the makefiles do not require any posix commands (aka cygwin stuff) it should build out of the box but remember to remove any occurrence of:
PSPSDK=$(psp-path ...)
or add relative paths to any other variable that uses the command psp-path.
If your lib needs autotools... (aka ./configure && make && make install) use the info on the previous post where i explain how to install msys.
egorive you can keep everything you have from cygwin note however that you should not have any component from the cygwin in your path when you run my toolchain because it might interfere with my binaries, but i never tried that before...
if there are enough requests :) i might starting the devpak project as simple addons to the SDK with the most popular libs. Of course I'll release my patches under a BSD (free) license on my blog www.jetcube.eu and the binaries on my box... but not until next week :)
PSPSDK=$(psp-path ...)
or add relative paths to any other variable that uses the command psp-path.
If your lib needs autotools... (aka ./configure && make && make install) use the info on the previous post where i explain how to install msys.
egorive you can keep everything you have from cygwin note however that you should not have any component from the cygwin in your path when you run my toolchain because it might interfere with my binaries, but i never tried that before...
if there are enough requests :) i might starting the devpak project as simple addons to the SDK with the most popular libs. Of course I'll release my patches under a BSD (free) license on my blog www.jetcube.eu and the binaries on my box... but not until next week :)
DEVPAKs for the win32 native compiler
Hi guys,
As a proof of concept I just created 2 dev paks for my win32 native compiler sdk. You can find then on my box. Currently I have a devpak for ZLIB and another for LIBPNG.
The devpaks installers validade if you have the SDK installed and also that you have the required dependencies.
I'll slowly port the libs to devpaks...
As a proof of concept I just created 2 dev paks for my win32 native compiler sdk. You can find then on my box. Currently I have a devpak for ZLIB and another for LIBPNG.
The devpaks installers validade if you have the SDK installed and also that you have the required dependencies.
I'll slowly port the libs to devpaks...
-
- Posts: 36
- Joined: Thu Nov 29, 2007 7:08 pm
Heimdall,
The SDK and devpaks are great and the tutorials very helpful.
One thing though with the Visual Studio tutorial:
When setting up the project (build, rebuild, clean commands, etc) if people also point the "Include Search Path" to the "($PSPSDK)\psp\sdk\include" directory all the methods/variables defined in the psp toolkit headers will show up with intellisense.
Possibly the devkits as well if you install the headers to that directory.
The SDK and devpaks are great and the tutorials very helpful.
One thing though with the Visual Studio tutorial:
When setting up the project (build, rebuild, clean commands, etc) if people also point the "Include Search Path" to the "($PSPSDK)\psp\sdk\include" directory all the methods/variables defined in the psp toolkit headers will show up with intellisense.
Possibly the devkits as well if you install the headers to that directory.
kasikeeper as i said i'll keep building the devpacks "slowwwly" because i haven't much free time :) It's not hard it is just time consuming... I'll take a look at the freestyle lib next...
nbollom thanks for your tip, I'm not a expert on Visual Studio :) That's why i started with Eclipse CDT on this thread...
and the devkits are installed into %your_pspsdk_install_path%\psp\include they are the default install path and i try to keep the changes as minimal as possible so if you code with my devkit or with the official toolchain the compiler behaves the same.
As an teaser for the next release, I managed to create a simple man (unix manual pages) reader using groff and some batch files that I'll include so you can read the compiler manual in case you find yourself in trouble and some of the devpacks also have a manual in that format, so you can look there first before googling for the answer.
Cheers!
nbollom thanks for your tip, I'm not a expert on Visual Studio :) That's why i started with Eclipse CDT on this thread...
and the devkits are installed into %your_pspsdk_install_path%\psp\include they are the default install path and i try to keep the changes as minimal as possible so if you code with my devkit or with the official toolchain the compiler behaves the same.
As an teaser for the next release, I managed to create a simple man (unix manual pages) reader using groff and some batch files that I'll include so you can read the compiler manual in case you find yourself in trouble and some of the devpacks also have a manual in that format, so you can look there first before googling for the answer.
Cheers!
A new devpak! freetype: as usual get them all at:
http://sourceforge.net/project/showfile ... _id=223830
http://sourceforge.net/project/showfile ... _id=223830
Last edited by Heimdall on Tue Apr 08, 2008 6:48 pm, edited 1 time in total.
-
- Posts: 1
- Joined: Wed Feb 27, 2008 9:01 am