diff --git a/1988/dale/Makefile b/1988/dale/Makefile new file mode 100644 index 000000000..5fd6d4154 --- /dev/null +++ b/1988/dale/Makefile @@ -0,0 +1,590 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - dale + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +CWARN= -Wall -Wextra ${CSILENCE} +#CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-implicit-function-declaration -Wno-implicit-int -Wno-keyword-macro \ + -Wno-pointer-to-int-cast -Wno-return-type -Wno-unused-value +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= dale +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: The original source may not compile using modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1988/isaak/Makefile b/1988/isaak/Makefile new file mode 100644 index 000000000..cb30003fa --- /dev/null +++ b/1988/isaak/Makefile @@ -0,0 +1,594 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - isaak + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +CWARN= -Wall -Wextra ${CSILENCE} +#CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-comma -Wno-implicit-function-declaration -Wno-format-insufficient-args \ + -Wno-implicit-int -Wno-incompatible-library-redeclaration -Wno-missing-prototypes \ + -Wno-missing-variable-declarations -Wno-poison-system-directories -Wno-return-type \ + -Wno-shadow -Wno-shift-op-parentheses -Wno-strict-prototypes -Wno-unreachable-code \ + -Wno-unused-macros +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +#CDEFINE= +CDEFINE= -DI=B -DO=- -Dy +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= isaak +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: The original source may not compile using modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1988/litmaath/Makefile b/1988/litmaath/Makefile new file mode 100644 index 000000000..de8564f8d --- /dev/null +++ b/1988/litmaath/Makefile @@ -0,0 +1,585 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - litmaath + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-error -Wno-implicit-function-declaration -Wno-logical-op-parentheses +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= litmaath +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1988/phillipps/Makefile b/1988/phillipps/Makefile new file mode 100644 index 000000000..c4a52e81a --- /dev/null +++ b/1988/phillipps/Makefile @@ -0,0 +1,590 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - phillipps + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-pedantic -Wno-logical-not-parentheses -Wno-implicit-function-declaration \ + -Wno-incompatible-pointer-types -Wno-int-conversion -Wno-pointer-to-int-cast +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= phillipps +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: The original source may not compile using modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1988/reddy/Makefile b/1988/reddy/Makefile new file mode 100644 index 000000000..bc32aefde --- /dev/null +++ b/1988/reddy/Makefile @@ -0,0 +1,586 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - reddy + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-pedantic -Wno-error -Wno-implicit-function-declaration -Wno-parentheses \ + -Wno-return-type +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= reddy +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1988/robison/Makefile b/1988/robison/Makefile new file mode 100644 index 000000000..4a2e7045f --- /dev/null +++ b/1988/robison/Makefile @@ -0,0 +1,585 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - robison + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +CWARN= -Wall -Wextra ${CSILENCE} +#CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-error -Wno-implicit-function-declaration +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= robison +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1988/spinellis/Makefile b/1988/spinellis/Makefile new file mode 100644 index 000000000..b9a7b7422 --- /dev/null +++ b/1988/spinellis/Makefile @@ -0,0 +1,596 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - spinellis + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= spinellis +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= spinellis.data +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + @echo "NOTE: This entry requires a non-standard K&R C compiler to compile." + ${RM} -f $@ + @echo 'On the command line, type in the following command and then' + @echo 'then type in a C program following by EOF (control D):' + @echo + @echo '${CPP} ${PROG}.c > prog.c' + @echo + @echo 'Then on the command line, type in the following command:' + @echo + @echo '${CC} prog.c -o ${PROG} ${LIBS}' + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + ${RM} -f prog.c prog.o + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + ${RM} -f prog + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1988/westley/Makefile b/1988/westley/Makefile new file mode 100644 index 000000000..6a78b42b5 --- /dev/null +++ b/1988/westley/Makefile @@ -0,0 +1,589 @@ +#!/usr/bin/env make +# +# IOCCC 1988 winning entry - westley + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-error -Wno-implicit-function-declaration -Wno-return-type +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= westley +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: The original source may not compile using modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/fubar/Makefile b/1989/fubar/Makefile new file mode 100644 index 000000000..b730ddce0 --- /dev/null +++ b/1989/fubar/Makefile @@ -0,0 +1,595 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - fubar + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-implicit-function-declaration -Wno-incompatible-library-redeclaration +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= fubar +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= fubar.sh fubar.orig.sh +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + @echo "NOTE: This entry is likely to fail and/or dump core on modern computers." + ${RM} -f $@ + ${CP} -f fubar.sh $@ + ${CHMOD} +x $@ + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: This entry is likely to fail and/or dump core on modern computers." + ${RM} -f $@ + ${CP} -f fubar.orig.sh $@ + ${CHMOD} +x $@ + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + ${RM} -f ouroboros.c + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/jar.1/Makefile b/1989/jar.1/Makefile new file mode 100644 index 000000000..9707b93b3 --- /dev/null +++ b/1989/jar.1/Makefile @@ -0,0 +1,593 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - jar.1 + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= jar.1 +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${RM} -f $@ + ${CP} jar.1.sh $@ + ${CHMOD} +x $@ + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +${PROG}.orig: ${PROG.orig}.c + @echo "NOTE: The original source may not compile using modern compilers." + ${RM} -f $@ + ${CP} jar.1.orig.sh $@ + ${CHMOD} +x $@ + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/jar.2/Makefile b/1989/jar.2/Makefile new file mode 100644 index 000000000..dfca0a64a --- /dev/null +++ b/1989/jar.2/Makefile @@ -0,0 +1,589 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - jar.2 + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +CWARN= -Wall -Wextra ${CSILENCE} +#CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-implicit-function-declaration -Wno-missing-braces -Wno-parentheses +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= jar.2 +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: The original source may not compile using modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/ovdluhe/Makefile b/1989/ovdluhe/Makefile new file mode 100644 index 000000000..929321881 --- /dev/null +++ b/1989/ovdluhe/Makefile @@ -0,0 +1,591 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - ovdluhe + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-char-subscripts -Wno-constant-conversion -Wno-empty-body \ + -Wno-implicit-function-declaration -Wno-parentheses -Wno-unsequenced +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= ovdluhe +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + @echo "NOTE: This entry requires a non-standard K&R C compiler to compile." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: The original source may not compile using modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/paul/Makefile b/1989/paul/Makefile new file mode 100644 index 000000000..702abb0c5 --- /dev/null +++ b/1989/paul/Makefile @@ -0,0 +1,588 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - paul + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +CWARN= -Wall -Wextra ${CSILENCE} +#CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-error -Wno-implicit-function-declaration -Wno-format-security \ + -Wno-incompatible-library-redeclaration -Wno-int-to-pointer-cast \ + -Wno-pointer-to-int-cast -Wno-return-type +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= paul +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + @echo "NOTE: This entry is likely to fail and/or dump core on modern computers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/robison/Makefile b/1989/robison/Makefile new file mode 100644 index 000000000..d0adc7a51 --- /dev/null +++ b/1989/robison/Makefile @@ -0,0 +1,586 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - robison + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-unused-parameter +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= robison +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + @echo "NOTE: This entry requires a non-standard K&R C compiler to compile." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/roemer/Makefile b/1989/roemer/Makefile new file mode 100644 index 000000000..77e40900c --- /dev/null +++ b/1989/roemer/Makefile @@ -0,0 +1,586 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - roemer + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-char-subscripts -Wno-error -Wno-implicit-function-declaration \ + -Wno-string-plus-int -Wno-unused-value +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= roemer +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/tromp/Makefile b/1989/tromp/Makefile new file mode 100644 index 000000000..e0b709fea --- /dev/null +++ b/1989/tromp/Makefile @@ -0,0 +1,592 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - tromp + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +CWARN= -Wall -Wextra ${CSILENCE} +#CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-error -Wno-implicit-function-declaration -Wno-pointer-to-int-cast \ + -Wno-no-return-type -Wno-builtin-requires-header -Wno-empty-body \ + -Wno-string-plus-int -Wno-return-type -Wno-unknown-warning-option +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= tromp +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= ${PROG}.orig.o +ALT_TARGET= ${PROG}.orig + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + @echo "NOTE: This entry uses non-standard args to main() that do not work with modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +${PROG}.orig: ${PROG}.orig.c + @echo "NOTE: The original source may not compile using modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/vanb/Makefile b/1989/vanb/Makefile new file mode 100644 index 000000000..52a367b95 --- /dev/null +++ b/1989/vanb/Makefile @@ -0,0 +1,585 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - vanb + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-char-subscripts -Wno-error -Wno-implicit-function-declaration -Wno-pedantic +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= vanb +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1989/westley/Makefile b/1989/westley/Makefile new file mode 100644 index 000000000..de32a659b --- /dev/null +++ b/1989/westley/Makefile @@ -0,0 +1,587 @@ +#!/usr/bin/env make +# +# IOCCC 1989 winning entry - westley + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# The orig.Makefile, if it exits, is a copy of the pre-modified Makefile. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +############################# +# shell used by this Makefile +############################# +# +SHELL= /bin/bash + +####################### +# common tool locations +####################### +# +A2P= a2p +AR= ar +ASA= asa +AT= at +ATQ= atq +ATRM= atrm +AWK= awk +BANNER= banner +BASE64= base64 +BASENAME= basename +BATCH= batch +BC= bc +BINHEX= binhex +BISON= bison +BUNZIP2= bunzip2 +BZCAT= bzcat +BZCMP= bzcmp +BZDIFF= bzdiff +BZEGREP= bzegrep +BZFGREP= bzfgrep +BZGREP= bzgrep +BZIP2= bzip2 +BZLESS= bzless +BZMORE= bzmore +C2PH= c2ph +C89= c89 +C99= c99 +CAL= cal +CALC= calc +CAT= cat +CD= cd +CHFLAGS= chflags +CHGRP= chgrp +CHMOD= chmod +CKSUM= cksum +CLANG= clang +CLANG_PLUSPLUS= clang++ +CLEAR= clear +CMP= cmp +COL= col +COLLDEF= colldef +COLRM= colrm +COLUMN= column +COMPRESS= compress +CP= cp +CPIO= cpio +CPP= cpp +CRC32= crc32 +CSH= csh +CSPLIT= csplit +CURL= curl +CUT= cut +C_PLUSPLUS= c++ +C_PLUSPLUS_FILT= c++filt +DATE= date +DC= dc +DD= dd +DF= df +DIFF3= diff3 +DIFF= diff +DIG= dig +DIRNAME= dirname +ED= ed +EGREP= egrep +ENV= env +EQN= eqn +ETAGS= etags +EXPECT= expect +EXPR= expr +FALSE= false +FGREP= fgrep +FILE= file +FIND2PERL= find2perl +FIND= find +FLEX= flex +FLEX_PLUSPLUS= flex++ +FMT= fmt +FOLD= fold +FS_USAGE= fs_usage +FUNZIP= funzip +FUSER= fuser +GCC= gcc +GDIFFMK= gdiffmk +GENCAT= gencat +GENSTRINGS= genstrings +GETOPT= getopt +GETOPTS= getopts +GNUMAKE= gnumake +GREP= grep +GROFF= groff +GROFFER= groffer +GROG= grog +GROPS= grops +GROTTY= grotty +GUNZIP= gunzip +GVIM= gvim +GZCAT= gzcat +GZEXE= gzexe +GZIP_PROG= gzip +G_PLUSPLUS= g++ +H2PH= h2ph +H2XS= h2xs +HASH= hash +HEAD= head +HOSTNAME_PROG= hostname +ICONV= iconv +ID= id +INDENT= indent +INFO= info +JOT= jot +KILL= kill +KSH= ksh +LAST= last +LD= ld +LESSECHO= lessecho +LEX= len +LINK= link +LN= ln +LS= ls +M4= m4 +MAKE= make +MAN= man +MKDIR= mkdir +MKFIFo= mkfifo +MKTEMP= mktemp +MV= mv +NANO= nano +NASM= nasm +NEQN= neqn +NICE= nice +NL= nl +NM= nm +NOHUP= nohup +NROFF= nroff +NSLOOKUP= nslookup +OD= od +OPENSSL= openssl +PASTE= paste +PATCH= patch +PATHCHK= pathchk +PAX= pax +PERL= perl +PICO= pico +PR= pr +PRINTENV= printenv +PS= ps +PTAR= ptar +PTARDIFF= ptardiff +PTARGREP= ptargrep +PWD= pwd +PYDOC= pydoc +PYTHON= python +PYTHONW= pythonw +READLINK= readlink +RENICE= renice +RESET= reset +REV= rev +RI= ri +RM= rm +RMDIR= rmdir +RSYNC= rsync +RUBY= ruby +RVIM= rvim +SAY= say +SCP= scp +SCREEN= screen +SCRIPT= script +SDIFF= sdiff +SED= sed +SEQ= seq +SFTP= sftp +SH= sh +SHA1= sha1 +SHA= sha +SHAR= shar +SHASUM5_18= shasum5.18 +SHASUM= shasum +SIZE= size +SLEEP= sleep +SORT= sort +SSH= ssh +STAT= stat +STRIP= strip +STTY= stty +SUM= sum +SYNC= sync +TABS= tabs +TAIL= tail +TAR= tar +TEE= tee +TEST= test +TFTP= tftp +TIDY= tidy +TIME= time +TOP= top +TOUCH= touch +TPUT= tout +TPUT= tput +TR= tr +TROFF= troff +TRUE= true +TSET= tset +TSORT= tsort +UL= ul +UNAME= uname +UNCOMPRESS= uncompress +UNEXPAND= unexpand +UNIFDEF= unifdef +UNIFDEFALL= unifdefall +UNIQ= uniq +UNITS= units +UNLINK= unlink +UNZIP= unzip +UNZIPSFX= unzipsfx +UPTIME= uptime +UUDECODE= uudecode +UUENCODE= uuencode +UUIDGEN= uuidgen +VI= vi +VIEW= view +VIM= vim +VIMDIFF= vimdiff +W= w +WAIT4PATH= wait4path +WAIT= wait +WC= wc +WGET= wget +WHAT= what +WHATIS= whatis +WHICH= which +WHO= who +WHOAMI= whoami +WHOIS= whois +WRTIE= write +XAR= xar +XARGS= xargs +XATTR= xattr +XXD= xxd +YACC= yacc +YES= yes +ZCAT= zcat +ZCMP= zcmp +ZDIFF= zdiff +ZEGREP= zegrep +ZFGREP= zfgrep +ZFORCE= zforce +ZGREP= zgrep +ZIP= zip +ZIPCLOAK= zipcloak +ZIPGREp= zipgrep +ZIPINFo= zipinfo +ZIPNOTE= zipnote +ZIPSPLIT= zipsplit +ZLESS= zless +ZMORE= zmore +ZNEW= znew +ZPRINT= zprint +ZSH= zsh + +# Set X11_LIBDIR to the directory where the X11 library resides +# +#X11_LIBDIR= /usr/X11R6/lib +#X11_LIBDIR= /usr/X11/lib +X11_LIBDIR= /opt/X11/lib + +# Set X11_INCLUDEDIR to the directory where the X11 include files reside +# +#X11_INCDIR= /usr/X11R6/include +#X11_INCDIR= /usr/X11/include +X11_INCDIR= /opt/X11/include + +# Compiler warnings +# +#CWARN= +#CWARN= -Wall +#CWARN= -Wall -Wextra +#CWARN= -Wall -Wextra ${CSILENCE} +CWARN= -Wall -Wextra -pedantic ${CSILENCE} +#CWARN= -Wall -Wextra -Weverything +#CWARN= -Wall -Wextra -Weverything -pedantic +#CWARN= -Wall -Wextra -Weverything -pedantic ${CSILENCE} + +# Silence warnings that ${CWARN} would normally complain about +# +CSILENCE= -Wno-comment -Wno-error -Wno-implicit-function-declaration \ + -Wno-logical-op-parentheses +#CSILENCE= -Wno-implicit-int + +# compiler standard +# +#CSTD= +#CSTD= -ansi +CSTD= -std=gnu89 + +# compiler bit architecture +# +# Some entries require 32-bitness: +# ARCH= -m32 +# +# Some entries require 64-bitness: +# ARCH= -m64 +# +# By default we assume nothing: +# +ARCH= + +# defines that are needed to compile +# +CDEFINE= -Dtrgpune=putchar +#CDEFINE= -DIOCCC=26 + +# include files that are needed to compile +# +CINCLUDE= +#CINCLUDE= -include stdlib.h +#CINCLUDE= -include stdio.h +#CINCLUDE= -include stdlib.h -include stdio.h +#CINCLUDE= -I ${X11_INCDIR} +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers or this entry make break +# under those buggy optimizers and thus you may not want anything. +# Reasonable compilers will allow for -O3. +# +#OPT= +#OPT= -O +#OPT= -O1 +#OPT= -O2 +OPT= -O3 + +# default flags for ANSI C compilation +# +CFLAGS= ${CSTD} ${CWARN} ${ARCH} ${CDEFINE} ${CINCLUDE} ${OPT} + +# Libraries needed to build +# +LIBS= +#LIBS= -lm +#LIBS= -L ${X11_LIBDIR} -lX11 +#LIBS= -L ${HOMEBREW_PREFIX}/lib -lSDL + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +#CC=clang +MAY_NEED_GCC= gcc + + +############################## +# Special flags for this entry +############################## +# +ENTRY= westley +PROG= ${ENTRY} +# +OBJ= ${PROG}.o +DATA= +TARGET= ${PROG} +# +ALT_OBJ= +ALT_TARGET= + + +################# +# build the entry +################# +# +all: data ${TARGET} + @${TRUE} + +.PHONY: all alt data everything clean clobber install \ + love haste waste maker easter_egg sandwich \ + supernova deep_magic magic charon pluto + +${PROG}: ${PROG}.c + @echo "NOTE: This entry uses non-standard args to main() that do not work with modern compilers." + ${CC} ${CFLAGS} $< -o $@ ${LIBS} + +# alternative executable +# +alt: data ${ALT_TARGET} + @${TRUE} + +# data files +# +data: ${DATA} + @${TRUE} + +# both all and alt +# +everything: all alt + + +############### +# utility rules +############### +# +clean: + ${RM} -f ${OBJ} ${ALT_OBJ} + @-if [ -f indent.c ]; then \ + ${ECHO} ${RM} -f indent.c; \ + ${RM} -f indent.c; \ + fi + +clobber: clean + ${RM} -f ${TARGET} ${ALT_TARGET} + @-if [ -e sandwich ]; then \ + ${RM} -f sandwich; \ + echo 'ate sandwich'; \ + fi + +install: + @echo "Dr. Spock says that is not logical!" + @${TRUE} + +# you may be able to misunderstand the source by reading indent.c +# +indent.c: ${PROG}.c + @if which "${GINDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${GINDENT} < $< > $@"; \ + ${GINDENT} < $< > $@; \ + elif which "${INDENT}" >/dev/null 2>&1; then \ + ${ECHO} ${RM} -f $@; \ + ${RM} -f $@; \ + ${ECHO} "${INDENT} < $< > $@"; \ + ${INDENT} < $< > $@; \ + else \ + ${ECHO} "no intent tool found, ident $< yourself, sorry"; \ + ${ECHO} "exit 1"; \ + exit 1; \ + fi + + +################## +# 133t hacker rulz +################## +# +love: + @echo 'not war?' + @${TRUE} + +haste: + $(MAKE) waste + @${TRUE} + +waste: + @echo 'haste' + @${TRUE} + +maker: + @echo 'Participate in a maker faire' + @${TRUE} + +easter_egg: + @echo "you expected to often misunderstand this $${RANDOM} magic" + @echo "chongo '' /\\oo/\\" + @echo "Eggy" + +sandwich: easter_egg + @if [ `id -u` -eq 0 ]; then \ + echo 'Okay.'; \ + echo "$${RANDOM}`date +%s`$${RANDOM}" > $@; \ + else \ + echo 'What? Make it yourself.'; \ + exit 1; \ + fi + +# Understand the history of the Homebrew Computer Club +# as well as the West Coast Computer Faire and +# you might be confused different. :-) +# +supernova: sandwich + @-if [ -r .code_anal ]; then \ + ${RM} -f .code_anal_v6; \ + else \ + echo "planet deniers, like some members of the IAU, are so cute when they try to defend their logic"; \ + fi + @echo "A $@ helps ${MAKE} the elements that help form planets" + @${TRUE} + +deep_magic: supernova + @-if [ -r .code_anal ]; then \ + ccode_analysis --deep_magic 7889066cdbdf09b0408021754586e895be641cc9be29e7eafd3ca65359541f17 \ + --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + sleep 2; \ + echo "Wrong! Do it again!"; \ + fi + @${TRUE} + +magic: deep_magic + @-if [ -r .code_anal ]; then \ + ccode_analysis --level 20003 --mode 5717175 --FNV1a_hash_512_bit -v2 "${PROG}" "${PROG}.c"; \ + else \ + echo "If you don't eat yer meat, you can't have any pudding!"; \ + echo "How can you have any pudding if you don't eat yer meat?!"; \ + fi + @${TRUE} + +# The IOCCC resident astronomer states +# +charon: magic + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore IAU, $@ is a planet" + +pluto: charon + ${MAKE} charon + @echo "$@ is a dwarf planet" + @echo "dwarf is a type of planet" + @echo "therefore, $@ is a planet" + @echo "get used to having lots of planets because a $< can ${MAKE} a lot of them" diff --git a/1990/baruch/Makefile b/1990/baruch/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/baruch/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/cmills/Makefile b/1990/cmills/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/cmills/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/dds/Makefile b/1990/dds/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/dds/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/dg/Makefile b/1990/dg/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/dg/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/jaw/Makefile b/1990/jaw/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/jaw/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/pjr/Makefile b/1990/pjr/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/pjr/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/scjones/Makefile b/1990/scjones/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/scjones/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/stig/Makefile b/1990/stig/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/stig/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/tbr/Makefile b/1990/tbr/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/tbr/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/theorem/Makefile b/1990/theorem/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/theorem/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1990/westley/Makefile b/1990/westley/Makefile new file mode 100644 index 000000000..df76ff87c --- /dev/null +++ b/1990/westley/Makefile @@ -0,0 +1,73 @@ +# %W% %G% %U% +# +# 1990 makefile +# +# Copyright (c) 1990,2022, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS=cmills pjr westley stig tbr dg dds theorem baruch jaw scjones + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS}: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk $@; \ + ${MAKE} -k -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk $@; \ + ${MAKE} -k -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/ant/Makefile b/1991/ant/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/ant/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/brnstnd/Makefile b/1991/brnstnd/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/brnstnd/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/buzzard/Makefile b/1991/buzzard/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/buzzard/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/cdupont/Makefile b/1991/cdupont/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/cdupont/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/davidguy/Makefile b/1991/davidguy/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/davidguy/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/dds/Makefile b/1991/dds/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/dds/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/fine/Makefile b/1991/fine/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/fine/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/rince/Makefile b/1991/rince/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/rince/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1991/westley/Makefile b/1991/westley/Makefile new file mode 100644 index 000000000..57c7302a6 --- /dev/null +++ b/1991/westley/Makefile @@ -0,0 +1,129 @@ +# %W% %G% %U% +# +# 1991 makefile +# +# Copyright (c) 1991, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +MAKE=make +MAKEFLAGS=e + +# uncomment the line to select the preferred type of compile +# +# You should also check the ansi.mk or common.mk for the +# proper compiler name and flags. +# +# NOTE ==> USE=ansi compile with an ANSI compiler by default +#USE=ansi +# NOTE ==> USE=common compile with a common K&R compiler by default +#USE=common + +WINNERS= ant brnstnd buzzard cdupont davidguy dds fine rince westley + +all: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -k -f common.mk all; \ + ${MAKE} -k -f common.mk all; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -k -f ansi.mk all; \ + ${MAKE} -k -f ansi.mk all; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1; \ + fi + +ansi: + ${MAKE} -f ansi.mk all + +common: + ${MAKE} -f common.mk all + +${WINNERS} merlyn.c nextmove.c ttt_game.c: + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt: ttt.sh + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +merlyn: merlyn.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@ \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +ttt_game: ttt_game.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +nextmove: nextmove.c + -@if [ "${USE}" = "common" ]; then \ + echo ${MAKE} -f common.mk $@; \ + ${MAKE} -f common.mk $@; \ + elif [ "${USE}" = "ansi" ]; then \ + echo ${MAKE} -f ansi.mk $@; \ + ${MAKE} -f ansi.mk $@; \ + else \ + echo "set USE= in Makefile to be ansi or common as desired"; \ + echo "or type: make -f ansi.mk for ansi makes"; \ + echo "or type: make -f common.mk for common K&R makes"; \ + exit 1;\ + fi + +clean: + ${MAKE} -f ansi.mk clean + ${MAKE} -f common.mk clean +clobber: + ${MAKE} -f ansi.mk clobber + ${MAKE} -f common.mk clobber +nuke: clobber + ${MAKE} -f ansi.mk nuke + ${MAKE} -f common.mk nuke +install: + ${MAKE} -f ansi.mk install + ${MAKE} -f common.mk install diff --git a/1992/adrian/Makefile b/1992/adrian/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/adrian/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/albert/Makefile b/1992/albert/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/albert/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/ant/Makefile b/1992/ant/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/ant/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/buzzard.1/Makefile b/1992/buzzard.1/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/buzzard.1/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/buzzard.2/Makefile b/1992/buzzard.2/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/buzzard.2/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/gson/Makefile b/1992/gson/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/gson/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/imc/Makefile b/1992/imc/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/imc/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/kivinen/Makefile b/1992/kivinen/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/kivinen/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/lush/Makefile b/1992/lush/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/lush/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/marangon/Makefile b/1992/marangon/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/marangon/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/nathan/Makefile b/1992/nathan/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/nathan/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/vern/Makefile b/1992/vern/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/vern/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1992/westley/Makefile b/1992/westley/Makefile new file mode 100644 index 000000000..2eb115d13 --- /dev/null +++ b/1992/westley/Makefile @@ -0,0 +1,244 @@ +# %W% %G% %U% +# +# 1992 makefile +# +# Copyright (c) 1992, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln +UNIQ=uniq +CB=cb +GREP=grep +# set this to where your C Processor resides +# +# On some systems: +# CPP=/lib/cpp +# +CPP=/usr/ccs/lib/acpp + +# flags for ansi compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +CFLAGS=-Xa +CC=cc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= adrian albert ant buzzard.1 buzzard.2 gson kivinen imc \ + lush marangon nathan vern westley +ALT_NAMES= adgrep am babble first ag whereami + +all: $(WINNERS) $(ALT_NAMES) + +adrian: adrian.c + $(CC) $(CFLAGS) adrian.c -o adrian + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + $(SED) '1s/\..*\./. wc ./' adrian.c > ad.temp + -./adrian ad.temp adwc.c + $(CC) -o adwc adwc.c + $(SED) '1s/\..*\./. basename ./' adrian.c > ad.temp + -./adrian ad.temp adbasename.c + $(CC) -o adbasename adbasename.c + $(SED) '1s/\..*\./. echo| ./' adrian.c > ad.temp + -./adrian ad.temp adecho.c + $(CC) -o adecho adecho.c + $(SED) '1s/\..*\./. head; ./' adrian.c > ad.temp + -./adrian ad.temp adhead.c + $(CC) -o adhead adhead.c + $(SED) '1s/\..*\./. sleep ./' adrian.c > ad.temp + -./adrian ad.temp adsleep.c + $(CC) -o adsleep adsleep.c + $(RM) -f ad.temp + +# NOTE: this is the original source that won +# +adrian.orig: adrian.orig.c + $(CC) $(CFLAGS) adrian.orig.c -o adrian.orig + +albert: albert.c + $(CC) $(CFLAGS) albert.c -o albert + +# NOTE: this is the original source that won +# +albert.orig: albert.orig.c + $(CC) $(CFLAGS) albert.orig.c -o albert.orig + +ant: ant.c + $(CC) $(CFLAGS) ant.c -o ant + +buzzard.1: buzzard.1.c + $(CC) $(CFLAGS) buzzard.1.c -o buzzard.1 + +babble.cppcb: buzzard.1.c + $(NOINCLUDE) buzzard.1.c | \ + $(CPP) $(CPPFLAGS) | \ + $(CPPCLEAN) | \ + $(CB) $(CBFLAGS) | \ + $(UNIQ) | \ + $(SPACECLEAN) > babble.cppcb 2>&1 + +buzzard.2: buzzard.2.c + $(CC) $(CFLAGS) buzzard.2.c -o buzzard.2 + +# NOTE: this is the original source that won +# +buzzard.2.orig: buzzard.2.orig.c + $(CC) $(CFLAGS) buzzard.2.orig.c -o buzzard.2.orig + +gson: gson.c + $(CC) $(CFLAGS) gson.c -o gson + +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen: kivinen.c + $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 -lsocket -lresolv -lnsl + +# NOTE: this is the original program that won +# +# NOTE: some systems may only need: +# +# $(CC) $(CFLAGS) kivinen.c -o kivinen -lX11 +# +kivinen.orig: kivinen.orig.c + $(CC) $(CFLAGS) kivinen.orig.c -o kivinen.orig -lX11 \ + -lsocket -lresolv -lnsl + +imc: imc.c + $(CC) $(CFLAGS) imc.c -o imc + +# NOTE: this is the original program that won +# +imc.orig: imc.orig.c + $(CC) $(CFLAGS) imc.orig.c -o imc.orig + +lush: lush.c + $(CC) $(CFLAGS) lush.c -o lush + +lush.again: lush.c + $(CC) $(CFLAGS) lush.c -o lush.again + $(RM) -f lush.again + +# NOTE: this is the original program that won +# +lush.orig: lush.orig.c + $(CC) $(CFLAGS) lush.orig.c -o lush.orig + +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.c -o marangon -lcurses -ltermcap +# +marangon: marangon.c + $(CC) $(CFLAGS) marangon.c -o marangon -lcurses + +# NOTE: this is the original program that won +# +# NOTE: some systems may need: +# +# $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses -ltermcap +# +marangon.orig: marangon.orig.c + $(CC) $(CFLAGS) marangon.orig.c -o marangon.orig -lcurses + +nathan: nathan.c + $(CC) $(CFLAGS) nathan.c -o nathan + +# NOTE: this is the original program that won +# +nathan.orig: nathan.orig.c + $(CC) $(CFLAGS) nathan.orig.c -o nathan.orig + +vern: vern.tmp.c + $(CC) $(CFLAGS) vern.tmp.c -o vern + +vern.tmp.c: vern.c + $(RM) -f vern.tmp.c + $(SED) vern.tmp.c + +# NOTE: this is the original program that won +# +vern.orig: vern.orig.tmp.c + $(CC) $(CFLAGS) vern.orig.tmp.c -o vern.orig + +vern.orig.tmp.c: vern.orig.c + $(RM) -f vern.orig.tmp.c + $(SED) vern.orig.tmp.c + +westley: westley.c + $(CC) $(CFLAGS) westley.c -o westley + +# alternate names for selected entries +# +adgrep: adrian + $(RM) -f adgrep + $(LN) adrian adgrep +am: ant + $(RM) -f am + $(LN) ant am +babble: buzzard.1 + $(RM) -f babble + $(LN) buzzard.1 babble +first: buzzard.2 + $(RM) -f first + $(LN) buzzard.2 first +ag: gson + $(RM) -f ag + $(LN) gson ag +whereami: westley + $(RM) -f whereami + $(LN) westley whereami + +clean: + $(RM) -f *.o a.out core + $(RM) -f vern.tmp.c lush.again babble.cppcb vern.orig.tmp.c + $(RM) -f ad.temp adwc.c adbasename.c adecho.c adhead.c adsleep.c + +clobber: clean + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + +am_clobber: clean am + $(RM) -f am.safe + $(CP) am am.safe + $(RM) -f $(WINNERS) a.out + $(RM) -f $(ALT_NAMES) + $(RM) -f adwc adbasename adecho adhead adsleep + $(RM) -f adrian.orig lush.orig nathan.orig buzzard.2.orig + $(RM) -f kivinen.orig imc.orig albert.orig marangon.orig vern.orig + $(CP) am.safe am + $(RM) -f am.safe + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/ant/Makefile b/1993/ant/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/ant/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/cmills/Makefile b/1993/cmills/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/cmills/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/dgibson/Makefile b/1993/dgibson/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/dgibson/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/ejb/Makefile b/1993/ejb/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/ejb/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/jonth/Makefile b/1993/jonth/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/jonth/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/leo/Makefile b/1993/leo/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/leo/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/lmfjyh/Makefile b/1993/lmfjyh/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/lmfjyh/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/plummer/Makefile b/1993/plummer/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/plummer/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/rince/Makefile b/1993/rince/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/rince/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/schnitzi/Makefile b/1993/schnitzi/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/schnitzi/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1993/vanb/Makefile b/1993/vanb/Makefile new file mode 100644 index 000000000..daa03a5ec --- /dev/null +++ b/1993/vanb/Makefile @@ -0,0 +1,147 @@ +# %W% %G% %U% +# +# 1993 makefile +# +# Copyright (c) 1993, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CHMOD=chmod +CP=cp +RM=rm +SED=sed +LN=ln + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# misc shell babble +# +NOINCLUDE=$(SED) -e 's/^.\([ ]*\)include/%include/' +SPACECLEAN=$(SED) -e 's/\([^ ]\)\([ ]\)[ ][ ]*/\1\2/g' +CPPCLEAN=$(GREP) -v '^. [0-9][0-9]*' + +# winners that compile under ANSI C +# +WINNERS= ant cmills dgibson ejb jonth leo lmfjyh plummer rince schnitzi vanb +ALT_NAMES= ag ag.txt chris mind jkb + +all: $(WINNERS) $(ALT_NAMES) + +ant: ant.c + ${CC} ${CFLAGS} ant.c -o ant + +cmills: cmills.c + ${CC} ${CFLAGS} cmills.c -o cmills -lX11 + +dgibson: dgibson.c dgibson.sh dgibson.data1 + -@if [ ! -f life.d ] ; then \ + echo "cp dgibson.data1 life.d"; \ + cp dgibson.data1 life.d; \ + echo "rm -f data.name"; \ + rm -f data.name; \ + echo "echo dgibson.data1 > data.name"; \ + echo dgibson.data1 > data.name; \ + fi + ${CC} ${CFLAGS} dgibson.c -o dgibson + -${CHMOD} +x dgibson.sh + +ejb: ejb.c + ${CC} ${CFLAGS} ejb.c -o ejb + +jonth: jonth.c + ${RM} -f jonth.tmp.c + ${SED} -e s/\^\ /#define/ -e 's/@/Window(D,/g' jonth.c > jonth.tmp.c + ${CC} ${CFLAGS} \ + -DXX1='H 19;}M(J,4)}N H 20;}M(T,4)}q(m,w,' \ + -DXX='XKeycodeToKeysym(D,o[13],0);K 12:Y();}R;}d XX1' \ + jonth.tmp.c -o jonth -lX11 + +leo: leo.c + ${CC} ${CFLAGS} leo.c -o leo + +lmfjyh: lmfjyh.c + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CP} lmfjyh.c \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + ${CC} ${CFLAGS} \ + \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c \ + -o lmfjyh + +plummer: plummer.c + ${CC} ${CFLAGS} plummer.c -o plummer + +rince: rince.c + ${CC} ${CFLAGS} rince.c -lcurses -ltermcap -o rince + +# NOTE: this is the original source that won +# +rince.orig: rince.orig.c + $(CC) $(CFLAGS) rince.orig.c -lcurses -ltermcap -o rince.orig + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +vanb: vanb.c + ${CC} ${CFLAGS} -DO5=main vanb.c -o vanb + + +# alternate names for selected entries +# +ag: ant + $(RM) -f ag + $(LN) ant ag + +ag.txt: ant.txt + $(RM) -f ag.txt + $(LN) ant.txt ag.txt + +chris: cmills + $(RM) -f chris + $(LN) cmills chris + +mind: leo + $(RM) -f mind + $(LN) leo mind + +jkb: rince + $(RM) -f jkb + $(LN) rince jkb + +tidy: + ${RM} -f \"\;main\(\)\{puts\(\"Hello\ World!\"\)\;\}char\*C=\".c + +clean: + $(RM) -f *.o a.out core + +clobber: clean tidy + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f jonth.tmp.c life.d rince.orig data.name data.name2 + +nuke: clobber + @true + +install: all + cat $(WINNERS) > /dev/null diff --git a/1994/dodsond1/Makefile b/1994/dodsond1/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/dodsond1/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/dodsond2/Makefile b/1994/dodsond2/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/dodsond2/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/horton/Makefile b/1994/horton/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/horton/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/imc/Makefile b/1994/imc/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/imc/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/ldb/Makefile b/1994/ldb/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/ldb/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/schnitzi/Makefile b/1994/schnitzi/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/schnitzi/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/shapiro/Makefile b/1994/shapiro/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/shapiro/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/smr/Makefile b/1994/smr/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/smr/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/tvr/Makefile b/1994/tvr/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/tvr/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/weisberg/Makefile b/1994/weisberg/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/weisberg/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1994/westley/Makefile b/1994/westley/Makefile new file mode 100644 index 000000000..69f3bea69 --- /dev/null +++ b/1994/westley/Makefile @@ -0,0 +1,158 @@ +# %W% %G% %U% +# +# 1994 makefile +# +# Copyright (c) 1994, Landon Curt Noll & Larry Bassel. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Larry Bassel. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# entries incorrectly. You might want need to turn on -O +# to see if your compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +#CC=cc +CC=gcc + +# winners that compile under ANSI C +# +WINNERS= dodsond1 dodsond2 horton imc ldb schnitzi shapiro smr tvr weisberg \ + westley +ALT_NAMES= dodsond2.orig shapiro.alt horton.alt gtface weisberg.alt tvr.alt + +all: $(WINNERS) $(ALT_NAMES) + +westley: westley.c + ${CC} ${CFLAGS} westley.c -DO -o westley + +weisberg: weisberg.c + ${CC} ${CFLAGS} -Dc='n*n>x?p:((m=*(b+1)),N))' \ + -De='(2<<6*sizeof(int))' \ + -Do='(8<<5*sizeof(int))' \ + -DN='((b=t+1),x+=2,x>e?exit():o' \ + -Dp='(a-t shapiro_t2.c + +shapiro_t1: shapiro.c + ${CC} ${CFLAGS} shapiro.c -o shapiro_t1 + +shapiro.alt: shapiro.alt.c + ${CC} ${CFLAGS} shapiro.alt.c -o shapiro.alt + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +horton: horton.c + ${CC} ${CFLAGS} horton.c -o horton + +# Here are some programs related to the horton entry. See horton.hint +# for details. +# +horton.alt: horton.alt.c + ${CC} ${CFLAGS} horton.alt.c -o horton.alt +gtface: gtface.c + ${CC} ${CFLAGS} gtface.c -o gtface + +ldb: ldb.c + ${CC} ${CFLAGS} ldb.c -o ldb + +imc: imc.c + ${CC} ${CFLAGS} imc.c -o imc + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 + +# NOTE: this is the original (gziped) file that won +# +dodsond2.orig: dodsond2.gz + @${RM} -f dodsond2.orig.c + -${GUNZIP} < dodsond2.gz > dodsond2.orig.c + -@if [ -s dodsond2.orig.c ]; then \ + ${ECHO} "${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig"; \ + ${CC} ${CFLAGS} dodsond2.orig.c -o dodsond2.orig; \ + else \ + ${RM} -f dodsond2.orig.c; \ + ${ECHO} "sorry, we could not gunzip dodsond2.gz"; \ + fi + +dodsond2.gz: dodsond2.gz.uu + @${RM} -f dodsond2.gz + ${UUDECODE} dodsond2.gz.uu + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} dodsond1.c -o dodsond1 + +clean: + $(RM) -f *.o a.out core + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + ${RM} -f dodsond2.orig.c dodsond2.gz shapiro_t2.c shapiro_t1 + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/cdua/Makefile b/1995/cdua/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/cdua/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/dodsond1/Makefile b/1995/dodsond1/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/dodsond1/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/dodsond2/Makefile b/1995/dodsond2/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/dodsond2/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/esde/Makefile b/1995/esde/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/esde/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/garry/Makefile b/1995/garry/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/garry/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/heathbar/Makefile b/1995/heathbar/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/heathbar/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/leo/Makefile b/1995/leo/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/leo/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/makarios/Makefile b/1995/makarios/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/makarios/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/savastio/Makefile b/1995/savastio/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/savastio/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/schnitzi/Makefile b/1995/schnitzi/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/schnitzi/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/spinellis/Makefile b/1995/spinellis/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/spinellis/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1995/vanschnitz/Makefile b/1995/vanschnitz/Makefile new file mode 100644 index 000000000..30064fd22 --- /dev/null +++ b/1995/vanschnitz/Makefile @@ -0,0 +1,119 @@ +# %W% %G% %U% +# +# 1995 makefile +# +# Copyright (c) 1996, Landon Curt Noll, Larry Bassel & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll, Larry Bassel and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= cdua dodsond1 dodsond2 esde garry heathbar leo makarios savastio \ + schnitzi spinellis vanschnitz +ALT_NAMES= leo.orig garry.fmt garry.test + +LEVEL=5 + +all: $(WINNERS) + +cdua: cdua.c + ${CC} ${CFLAGS} cdua.c -o cdua + +dodsond1: dodsond1.c + ${CC} ${CFLAGS} -DXXXXXX= -DXXXXXXX= dodsond1.c -o dodsond1 + +dodsond2: dodsond2.c + ${CC} ${CFLAGS} dodsond2.c -o dodsond2 -lcurses -ltermcap + +esde: esde.c esde.data esde.data2 + ${CC} ${CFLAGS} esde.c -o esde + +garry: garry.c + ${CC} ${CFLAGS} garry.c -o garry + +heathbar: heathbar.c + ${CC} ${CFLAGS} heathbar.c -o heathbar + +# The following as a less obfuscated version of garry. +# +garry.fmt: garry.fmt.c + ${CC} ${CFLAGS} garry.fmt.c -o garry.fmt + +# The following are test progs for garry +# +garry.test: garry.test.sh garry garry.data + rm -f garry.test + cp garry.test.sh garry.test + chmod +x garry.test + +leo: leo.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct Se' leo.c -o leo + +# NOTE: this is the original program that was non-interactive +# +leo.orig: leo.orig.c + ${CC} ${CFLAGS} -DGa=608 -DAs=792 -DMo=int -DAr='unsigned long' \ + -DS='struct S' leo.orig.c -o leo.orig + +makarios: makarios.c + ${CC} ${CFLAGS} makarios.c -o makarios + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} schnitzi.c -o schnitzi + +spinellis: spinellis.c + ${CC} ${CFLAGS} spinellis.c -o spinellis + +vanschnitz: vanschnitz.c + ${CC} ${CFLAGS} -Dn=${LEVEL} vanschnitz.c -o vanschnitz + +clean: + $(RM) -f *.o a.out core ${WINNERS} + +clobber: clean + $(RM) -f $(WINNERS) + $(RM) -f $(ALT_NAMES) + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/august/Makefile b/1996/august/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/august/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/dalbec/Makefile b/1996/dalbec/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/dalbec/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/eldby/Makefile b/1996/eldby/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/eldby/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/gandalf/Makefile b/1996/gandalf/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/gandalf/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/huffman/Makefile b/1996/huffman/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/huffman/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/jonth/Makefile b/1996/jonth/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/jonth/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/rcm/Makefile b/1996/rcm/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/rcm/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/schweikh1/Makefile b/1996/schweikh1/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/schweikh1/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/schweikh2/Makefile b/1996/schweikh2/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/schweikh2/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/schweikh3/Makefile b/1996/schweikh3/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/schweikh3/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1996/westley/Makefile b/1996/westley/Makefile new file mode 100644 index 000000000..718bcb78b --- /dev/null +++ b/1996/westley/Makefile @@ -0,0 +1,157 @@ +# %W% %G% %U% +# +# 1996 makefile +# +# Copyright (c) 1997, Landon Curt Noll & Sriram Srinivasan +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from Landon Curt Noll and Sriram Srinivasan. + + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +ECHO=echo +GUNZIP=gunzip +UUDECODE=uudecode +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +#CFLAGS= -ansi +CFLAGS= -ansi -O +#CFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +CC=cc +#CC=gcc + +# winners that compile under ANSI C +# +WINNERS= august dalbec eldby gandalf huffman jonth rcm schweikh1 \ + schweikh2 schweikh3 westley +ALT_NAMES= august.orig + +LEVEL=5 + +all: $(WINNERS) + +# NOTE: Some compilers will compile this code into infinite loop +# progs. We have found gcc to work on a number of platforms. +# If the following example does not execute in a very +# short time, try a better compiler: +# +# cat august.c test.oc | ./august > test.oo +# +august: august.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c -o august + ${CHMOD} +r fac.oc parse.oc test.oc + +# This forms a byte code execution engine written in OC +# +august.oc: august.c + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.c > august.oc + ${CHMOD} +r august.oc + +# NOTE: this is the original source that won +# +august.orig: august.orig.c fac.oc parse.oc test.oc + ${CC} ${CFLAGS} -DZ=60000 -DZ=60000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c -o august.orig + ${RM} -f august.oc + ${CC} ${CFLAGS} -E -DZ=40000 -D'T=m[s]' -D'P=m[s++]' \ + -D'L=m[p++]' -D'g=getchar()' -DE=else -DW=while -D'B=m[p++]' \ + -DI=if -DR='s=s+l/2;T=r;I(l%2)s++' -D'X=m[s-' \ + -D'D=Q(13,-)Q(14,*)Q(15,/)Q(16,%)Q(6,==)Q(7,!=)Q(8,<)C(1,r=P;m[T]=r;T=r)C(9,r=P;m[T]=r;s++)' \ + august.orig.c > august.oc + ${CHMOD} +r fac.oc parse.oc test.oc august.oc + +dalbec: dalbec.c + ${CC} ${CFLAGS} dalbec.c -o dalbec + +eldby: eldby.c + ${CC} ${CFLAGS} eldby.c -o eldby + +gandalf: gandalf.c + ${CC} ${CFLAGS} gandalf.c -o gandalf + ${RM} -f hatcat cathat + ${CP} gandalf hatcat + ${CP} gandalf cathat + +huffman: huffman.c + ${CC} ${CFLAGS} huffman.c -o huffman + +# Add -I${X}/include and -L${X}/lib if this doesn't build +# (X is the root of the X Window distribution) +# Solaris users add -lsocket +# +jonth: jonth.c + ${CC} ${CFLAGS} jonth.c -o jonth -lX11 -lm + +rcm: rcm.c + ${CC} ${CFLAGS} -DJ='if(' -Ds='else J O==' -DU='B(' \ + -DX='for(' -DH='unsigned' -Dn='struct x' -DA='0,0,0,0,' \ + -DT='' -DY='' -DR='malloc(sizeof(n))' \ + -DM='%=K' -DK=32768 -DD='getchar()' -DN=putchar rcm.c -o rcm + +schweikh1: schweikh1.c errno.h + ${CC} ${CFLAGS} -I. schweikh1.c -o schweikh1 + +schweikh2: schweikh2.c hunni.c hunni.pl + ${CC} ${CFLAGS} -D_POSIX_SOURCE schweikh2.c -o schweikh2 + +# NOTE: On some systems such as SunOS, one may need to compile with: +# +# ${CC} ${CFLAGS} \ +# -I. -D_POSIX_SOURCE '-Ddifftime(a,b)=(double)(b-a)' \ +# schweikh3.c -o schweikh3 +# +schweikh3: schweikh3.c iso646.h + ${CC} ${CFLAGS} -I. -D_POSIX_SOURCE schweikh3.c -o schweikh3 + +westley: westley.c clock1 clock2 clock3 + ${CC} ${CFLAGS} westley.c -o westley + ${CHMOD} +x clock1 clock2 clock3 + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f $(WINNERS) + ${RM} -f $(ALT_NAMES) + ${RM} -f fac.oo parse.oo test.oo hatcat cathat august.oc + +nuke: clobber + @${TRUE} + +install: all + ${CAT} $(WINNERS) $(ALT_NAMES) > /dev/null diff --git a/1998/banks/Makefile b/1998/banks/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/banks/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/bas1/Makefile b/1998/bas1/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/bas1/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/bas2/Makefile b/1998/bas2/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/bas2/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/chaos/Makefile b/1998/chaos/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/chaos/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/df/Makefile b/1998/df/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/df/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/dlowe/Makefile b/1998/dlowe/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/dlowe/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/dloweneil/Makefile b/1998/dloweneil/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/dloweneil/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/dorssel/Makefile b/1998/dorssel/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/dorssel/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/fanf/Makefile b/1998/fanf/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/fanf/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/schnitzi/Makefile b/1998/schnitzi/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/schnitzi/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/schweikh1/Makefile b/1998/schweikh1/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/schweikh1/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/schweikh2/Makefile b/1998/schweikh2/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/schweikh2/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/schweikh3/Makefile b/1998/schweikh3/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/schweikh3/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/1998/tomtorfs/Makefile b/1998/tomtorfs/Makefile new file mode 100644 index 000000000..4c99b01a9 --- /dev/null +++ b/1998/tomtorfs/Makefile @@ -0,0 +1,175 @@ +#!/bin/make +# 1998 makefile +# +# Copyright (c) Landon Curt Noll, Jeremy Horn, Peter Seebach +# and Leonid A. Broukhis, 1999. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL=/bin/sh +CAT=cat +CHMOD=chmod +CP=cp +MV=mv +ECHO=echo +LN=ln +RM=rm +SED=sed +TRUE=true + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others may want nothing +# at all. Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +#CFLAGS=-O -Xa +#CFLAGS=-Xa +CFLAGS= -ansi +#CFLAGS= -ansi -O +#CFLAGS= +#CFLAGS= -ansi -L/usr/X11R6/lib + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= schweikh1 df dloweneil banks dlowe bas2 fanf bas1 tomtorfs dorssel \ + schweikh2 schnitzi chaos schweikh3 +ALT_NAMES= schweikh2.orig banks.orig dlowe.orig df.orig schweikh1.orig \ + chaos_nohalf +DATA_FILES= banks_files chaos_files fanf_files schweikh1_files schweikh3_files + + +all: ${WINNERS} + +schweikh1: schweikh1.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1.orig: schweikh1.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh1_files: info + +df: df.c + ${CC} ${CFLAGS} $? -o $@ + +df.orig: prog.c + ${CC} ${CFLAGS} $? -o $@ + +prog.c : df.c + ${RM} -f prog.c + ${CP} $? prog.c + +dloweneil: dloweneil.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks: banks.c + ${CC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +# See note about use of -L/path/to/X11/lib/dir above this rule fails to link +# +banks.orig: banks.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DIT=XK_Page_Up -DDT=XK_Page_Down \ + -DUP=XK_Up -DDN=XK_Down -DLT=XK_Left -DRT=XK_Right \ + -DCS=XK_Return -Ddt=0.02 -lm -lX11 -o $@ + +banks_files: bb.sc horizon.sc mountains.sc pittsburgh.sc pyramids.sc river.sc + +dlowe: dlowe.c + ${CC} ${CFLAGS} $? -o $@ + +dlowe.orig: dlowe.orig.c + ${CC} ${CFLAGS} $? -o $@ + +bas2: bas2.c + ${CC} ${CFLAGS} $? -o $@ + +fanf: fanf.c + ${RM} -f fanftmp1.c fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} -E $? > fanftmp1.c + ${MAY_NEED_GCC} ${CFLAGS} -E fanftmp1.c > fanftmp2.c + ${MAY_NEED_GCC} ${CFLAGS} fanftmp2.c ${LDFLAGS} -o $@ + +fanf_files: fanf.lambda + +bas1: bas1.c + ${CC} ${CFLAGS} $? -o $@ + +tomtorfs: tomtorfs.c + ${CC} ${CFLAGS} $? -o $@ + +dorssel: dorssel.c + ${CC} ${CFLAGS} $? -o $@ + +schweikh2: schweikh2.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh2.orig: schweikh2.orig.c + ${MAY_NEED_GCC} ${CFLAGS} $? -o $@ + +schweikh3: schweikh3.c + ${MAY_NEED_GCC} ${CFLAGS} $? -DM0=sizeof -DM1=long -DM2=void \ + -DM3=realloc -DM4=calloc -DM5=free -o $@ + +schweikh3_files: samefile.1 + +schnitzi: schnitzi.c + ${CC} ${CFLAGS} $? -o $@ + +chaos: chaos.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + +# some libcurses do not have halfdelay(). This rule is for those systems +# +chaos_nohalf: chaos_nohalf.c + ${CC} ${CFLAGS} $? -lcurses -o $@ + ${CP} -f $@ chaos + +chaos_nohalf.c: chaos.c + ${RM} -f $@ + ${SED} -e 's/halfdelay([^)]*);//' < $? > $@ + +chaos_files: cube.data desk.data ioccc.data pyramid.data xwing.data + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + ${RM} -f prog.c fanftmp1.c fanftmp2.c chaos_nohalf.c + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/anderson/Makefile b/2000/anderson/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/anderson/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/bellard/Makefile b/2000/bellard/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/bellard/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/bmeyer/Makefile b/2000/bmeyer/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/bmeyer/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/briddlebane/Makefile b/2000/briddlebane/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/briddlebane/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/dhyang/Makefile b/2000/dhyang/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/dhyang/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/dlowe/Makefile b/2000/dlowe/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/dlowe/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/jarijyrki/Makefile b/2000/jarijyrki/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/jarijyrki/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/natori/Makefile b/2000/natori/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/natori/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/primenum/Makefile b/2000/primenum/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/primenum/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/rince/Makefile b/2000/rince/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/rince/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/robison/Makefile b/2000/robison/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/robison/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/schneiderwent/Makefile b/2000/schneiderwent/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/schneiderwent/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/thadgavin/Makefile b/2000/thadgavin/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/thadgavin/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2000/tomx/Makefile b/2000/tomx/Makefile new file mode 100644 index 000000000..25524921d --- /dev/null +++ b/2000/tomx/Makefile @@ -0,0 +1,215 @@ +#!/bin/make +# 2000 makefile +# +# Copyright (C) Simon Cooper, Landon Curt Noll, Peter Seebach +# and Leonid A. Broukhis, 2000. +# All Rights Reserved. Permission for personal, educational or non-profit +# use is granted provided this this copyright and notice are included in its +# entirety and remains unaltered. All other uses must receive prior permission +# from the contest judges. + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +NO_ANSI_CFLAGS= +#NO_ANSI_CFLAGS= + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib +#X11LDFLAGS= + +# Perl +# +PERL= perl +#PERL= perl5 + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anderson schneiderwent primenum bellard bmeyer briddlebane dhyang \ + dmy2jd jarijyrki dlowe natori rince robison thadgavin tomx +ALT_NAMES= schneiderwent.orig briddlebane.orig thadgavin.orig +DATA_FILES= schneiderwent_files bmeyer_files jarijyrki_files + + +all: ${WINNERS} + +# Best use of flags +# +anderson: anderson.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Timely Output +# +schneiderwent: schneiderwent.c + ${CC} ${CFLAGS} $? -o $@ + +schneiderwent_files: schneiderwent.data + +schneiderwent.orig: schneiderwent.orig.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Abuse of CPP +# +primenum: primenum.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Specific Output +# +bellard: bellard.c + ${CC} ${CFLAGS} $? -o $@ + +# Best Utility +# +# machines operating in 64 bit mode: +# +bmeyer: bmeyer.c + ${CC} -DY= -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.0, libc4/5: +# +# bmeyer: bmeyer.c +# ${CC} -DY="__setfpucw(0x127f)" -O6 $? -o $@ -lm +# +# linux/x86, glibc 2.1: +# +# bmeyer: bmeyer.c +# ${MAY_NEED_GCC} -DY='int x=0x127f; __asm__ ("fldcw %0" : : "m" (*&x))' \ +# -O6 $? -o $@ -lm + +bmeyer_files: lavabus.pgm lenna.glic michael.pgm + +# Best Abuse of User +# +briddlebane: briddlebane.c + ${CC} ${CFLAGS} $? -o $@ -lm + +briddlebane.orig: briddlebane.orig.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Best Layout +# +dhyang: dhyang.c + ${CC} ${CFLAGS} $? -o $@ + +dmy2jd: dmy2jd.c + ${CC} ${CFLAGS} $? -o $@ + +# Best of Show +# +jarijyrki: jarijyrki.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DNeedFunctionPrototypes \ + -DU=40 -DT=98 '-Dz=(T+1)*U*U' -DQ=80 -DS=20 -DN=10 -DB=5 -DG=23 \ + -Dp=7 '-DM=((p+1)*Q)+S' '-DH=(G*S)+S+S' -DC=XK_Up -DL=XK_Down \ + -DO=XK_Left -DV=XK_Right -DR=XK_Escape -D_=XK_BackSpace \ + $? -o $@ ${X11LDFLAGS} -lX11 + +jarijyrki_files: sheet1.info + +# Worst Abuse of the Rules +# +# NOTE: You will need to adjust this path to the place where Perl has been +# installed on your system. Running "perl -V" may help you locate +# this place. +# +# The following bit of perl may help determining the values you need: +# +# perl -MConfig -e 'print "$Config{archlibexp}/CORE\n"' +# +# +dlowe: dlowe.c + ${CC} ${NO_ANSI_CFLAGS} -DPERL_POLLUTE \ + `${PERL} -MExtUtils::Embed -e ccopts` $? -o $@ \ + `${PERL} -MExtUtils::Embed -e ldopts` + +# Best Small Program +# +natori: natori.c + ${CC} ${CFLAGS} $? -o $@ -lm + +# Astronomically Obfuscated +# +rince: rince.c + ${CC} ${X11CCFLAGS} ${CFLAGS} -DM_PI=3.14159265358979323846 \ + $? -o $@ -lm ${X11LDFLAGS} -lX11 + +# Best game +# +robison: robison.c + ${CC} ${CFLAGS} $? -o $@ + +# Most Portable Output +# +thadgavin: thadgavin.c + ${CC} ${CFLAGS} $? -o $@ -lcurses -lm + +thadgavin.orig: thadgavin.orig.c + ${CC} ${CFLAGS} $? -o $@ -lncurses -lm + +# Most Complete Program +# +tomx: tomx.c + ${CC} ${CFLAGS} $? -o $@ + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/anonymous/Makefile b/2001/anonymous/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/anonymous/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/bellard/Makefile b/2001/bellard/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/bellard/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/cheong/Makefile b/2001/cheong/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/cheong/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/coupard/Makefile b/2001/coupard/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/coupard/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/ctk/Makefile b/2001/ctk/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/ctk/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/dgbeards/Makefile b/2001/dgbeards/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/dgbeards/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/herrmann1/Makefile b/2001/herrmann1/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/herrmann1/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/herrmann2/Makefile b/2001/herrmann2/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/herrmann2/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/jason/Makefile b/2001/jason/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/jason/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/kev/Makefile b/2001/kev/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/kev/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/ollinger/Makefile b/2001/ollinger/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/ollinger/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/rosten/Makefile b/2001/rosten/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/rosten/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/schweikh/Makefile b/2001/schweikh/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/schweikh/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/westley/Makefile b/2001/westley/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/westley/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2001/williams/Makefile b/2001/williams/Makefile new file mode 100644 index 000000000..97f00836f --- /dev/null +++ b/2001/williams/Makefile @@ -0,0 +1,236 @@ +#!/usr/bin/env make +# +# IOCCC 2001 entry Makefile + +################################################################################ +# +# An Historical Makefile NOTE: +# +# The orig.Makefile, if it exits, is the original Makefile before this IOCCC +# year directory was reworked so that entries are in separate directories. +# This also applies to any orig.ansi.mk and orig.common.mk files. +# +# Several Makefiles were modified / formed in 2022, and as such it may have +# elements that are not historically compatible with way entries were built. +# +# Regarding individual entries: +# +# IOCCC winning entry code may not work on your system. Even with standards, +# conditions and build environments change, especially when it comes to more +# extreme code such you might find in an IOCCC winner. Moreover, what was +# allowed and liked in one IOCCC contest may no longer be liked/allowed in +# later IOCCC years. +# +# Corrections on winning author and fixing typos in remarks are VERY WELCOME. +# +# GitHub pull requests are welcome: +# +# If you have a patch that might make running an entry work in modern Unix-like +# environments, please create a GitHub pull request for the IOCCC judgess to +# consider. +# +# Suggestions and corrections regarding Makefiles, winning author information, +# fixing typos in remarks, and code patches are welcome via opening a GitHub +# issue or better yet, by creating a GitHub pull request for the IOCCC judges +# to consider. To form a GitHub issue or GitHub pull, please visit: +# +# https://github.com/ioccc-src/winner +# +################################################################################ + +# This work by Landon Curt Noll and Leonid A. Broukhis is licensed under: +# +# Creative Commons Attribution-ShareAlike 3.0 Unported License. +# +# See: http://creativecommons.org/licenses/by-sa/3.0/ + + +SHELL= /bin/sh +CAT= cat +RM= rm +SED= sed +TRUE= true +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +OPT= -O2 + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + +# NOTE: On some systems, the library path does not include the location +# of the X11 libraries. You might need to use a -L/path/to/X11/lib/dir +# in order to compile with these libs. +# +X11CCFLAGS= -I/usr/X11R6/include -I/usr/X11R6/include/X11 -I/usr/include/X11 +#X11CCFLAGS= +X11LDFLAGS= -L/usr/X11R6/lib -Wl,-R/usr/X11R6/lib +#X11LDFLAGS= + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + +# winners that compile under ANSI C +# +WINNERS= anonymous bellard bellard.otccex cheong coupard \ + ctk dgbeards herrmann1 herrmann2 jason kev ollinger rosten \ + schweikh westley williams +ALT_NAMES= westley.orig +DATA_FILES= anonymous_files bellard_files herrmann1_files herrmann2_files + + +all: ${WINNERS} + +# Most likely to amaze +# +anonymous: anonymous.c + magic='${MAY_NEED_GCC} -O1'; \ + X='-DA(X)=#X'; \ + warning='-pedantic -Dprocessor'; \ + $$magic $$warning -Dmagic= $$X "-DX=A($$magic \"$$X\")" \ + -o anonymous anonymous.c + +anonymous_files: anonymous.ten.c + +# Best abuse of the rules +# +bellard: bellard.c + ${CC} -rdynamic ${CFLAGS} bellard.c -o bellard -ldl + +bellard_files: bellard.otccex.c + +# Best short program +# +cheong: cheong.c + ${CC} ${CFLAGS} cheong.c -o cheong + +# Most obfuscated sound +# +coupard: coupard.c + ${CC} ${CFLAGS} -o coupard coupard.c + +# Worst Driver +# +ctk: ctk.c + ${CC} ${CFLAGS} -o ctk ctk.c + +# Worst AI +# +dgbeards: dgbeards.c + ${CC} ${CFLAGS} -DE=break -DF=char -DK=case -DP=int -DR=return \ + -DI=0xFFFF dgbeards.c -o dgbeards + +# Best abuse of the C preprocessor +# +herrmann1: herrmann1.c herrmann1.sh + @echo "NOTE: $@ must be built/run using the script $@.sh" + ${SHELL} ./herrmann1.sh + +herrmann1_files: herrmann1.gcd herrmann1.sh herrmann1.times2 + +# Most eye-crossing +# +# This entry requires the GCC -include feature. +# +herrmann2: herrmann2.c + ${MAY_NEED_GCC} ${CFLAGS} herrmann2.c -o herrmann2 \ + -include /usr/include/stdlib.h -include /usr/include/stdio.h \ + -include /usr/include/time.h -include /usr/include/unistd.h + +herrmann2_files: herrmann2.cup herrmann2.ioccc + +# Best Of Show +# +jason: jason.c + ${CC} ${CFLAGS} -o jason jason.c + +# Best Curses Game +# +kev: kev.c + ${CC} ${CFLAGS} -DPORT=5455 -DSPEED=50 -o kev kev.c \ + -lcurses -ltermcap \ + -Dl_="socket(il.sin_family=AF_INET,SOCK_STREAM,0)" + +# Best primal ASCII graphics +# +ollinger: ollinger.c + ${CC} ${CFLAGS} ollinger.c -o ollinger + +# Best abuse of the user +# +rosten: rosten.c + ${CC} ${CFLAGS} rosten.c ${X11CCFLAGS} ${X11LDFLAGS} -pedantic -lX11 \ + -o rosten + +# Best one-liner +# +schweikh: schweikh.c + ${CC} ${CFLAGS} schweikh.c -o schweikh + +# Best position-independant code +# +westley: westley.c + ${CC} ${CFLAGS} westley.c -o westley + +westley.orig: westley.orig.c + ${CC} ${CFLAGS} westley.orig.c -o westley.orig + +# Best position-independant code +# +williams: williams.c + ${CC} williams.c ${X11CCFLAGS} ${X11LDFLAGS} -lX11 -o williams + +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + ${MAKE} waste + +waste: + @echo 'waste' + +clean: + ${RM} -f *.o a.out core ${WINNERS} + +clobber: clean + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/anonymous/Makefile b/2004/anonymous/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/anonymous/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/arachnid/Makefile b/2004/arachnid/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/arachnid/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/burley/Makefile b/2004/burley/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/burley/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/gavare/Makefile b/2004/gavare/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/gavare/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/gavin/Makefile b/2004/gavin/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/gavin/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/hibachi/Makefile b/2004/hibachi/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/hibachi/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/hoyle/Makefile b/2004/hoyle/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/hoyle/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/jdalbec/Makefile b/2004/jdalbec/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/jdalbec/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/kopczynski/Makefile b/2004/kopczynski/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/kopczynski/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/newbern/Makefile b/2004/newbern/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/newbern/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/omoikane/Makefile b/2004/omoikane/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/omoikane/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/schnitzi/Makefile b/2004/schnitzi/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/schnitzi/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/sds/Makefile b/2004/sds/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/sds/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/vik1/Makefile b/2004/vik1/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/vik1/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null diff --git a/2004/vik2/Makefile b/2004/vik2/Makefile new file mode 100644 index 000000000..84ef098e4 --- /dev/null +++ b/2004/vik2/Makefile @@ -0,0 +1,362 @@ +#!/bin/make +# +# 2004 makefile +# +# Copyright (C) 2004, Landon Curt Noll, Simon Cooper, Peter Seebach +# and Leonid A. Broukhis. All Rights Reserved. Permission for personal, +# educational or non-profit use is granted provided this copyright and +# notice are included in its entirety and remains unaltered. All other +# uses must receive prior permission from the contest judges. + + +# tool locations +# +SHELL= /bin/sh +CP= cp +CPP= cpp +GUNZIP= gunzip +LD= ld +MAKE= make +RM= rm +SED= sed +TAR= tar +TRUE= true + + +# Special flags for the gavin entry +# +# FYI: Older versions of GCC have a bug in -O2 optimization, hence -O1 +# +GAVIN_OPT= -O1 +GAVIN_FLAGS=\ + '-DY(m)=*((int*)(m))'\ + '-DE(f,a,b,c)=((G((*)))(f))(a,b,c)'\ + '-DM=for(D=0;D<786432;D++)'\ + '-DZ=int i=0,j=0,h,n,p=393728,s=26739,C,D'\ + '-DV=0x90200'\ + '-DK=0'\ + '-DR=while((C=E(V-8,100,0,0))&3&&(D=E(V-8,96,0,0))|3){'\ + '-DL(c,d)=E(V+8,100,c,0);R}E(V+8,96,d,0);R}' + + +# Set X11_LIBDIR to the directory where the X11 library resides +# +X11_LIBDIR= /usr/X11R6/lib + +#CINCLUDE= -I ${HOMEBREW_PREFIX}/include/SDL2 + +# optimization +# +# Most compiles will safely use -O2. Some can use only -O1 or -O. +# A few compilers have broken optimizers and thus you may +# not want anything. +# +#OPT= +#OPT= -O +#OPT= -O1 +OPT= -O2 + + +# flags for ANSI compiles +# +# NOTE: Some ANSI compilers make use of -Xa to turn on ANSI mode, +# others such as gcc may want -ansi, others (Compaq Tru64 Unix) +# want -std1, and others may want nothing at all. +# Adjust the CFLAGS line as needed. +# +# NOTE: Some compilers cannot optimize, or optimize some entries +# incorrectly. You might want to turn on -O to see if your +# compiler can handle them. +# +# +#CFLAGS= -Xa ${OPT} +#CFLAGS= -std1 $(OPT) +CFLAGS= -ansi ${OPT} + + +# ANSI compiler +# +# Set CC to the name of your ANSI compiler. +# +# Some entries seem to need gcc. If you have gcc, set +# both CC and MAY_NEED_GCC to gcc. +# +# If you do not have gcc, set CC to the name of your ANSI compiler, and +# set MAY_NEED_GCC to either ${CC} (and hope for the best) or to just : +# to disable such programs. +# +CC= cc +MAY_NEED_GCC= gcc + + +# 2004 winners +# +WINNERS= anonymous arachnid burley gavare gavin hibachi hoyle jdalbec \ + kopczynski newbern omoikane schnitzi sds vik1 vik2 +CLEAN= anonymous_clean arachnid_clean burley_clean gavare_clean gavin_clean \ + hibachi_clean hoyle_clean jdalbec_clean kopczynski_clean \ + newbern_clean omoikane_clean schnitzi_clean sds_clean vik1_clean \ + vik2_clean +CLOBBER= anonymous_clobber arachnid_clobber burley_clobber gavare_clobber \ + gavin_clobber hibachi_clobber hoyle_clobber jdalbec_clobber \ + kopczynski_clobber newbern_clobber omoikane_clobber schnitzi_clobber \ + sds_clobber vik1_clobber vik2_clobber +ALT_NAMES= hoyle.orig kopczynski.orig +DATA_FILES= arachnid_files gavin_files hibachi_files kopczynski_files \ + newbern_files omoikane_files schnitzi_files + + +# default build +# +all: ${WINNERS} + + +# Best use of "Precious" Lines +# +anonymous: anonymous.c + ${CC} anonymous.c -o anonymous + +anonymous_clean: + ${RM} -f anonymous.o + +anonymous_clobber: anonymous_clean + ${RM} -f anonymous + + +# Best use of Vision +# +arachnid: arachnid.c + ${CC} -o arachnid -DL=LINES -DS=COLS \ + -DW=mvwaddch\(w,v,u,acs_map\[l\[m\[u arachnid.c -lncurses + +arachnid_clean: + ${RM} -f arachnid.o + +arachnid_clobber: arachnid_clean + ${RM} -f arachnid + +arachnid_files: arachnid.info + + +# Best Calculated Risk +# +burley: burley.c + ${CC} -ansi burley.c -o burley + +burley_clean: + ${RM} -f burley.o + +burley_clobber: burley_clean + ${RM} -f burley + + +# Best Use of Light and Spheres +# +gavare: gavare.c + ${CC} -O3 gavare.c -o gavare + +gavare_clean: + ${RM} -f gavare.o + +gavare_clobber: gavare_clean + ${RM} -f gavare + + +# Best of Show +# +gavin: gavin.c + ${CC} ${GAVIN_OPT} -o gavin ${GAVIN_FLAGS} gavin.c + ${RM} -f kernel + ./gavin > kernel + ${CC} ${GAVIN_OPT} -c ${GAVIN_FLAGS} -DB=_start '-Dputchar(a)=' gavin.c + ${RM} -f sh + ${LD} -s -o sh gavin.o + ${RM} -f vi + ${CP} sh vi + ${RM} -f fs.tar + ${TAR} -cvf fs.tar sh vi gavin.c gavin.hint prim + +gavin_clean: + ${RM} -f sh vi kernel gavin.o + +gavin_clobber: gavin_clean + ${RM} -f gavin fs.tar + +gavin_files: boot.b lilo.conf prim gavin_install.txt + + +# Best Abuse of the Guidelines +# +hibachi: hibachi.tar.gz + ${RM} -f hibachi.tar + ${GUNZIP} < hibachi.tar.gz > hibachi.tar + ${TAR} -xvf hibachi.tar + ${RM} -f hibachi.tar + (cd hibachi && ${SHELL} ./configure) + ([ -f hibachi/makefile ] && cd hibachi && $(MAKE) -f makefile || true) + +hibachi_clean: + ${RM} -f hibachi/hibachi.o hibachi.tar + +hibachi_clobber: hibachi_clean + ${RM} -rf hibachi + +hibachi_files: hibachi.tar.gz + + +# Most Functional Output +# +hoyle: hoyle.c + ${CC} hoyle.c -o hoyle -lm + +hoyle.orig: hoyle.orig.c + ${CC} hoyle.orig.c -o hoyle.orig -lm + +hoyle_clean: + ${RM} -f hoyle.o hoyle.orig.o + +hoyle_clobber: hoyle_clean + ${RM} -f hoyle hoyle.orig + + +# Best Abuse of the Periodic Table +# +jdalbec: jdalbec.c + @${RM} -f jdalbec2.c + -${CC} -E jdalbec.c > jdalbec2.c + @${RM} -f jdalbec3.c + ${SED} -e 's/ (/(/g' < jdalbec2.c > jdalbec3.c + ${CC} -ansi jdalbec3.c -o jdalbec + +jdalbec_clean: + ${RM} -f jdalbec2.c jdalbec3.c jdalbec.o + +jdalbec_clobber: jdalbec_clean + ${RM} -f jdalbec + + +# Best one-liner +# +kopczynski: kopczynski.c + ${CC} -Dif=while kopczynski.c -o kopczynski + +kopczynski.orig: kopczynski.orig.c + ${CC} -Dif=while kopczynski.orig.c -o kopczynski.orig + +kopczynski_clean: + ${RM} -f kopczynski.o kopczynski.orig.o + +kopczynski_clobber: kopczynski_clean + ${RM} -f kopczynski kopczynski.orig + +kopczynski_files: kopczynski-10 kopczynski-11 kopczynski-8a kopczynski-8b \ + kopczynski-8c kopczynski-9 + + +# Best Font Engine +# +newbern: newbern.c + ${CC} newbern.c -o newbern + +newbern_clean: + ${RM} -f newbern.o + +newbern_clobber: newbern_clean + ${RM} -f newbern + +newbern_files: newbern.dat + + +# Best Utility +# +omoikane: omoikane.c + ${CC} -O omoikane.c -o omoikane + +omoikane_clean: + ${RM} -f omoikane.o + +omoikane_clobber: omoikane_clean + ${RM} -f omoikane + +omoikane_files: omoikane.info + + +# Best Non-Use of Curses +# +schnitzi: schnitzi.c + ${CC} schnitzi.c -o schnitzi + +schnitzi_clean: + ${RM} -f schnitzi.o + +schnitzi_clobber: schnitzi_clean + ${RM} -f schnitzi + +schnitzi_files: schnitzi.inp0 schnitzi.inp1 + + +# Best Abuse of Indentation +# +sds: sds.c + ${CC} -o sds sds.c + +sds_clean: + ${RM} -f sds_encoder.c sds_encoder.o sds.o + +sds_clobber: sds_clean + ${RM} -f sds sds_encoder + + +# Best X11 Game +# +vik1: vik1.c + ${CC} -ansi -O2 -o vik1 vik1.c -L${X11_LIBDIR} -lX11 + +vik1_clean: + ${RM} -f vik1.o + +vik1_clobber: vik1_clean + ${RM} -f vik1 + + +# Best Abuse of CPP +# +vik2: vik2.c + @${RM} -f vik2_1.c + ${CC} -E '-DSTOP=_5' '-DFNAME="vik2_1.c"' vik2.c > vik2_1.c + @${RM} -f vik2_2.c + ${CC} -E vik2_1.c > vik2_2.c + ${CC} -O vik2_2.c -o vik2 + +vik2_clean: + ${RM} -f vik2_1.c vik2_2.c vik2.o + +vik2_clobber: vik2_clean + ${RM} -f vik2 + + +# utility rules +# +everything: ${WINNERS} ${ALT_NAMES} ${DATA_FILES} + +love: + @echo 'not war?' + +haste: + $(MAKE) waste + +waste: + @echo 'waste' + +clean: ${CLEAN} + ${RM} -f a.out core + +clobber: ${CLOBBER} + ${RM} -f ${WINNERS} + ${RM} -f ${ALT_NAMES} + +nuke: clobber + @${TRUE} + +install: all + ${CAT} ${WINNERS} ${ALT_NAMES} > /dev/null