From d1535393aaf2ee2f7de64c58be2765ca66b9eacf Mon Sep 17 00:00:00 2001
From: Dylan Araps <dylan.araps@gmail.com>
Date: Tue, 21 Jul 2020 09:45:29 +0300
Subject: [PATCH] move stuff to src

---
 .gitignore           |  2 +-
 Makefile             | 18 ++++++++++++------
 src/event.c          | 23 +++++++++++++++++++++++
 src/event.h          | 17 +++++++++++++++++
 sowm.c => src/sowm.c | 32 ++------------------------------
 5 files changed, 55 insertions(+), 37 deletions(-)
 create mode 100644 src/event.c
 create mode 100644 src/event.h
 rename sowm.c => src/sowm.c (55%)

diff --git a/.gitignore b/.gitignore
index 9267cd5..cca8e6e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
 sowm
-sowm.o
 config.h
 .ccls-cache
+src/*.o
diff --git a/Makefile b/Makefile
index 0fe2f58..9a15a34 100644
--- a/Makefile
+++ b/Makefile
@@ -4,16 +4,22 @@ PREFIX = /usr/local
 
 ALL_WARN    = -Wall -Wextra -pedantic -Wmissing-prototypes -Wstrict-prototypes
 ALL_CFLAGS  = $(CFLAGS) $(CPPFLAGS) -std=c99 $(ALL_WARN)
-ALL_LDFLAGS = $(LDFLAGS) -lxcb
+ALL_LDFLAGS = $(LDFLAGS) $(LIBS) -lxcb
 
 CC = cc
 
-all: sowm
+OBJ = src/event.o src/sowm.o
+HDR = src/event.h
 
-sowm: sowm.c Makefile
-	$(CC) -O3 $(ALL_CFLAGS) -o $@ $< $(ALL_LDFLAGS)
+.c.o:
+	$(CC) $(ALL_CFLAGS) -c -o $@ $<
 
-install: all
+sowm: $(OBJ)
+	$(CC) $(ALL_CFLAGS) -o $@ $(OBJ) $(ALL_LDFLAGS)
+
+$(OBJ): $(HDR)
+
+install: sowm
 	mkdir -p $(DESTDIR)/bin
 	cp sowm $(DESTDIR)/bin/sowm
 
@@ -23,4 +29,4 @@ uninstall:
 clean:
 	rm -f sowm *.o
 
-.PHONY: all install uninstall clean
+.PHONY: install uninstall clean
diff --git a/src/event.c b/src/event.c
new file mode 100644
index 0000000..7d39574
--- /dev/null
+++ b/src/event.c
@@ -0,0 +1,23 @@
+#include "event.h"
+
+void (*events[XCB_NO_OPERATION])(xcb_generic_event_t *) = {
+    [XCB_BUTTON_PRESS]      = event_button_press,
+    [XCB_BUTTON_RELEASE]    = event_button_release,
+    [XCB_CONFIGURE_REQUEST] = event_configure_request,
+    [XCB_KEY_PRESS]         = event_key_press,
+    [XCB_CREATE_NOTIFY]     = event_notify_create,
+    [XCB_DESTROY_NOTIFY]    = event_notify_destroy,
+    [XCB_ENTER_NOTIFY]      = event_notify_enter,
+    [XCB_MOTION_NOTIFY]     = event_notify_motion
+};
+
+/* todo */
+void event_button_press(xcb_generic_event_t *ev) { }
+void event_button_release(xcb_generic_event_t *ev) { }
+void event_configure_request(xcb_generic_event_t *ev) { }
+void event_key_press(xcb_generic_event_t *ev) { }
+void event_notify_create(xcb_generic_event_t *ev) { }
+void event_notify_destroy(xcb_generic_event_t *ev) { }
+void event_notify_enter(xcb_generic_event_t *ev) { }
+void event_notify_motion(xcb_generic_event_t *ev) { }
+
diff --git a/src/event.h b/src/event.h
new file mode 100644
index 0000000..1dd44b3
--- /dev/null
+++ b/src/event.h
@@ -0,0 +1,17 @@
+#ifndef SOWM_EVENT_H_INCLUDED
+#define SOWM_EVENT_H_INCLUDED
+
+#include <xcb/xcb.h>
+
+void event_button_press(xcb_generic_event_t *ev);
+void event_button_release(xcb_generic_event_t *ev);
+void event_configure_request(xcb_generic_event_t *ev);
+void event_key_press(xcb_generic_event_t *ev);
+void event_notify_create(xcb_generic_event_t *ev);
+void event_notify_destroy(xcb_generic_event_t *ev);
+void event_notify_enter(xcb_generic_event_t *ev);
+void event_notify_motion(xcb_generic_event_t *ev);
+
+extern void (*events[XCB_NO_OPERATION])(xcb_generic_event_t *);
+
+#endif
diff --git a/sowm.c b/src/sowm.c
similarity index 55%
rename from sowm.c
rename to src/sowm.c
index 368f329..2774e69 100644
--- a/sowm.c
+++ b/src/sowm.c
@@ -4,42 +4,14 @@
 
 #include <xcb/xcb.h>
 
+#include "event.h"
+
 static xcb_connection_t *dpy;
 static xcb_screen_t *scr;
 
 static void init_wm(void);
 static void init_input(void);
 
-static void event_button_press(xcb_generic_event_t *ev);
-static void event_button_release(xcb_generic_event_t *ev);
-static void event_configure_request(xcb_generic_event_t *ev);
-static void event_key_press(xcb_generic_event_t *ev);
-static void event_notify_create(xcb_generic_event_t *ev);
-static void event_notify_destroy(xcb_generic_event_t *ev);
-static void event_notify_enter(xcb_generic_event_t *ev);
-static void event_notify_motion(xcb_generic_event_t *ev);
-
-void (*events[XCB_NO_OPERATION])(xcb_generic_event_t *) = {
-    [XCB_BUTTON_PRESS]      = event_button_press,
-    [XCB_BUTTON_RELEASE]    = event_button_release,
-    [XCB_CONFIGURE_REQUEST] = event_configure_request,
-    [XCB_KEY_PRESS]         = event_key_press,
-    [XCB_CREATE_NOTIFY]     = event_notify_create,
-    [XCB_DESTROY_NOTIFY]    = event_notify_destroy,
-    [XCB_ENTER_NOTIFY]      = event_notify_enter,
-    [XCB_MOTION_NOTIFY]     = event_notify_motion
-};
-
-/* todo */
-static void event_button_press(xcb_generic_event_t *ev) { }
-static void event_button_release(xcb_generic_event_t *ev) { }
-static void event_configure_request(xcb_generic_event_t *ev) { }
-static void event_key_press(xcb_generic_event_t *ev) { }
-static void event_notify_create(xcb_generic_event_t *ev) { }
-static void event_notify_destroy(xcb_generic_event_t *ev) { }
-static void event_notify_enter(xcb_generic_event_t *ev) { }
-static void event_notify_motion(xcb_generic_event_t *ev) { }
-
 static void init_wm(void) {
     uint32_t values[2];