summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile45
1 files changed, 45 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..252bf6d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,45 @@
+CC := /usr/bin/gcc
+CFLAGS = -Wall -Wpedantic -I$(INC_DIR)
+LDLIBS :=
+
+# DIRS
+BASE_DIR = $(pwd)
+SRC_DIR = src
+BIN_DIR = bin
+OBJ_DIR = obj
+#LIB_DIR := lib
+BUILD_DIR = build
+INC_DIR = include
+
+# TARGETS
+TARGET := $(BIN_DIR)/catragmx
+SOURCES := $(wildcard $(SRC_DIR)/*.c)
+OBJECTS := $(SOURCES:$(SRC_DIR)/%.c=$(BUILD_DIR)%.o)
+
+# ALL TARGET
+all: $(TARGET)
+
+# COMPILE MAIN TARGET
+$(TARGET): $(SOURCES) | $(BIN_DIR)
+ $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ $(LDLIBS)
+
+# COMPILE OBJECTS
+$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR)
+ $(CC) $(CFLAGS) -c $< -o $@
+
+# MAKE DIRS
+$(BUILD_DIR):
+ mkdir -p $(BUILD_DIR)
+
+$(BIN_DIR):
+ mkdir -p $(BIN_DIR)
+
+# CLEAN
+clean:
+ rm -rf $(BIN_DIR)
+ rm -rf $(BUILD_DIR)
+
+distclean: clean
+ git submodule deinit --all -f
+
+.PHONY: all clean