Pages: 1
  Print  
Author Topic: Additions to new platform system  (Read 7431 times)
Offline (Unknown gender) TGMG
Posted on: December 24, 2010, 08:22:56 am

Developer
Joined: Jun 2008
Posts: 107

View Profile WWW Email
A few things still need to be fixed in the new system in order to get android/iphone/mac to compile and run.
Allowing the platform to specify the output file for the compiler, so that on mac it overrides the file in the mac app file. So basically a parameter in the .ey file which will be the input to the compilers -o parameter. Which is very important for mac as it doesn't output a .app file, it outputs a binary file which needs to be put in a specific location (not in the temp directory).

Also hopefully a setting in the platform for the make target to run when it has finished compiling so that it can run the iphone/android game automatically from the make target.

And the last and most important (as android/mac/iphone/psp can't yet work without it) is specifying the file to write the resources to. On android and mac its at the end of the file just like windows but on iphone and psp its in a .data file, so it would be ideal if this was seperate from the output parameter.
Logged
me
GMbed 2.0 :: Embed you gm games in websites.
Offline (Male) RetroX
Reply #1 Posted on: December 25, 2010, 10:58:25 am

Master of all things Linux
Contributor
Location: US
Joined: Apr 2008
Posts: 1055
MSN Messenger - classixretrox@gmail.com
View Profile Email
I'd go even further than that and store the final linking makefile inside of the platform directory, and the makefile in SHELL just calls whichever one matches the platform and sends it the proper list of files to link.  The platform can decide what file extension to use and how to pack the game.
Logged
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)
Quote from: Fede-lasse
Why do all the pro-Microsoft people have troll avatars? :(
Offline (Unknown gender) TGMG
Reply #2 Posted on: December 27, 2010, 02:24:58 am

Developer
Joined: Jun 2008
Posts: 107

View Profile WWW Email
Yes a makefile for each platform in the platforms folder is a much better idea. But we need to discuss how the system will be implemented as currently the mac/android/iphone version can't work without the resources being written to the file. Guess I will for the time being need to modify the enigma compiler on my local copy so I can test again, which is always a pain :(.
Logged
me
GMbed 2.0 :: Embed you gm games in websites.
Offline (Male) Josh @ Dreamland
Reply #3 Posted on: December 27, 2010, 03:56:54 pm

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2950

View Profile Email
TGMG:
Please extend this: http://enigma-dev.org/docs/wiki/index.php?title=Compilers/
And this: http://enigma-dev.org/docs/wiki/index.php?title=Module_hierarchy

I'm not opposed to having a Makefiles/ folder of the same design under SHELL/.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Unknown gender) TGMG
Reply #4 Posted on: December 28, 2010, 02:46:28 am

Developer
Joined: Jun 2008
Posts: 107

View Profile WWW Email
I have edited compilers (http://enigma-dev.org/docs/wiki/index.php?title=Compilers/) with what i think should be added into the .ey file. With those changes it should as far as I can see allow all the compilers I know about.

MacOsX (Data file name will be "game.app/Contents/MacOS/enigma", makefile similar to current make file but with "-o <RelativePathWhichICan'tRemember>/game.app/Contents/enigma" and no need for bin path)

Android (Data file name will be "<RelativePathWhichICan'tRemember>/jni/libenigma.so", make file will be completely custom, bin path will be the path to the crystax ndk)

Iphone (Data file name will be "<RelativePathWhichICan'tRemember>/game.app/gamedata.data", makefile will call xcodebuild so completely custom, bin path won't be needed)

PSP (Data file name will be "<RelativePathWhichICan'tRemember>/gamedata.data", makefile will be custom, bin path will be psp sdk path)

DS (Data will be handled differently so no data file, makefile will be custom, bin path will be ds sdk path)

I haven't looked into ps3 yet but I think it will be similar to psp from what I have seen, Nativeclient will be similar to android esp with the bin path and makefile but i am not sure how it will handle the data file yet.
Logged
me
GMbed 2.0 :: Embed you gm games in websites.
Offline (Female) IsmAvatar
Reply #5 Posted on: December 28, 2010, 03:38:50 pm

LateralGM Developer
LGM Developer
Location: Pennsylvania/USA
Joined: Apr 2008
Posts: 877

View Profile Email
What is the bin path for? What makes that vary?
Also, you should clarify why you need to specify the makefile location.
« Last Edit: December 28, 2010, 04:17:41 pm by IsmAvatar » Logged
Offline (Male) Josh @ Dreamland
Reply #6 Posted on: December 28, 2010, 11:28:14 pm

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2950

View Profile Email
C:\MinGW\bin\
/usr/bin/
fuk:i:r:apple:xcode:fuck:stuffthatsworthitssize:stuffwestolefromgnu:bin
C:\DevKitPRO\DevKitPPC\bin\
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Female) IsmAvatar
Reply #7 Posted on: December 29, 2010, 01:15:48 am

LateralGM Developer
LGM Developer
Location: Pennsylvania/USA
Joined: Apr 2008
Posts: 877

View Profile Email
So because the user fails at setting up their own path variable, we give them assistance? I don't... nevermind...
Logged
Offline (Unknown gender) TGMG
Reply #8 Posted on: December 29, 2010, 04:39:23 am

Developer
Joined: Jun 2008
Posts: 107

View Profile WWW Email
Well it doesn't have to specify the makefile location I suppose the plugin could just look in the platforms folder for it, it was just because a few platforms might share the same makefile so ti would reduce the need for more than 1 of the exact same makefile. Also so in the future if a makefile has to be in a specific path for whatever reason no edits need to be made to the plugin/compiler. Also it would be pretty easy to change the makefile to test changes without modifying the  proper one.
I also don't know how iphone compiling for mac/linux might work in the future so allowing a different makefile for the same platform could help keep things more organised instead of having a very different makefile for win/linux inside the same makefile for mac just to compile for iphone.
Logged
me
GMbed 2.0 :: Embed you gm games in websites.
Offline (Male) RetroX
Reply #9 Posted on: December 29, 2010, 02:34:17 pm

Master of all things Linux
Contributor
Location: US
Joined: Apr 2008
Posts: 1055
MSN Messenger - classixretrox@gmail.com
View Profile Email
So because the user fails at setting up their own path variable, we give them assistance? I don't... nevermind...
Example:
PATH=/usr/i486-mingw32/bin:$PATH make
I wouldn't want that to always be in my path.  Just long enough to run the command.
Logged
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)
Quote from: Fede-lasse
Why do all the pro-Microsoft people have troll avatars? :(
Pages: 1
  Print