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.
235 lines
4.5 KiB
Makefile
235 lines
4.5 KiB
Makefile
#!/usr/bin/env make
|
|
#
|
|
# prog - an example Makefile <<=== change "an example Makefile" to a suitable
|
|
# title for submission
|
|
#
|
|
# Please use this Makefile, renamed as Makefile of course, as the Makefile in
|
|
# your submission. Modify it as needed, including removing this comment and
|
|
# other comments we ask you to remove.
|
|
|
|
#############################
|
|
# shell used by this Makefile
|
|
#############################
|
|
|
|
SHELL= bash
|
|
|
|
|
|
#######################
|
|
# common tool locations
|
|
#######################
|
|
|
|
CC= cc
|
|
CLANG= clang
|
|
GCC= gcc
|
|
GINDENT= gindent
|
|
MV= mv
|
|
RM= rm
|
|
TRUE= true
|
|
|
|
|
|
#####################
|
|
# C compiler settings
|
|
#####################
|
|
|
|
# Common C compiler warnings to silence
|
|
#
|
|
# Example: CSILENCE= -Wno-some-thing -Wno-another-thing
|
|
#
|
|
# NOTE: If you add -Wno-stuff to CSILENCE, please update
|
|
# CUNKNOWN in the next comment block.
|
|
#
|
|
# NOTE: Please don't add -Wno-unknown-warning-option to CSILENCE.
|
|
#
|
|
#
|
|
CSILENCE=
|
|
|
|
# Attempt to silence unknown warnings
|
|
#
|
|
# If you add -Wno-stuff to CSILENCE, then please change CUNKNOWN to read:
|
|
#
|
|
# CUNKNOWN= -Wno-unknown-warning-option
|
|
#
|
|
CUNKNOWN=
|
|
|
|
# Common C compiler warning flags
|
|
#
|
|
CWARN= -Wall -Wextra -pedantic ${CSILENCE} ${CUNKNOWN}
|
|
|
|
# The standard to compile against
|
|
#
|
|
# Your IOCCC submission is free to require older C standards, or
|
|
# even not specify a C standard at all. We suggest trying
|
|
# for -std=gnu17, but that is not a requirement and you won't
|
|
# be penalized if you name CSTD empty or use another
|
|
# well known and reasonably widely implemented C standard.
|
|
#
|
|
CSTD= -std=gnu17
|
|
|
|
# Compiler bit architecture
|
|
#
|
|
# Example for 32-bitness: ARCH= -m32
|
|
# Example for 64-bitness: ARCH= -m64
|
|
#
|
|
# NOTE: Normally one should not specify a specific architecture.
|
|
#
|
|
ARCH=
|
|
|
|
# Defines that are needed to compile
|
|
#
|
|
# Example: -Dfoo -Dbar=baz
|
|
#
|
|
CDEFINE=
|
|
|
|
# Include files that are needed to compile
|
|
#
|
|
# Example: CINCLUDE= -include stdio.h
|
|
#
|
|
CINCLUDE=
|
|
|
|
# Other flags to pass to the C compiler
|
|
#
|
|
# Example: COTHER= -fno-math-errno
|
|
#
|
|
COTHER=
|
|
|
|
# Optimization
|
|
#
|
|
OPT= -O3
|
|
|
|
# Default flags for ANSI C compilation
|
|
#
|
|
CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${COTHER} ${OPT}
|
|
|
|
# Libraries needed to build
|
|
#
|
|
LDFLAGS=
|
|
|
|
# C compiler to use
|
|
#
|
|
CC= cc
|
|
|
|
# Compiler add-ons or replacements for clang only
|
|
#
|
|
ifeq "$(findstring $(CLANG),${CC})" "$(CLANG)"
|
|
#
|
|
CSILENCE+=
|
|
#
|
|
CWARN+= -Weverything
|
|
#
|
|
endif
|
|
|
|
# Specific add-ons or replacements for gcc only
|
|
#
|
|
ifeq "$(findstring $(GCC),${CC})" "$(GCC)"
|
|
#
|
|
CSILENCE+=
|
|
#
|
|
CWARN+=
|
|
#
|
|
endif
|
|
|
|
|
|
###########################################
|
|
# Special Makefile variables for this entry
|
|
###########################################
|
|
|
|
# what to build
|
|
#
|
|
PROG= prog
|
|
OBJ= ${PROG}.o
|
|
TARGET= ${PROG}
|
|
|
|
# If you have alternate code, uncomment the next two lines and
|
|
# remove the rest of the comments:
|
|
# ALT_OBJ= ${PROG}.alt.o
|
|
# ALT_TARGET= ${PROG}.alt
|
|
ALT_OBJ=
|
|
ALT_TARGET=
|
|
|
|
# list any data files supplied with the submission
|
|
#
|
|
DATA=
|
|
|
|
#################
|
|
# build the entry
|
|
#################
|
|
|
|
all: data ${TARGET}
|
|
@# please remove these comments
|
|
@
|
|
@# NOTE: only try.sh and try.alt.sh scripts will be made executable in
|
|
@# the tarball so if you need any scripts that are executable, make sure
|
|
@# to use ${CHMOD} +x on them like:
|
|
@#
|
|
@# ${CHMOD} +x foo.sh
|
|
@:
|
|
|
|
.PHONY: all data try clean clobber install
|
|
|
|
# how to compile
|
|
#
|
|
${PROG}: ${PROG}.c
|
|
${CC} ${CFLAGS} ${PROG}.c -o $@ ${LDFLAGS}
|
|
|
|
# suggested way(s) to run the program
|
|
#
|
|
try: ${PROG} ${DATA}
|
|
@# please remove these comments
|
|
@# notice how we do not assume that . is a component of the $PATH environment variable
|
|
@# you may use the try.sh script if you have one
|
|
@# change this next line as needed
|
|
./${PROG} some arguments
|
|
|
|
|
|
# alternative executable
|
|
#
|
|
alt: data ${ALT_TARGET}
|
|
@:
|
|
|
|
${PROG}.alt: ${PROG}.alt.c
|
|
${CC} ${CFLAGS} ${PROG}.alt.c -o $@ ${LDFLAGS}
|
|
|
|
# suggested way(s) to run alt code, if you include a prog.alt.c
|
|
#
|
|
try.alt: ${PROG}.alt ${DATA}
|
|
@# please remove these comments
|
|
@# notice how we do not assume that . is a component of the $PATH environment variable
|
|
@# you may use the try.alt.sh script if you have one
|
|
@# change this next line as needed
|
|
./${PROG}.alt some arguments
|
|
|
|
|
|
# data files
|
|
#
|
|
data: ${DATA}
|
|
|
|
# both all and alt
|
|
#
|
|
everything: all alt
|
|
|
|
|
|
###############
|
|
# utility rules
|
|
###############
|
|
|
|
clean:
|
|
${RM} -f ${OBJ}
|
|
@-if [[ -f indent.c ]]; then \
|
|
echo ${RM} -f indent.c; \
|
|
${RM} -f indent.c; \
|
|
fi
|
|
|
|
clobber: clean
|
|
${RM} -f ${TARGET} *.dSYM
|
|
@-if [[ -e sandwich ]]; then \
|
|
${RM} -f sandwich; \
|
|
echo 'ate sandwich'; \
|
|
fi
|
|
|
|
|
|
######################################
|
|
# optional include of 1337 hacker rulz
|
|
######################################
|
|
|
|
-include 1337.mk ../1337.mk ../../1337.mk
|