aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorsalaaad2 <arthurdurant263@gmail.com>2022-03-31 22:57:06 +0200
committersalaaad2 <arthurdurant263@gmail.com>2022-03-31 22:57:06 +0200
commitad9bf788be5dedfc001ceae51512827596a0af04 (patch)
tree3c1863e126893c47bbf5ce958324f5acda9a30a1 /Makefile
downloadsmith-ad9bf788be5dedfc001ceae51512827596a0af04.tar.gz
smith-ad9bf788be5dedfc001ceae51512827596a0af04.tar.bz2
smith-ad9bf788be5dedfc001ceae51512827596a0af04.tar.xz
smith-ad9bf788be5dedfc001ceae51512827596a0af04.tar.zst
smith-ad9bf788be5dedfc001ceae51512827596a0af04.zip
mrsmith_v0.0.1
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile80
1 files changed, 80 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..6119205
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,80 @@
+#==============================================================================#
+# SMITH ( //
+# Makefile ( )/
+# by salade )(/
+# ________________ ( /)
+# ()__)____________))))) :^}
+#==============================================================================#
+# smith c/go makefile
+# @version 0.1
+#
+default: all
+
+#==============================================================================#
+#--------------------------------- SHELL --------------------------------------#
+#==============================================================================#
+SHELL := /bin/sh
+OS = $(shell uname)
+
+#==============================================================================#
+#------------------------------ DIRECTORIES -----------------------------------#
+#==============================================================================#
+C_DIR = csrc/
+SRCS_DIR = ${C_DIR}
+INCS_DIR = ${C_DIR}
+OBJS_DIR = ${C_DIR}obj/
+OUT_DIR = ./
+#==============================================================================#
+#------------------------------ FILES -----------------------------------------#
+#==============================================================================#
+SRCS_NAME = smith
+#------------------------------------------------------------------------------#
+SRCS = $(addprefix ${SRCS_DIR}, $(addsuffix .c, ${SRCS_NAME}))
+#------------------------------------------------------------------------------#
+INCS_NAME = smith
+#------------------------------------------------------------------------------#
+INCS = $(addprefix ${INCS_DIR}, $(addsuffix .h, ${INCS_NAME}))
+#------------------------------------------------------------------------------#
+OBJS = $(patsubst ${SRCS_DIR}%.c,${OBJS_DIR}%.o,${SRCS})
+
+#==============================================================================#
+#------------------------------ TARGETS ---------------------------------------#
+#==============================================================================#
+C_NAME = libsmith.a
+NAME = smith
+CC = clang
+GO = go
+#------------------------------------------------------------------------------#
+CFLAGS = -O2
+CFLAGS += -Wall -Werror -Wextra -pedantic
+CFLAGS += -finline -pipe
+
+#==============================================================================#
+#------------------------------ C TARGET --------------------------------------#
+#==============================================================================#
+LDFLAGS = -O2 -pipe -pedantic
+#------------------------------------------------------------------------------#
+${OBJS_DIR}%.o: ${SRCS_DIR}%.c ${INCS}
+ ${CC} -c ${CFLAGS} ${CDEFS} -o $@ $<
+#------------------------------------------------------------------------------#
+${OBJS_DIR}:
+ mkdir -p ${OBJS_DIR}
+#------------------------------------------------------------------------------#
+${C_NAME}: ${OBJS_DIR} ${OBJS} ${INCS}
+ ar rcs ${OUT_DIR}${C_NAME} ${OBJS}
+
+#==============================================================================#
+#------------------------------ ALL -------------------------------------------#
+#==============================================================================#
+#------------------------------------------------------------------------------#
+all: ${C_NAME}
+ go build
+#------------------------------------------------------------------------------#
+clean:
+ rm -rvf ${OBJS_DIR} ${OUT_DIR}${NAME}
+#------------------------------------------------------------------------------#
+fclean: clean
+ go clean
+#------------------------------------------------------------------------------#
+# end :^}
+#------------------------------------------------------------------------------#