diff --git a/c/.gitignore b/c/.gitignore new file mode 100644 index 0000000..bde5fe7 --- /dev/null +++ b/c/.gitignore @@ -0,0 +1,13 @@ +bin/ + +*.o + +*.pdf + +*.a +*.so +*.tar + +*.zip +*.xz +*.gz diff --git a/c/Makefile b/c/Makefile new file mode 100644 index 0000000..a364083 --- /dev/null +++ b/c/Makefile @@ -0,0 +1,61 @@ +SHELL := /usr/bin/env bash + +PREFIX := +CC := $(PREFIX)gcc +LD := $(PREFIX)ld +SIZE := $(PREFIX)size +GDB := $(PREFIX)gdb + +NAME := c-test-project + +SRC_DIR := ./src +INC_DIR := ./inc +BIN_DIR := ./bin +OBJ_DIR := $(BIN_DIR)/obj + +OPT_LEVEL := -g3 \ + -O0 + +C_SRC := main.c + +C_DEF := +C_DEF := $(addprefix -D, $(C_DEF)) + +C_INC := $(INC_DIR) +C_INC := $(addprefix -I, $(C_INC)) + +C_FLAGS := $(C_DEF) \ + $(C_INC) \ + $(OPT_LEVEL) \ + -Wall \ + -Wextra \ + -Wpedantic \ + -Wconversion \ + -Wsign-conversion \ + -Wsign-compare \ + -Wcast-align=strict \ + -Wfloat-equal \ + -Wlogical-op \ + -Wno-unused-command-line-argument \ + -Werror + +BINARY := $(BIN_DIR)/$(NAME) + +MKDIR := $(BIN_DIR) $(OBJ_DIR) + +VPATH := $(SRC_DIR) + + +.PHONY: all clean test + +all: clean $(MKDIR) $(BINARY) + +clean: + @rm -rf $(MKDIR) + +$(MKDIR): + @mkdir -p $@ + +$(BINARY): $(C_SRC) + gcc $(C_FLAGS) $^ -o $@ + diff --git a/c/src/main.c b/c/src/main.c new file mode 100644 index 0000000..0f90097 --- /dev/null +++ b/c/src/main.c @@ -0,0 +1,7 @@ +#include + +int main(void) +{ + printf("hello world"); + return 0; +}