diff --git a/day2/Makefile b/day2/Makefile index 125d6f4..05bd70c 100644 --- a/day2/Makefile +++ b/day2/Makefile @@ -14,7 +14,7 @@ INPUT_DEST=src/input.c COMMON_FLAGS+= -W -Wall -fno-strict-aliasing $(addprefix -I,$(INCLUDE)) COMMON_FLAGS+=-msse -msse2 -msse3 -COMMON_FLAGS+=-D_PART1 -D_PART2 +COMMON_FLAGS+=-D_PART1 -D__PART2 OPT_FLAGS?= -march=native -fgraphite -fopenmp -floop-parallelize-all -ftree-parallelize-loops=4 \ -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block \ diff --git a/day2/src/p1.c b/day2/src/p1.c index b1b2a52..a2a6213 100644 --- a/day2/src/p1.c +++ b/day2/src/p1.c @@ -7,7 +7,7 @@ #include -#define RIMAX_STR (64 - sizeof(size_t)) +#define RIMAX_STR (sizeof(size_t)) struct proc { union { @@ -16,7 +16,7 @@ struct proc { off_t field; }; struct { - //TODO: part2 shit + //TODO: part2 shit } aimed; }; }; diff --git a/day3/Makefile b/day3/Makefile index 323d853..d7fcda1 100644 --- a/day3/Makefile +++ b/day3/Makefile @@ -1,6 +1,6 @@ # aoc2021-day2 -PROJECT=day2 +PROJECT=day3 AUTHOR=Avril (Flanchan) SRC_C = $(wildcard src/*.c) @@ -9,12 +9,13 @@ SRC_CXX = $(wildcard src/*.cpp) INCLUDE=include INPUT_SOURCE?=input -INPUT_DEST=include/raw_input.hh +INPUT_DEST=src/input.c COMMON_FLAGS+= -W -Wall -fno-strict-aliasing $(addprefix -I,$(INCLUDE)) COMMON_FLAGS+=-msse -msse2 -msse3 -COMMON_FLAGS+=-D_PART1 -D__PART2 +COMMON_FLAGS+=-D_PART1 +# -D_PART2 OPT_FLAGS?= -march=native -fgraphite -fopenmp -floop-parallelize-all -ftree-parallelize-loops=4 \ -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block \ @@ -55,6 +56,9 @@ OBJ = $(OBJ_C) $(OBJ_CXX) # Phonies +.PHONY: input +input: $(INPUT_DEST) + .PHONY: release release: | dirs $(INPUT_DEST) $(MAKE) $(PROJECT)-release @@ -68,7 +72,10 @@ debug: | dirs $(INPUT_DEST) dirs: @mkdir -p obj/c{,xx}/src -$(INPUT_DEST): $(INPUT_SOURCE) +cmkinput: cmkinput.c + $(CC) $^ $(CFLAGS) -fwhole-program -o $@ + +$(INPUT_DEST): $(INPUT_SOURCE) cmkinput ./mkinput $< > $@ obj/c/%.o: %.c diff --git a/day3/mkinput.c b/day3/cmkinput.c similarity index 100% rename from day3/mkinput.c rename to day3/cmkinput.c diff --git a/day3/include/raw_input.hh b/day3/include/raw_input.hh new file mode 100644 index 0000000..e69de29 diff --git a/day3/mkinput b/day3/mkinput new file mode 100755 index 0000000..54515c1 --- /dev/null +++ b/day3/mkinput @@ -0,0 +1,23 @@ +#!/bin/bash + + +INPUT=${1:-input} +INPUT_PROC=.input-proc-$(uuidgen) + +WIDTH=$(head -n 1 "$INPUT" | wc -c) + +./cmkinput $INPUT > $INPUT_PROC || exit 1 + +echo "#include " +echo "" +echo "const rawinput_t RAW_INPUT[] = {" +while IFS= read -r line; do + printf '0b' + echo "$line," | sed 's/.\{8\}/& 0b/g' +done < $INPUT_PROC +unset line +echo "};" + +echo "const size_t INPUT_WIDTH = $WIDTH;" +echo "const size_t RAW_INPUT_SIZE = sizeof(RAW_INPUT) / sizeof(rawinput_t);" +rm -f $INPUT_PROC diff --git a/day3/mkinput-old b/day3/mkinput-old deleted file mode 100755 index 629118b..0000000 --- a/day3/mkinput-old +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - - -echo "#pragma once" -echo "" - -INPUT=${1:-input} - -COLS=$(head -n 1 "$INPUT" | wc -c) -echo "namespace input {" -echo " constexpr const auto COLS = $COLS;" -echo " constexpr const char DATA[][COLS] = {" -while IFS= read -r line; do - echo " \"$line\"," -done < $INPUT -unset line -echo " };" - -echo " constexpr const auto ROWS = sizeof(DATA)/sizeof(DATA[0]);" -echo "}"