blob: 54c20410a94a4b4343ec43329e6e9dbb85dfdb99 (
plain) (
blame)
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
|
####################### path name ##########################
PWD = .
LIB = $(PWD)/lib
OBJ = $(PWD)/obj
INC = $(PWD)/inc
SRC = $(PWD)/src
EMP = $(PWD)
CC = gcc
################ compiler information: gcc #################
GCC_OPT := -I$(INC) -L$(LIB) -g
AR_OPT := cvr
EXAMPLE_CC := $(CC) $(GCC_OPT) -o
OBJ_CC := $(CC) $(GCC_OPT) -c -o
SLIB_CC := ar $(AR_OPT)
######################## targets ###########################
OBJECT = utility array list queue stack sptree #dequeue heap map hash
SOURCE := $(foreach n,$(OBJECT),$(SRC)/$(n).c)
HEADER := $(foreach n,$(OBJECT),$(INC)/$(n).h)
OBJFIL := $(foreach n,$(OBJECT),$(OBJ)/$(n).o)
TARGET := $(LIB)/libctl.a
EMPFIL := example.c
EMPOUT := example
######################## setting ###########################
.SUFFIXES:
.PHONY: all clean example
.PRECIOUS:
.SECONDARY:
######################## targets ###########################
all: $(TARGET);
$(TARGET): $(OBJFIL)
@echo 'make static library ....... $@'
@-rm -f $@
@$(SLIB_CC) $@ $^
$(OBJFIL): $(OBJ)/%.o: $(SRC)/%.c $(INC)/%.h
@echo 'make object file .......... $@'
@$(OBJ_CC) $@ $<
$(EMPOUT): $(EMPFIL) $(TARGET)
@echo 'make test program for ...... $^'
@$(EXAMPLE_CC) $@ $^
clean:
-rm -f $(LIB)/*
-rm -f $(OBJ)/*
-rm -f $(EMPOUT)
|