diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app b/app new file mode 100755 index 0000000..edbac89 Binary files /dev/null and b/app differ diff --git a/build.sh b/build.sh index 43d8a2c..f37992f 100755 --- a/build.sh +++ b/build.sh @@ -2,10 +2,11 @@ SCRIPT_NAME=$(basename "$0") BUILD_DIR="build" -OBJ_DIR="obj" SRC_DIR="src" -APP_NAME="APP" -GCC_OPTIONS="-c -O3" +APP_NAME="app" +GCC_OPTIONS="-Wall -Wextra -I $SRC_DIR -Wno-unused-parameter -Wno-unused-but-set-variable" +GREEN='\033[0;32m' +RESET='\033[0m' # Display functions function show_success { @@ -41,7 +42,7 @@ fi # Clean generated files function clean { - local command="rm -rf $OBJ_DIR $BUILD_DIR" + local command="rm -r $BUILD_DIR $APP_NAME" echo -e "➔ Cleaning..." show_command "$command" make clean > /dev/null || show_error "Error during cleaning." @@ -50,7 +51,7 @@ function clean { # Build function build { - local command="gcc $GCC_OPTIONS -o $OBJ_DIR/main.o $SRC_DIR/main.c" + local command="make" echo -e "➔ Building..." show_command "$command" make > /dev/null || show_error "Error during compilation." @@ -59,7 +60,7 @@ function build { # Execute the executable function execute { - local executable="$BUILD_DIR/$APP_NAME" + local executable="$APP_NAME" local command="./$executable" echo -e "➔ Executing the executable..." show_command "$command" diff --git a/build/APP b/build/APP deleted file mode 100755 index adb2162..0000000 Binary files a/build/APP and /dev/null differ diff --git a/makefile b/makefile index 6de9008..42198ad 100644 --- a/makefile +++ b/makefile @@ -1,43 +1,21 @@ -CC = gcc -SRC_DIR = src -OBJ_DIR = obj -SOURCES = $(wildcard $(SRC_DIR)/*.c) -OBJECTS = $(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SOURCES)) -EXECUTABLE = APP +GCCFLAGS = -Wall -Wextra -I src -Wno-unused-parameter -Wno-unused-but-set-variable BUILD_DIR = build -LDFLAGS = -CFLAGS_RELEASE = -O3 -CFLAGS_DEBUG = -g -O0 +SOURCES = $(shell find src -name '*.c') +TARGETS = $(patsubst %.c, %.o, $(SOURCES)) +TARGETS := $(addprefix $(BUILD_DIR)/, $(TARGETS)) +APP_NAME = app -# Generate dependency files -DEPS = $(OBJECTS:.o=.d) --include $(DEPS) +all: $(APP_NAME) -# Commands -all: build +$(APP_NAME): $(TARGETS) + @gcc $(GCCFLAGS) -o $(APP_NAME) $(TARGETS) + @echo -e $(GREEN)build done.$(RESET) -build: $(BUILD_DIR)/$(EXECUTABLE) +$(TARGETS): $(SOURCES) + @mkdir -p $(@D) + @gcc $(GCCFLAGS) -c $(patsubst %.o, %.c, $(@:$(BUILD_DIR)/%=%)) -o $@ -$(BUILD_DIR)/$(EXECUTABLE): $(OBJECTS) - @mkdir -p $(BUILD_DIR) - $(CC) $(LDFLAGS) -o $@ $^ - -$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c - @mkdir -p $(OBJ_DIR) - $(CC) -c $(CFLAGS_RELEASE) -MMD -MP -o $@ $< - -debug: - $(MAKE) CFLAGS_RELEASE="$(CFLAGS_DEBUG)" build clean: - rm -rf $(OBJ_DIR) $(BUILD_DIR) - -run: build - $< - -doc_doxygen: - @echo "Doxygen build started" - @$(MAKE) -C docs - -.PHONY: all build debug clean run doc_doxygen - + @rm -r $(BUILD_DIR) $(APP_NAME) + @echo -e $(GREEN)clean done.$(RESET) diff --git a/src/app/interface/client/interface_client.c b/src/app/interface_client.c similarity index 100% rename from src/app/interface/client/interface_client.c rename to src/app/interface_client.c diff --git a/src/app/interface/client/interface_client.h b/src/app/interface_client.h similarity index 100% rename from src/app/interface/client/interface_client.h rename to src/app/interface_client.h diff --git a/src/app/interface/resp/interface_resp.c b/src/app/interface_resp.c similarity index 100% rename from src/app/interface/resp/interface_resp.c rename to src/app/interface_resp.c diff --git a/src/app/interface/resp/interface_resp.h b/src/app/interface_resp.h similarity index 100% rename from src/app/interface/resp/interface_resp.h rename to src/app/interface_resp.h