-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathmakefile
executable file
·47 lines (35 loc) · 2.14 KB
/
makefile
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
#############################################################################################################
# PARAMS ####################################################################################################
#############################################################################################################
NAME := ccfg
INCS := -I../cobj/$(DIR_INC) -I$(DIR_INC)
DEPS := -L../cobj/$(DIR_LIB) -lcobj -lm -lpthread
#############################################################################################################
# FILE LISTS ################################################################################################
#############################################################################################################
SRC_DEMOS := $(wildcard $(DIR_DEMOS)/*.c)
SRC_LIB := $(wildcard $(DIR_SRC)/*.c)
OBJ_LIB := $(patsubst $(DIR_SRC)/%.c, $(DIR_OBJ)/%.o, $(SRC_LIB))
BIN_DEMOS := $(patsubst $(DIR_DEMOS)/%.c, $(DIR_BIN)/%, $(SRC_DEMOS))
#############################################################################################################
# PUBLIC TARGETS ############################################################################################
#############################################################################################################
build: dir lib $(BIN_DEMOS)
install:
install -d $(DIR_INSTALL_INC)
install -d $(DIR_INSTALL_LIB)
install $(DIR_INC)/*/* $(DIR_INSTALL_INC)
install $(DIR_LIB)/* $(DIR_INSTALL_LIB)
clean:
rm -rf $(DIR_BUILD)
#############################################################################################################
# PRIVATE TARGETS ###########################################################################################
#############################################################################################################
dir:
mkdir -p $(DIR_LIB) $(DIR_OBJ) $(DIR_BIN)
lib: $(OBJ_LIB)
$(CC) $(LDFLAGS) -o $(DIR_LIB)/lib$(NAME).so $^ $(DEPS)
$(DIR_OBJ)/%.o: $(DIR_SRC)/%.c
$(CC) $(CFLAGS) -fPIC -c $< -o $@ $(INCS)
$(DIR_BIN)%: $(DIR_DEMOS)/%.c
$(CC) $(CFLAGS) $< -o $@ $(INCS) -L$(DIR_LIB) -l$(NAME) $(DEPS) -Wl,-rpath='$$ORIGIN'/../lib