Files
ioccc/Makefile
T
Landon Curt Noll 00c9d60266 improve diff files
We now have 6 diff rules:

    diff_orig_prog
    diff_prog_orig
    diff_alt_prog
    diff_prog_alt
    diff_orig_alt
    diff_alt_orig

The FAQ for these diffs needs to be updated
as we have 6 types of diffs now.
2023-10-23 10:18:20 -07:00

332 lines
9.2 KiB
Makefile

#!/usr/bin/env make
#
# IOCCC Makefile
################################################################################
#
# IOCCC winning entry code may not work on your system. What was liked/allowed
# and worked in the past may no longer be liked/allowed or compile/run today.
#
# Bug fixes, corrections and typo fixes are VERY WELCOME. If you see a problem,
# first check this URL for a list of known bugs and (mis)features of IOCCC winners:
#
# https://www.ioccc.org/bugs.md
#
# GitHub pull requests are welcome! Please see the above URL for details.
#
################################################################################
#
# This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved.
# You are free to share and adapt this file under the terms this license:
#
# Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
#
# For more information, see: https://creativecommons.org/licenses/by-sa/4.0/
#############################
# shell used by this Makefile
#############################
#
SHELL= bash
#######################
# common tool locations
#######################
#
include var.mk
###################
# build all entries
###################
#
all:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
.PHONY: all alt data everything diff_orig_prog diff_prog_orig \
diff_alt_prog diff_prog_alt diff_orig_alt diff_alt_orig \
clean clobber install love haste waste maker easter_egg \
sandwich supernova deep_magic magic charon pluto
# alternative executable
#
alt:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# data files
#
data:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# both all and alt
#
everything:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
#####################
# make a difference #
#####################
#
# diff orig source and source
#
diff_orig_prog:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# diff source and orig source
#
diff_prog_orig:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# diff alt source and source
#
diff_alt_prog:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# diff source and alt source
#
diff_prog_alt:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# diff orig and alt
#
diff_orig_alt:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
diff_alt_orig:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
###############
# utility rules
###############
#
clean:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
clobber:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
install:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
indent.c:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
##################
# 133t hacker rulz
##################
#
love:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
haste:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
waste:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
maker:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
easter_egg:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
sandwich:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
# The IOCCC resident astronomer states
#
supernova:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
deep_magic:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
magic:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
charon:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='
pluto:
@echo '=-=-=-=-= IOCCC begin make $@ =-=-=-=-='
@-for i in [12][0-9][0-9][0-9]; do \
if [ -f $$i/Makefile ]; then \
echo "cd $$i; make $@"; \
(cd $$i; make $@); \
fi; \
done
@echo '=-=-=-=-= IOCCC complete make $@ =-=-=-=-='