# If you have pip installed,
#
# pip3 install PyYAML
+#
+# If you are using MacPorts on OS X:
+# port install py3{5,6}-yaml as appropriate for your Python 3 version.
+#
+# To build with save/resume disabled, pass CCFLAGS="-D ADVENT_NOSAVE"
+
+.PHONY: debug indent release refresh dist linty html clean
VERS=1.0
CC?=gcc
-CCFLAGS+=-std=c99 -D _DEFAULT_SOURCE -Wall -Wpedantic -g
+CCFLAGS+=-std=c99 -D _DEFAULT_SOURCE -Wpedantic -g
LIBS=
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
init.o: advent.h database.h common.h newdb.h
-actions.o: advent.h database.h common.h
+actions.o: advent.h database.h common.h newdb.h
score.o: advent.h database.h common.h newdb.h
misc.o: advent.h database.h common.h newdb.h
-saveresume.o: advent.h database.h common.h
+saveresume.o: advent.h database.h common.h newdb.h
common.o: common.h
rm -f newdb.c newdb.h
rm -f README advent.6 MANIFEST *.tar.gz
rm -f *~
+ rm -f .*~
cd tests; $(MAKE) --quiet clean
check: advent
(tar -T MANIFEST -czvf advent-$(VERS).tar.gz)
@(rm advent-$(VERS))
+indent:
+ astyle -n -A3 --pad-header --min-conditional-indent=1 --pad-oper *.c
+
release: advent-$(VERS).tar.gz advent.html history.html hints.html notes.html
shipper version=$(VERS) | sh -e -x
dist: advent-$(VERS).tar.gz
+linty: CCFLAGS += -W
+linty: CCFLAGS += -Wall
+linty: CCFLAGS += -Wextra
+linty: CCFLAGS += -Wundef
+linty: CCFLAGS += -Wstrict-prototypes
+linty: CCFLAGS += -Wmissing-prototypes
+linty: CCFLAGS += -Wmissing-declarations
+linty: CCFLAGS += -Wshadow
+linty: CCFLAGS += -Wfloat-equal
+linty: CCFLAGS += -Wcast-align
+linty: CCFLAGS += -Wwrite-strings
+linty: CCFLAGS += -Waggregate-return
+linty: CCFLAGS += -Wcast-qual
+linty: CCFLAGS += -Wswitch-enum
+linty: CCFLAGS += -Wwrite-strings
+linty: CCFLAGS += -Wunreachable-code
+linty: CCFLAGS += -Winit-self
+linty: CCFLAGS += -Wpointer-arith
+linty: CCFLAGS +=-O2
+linty: advent
+
debug: CCFLAGS += -O0 --coverage -g
debug: advent