Crystal Space
Welcome, Guest. Please login or register.
July 11, 2014, 06:41:55 am

Login with username, password and session length
Search:     Advanced search
9005 Posts in 2043 Topics by 8142 Members
Latest Member: Es2homes1
* Home Help Search Login Register
+  Crystal Space
|-+  Miscellaneous
| |-+  Article/Tutorial Requests
| | |-+  Creating a CS-Project...
« previous next »
Pages: [1] Print
Author Topic: Creating a CS-Project...  (Read 8760 times)
mark
Full Member
***
Posts: 101


View Profile
« on: January 19, 2005, 04:40:40 pm »

The documentation lacks an important topic: "How to create a CS-project"

The docs only talk about how to compile a CS-app, but when CS shall not be installed into the system-tree and when external libs (that shall not be installed too) are needed for this app, then we have a very complex task.

This tutorial should give answers to the following questions:
- how to create a "good" project tree with CS and external libraries (e.g. python, a network-lib, a database, <what a project may need>...).
- how to create a jamfile that handles compiling of these external libs (by invoking their makefiles)
- how to create files with gamedata with jam (e.g. zipfiles with sounds or pictures, or databases, ...)
- how to create binaries that can be installed everywhere (without dependency of absolute pathnames)
- how to handle those env. variables $CRYSTAL and $CEL in a smart way (e.g. with a configfile that is created by an installer). Setting these variables sucks and many windows-dummies don't know how to set an env-variable...

example:
A CS-app with a 3rd-party network-lib shall be created. How to include the netlib into the project?
How to create a compile-output-directory for that CS-app like
/CS-app
|-bin
|-libs
|  |-netlib
|  |-CEL
|  `-CS
`data
  |-soundfiles
  `graphics
so that "/CS-app" can be installed everywhere in the path? (=How to include everything needed into the game's distribution).
It shouldn't matter when a user wants to install the app into /usr/games oder /opt or on a windows-machine into c:\games\CS-app oder c:\program files\CS-app

I know that this is mostly jam-related, but the jam-docs aren't easy to understand. I needed some weeks to find out how to modify the jamfiles created by CS's jamtemplate-script (is it mentioned somewhere in the CS-docs?) for my needs and I'm still not satisfied because all those external libs are not yet integrated, depend on an absolute path and are compiled with a shellscript instead of jam...
Logged

Gentoo Linux ~x86, kernel 2.6.11-cko9 smp, gcc 3.4.4-r1, binutils 2.16.1, glibc 2.3.5 NPTL
CS+CEL Pseudo Stable 2005.09.03
deckerego
Full Member
***
Posts: 149


View Profile WWW
« Reply #1 on: January 20, 2005, 04:32:15 pm »

Sounds like you're asking for a how-to on creating an installer... does that sound right?
Logged
mark
Full Member
***
Posts: 101


View Profile
« Reply #2 on: January 20, 2005, 08:03:03 pm »

no, what I want is a doc how to create a jam-project file for a cs-app.
But this jamfile has to take care about CS and external libs that are needed in the cs-app.
For example:
"jam mycs-app" has to compile my cs-app but in this case, CS isn't compiled yet, so jam compiles CS first (and other apps that are included in that project too).

All these apps are included in the mycs-app project because mycs-app ships all it's needed (not common) libs with it, e.g. python 2.3.4, sqlite 3.0.8, CS 0.99CVS2005xxxx, CEL...

That's purpose #1 for this project-file.
Purpose #2 is that "jam mycs-app install" creates a tree which includes all the mycs-app binaries, libs and all other libs like CS, sqlite, python, foo... like this:
/mycs-app
|-bin
|-lib
... (as I wrote above)

A good example is a game like UnrealTournament that has a special directory structure and ships everything with it.
You can move the files to a directory wherever you want and when you delete the unreal-dir, everything is as clean as before.

The background is: we don't want our gamers to download each lib in a special version from several places, untar it, compile it, install it deep into their system (where they will never find and uninstall it) to be able to use our game.
Instead we have just one package, everything works fine, play it and when /mycs-app is deleted, then everything from us is history on that machine.
A package like this is userfriendly (one click and ready to go) and developerfriendly (we know where our files are, we know that they work together, we know that we don't depend on anything on the gamers machine)

An installer is different from that, it copies the files interactively to some place, creates configfiles and maybe even an uninstaller, but that's not what I need.
Logged

Gentoo Linux ~x86, kernel 2.6.11-cko9 smp, gcc 3.4.4-r1, binutils 2.16.1, glibc 2.3.5 NPTL
CS+CEL Pseudo Stable 2005.09.03
mark
Full Member
***
Posts: 101


View Profile
« Reply #3 on: January 24, 2005, 09:34:21 am »

I guess that's impossible with jam, mostly because of it's crappy documentation.
I found "scons" and the docs there are great. It can do exactly what I want and has an example for everything.

jam go home!
Logged

Gentoo Linux ~x86, kernel 2.6.11-cko9 smp, gcc 3.4.4-r1, binutils 2.16.1, glibc 2.3.5 NPTL
CS+CEL Pseudo Stable 2005.09.03
Astro1derboy
Guest
« Reply #4 on: April 25, 2005, 09:34:17 pm »

I read elsewhere in these forums, that the compiler creates the necessary executables for installation.

Is this correct?  I'm sorry, if asking a redundant question.  I've been trying to understand the processes (reading about everything possible) but I feel the documentation speaks more to programmers, rather than artists.

I don't mean to stir the waters, or get anyone upset, but I'm just trying to figure out how to successfully get CS 'installed' onto my system.

Does anyone know of a 'CS installation/compiling' walk-through for dummies (myself)?

I appreciate any feedback.

After I figure all this out, I think I'm going to make such a step-by-step for people in the same boat as I am now.

THANKS!
Logged
mark
Full Member
***
Posts: 101


View Profile
« Reply #5 on: April 25, 2005, 09:59:28 pm »

There is a large and complete part in the CS-manual, how to compile CS:
http://www.crystalspace3d.org/docs/online/manual-0.98/cs_16.html#SEC23

What do you want to know?
Logged

Gentoo Linux ~x86, kernel 2.6.11-cko9 smp, gcc 3.4.4-r1, binutils 2.16.1, glibc 2.3.5 NPTL
CS+CEL Pseudo Stable 2005.09.03
Zen
Newbie
*
Posts: 1


View Profile Email
« Reply #6 on: June 25, 2006, 08:03:36 am »

http://www.mingw.org/download.shtml

Look at that page and please tell me what minggw I need to compile CS and possibly Crystal Core. I am a modeler and not a programmer. That page is full of files that make absolutely no sense to me. Yes, I would like to compile CS, Core, and  Cel, but this stuff is to hard to figure out. I have WindowsXP Pro with C++6 installed, so I tried the .98 version of CS and couldn't get it to work. I tried it with the 32libs too. I figured I would now try the Ming compiler install rather than the MS2005 compiler.

I am very impressed with the Crystal Space and Cel Demos. I downloaded the artist binary, and have finally gotten the 'blender to crystal' plug-in working in Blender. I am able to view a level with the CS walkthrough program. This is as far as I have gotten in a week.. I was thinking about being a help to Crystal Core with some models or levels, but I can't compile nothing.

I'm at the point of giving up on trying to compile CS, and just make some levels and models for Core with Blender. But it gripes me that I can't get these programs to compile. The Crystal Space Demo is very impressive. I like it mainly because it doesn't require BSP worlds.

Can you help me get these programs compiled?
What do I need? Or should I just give up and use Blender to convert the stuff over?

Logged
Pages: [1] Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Page created in 9.519 seconds with 16 queries.