From 5a786580bc99d6a2358b4920be45895a5bccc852 Mon Sep 17 00:00:00 2001 From: mid-kid Date: Mon, 17 Dec 2018 16:30:20 +0100 Subject: [PATCH] day10p1 --- .gitignore | 1 + day10p1/Makefile | 16 +++ day10p1/input | 324 +++++++++++++++++++++++++++++++++++++++++++ day10p1/main.c | 157 +++++++++++++++++++++ day10p1/makegif.sh | 2 + day10p1/out.gif | Bin 0 -> 17452 bytes day10p1/out/.gitkeep | 0 day9p1/Makefile | 4 - day9p2/Makefile | 4 - 9 files changed, 500 insertions(+), 8 deletions(-) create mode 100644 day10p1/Makefile create mode 100644 day10p1/input create mode 100644 day10p1/main.c create mode 100755 day10p1/makegif.sh create mode 100644 day10p1/out.gif create mode 100644 day10p1/out/.gitkeep diff --git a/.gitignore b/.gitignore index 4c6f485..e0dbac3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ */main +day10p1/out/*.pbm diff --git a/day10p1/Makefile b/day10p1/Makefile new file mode 100644 index 0000000..48fbe3b --- /dev/null +++ b/day10p1/Makefile @@ -0,0 +1,16 @@ +CFLAGS := -Wall -Wextra -std=c17 -D_GNU_SOURCE + +LIBS := glib-2.0 +CFLAGS += $(shell pkg-config --cflags $(LIBS)) +LDLIBS := $(shell pkg-config --libs $(LIBS)) + +.PHONY: all +all: main out/ + +.PHONY: clean +clean: + rm -f main out/* + +out/: + mkdir -p $@ + touch $@/.gitkeep diff --git a/day10p1/input b/day10p1/input new file mode 100644 index 0000000..a50b9e9 --- /dev/null +++ b/day10p1/input @@ -0,0 +1,324 @@ +position=<-30509, 41062> velocity=< 3, -4> +position=<-50990, -20297> velocity=< 5, 2> +position=<-50968, 51288> velocity=< 5, -5> +position=<-51003, -40754> velocity=< 5, 4> +position=<-51011, 10375> velocity=< 5, -1> +position=< 30840, 41058> velocity=<-3, -4> +position=<-30546, 51284> velocity=< 3, -5> +position=<-10090, 41065> velocity=< 1, -4> +position=<-51024, -40755> velocity=< 5, 4> +position=< 30832, -40757> velocity=<-3, 4> +position=< 20597, -20297> velocity=<-2, 2> +position=<-50964, 51292> velocity=< 5, -5> +position=<-20303, 20608> velocity=< 2, -2> +position=< 10351, 51292> velocity=<-1, -5> +position=< 30792, 41065> velocity=<-3, -4> +position=<-51008, 30833> velocity=< 5, -3> +position=< 41023, 51287> velocity=<-4, -5> +position=< 41067, -50987> velocity=<-4, 5> +position=<-50966, 41060> velocity=< 5, -4> +position=< 30792, -30527> velocity=<-3, 3> +position=< 51246, 10375> velocity=<-5, -1> +position=< 20586, 30831> velocity=<-2, -3> +position=<-40789, -10071> velocity=< 4, 1> +position=< 51248, 30833> velocity=<-5, -3> +position=<-10071, -50987> velocity=< 1, 5> +position=< 10378, 30831> velocity=<-1, -3> +position=< 20581, -50978> velocity=<-2, 5> +position=<-10116, -50984> velocity=< 1, 5> +position=<-20335, -10073> velocity=< 2, 1> +position=<-50968, -30529> velocity=< 5, 3> +position=< 51267, -20299> velocity=<-5, 2> +position=<-51016, -20306> velocity=< 5, 2> +position=<-10084, 41057> velocity=< 1, -4> +position=< 20589, -30526> velocity=<-2, 3> +position=< 30849, 41065> velocity=<-3, -4> +position=< 10383, 41065> velocity=<-1, -4> +position=< 41059, 51286> velocity=<-4, -5> +position=< 41022, -50987> velocity=<-4, 5> +position=< 20600, 30838> velocity=<-2, -3> +position=<-20335, -50981> velocity=< 2, 5> +position=<-20285, 30838> velocity=< 2, -3> +position=<-10073, 10377> velocity=< 1, -1> +position=< 41069, -50978> velocity=<-4, 5> +position=<-30567, -50987> velocity=< 3, 5> +position=<-20291, -30524> velocity=< 2, 3> +position=<-10076, 51287> velocity=< 1, -5> +position=<-40788, 51287> velocity=< 4, -5> +position=< 30808, 10378> velocity=<-3, -1> +position=<-30562, -40759> velocity=< 3, 4> +position=<-51016, 30833> velocity=< 5, -3> +position=< 20565, -20302> velocity=<-2, 2> +position=<-51019, 41056> velocity=< 5, -4> +position=< 30802, 10378> velocity=<-3, -1> +position=< 51307, 41059> velocity=<-5, -4> +position=< 51265, -50982> velocity=<-5, 5> +position=< 41080, -50980> velocity=<-4, 5> +position=< 30813, 10378> velocity=<-3, -1> +position=< 30809, -10078> velocity=<-3, 1> +position=< 10346, -20299> velocity=<-1, 2> +position=<-51016, 10381> velocity=< 5, -1> +position=<-10081, -20297> velocity=< 1, 2> +position=< 51265, -40755> velocity=<-5, 4> +position=< 51303, 20602> velocity=<-5, -2> +position=<-50992, -40755> velocity=< 5, 4> +position=< 41059, 51291> velocity=<-4, -5> +position=< 10370, -30529> velocity=<-1, 3> +position=<-30549, -10071> velocity=< 3, 1> +position=<-20308, -20297> velocity=< 2, 2> +position=< 10341, 51287> velocity=<-1, -5> +position=< 41079, -40756> velocity=<-4, 4> +position=< 10339, 51292> velocity=<-1, -5> +position=<-20283, 30829> velocity=< 2, -3> +position=< 41067, -30530> velocity=<-4, 3> +position=<-10105, -30531> velocity=< 1, 3> +position=<-40765, -30527> velocity=< 4, 3> +position=< 10356, 51288> velocity=<-1, -5> +position=< 51278, -10073> velocity=<-5, 1> +position=<-51016, -20298> velocity=< 5, 2> +position=<-40780, -30528> velocity=< 4, 3> +position=<-30522, -50980> velocity=< 3, 5> +position=<-40776, 51289> velocity=< 4, -5> +position=< 20597, -50984> velocity=<-2, 5> +position=<-10076, -10079> velocity=< 1, 1> +position=< 51294, -50978> velocity=<-5, 5> +position=< 41051, 30836> velocity=<-4, -3> +position=< 41028, -10075> velocity=<-4, 1> +position=<-50973, 10384> velocity=< 5, -1> +position=< 51246, -20304> velocity=<-5, 2> +position=< 30843, 20611> velocity=<-3, -2> +position=<-40797, 10378> velocity=< 4, -1> +position=< 51254, 20611> velocity=<-5, -2> +position=< 41052, 51292> velocity=<-4, -5> +position=< 10343, -20297> velocity=<-1, 2> +position=<-30570, 20609> velocity=< 3, -2> +position=<-40753, 51284> velocity=< 4, -5> +position=< 20581, 41061> velocity=<-2, -4> +position=<-30514, -20304> velocity=< 3, 2> +position=< 51246, -30527> velocity=<-5, 3> +position=< 10378, 30836> velocity=<-1, -3> +position=< 51290, 20603> velocity=<-5, -2> +position=< 51247, 51292> velocity=<-5, -5> +position=<-51008, -20299> velocity=< 5, 2> +position=<-30553, 30834> velocity=< 3, -3> +position=< 51257, -30526> velocity=<-5, 3> +position=< 41060, 10380> velocity=<-4, -1> +position=<-30511, 20602> velocity=< 3, -2> +position=< 10367, -50978> velocity=<-1, 5> +position=< 41051, 41056> velocity=<-4, -4> +position=<-40777, 20603> velocity=< 4, -2> +position=< 30853, 10380> velocity=<-3, -1> +position=<-10112, 41065> velocity=< 1, -4> +position=<-40757, 20609> velocity=< 4, -2> +position=< 51303, 20606> velocity=<-5, -2> +position=<-51022, 41065> velocity=< 5, -4> +position=<-10106, 10378> velocity=< 1, -1> +position=< 41024, 30829> velocity=<-4, -3> +position=<-50965, -50987> velocity=< 5, 5> +position=< 51307, -50985> velocity=<-5, 5> +position=< 51270, -30532> velocity=<-5, 3> +position=<-51014, 30835> velocity=< 5, -3> +position=< 10354, -30526> velocity=<-1, 3> +position=<-40786, 41058> velocity=< 4, -4> +position=<-10095, -30524> velocity=< 1, 3> +position=<-40797, -10072> velocity=< 4, 1> +position=< 20621, 20606> velocity=<-2, -2> +position=< 10346, -10079> velocity=<-1, 1> +position=< 20569, -20297> velocity=<-2, 2> +position=< 51282, 41065> velocity=<-5, -4> +position=< 10398, -40751> velocity=<-1, 4> +position=< 20567, -20306> velocity=<-2, 2> +position=<-20282, -20305> velocity=< 2, 2> +position=<-40795, 10379> velocity=< 4, -1> +position=< 51303, 51287> velocity=<-5, -5> +position=<-10107, 41061> velocity=< 1, -4> +position=< 10338, -20305> velocity=<-1, 2> +position=< 20584, 51283> velocity=<-2, -5> +position=<-20306, -20297> velocity=< 2, 2> +position=< 41027, 10379> velocity=<-4, -1> +position=< 41040, -30526> velocity=<-4, 3> +position=< 51254, -20301> velocity=<-5, 2> +position=< 30840, -10076> velocity=<-3, 1> +position=< 10370, 10376> velocity=<-1, -1> +position=< 30817, 51292> velocity=<-3, -5> +position=<-50968, -30527> velocity=< 5, 3> +position=< 30812, -30528> velocity=<-3, 3> +position=<-30557, 20611> velocity=< 3, -2> +position=< 20575, 41062> velocity=<-2, -4> +position=<-40763, -10070> velocity=< 4, 1> +position=< 30851, 41060> velocity=<-3, -4> +position=< 30795, -20297> velocity=<-3, 2> +position=< 30848, 20605> velocity=<-3, -2> +position=<-40757, -10078> velocity=< 4, 1> +position=< 10362, -10070> velocity=<-1, 1> +position=<-51003, -10074> velocity=< 5, 1> +position=< 20581, -20298> velocity=<-2, 2> +position=< 30792, -50981> velocity=<-3, 5> +position=<-50991, -30524> velocity=< 5, 3> +position=<-20319, 41062> velocity=< 2, -4> +position=<-10072, -50986> velocity=< 1, 5> +position=< 30804, 41057> velocity=<-3, -4> +position=<-20303, -50984> velocity=< 2, 5> +position=< 41047, 51292> velocity=<-4, -5> +position=< 41038, -20306> velocity=<-4, 2> +position=<-20284, 41065> velocity=< 2, -4> +position=< 41067, -20298> velocity=<-4, 2> +position=<-30509, 51290> velocity=< 3, -5> +position=<-50965, -50983> velocity=< 5, 5> +position=< 20621, 30837> velocity=<-2, -3> +position=< 30796, -10079> velocity=<-3, 1> +position=<-50999, -40751> velocity=< 5, 4> +position=<-20339, 10379> velocity=< 2, -1> +position=< 20589, -10077> velocity=<-2, 1> +position=<-40754, -30526> velocity=< 4, 3> +position=< 41027, -30530> velocity=<-4, 3> +position=< 51278, -50979> velocity=<-5, 5> +position=< 51304, -30533> velocity=<-5, 3> +position=<-30533, 30838> velocity=< 3, -3> +position=< 10338, 51286> velocity=<-1, -5> +position=<-40747, 51292> velocity=< 4, -5> +position=<-10071, -20297> velocity=< 1, 2> +position=< 41061, -50981> velocity=<-4, 5> +position=<-30511, -50987> velocity=< 3, 5> +position=<-50964, 10375> velocity=< 5, -1> +position=<-30546, 41059> velocity=< 3, -4> +position=< 51248, 41065> velocity=<-5, -4> +position=< 20589, -20306> velocity=<-2, 2> +position=< 10338, 30837> velocity=<-1, -3> +position=< 10338, -40753> velocity=<-1, 4> +position=<-40789, -30531> velocity=< 4, 3> +position=<-40789, -50984> velocity=< 4, 5> +position=< 51294, -30528> velocity=<-5, 3> +position=<-20303, 41063> velocity=< 2, -4> +position=<-10071, 10384> velocity=< 1, -1> +position=<-30529, 30833> velocity=< 3, -3> +position=< 41075, -20298> velocity=<-4, 2> +position=< 41078, -30529> velocity=<-4, 3> +position=< 51262, 30831> velocity=<-5, -3> +position=< 20613, 20602> velocity=<-2, -2> +position=<-50968, 41063> velocity=< 5, -4> +position=<-30512, -40756> velocity=< 3, 4> +position=< 51304, -50987> velocity=<-5, 5> +position=< 30800, -20297> velocity=<-3, 2> +position=< 10370, -20303> velocity=<-1, 2> +position=<-20282, 30837> velocity=< 2, -3> +position=<-20335, -50986> velocity=< 2, 5> +position=<-50964, -30524> velocity=< 5, 3> +position=<-20319, -40756> velocity=< 2, 4> +position=< 10350, 51291> velocity=<-1, -5> +position=<-51024, 41064> velocity=< 5, -4> +position=<-40748, 20611> velocity=< 4, -2> +position=<-51000, 30837> velocity=< 5, -3> +position=<-10097, 30834> velocity=< 1, -3> +position=< 20613, -20305> velocity=<-2, 2> +position=< 51258, 41057> velocity=<-5, -4> +position=<-40757, -50982> velocity=< 4, 5> +position=< 10388, -20297> velocity=<-1, 2> +position=<-51003, -20297> velocity=< 5, 2> +position=<-10068, 41062> velocity=< 1, -4> +position=< 10359, -20304> velocity=<-1, 2> +position=<-10073, 51290> velocity=< 1, -5> +position=< 30840, -20304> velocity=<-3, 2> +position=< 30800, 30834> velocity=<-3, -3> +position=< 10394, 30838> velocity=<-1, -3> +position=<-40794, -20306> velocity=< 4, 2> +position=<-51016, -30528> velocity=< 5, 3> +position=<-10067, 10384> velocity=< 1, -1> +position=< 41067, -10071> velocity=<-4, 1> +position=<-10076, -50982> velocity=< 1, 5> +position=<-40741, 10376> velocity=< 4, -1> +position=< 51247, -20302> velocity=<-5, 2> +position=<-10076, -20305> velocity=< 1, 2> +position=<-50976, -20302> velocity=< 5, 2> +position=< 41036, 30830> velocity=<-4, -3> +position=<-50976, -40758> velocity=< 5, 4> +position=<-10100, -40753> velocity=< 1, 4> +position=<-30530, 51288> velocity=< 3, -5> +position=< 20613, 51286> velocity=<-2, -5> +position=<-20311, 10380> velocity=< 2, -1> +position=< 20570, -40760> velocity=<-2, 4> +position=< 41040, -40756> velocity=<-4, 4> +position=<-30530, 51292> velocity=< 3, -5> +position=< 20613, 10381> velocity=<-2, -1> +position=<-20287, -10074> velocity=< 2, 1> +position=< 30849, -10079> velocity=<-3, 1> +position=< 41027, 41056> velocity=<-4, -4> +position=< 51287, 51287> velocity=<-5, -5> +position=<-50971, -30524> velocity=< 5, 3> +position=<-40776, -50980> velocity=< 4, 5> +position=< 10395, 51283> velocity=<-1, -5> +position=< 10354, -20300> velocity=<-1, 2> +position=< 10378, 20603> velocity=<-1, -2> +position=< 20597, -50985> velocity=<-2, 5> +position=<-30570, -50987> velocity=< 3, 5> +position=< 20609, 20610> velocity=<-2, -2> +position=< 41062, -50980> velocity=<-4, 5> +position=< 41064, -10079> velocity=<-4, 1> +position=< 30792, -30533> velocity=<-3, 3> +position=< 10362, -30530> velocity=<-1, 3> +position=<-20282, 10380> velocity=< 2, -1> +position=< 30853, 41057> velocity=<-3, -4> +position=< 41027, -40756> velocity=<-4, 4> +position=<-20322, 51285> velocity=< 2, -5> +position=<-30558, -30532> velocity=< 3, 3> +position=< 20623, -20302> velocity=<-2, 2> +position=< 10395, 10379> velocity=<-1, -1> +position=< 51295, 41065> velocity=<-5, -4> +position=<-10116, 30833> velocity=< 1, -3> +position=<-40741, 51286> velocity=< 4, -5> +position=< 10362, 10380> velocity=<-1, -1> +position=< 30816, -10071> velocity=<-3, 1> +position=< 30803, 20604> velocity=<-3, -2> +position=< 30834, 20605> velocity=<-3, -2> +position=<-30534, 41065> velocity=< 3, -4> +position=<-50984, 20608> velocity=< 5, -2> +position=< 51294, -50981> velocity=<-5, 5> +position=< 10371, -40751> velocity=<-1, 4> +position=< 41059, -50978> velocity=<-4, 5> +position=<-40797, -10078> velocity=< 4, 1> +position=< 10354, 20605> velocity=<-1, -2> +position=<-50992, -30525> velocity=< 5, 3> +position=<-30554, -50983> velocity=< 3, 5> +position=< 30795, -30529> velocity=<-3, 3> +position=<-10055, -30526> velocity=< 1, 3> +position=<-50992, -40759> velocity=< 5, 4> +position=<-20295, -40755> velocity=< 2, 4> +position=<-20322, -10071> velocity=< 2, 1> +position=< 41060, 51288> velocity=<-4, -5> +position=<-51011, 30838> velocity=< 5, -3> +position=< 30819, -20297> velocity=<-3, 2> +position=< 10359, 30837> velocity=<-1, -3> +position=< 30801, 10379> velocity=<-3, -1> +position=< 10394, -50982> velocity=<-1, 5> +position=<-30546, -20303> velocity=< 3, 2> +position=<-30562, -20304> velocity=< 3, 2> +position=<-20339, 41056> velocity=< 2, -4> +position=<-50964, -20302> velocity=< 5, 2> +position=< 10343, 20611> velocity=<-1, -2> +position=< 10370, -20301> velocity=<-1, 2> +position=<-20343, 20606> velocity=< 2, -2> +position=< 30832, 10383> velocity=<-3, -1> +position=< 20565, 20611> velocity=<-2, -2> +position=< 30797, 30838> velocity=<-3, -3> +position=< 41080, 30831> velocity=<-4, -3> +position=< 20597, -10076> velocity=<-2, 1> +position=<-50995, 41065> velocity=< 5, -4> +position=<-40793, -10079> velocity=< 4, 1> +position=< 10378, -30531> velocity=<-1, 3> +position=< 30848, 10375> velocity=<-3, -1> +position=<-10076, -40758> velocity=< 1, 4> +position=<-40736, -30530> velocity=< 4, 3> +position=<-40776, -20301> velocity=< 4, 2> +position=<-10068, 41056> velocity=< 1, -4> +position=<-30529, 10379> velocity=< 3, -1> +position=<-30570, 10377> velocity=< 3, -1> +position=<-20295, -10075> velocity=< 2, 1> +position=< 51247, -40760> velocity=<-5, 4> +position=<-40773, -40755> velocity=< 4, 4> +position=< 30809, -50982> velocity=<-3, 5> +position=<-30551, 51283> velocity=< 3, -5> +position=<-10116, 10376> velocity=< 1, -1> +position=<-10115, -40751> velocity=< 1, 4> +position=<-20311, -20298> velocity=< 2, 2> +position=<-10098, 10375> velocity=< 1, -1> +position=< 30849, -50978> velocity=<-3, 5> diff --git a/day10p1/main.c b/day10p1/main.c new file mode 100644 index 0000000..cafc522 --- /dev/null +++ b/day10p1/main.c @@ -0,0 +1,157 @@ +#include +#include + +#include + +struct light { + int x; + int y; + int velx; + int vely; +}; + +struct rect { + int x; + int y; + int w; + int h; +}; + +struct light *parse_lights(const char *fname, unsigned *len) +{ + FILE *f = fopen(fname, "r"); + if (!f) { + perror(fname); + return NULL; + } + + GArray *array = g_array_new(FALSE, TRUE, sizeof(struct light)); + + char *line = NULL; + size_t line_len = 0; + while (getline(&line, &line_len, f) != -1) { + struct light light; + sscanf(line, "position=<%d, %d> velocity=<%d, %d>", + &light.x, &light.y, &light.velx, &light.vely); + g_array_append_val(array, light); + } + + *len = array->len; + + free(line); + fclose(f); + return (struct light *)g_array_free(array, FALSE); +} + +struct rect get_frame(struct light *lights, const unsigned lights_len) +{ + struct rect res = {0}; + + if (!lights_len) return res; + + res.x = lights->x; + res.y = lights->y; + int xmax = res.x; + int ymax = res.y; + + for (struct light *light = lights + 1; light < lights + lights_len; light++) { + if (light->x < res.x) res.x = light->x; + if (light->y < res.y) res.y = light->y; + if (light->x > xmax) xmax = light->x; + if (light->y > ymax) ymax = light->y; + } + + res.w = xmax - res.x + 1; + res.h = ymax - res.y + 1; + + return res; +} + +void advance_frame(struct light *lights, const unsigned lights_len) +{ + for (struct light *light = lights; light < lights + lights_len; light++) { + light->x += light->velx; + light->y += light->vely; + } +} + +int check_limit(const struct rect limit, struct light *lights, + const unsigned lights_len) +{ + for (struct light *light = lights; light < lights + lights_len; light++) { + if (light->x < limit.x) return 1; + if (light->y < limit.y) return 1; + if (light->x > limit.x + limit.w) return 1; + if (light->y > limit.y + limit.h) return 1; + } + return 0; +} + +int make_bitmap(const char *fname, const struct rect frame, + struct light *lights, const unsigned lights_len) +{ + int bitmap_width = frame.w / CHAR_BIT; + if (frame.w % CHAR_BIT != 0) bitmap_width++; + + size_t bitmap_size = frame.h * bitmap_width; + char (*bitmap)[bitmap_width] = calloc(1, bitmap_size); + if (!bitmap) { + perror("calloc"); + return 1; + } + + for (struct light *light = lights; light < lights + lights_len; light++) { + if (light->x < frame.x) continue; + if (light->y < frame.y) continue; + if (light->x > frame.x + frame.w) continue; + if (light->y > frame.y + frame.h) continue; + + int bitmap_x = light->x - frame.x; + int bitmap_y = light->y - frame.y; + + bitmap[bitmap_y][bitmap_x / CHAR_BIT] |= 1 << (CHAR_BIT - bitmap_x % CHAR_BIT - 1); + } + + FILE *f = fopen(fname, "w"); + if (!f) { + perror(fname); + free(bitmap); + return 1; + } + + fprintf(f, "P4\n%d %d\n", frame.w, frame.h); + fwrite(bitmap, bitmap_size, 1, f); + + free(bitmap); + fclose(f); + return 0; +} + +#define REASONABLE_HEIGHT 100 + +int main() +{ + unsigned lights_len; + struct light *lights = parse_lights("input", &lights_len); + if (!lights) return 1; + + struct rect frame; + + while (1) { + frame = get_frame(lights, lights_len); + if (frame.h <= REASONABLE_HEIGHT) break; + advance_frame(lights, lights_len); + } + + GString *fname = g_string_new(NULL); + unsigned frame_id = 0; + while (check_limit(frame, lights, lights_len) == 0) { + g_string_printf(fname, "out/frame%03d.pbm", frame_id++); + if (make_bitmap(fname->str, frame, lights, lights_len)) break; + advance_frame(lights, lights_len); + } + + g_string_free(fname, TRUE); + free(lights); + return 0; +} diff --git a/day10p1/makegif.sh b/day10p1/makegif.sh new file mode 100755 index 0000000..099ba48 --- /dev/null +++ b/day10p1/makegif.sh @@ -0,0 +1,2 @@ +#!/bin/sh +convert -resize 200% -filter point -delay 20 -loop 0 out/*.pbm out.gif diff --git a/day10p1/out.gif b/day10p1/out.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a70a83cdf3d5d27712c67d3cad0189cf99c561d GIT binary patch literal 17452 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 E0=Fo%qyPW_ literal 0 HcmV?d00001 diff --git a/day10p1/out/.gitkeep b/day10p1/out/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/day9p1/Makefile b/day9p1/Makefile index 5ad0e7f..042aa30 100644 --- a/day9p1/Makefile +++ b/day9p1/Makefile @@ -1,9 +1,5 @@ CFLAGS := -Wall -Wextra -std=c17 -D_GNU_SOURCE -#LIBS := glib-2.0 -#CFLAGS += $(shell pkg-config --cflags $(LIBS)) -#LDLIBS := $(shell pkg-config --libs $(LIBS)) - .PHONY: all all: main diff --git a/day9p2/Makefile b/day9p2/Makefile index 5ad0e7f..042aa30 100644 --- a/day9p2/Makefile +++ b/day9p2/Makefile @@ -1,9 +1,5 @@ CFLAGS := -Wall -Wextra -std=c17 -D_GNU_SOURCE -#LIBS := glib-2.0 -#CFLAGS += $(shell pkg-config --cflags $(LIBS)) -#LDLIBS := $(shell pkg-config --libs $(LIBS)) - .PHONY: all all: main