#==============================================================================# # 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 GO_DIR = gosrc/ #------------------------------------------------------------------------------# 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 -o ./smith gosrc/* #------------------------------------------------------------------------------# clean: rm -rvf ${OBJS_DIR} ${OUT_DIR}${NAME} #------------------------------------------------------------------------------# fclean: clean go clean #------------------------------------------------------------------------------# # end :^} #------------------------------------------------------------------------------#