A long while back I improved the Makefiles to allow for compiler
specific flags so that they don't have to be only "clang" or "gcc". This
is because in some systems gcc is actually clang (macOS does this). Also
if someone wants to use a different version or path then they can do so
with the right flags enabled. Before that change it would not work
right.
The comments suggested these flags will only be set when CC is exactly
"clang" or "gcc". This has been corrected.
A bug in macOS 26 (is anyone surprised any more?) ends up with warning:
clang: warning: overriding deployment version from '16.0' to '26.0' [-Woverriding-deployment-version]
depending on invocation. Particularly with at least some versions of
gcc, even though in this case it was actually gcc and not the system gcc
that is really clang in disguise.
Because of this -Wno-overriding-deployment-version was added to
next/Makefile.example.
One of the warnings disabled (triggered in macOS) that was already added
seemed to be missing.
I also disabled the silly warning triggered by clang with -Weverything (I
think -Weverything) -Wunsafe-buffer-usage as that is against basic C (it
will not even let you iterate through argv without whining about it
being 'unsafe').
The example in the Makefile given is -Wno-int-conversion instead.
By mistake in a few previous commits, some useful explanatory
and example comments were removed.
Add comments that will be useful for IOCCC29 and beyond.
Remove `${GINDENT}` and add `${RMDIR}` Makefile variables.
We update `next/Makefile.example` as per needs of IOCCC
final judging rounds.
Improved a few "XXX" comments.
Add `-pedantic` to `${CWARN}` by default with a comment
suggesting that is is OK to remove that compiler flag.
Renamed some FAQs (typos and/or other things).
Fix a number of typos in various files (including markdown format
errors).
Rules and guidelines should be relatively good although as there is a
lot to get through and not much time left maybe I missed something (I
also kind of cheated doing the final checks with the guidelines rather
than going through them all again).
The next/try.sh and next/try.alt.sh scripts have had updates as well and
the next/Makefile.example was modified too.
The index.html page now has an anchor for goals of the contest so that
the goals in the rules could simply link to it in index.html.
Although some text had to be added (and some corrected) a reasonable
amount of text was also removed as it was elsewhere or was extraneous in
some way.
Without the @ before the comments (which are informative and to be
removed by contestants) it shows the comments when running 'make'. Even
worse is without doing $${CHMOD} it would not evaluate to anything so it
looked bizarre.
Thus the @ was added to the comments like the rest of the file (comments
in rules).
Since only try.sh and try.alt.sh files may be executable in submission
tarballs, the Makefile.example now notes this and shows how one can
adjust this if they need to. This is also in the guidelines, rules and
FAQ but those cannot be committed yet.
Reworded some things.
Brought up how the IOCCC has moved away from spoilers.
As part of the section on the Makefile I have additionally added to the
Makefile.example a 'try.alt' rule in the case of someone having
alternate code. It is not required, of course.
Winning entries include var.mk and that sets the variables CLANG and
GCC. Without this the findstring check in the Makefile (on ${CC})
matches the first one and uses the wrong warning options.
This commit resolves this problem.
Remove the install rule as that's included in 1337.mk.
Remove the indent.c rule as that's included in 1337.mk.
Add to make clobber removal of *.dSYM.
Removed -g3 from OPT variable. This is more useful in macOS but with
optimised code debug symbols are not nearly as useful anyway.
The Makefile.example file now has the ALT_OBJ and ALT_TARGET (with a
comment explaining how to use it) and the alt rule (which if the
variables are left empty it will do nothing with 'make alt' or 'make
everything').
The example Makefile now has the everything rule as well, for those who
have an alt target.
Fix links to next/try.sh, next/try.alt.sh and next/Makefile.example in
html files (guidelines/rules/FAQ) to not link to GitHub as they're
supposed to be downloaded.
The file template/entry/Makefile.entry was moved to
next/Makefile.example. This matches the mkiocccentry repo in filename
and where it was before (template/entry) is not the right place as that
is for the template of making submissions into a winning entry whereas
next/ is for the next contest. The next/ seems like the most logical
place because the example file could be updated per contest for whatever
reason, perhaps by adding the year in it (or not). On the other hand,
the try.sh in template/entry is for submitters too but since the
bin/cvt-submission.sh script will copy the template files to a winning
entry if it does not exist it is left in template/entry, even if this
might not be ideal.
The references to the old Makefile.entry have been updated to
Makefile.example in the new path/filename.
Other changes had to be made too including updates to
bin/cvt-submission.sh. That script should be checked to make sure
everything is okay but as I have no way to test it that might have to be
done by the judges though I think it is okay.
Html files that have been changed that might need to be checked are:
0. faq.html (this one especially should be checked)
1. next/guidelines.html (though the judges will be checking this more)
2. next/rules.html (though the judges will be checking this more)
For the faq.html file, the Makefile.example and try.sh/try.alt.sh
scripts should be downloaded, not linked to on GitHub and it needs to be
clear that one should use the Makefile.example from the website (this
repo) rather than the out of date mkiocccentry repo.
For the guidelines and rules, and especially the guidelines, any files
linked should also be downloaded and not linked to GitHub. The text
should be clear already but it might be good to have a quick pass. The
judges will be going over these files before the next contest too. The
files should be downloaded here too, not linked to GitHub as submitters
need to download the files to make use of.
The thanks-for-help.html file was slightly modified but should be fine
too. In this case the GitHub file should be linked to.
The version of the rules and guidelines are from an earlier date of when
they were last modified for the above changes (as this was worked on
over a number of days).