blob: d7e2482e63bf4b167c829130a10a1088e952c685 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
#==============================================================================#
# 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 :^}
#------------------------------------------------------------------------------#
|