aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
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)