Home » SIRTECH CLASSICS » Jagged Alliance: Unfinished Business » Vanilla Modding » Autotool conversion project.
| Autotool conversion project.[message #102310]
|
Thu, 15 September 2005 10:15
|
|
ebuck |
 |
Messages:123
Registered:August 2004 Location: Houston, TX |
|
|
This is for those interested in my converting the Visual C build into something that will build using autotools instead of the solitary Makefile that exists in ja2/Build.
Why do such a conversion? Well, here's a small list of reasons that might not make much sense (or might make a lot of sense) depending on your point of view.
1. The autotool build chain has a lot of support on many platforms, and builds can be peformed on platforms that lack autotools (provided that the configure file was pre-generated).
2. The gcc compiler work is a great way to build the product, but it seems odd to couple it to a single static Makefile that must be generated from the MS VC6 project files.
3. The cygwin environment is much more easily available than VC6, and this lowers the barrier of entry for new development.
4. Autotools provides for a lot of --enable-feature flags, so things like turning on / off the editor (or changing languages) can theoretically be handled much easier than the "edit the right *.h file" method.
5. Automated building is slightly easier because of #4.
(yadda, yadda, yadda)...
That said, it will be a slow process because I am determined to fix the non PRECOMPILEDHEADERS branch of the build. This stuff obviously hasn't compiled in a while, since many #includes are missing.
While I'm at it, I'll also clean up some easy to do stuff like #ifndef #define #endif guard statements around the header files, and no blank line at the end of a file type warnings.
This is my fourth attempt to port JA2's build system to autotools, so I believe it will be successful.
Report message to a moderator
|
Sergeant
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: Autotool conversion project.[message #102322]
|
Mon, 19 September 2005 06:15 
|
|
ebuck |
 |
Messages:123
Registered:August 2004 Location: Houston, TX |
|
|
Snap,
You would be right, depending on how you built the executable. It is possible to build standard UNIX like executables which don't have #include and thus require cygwin libraries for most standard operations. It is also possible to extend these with library loading utils that expect *.so libraries. However, 90% of the time you build your exe to use dll libs (if it needs to load a lib) or statically link in the libraries (so there's no need to load at all).
I'm being careful to not include anything new, so I don't expect any suprises. I've build many exes in Cygwin that have ran on Windows without cygwin, and I've even built stuff on cygwin that ran on other OS's (PalmOS) which can't rely on a cygwin environment.
Some people get obsessed with smaller exe size, and then they dynamically load everything they can. Sometimes they link in the wrong loader, and can't run without the *.so libs that cygwin provides. It's a common enough problem, but one that usually requires misguided effort to create.
Report message to a moderator
|
Sergeant
|
|
|
|
|
|
| Re: Autotool conversion project.[message #102324]
|
Sat, 24 September 2005 08:14 
|
|
ebuck |
 |
Messages:123
Registered:August 2004 Location: Houston, TX |
|
|
Well, all of Editor (with JA2EDITOR NOT defined) and all of Laptop builds, with warnings.
I've started on Strategic, but I expect things to not move forward at all this week, as I am in Houston, TX and a Hurricane is just a few hundred miles away in the Gulf.
I've been boarding up windows, and preparing for the storm for the last three days. I'm so exhausted, I might even sleep through the storm. Speaking of which, who's the brave modder that will add in a tropical storm mod?
Report message to a moderator
|
Sergeant
|
|
|
|
|
|
| Re: Autotool conversion project.[message #102326]
|
Sun, 25 September 2005 03:00 
|
|
ebuck |
 |
Messages:123
Registered:August 2004 Location: Houston, TX |
|
|
Lynxnyl,
Yes, I eventually noticed the ddraw.h header file, and realized that there was no need to install a directX anything. If you still want (for whatever reason) the DirectX8 SDK, I have it and can send it to you.
Rita kept edging a bit East. It was a bit scary when moving East meant moving towards Houston, but eventually it passed Houston all together and hit at the border of Louisiana. We had rain and wind, and expect a little more today, but the worst has passed. We still could lose utilities, but we were already prepared for that.
Report message to a moderator
|
Sergeant
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: Autotool conversion project.[message #102339]
|
Sun, 04 December 2005 01:54 
|
|
Manax |
Messages:4
Registered:November 2005 Location: NY, USA |
|
|
So, Edwin, do you have your source changes kept somewhere online? And... do you happen to know the status of the linux port, and it's relationship to the work you are doing? I've seen it come up, but not get very far, come up again... but I'd like to try my hand at it. And if you have everything building with djgpp, that is certainly a better starting point for me.
Report message to a moderator
|
Civilian
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: Autotool conversion project.[message #102346]
|
Sat, 10 December 2005 13:59 
|
|
ebuck |
 |
Messages:123
Registered:August 2004 Location: Houston, TX |
|
|
Sorry to have been scarce on the boards. Thanksgiving holidays changed my schedule up and I've not attended the ja2 stuff for a few weeks. Rest assured I'll be checking in a bit more often now.
Basically I have to port the ASM into AT&T syntax (which I've had some success), finish off ja2/Build/TileEngine, ja2/Build, and link the thing. I've been careful, but who knows if it will work.
As far as a port to Linux. It's been wished for many times, and Defrog's right. The sound and graphics subsystems will have to basically be ported (aka re-written) for a Linux port. The window shell interaction is a minor problem, but that's probably the easy part.
Currently the sound code uses the Miles Sound System (MSS) and the graphics code uses some old DirectX (2D) API calls and assembly routines to compost pixels where they should be. File formats likely should be converted to modern portable standards, with an eye for supporting different screen resolutions (as the years pass, and the JA2 pixels seem to get bigger and bigger). Speech sound may have some oddities, as there is a lip-syncing mechanisim I haven't fully investigated.
As far as code sharing goes, I should have set up a source code control system from the start, but I've been lazy. Others have attempted to help in this area, but things tend to fall apart. I send tar-balls to people who want the code, and will gladly accept patches.
Report message to a moderator
|
Sergeant
|
|
|
|
|
|
|
|
| Re: Autotool conversion project.[message #102349]
|
Tue, 20 December 2005 21:45
|
|
ebuck |
 |
Messages:123
Registered:August 2004 Location: Houston, TX |
|
|
Add Build to the done list.
All that remains:
ja2/Build/TileEngine (has some ASM, will be a pain)
ja2.exe (linking)
It's getting close to an exe on Windows, and now there's new compiler flags to assist in cross platform coding on Linux.
About 30% of the assembly in renderworld.h has been "ported" to the AT&T syntax, and TileEngine only has about 6 *.c files that don't compile.
Report message to a moderator
|
Sergeant
|
|
|
|
Goto Forum:
Current Time: Fri Jun 12 13:41:01 GMT+3 2026
Total time taken to generate the page: 0.01917 seconds
|