wordle-algorithm/Makefile

60 lines
1.7 KiB
Makefile

# Solvedle wordle dictionary solver Copyright © 2022 Nicholas Hope
#
# Available at https://git.paco.to/nick/wordle-algorithm
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <https://www.gnu.org/licenses/>.
printing ?= 0
timing ?= 0
assume ?= 0
find_one ?= 0
fancy ?= 0
free ?= 0
# note: setting deleted to 0 doesn't get any extra words,
# but does just about triple the execution time.
# I do not recommend setting it to false.
delete ?= 1
CC := clang
MACROS := -DPRINT_INTERMEDIATES=$(printing) -DTIME_SECTIONS=$(timing) -Dassume=$(assume) -DFIND_ONE=$(find_one) -DDELETE=$(delete) -DFANCYPRINT=$(fancy) -DFREE=$(free)
FLAGS := -Ofast -Wall -Werror
OUTPUT := -o bw
bw: solvedle.o boilerplate.o
$(CC) $(OUTPUT) $^
solvedle.o: solvedle.c
$(CC) $(FLAGS) $(MACROS) -c $^
boilerplate.o: boilerplate.c
$(CC) $(FLAGS) $(MACROS) -c $^
.PHONY: test
test: bw abcde.txt
./bw abcde.txt
.PHONY: run
run: bw wordleWords.txt
./bw wordleWords.txt
.PHONY: fast
fast: solvedle.c boilerplate.c
$(CC) $(FLAGS) -DPRINT_INTERMEDIATES=0 -DTIME_SECTIONS=0 -Dassume=1 -DFIND_ONE=1 -DDELETE=1 -DFANCYPRINT=0 -DFREE=0 -c $^
make bw
.PHONY: clean
clean:
rm *.o bw