In likes 11 and 14 I seem to be missing a seperator. Anyone got any clues? I don't mess with makefiles often unless I'm adding or removing a file (this one I havn't touched). I've tried reformating it some, had to pull all the filenames back together (indent may have done this, but I know I told it to deal with *.c), so I'm kinda clueless.
Is this post how your Makefile actually looks?!? If so then it's no wonder it's complaining. Makefiles are very sensative to spacing and formatting. If you have spaces where tabs belong, it complains. This Makefile looks like a truck ran over it :P
I'd strongly suggest downloading a copy of smaugfuss again (or using the one you'd previously downloaded if you've still got it) and extracting the Makefile to simply replace that one, then you can always readd in your changes without affecting the file's format by hand...
...and keep from using indent anymore. I'll do my formating longhand -.-
Yeah, red/l seems like the best option, then keeping a backup somewhere would prolly be a good idea, too
P.S. Anyone know of a good cocurrent version system I might could use? I know there is one on SuSe, but I kind of don't know how to use it, and don't know which one it is :)
I have been using cvs for MUSHclient. It might not be the most modern but it works well enough for me. You can use it on both Windows and Linux.
Cvs is pretty simple to use, once you do the initial setup. Assuming you have installed cvs but never used it, you would do something like this (after setting up CVSROOT, see below):
cvs init
Once only! This creates the repository where copies of your source are stored.
You need a CVSROOT variable set up, undex Linux or Windows. For Windows use the System Properties to do this. On my Windows box, it looks like this:
CVSROOT=:pserver:nick@servername:/cvs
This is telling it to store its files on the /cvs directory, username "nick" on server "servername".
For a local directory, you would simply specify the directory, eg.
CVSROOT=/cvs
After that, I would CD to my smaug source directory, and clean up anything you don't want in cvs (eg. *.o, *.bak and so on).
Then for the first time for this directory you create the entry for it, by importing your existing files, something like this:
cd ~/SmaugFUSS/src
cvs import SmaugFUSS/src yourname INITIAL_RELEASE
This creates "SmaugFUSS/src" entry in the repository.
Now, and this is the important step, exit the directory and remove it (I am assuming you have backups in case something goes wrong).
cd ../.. # back out of the SmaugFUSS/src directory
rm -rf SmaugFUSS/src # remove the source
Now get it back out of cvs - this is important, so that cvs creates a couple of files and directories to track what you are doing. In particular, after doing this you should have a CVS subdirectory in the source directory. You don't use this yourself, it is for CVS to track what it is doing.
cvs get SmaugFUSS/src
These above steps are a once-off.
From now on you simply edit files in the src directory. When you want to "commit" the changes, do this:
cvs commit
This updates the repository to match the source in your directory.
At any time you can see what changes you made since the last commit:
cvs diff
(or)
cvs diff filename
If you add a new file to the project you can then do this:
cvs add filename
cvs commit
The other thing I do is "tag" releases, like this:
cvs rtag RELEASE_1_2 SmaugFUSS/src
In the case of MUSHclient (say) this sets a "checkpoint" of the state of every source file as at a particular release.
In my case, I can see exactly what changes I made between version 3.70 and 3.71 of MUSHclient, in one line, like this:
cvs diff -r RELEASE_3_70 -r RELEASE_3_71
Concurrent updates
Assuming you have more than one developer, this is where CVS comes into its own. All developers need access to the one server that holds the committed copy of the source.
Assuming that Dralnu makes some changes to some source files, and has committed them, then Nick can type:
cvs update
This synchronizes Nick's source directory to match the repository. Similarly Dralnu can do the same thing to get Nick's changes.
There is a lot more to cvs than that (for instance, you can delete files), however that should get you started.
I don't know if that was cut + paste or what, but might want to put it somewhere along with your compile faq and whatnot. It helps.
As for backups, no. I do, though, have a fairly complete list of all the snippets I added in (I havn't done anything outside of snippets besides one skill I added in for rangers, plus area/class changes, which this shouldn't bother). Well, now I'm off to install cvs (Isn't that a drug store?)
EDIT #1:
Turns out I have a version system (svn, or subversion), and found a site with an online manual for version 1.2, along with the new version, 1.3, so I'm gonna leave a link here to the page for anyone who might be using this util instead of cvs.
http://subversion.tigris.org/
Thats the site for Subversion. They claim it to be better then CVS, so anyone else who might be interested might look into playing with it some (I've found alot of things like CVS and VI end up with something that is similar to VIM, Elvis, or in this case, so they say, SVN.
We've veered a bit off topic, but on the subject of version control Subversion is a nice piece of software. We use it to maintain control over the Quicksilver Forums repository and it is very easy to work with.
You can convert CVS repositories to use SVN too, but when I tried this I was unable to locate a method to access it even though the conversion script said it all worked. The documentation on this process was lacking and Google was of little help. Of course I'm pretty sure it was something simple that I just missed. :)
Oh, and on the subject of indentation, if you had typed "make indent" that would have run the indentation script on your C and H files :)
Well, the topic is kind of repaired (read my post in the FUSS forum to see what happened, lol), and I did ask about version systems. The new SVN has an oriely guide online for free, which seems to be rather good (It's O'Reily, isn't it?), so that may help
Also, the downloads don't seem to have an RPM for SVN anywhere, but Google Subversion RPM will bring something up to download (shorter d/l, as well)
EDIT #1
Ok, I misread some of the subversion docs, and now have the repository in an odd place, and don't see a way to remove that repository to move it elsewhere...