Icon of Sin / Baphomet
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Freedoom > Compiling FreeDoom?
 
Author
All times are GMT. The time now is 12:12. Post New Thread    Post A Reply
kairunotabi
Newbie


Posts: 8
Registered: 02-14


Hello there, I've downloaded a zip copy of the source code for FreeDoom from Github but the only problem is that I don't know how to compile the source code.

I am using Windows 7 so I have Cygwin installed, it seems that in order to compile the source code I will need to use DeuTex but I can't find a working download link. Also, the given link for DeuTex used for the development of FreeDoom was a source code and still needed to be compiled to use.

Is anybody out there who have a compiled FreeDoom before? If so, where can I get a copy of DeuTex and how to use it in order to compile the source code.

Thanks in advance! :D

Old Post 02-10-14 05:26 #
kairunotabi is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 7830
Registered: 07-00



kairunotabi said:
Hello there, I've downloaded a zip copy of the source code for FreeDoom from Github but the only problem is that I don't know how to compile the source code.


You're better off using Git to clone the repository, rather than downloading a .zip snapshot. The Freedoom build uses symbolic links and I don't know if they'll be represented in a .zip.


I am using Windows 7 so I have Cygwin installed, it seems that in order to compile the source code I will need to use DeuTex but I can't find a working download link. Also, the given link for DeuTex used for the development of FreeDoom was a source code and still needed to be compiled to use.
I've never heard of anyone building Freedoom on Windows before, so you might be treading into new territory. That said, I believe it should be possible. It's best if you clone chungy's deutex repository from Github. You'll need to compile it from source in Cygwin. Everything else should already be in Cygwin's package repository: you'll need ImageMagick, make and Python.

Old Post 02-10-14 05:42 #
fraggle is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
kairunotabi
Newbie


Posts: 8
Registered: 02-14


Oh, downloaded it ;) thanks buddy! I'll just try to compile Freedoom before moving on to the next phase. I'll be back if there's any problem.

Old Post 02-10-14 05:49 #
kairunotabi is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 7830
Registered: 07-00


Aside from deutex everything you need should be in Cygwin, it's just a matter of installing all the right packages. You'll need gcc (c compiler) and make to build deutex.

Old Post 02-10-14 06:09 #
fraggle is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
kairunotabi
Newbie


Posts: 8
Registered: 02-14


Have you compiled Freedoom before?

Old Post 02-10-14 06:14 #
kairunotabi is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 7830
Registered: 07-00


I wrote Freedoom's build process, so I should hope so.

Old Post 02-10-14 12:59 #
fraggle is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
chungy
Senior Member


Posts: 1918
Registered: 06-05


I just tried it earlier when I had an opportunity to use a Windows XP system. Nothing was particularly difficult about it:

* Install ImageMagick, Git, Python, gcc, and make via the Cygwin setup utility.
* Using my repo for DeuTex, it's just a straight-forward "./configure; make" to build that. Copy the *.exe files to somewhere in your $PATH
* Clone the Freedoom repository using Cygwin's version of Git, not any non-Cygwin Git. Since there are symbolic links, it does get weird outside of this environment. If you cloned it outside, however, the repository itself shouldn't be anything special, you can do something like "git clone file:///cygdrive/c/Users/Kairu/Documents/freedoom" from within Cygwin to get the repo remade under it, optionally followed by "git remote set-url origin https://github.com/freedoom/freedoom.git" if you want to continue pulling from the upstream. Typing "make" should build Freedoom fine.

Also to follow up on fraggle: Zip does support symbolic links, but you need a suitable version of Info-Zip's Unzip to unpack them properly. Cygwin's unzip package can do it exactly as expected, but non-Cygwin versions of unzip (or other programs) on Windows probably wouldn't extract anything useful. Still, it's easier to just use Git, I think :)

Old Post 02-11-14 06:29 #
chungy is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 7830
Registered: 07-00



chungy said:
Also to follow up on fraggle: Zip does support symbolic links, but you need a suitable version of Info-Zip's Unzip to unpack them properly. Cygwin's unzip package can do it exactly as expected, but non-Cygwin versions of unzip (or other programs) on Windows probably wouldn't extract anything useful. Still, it's easier to just use Git, I think :)
And Github's zip downloads include the symlinks, so that should still work. I agree that we should be telling people to use git though, not download zips.

Would it simplify the process if we could just provide prebuilt exes of the Cygwin deutex?

Old Post 02-11-14 17:55 #
fraggle is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
fabian
Member


Posts: 399
Registered: 12-12



fraggle said:
Would it simplify the process if we could just provide prebuilt exes of the Cygwin deutex?


Do we really need Deutex at all?

Couldn't we use a self-compiled tool like the one PrBoom+ uses to construct its resource PWAD:
https://www.crowproductions.de/repo...4/prboom2/data/

Old Post 02-11-14 18:12 #
fabian is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 7830
Registered: 07-00


Hah, that's kind of neat. I didn't realise PrBoom had its own poor-man's deutex.

The answer is essentially yes, we could do that. Ideally something Python based to fit in with the rest of the project. We already have a custom tool for building the TEXTURE lumps which is a big step in that direction. We do need to do things like aggregating level WADs together, which is as bit more complicated than what PrBoom's system is doing, but it might not be a huge amount of work.

One idea I had in the past was to do something like what the NetPBM tools do for graphics conversion. The build process could potentially be broken down into two stages: 1) a set of tools that convert things into .lmp files and 2) a tool that aggregates lots of .lmp files together into a single WAD. Then you can potentially drive the whole thing from a Makefile somehow and do everything in parallel. Might make builds faster as well if you're only changing eg. a single graphic.

EDIT: Braindump of possibly related thoughts about Freedoom's build system that have been swimming round my head for years that I made to IRC earlier:
code:
16:48 < Giomancer> I should see about msys 18:22 < fraggle> please don't use msys, afaict it's not maintained 18:23 < fraggle> and msys means no symlinks so that's not going to work 18:23 < fraggle> i'd kind of like to just get rid of symlinks but i think deutex doesn't let you specify subdirs 18:25 < fraggle> ideally the buildcfg.txt file should be less centralised and monolithic, i'd like to be able to split it out into lots of small configs by directory 18:25 < fraggle> like there should be a directory per monster containing the sprites for that monster and configuration (x/y offsets) 18:25 < fraggle> then all those get aggregated together to build the full wad 18:26 < fraggle> same for things like level metadata 18:27 < fraggle> there should be a single metadata config file per level that specifies level name, par time, music track to use, etc. 18:28 < fraggle> ultimately though what we have works and it's probably too much effort to make any huge changes 18:34 < Giomancer> fraggle: as far as MSYS goes, they're actually working on it still 18:34 < Giomancer> fraggle: but you are right about symlinks

Old Post 02-11-14 19:29 #
fraggle is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
Gez
Why don't I have a custom title by now?!


Posts: 11553
Registered: 07-07


I'd like to eventually give SLADE 3 a "command-line" mode where it just runs a bunch of console commands without going into GUI mode. There would of course be console commands for all basic operations (open archive, import file, add offsets, etc.) and there's the Lua integration (not sure if sirjuddington finished it, though) which could handle anything else. Once everything's in place, it could even be made to handle DEUTEX's build files.

Old Post 02-11-14 19:49 #
Gez is online now Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
Giomancer
Mini-Member


Posts: 74
Registered: 06-02


Well, DavidPH has a command-line tool, DH-wad, that can easily build an IWAD from .lmp files. Perhaps you'd like to take a look at it, fraggle? It could at least form a base for something.

EDIT: Meh, Python. My brain skipped that part. In that case, yeah, why not just have a prebuilt deutex binary? Seems like it'd help.

Last edited by Giomancer on 02-11-14 at 21:16

Old Post 02-11-14 21:00 #
Giomancer is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
kairunotabi
Newbie


Posts: 8
Registered: 02-14


I'm having a problem during the compilation process, I used the downloaded zip from the Freedom Git Repository.

The compilation process was good at the beginning but after reaching the Text/Font Graphics part, cygwin gave me errors, yes, I have ImageMagick.

EDIT: After compiling DeuTex, it requires me to have a copy of cygwin1.dll to run it. Is it natural? If not, why can't we just upload a pre-compiled DeuTex executables?

Old Post 02-12-14 05:31 #
kairunotabi is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
chungy
Senior Member


Posts: 1918
Registered: 06-05


Do it entirely from within the Cygwin environment, don't venture outside. For example, use unzip from within Cygwin, or clone the Git repository from within Cygwin. Also yes, if you compile programs using Cygwin's standard GCC, they'll depend on cygwin1.dll, which isn't much of a problem if you stick to that environment.

It may be possible to have DeuTex on Windows that doesn't require Cygwin, but with Freedoom's use of symbolic links, it wouldn't help whatsoever (in fact, it'd hurt since it'd be unaware of Cygwin's symlinks). This is a build system that wasn't designed to run on Windows, but Cygwin provides sufficient emulation of all the POSIX features it needs.

If you're still having troubles, please post the error messages. Nothing can be done otherwise :)

Old Post 02-12-14 05:49 #
chungy is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
Gez
Why don't I have a custom title by now?!


Posts: 11553
Registered: 07-07


Modern Windowses have symlinks too.

Old Post 02-12-14 05:57 #
Gez is online now Profile || Blog || PM || Search || Add Buddy IP || Edit || Quote
kairunotabi
Newbie


Posts: 8
Registered: 02-14


Okay, so, why can't I compile the Text/Font Graphic part? Do I need a python wrapper instead of ImageMagick?

Old Post 02-12-14 06:07 #
kairunotabi is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
chungy
Senior Member


Posts: 1918
Registered: 06-05


You need to provide more information. Are you running make from a Cygwin shell? Do you have the Cygwin versions of Python and ImageMagick installed?


Gez said:
Modern Windowses have symlinks too.

It works differently enough that none of the Freedoom build toolchain supports them directly, so it's a moot point. (Cygwin actually supports them for reading.)

Last edited by chungy on 02-12-14 at 09:44

Old Post 02-12-14 07:47 #
chungy is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
fraggle
Filled with the code of Doom


Posts: 7830
Registered: 07-00



kairunotabi said:
Okay, so, why can't I compile the Text/Font Graphic part? Do I need a python wrapper instead of ImageMagick?
You need both Python and ImageMagick to build.

Old Post 02-12-14 16:24 #
fraggle is offline Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit || Quote
kairunotabi
Newbie


Posts: 8
Registered: 02-14


Alright, So how do I configure the build-cfg? Which should I uncomment to build for DOOM 2?

So, after configuring the build-cfg, All I have to do is to type MAKE in Cygwin?

Old Post 04-12-14 02:22 #
kairunotabi is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
chungy
Senior Member


Posts: 1918
Registered: 06-05


What are you trying to do?

Assuming that you have all the software required, building the Freedoom IWADs shouldn't require anything more than simply typing "make" after checking out a clean tree (done automatically with "git clone"...)

Old Post 04-12-14 05:00 #
chungy is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
kairunotabi
Newbie


Posts: 8
Registered: 02-14


Finally got a clean compilation :P Thanks for the help guys!

Old Post 04-14-14 03:18 #
kairunotabi is offline Profile || Blog || PM || Email || Search || Add Buddy IP || Edit || Quote
All times are GMT. The time now is 12:12. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Freedoom > Compiling FreeDoom?

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.