blob: 07ea0c2e74bc26bfe4a77ed9c9f286267dd0bf3f (
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# Programs
HOST=
PROG_CC= cc
PROG_AR= ar
PROG_RANLIB= ranlib
CC= $(HOST)$(PROG_CC)
AR= $(HOST)$(PROG_AR)
RANLIB= $(HOST)$(PROG_RANLIB)
RM= rm -f
MKDIR= mkdir
MKDIR_P= $(MKDIR) -p
INSTALL= install -c -m 644
# User flags
CFLAGS= -g -O2 -pipe
LDFLAGS=
# Internal flags
M_CFLAGS= -Wall -I. $(CFLAGS)
M_LDFLAGS= $(LDFLAGS)
# Installation
DESTDIR=
PREFIX= /usr/local
LIBDIR= $(DESTDIR)$(PREFIX)/lib
INCLUDEDIR= $(DESTDIR)$(PREFIX)/include
# Tasks definition
lib_LIBRARIES= libl4basic.a
libl4basic_a_OBJECTS= l4array.o l4array2.o l4file.o l4strv.o l4arg.o \
l4list.o
libl4basic_a_HEADERS= $(libl4basic_a_OBJECTS:.o=.h) l4common.h
check_PROGRAMS= test-array test-array2 test-file test-strv test-arg \
test-list
check_OBJECTS= $(check_PROGRAMS:=.o)
# Build dependencies
l4array_o_DEPENDS= l4common.h
l4array2_o_DEPENDS= l4common.h
l4file_o_DEPENDS= l4common.h l4array.o
l4strv_o_DEPENDS= l4common.h l4array.o
l4arg_o_DEPENDS= l4common.h l4array.o
l4list_o_DEPENDS= l4common.h
test_array_o_DEPENDS= l4array.o
test_array2_o_DEPENDS= l4array2.o
test_file_o_DEPENDS= l4file.o l4array.o
test_strv_o_DEPENDS= l4strv.o l4array.o
test_arg_o_DEPENDS= l4arg.o l4array.o l4strv.o
test_list_o_DEPENDS= l4list.o
.POSIX:
.PHONY: all clean install install-HEADERS install-LIB \
uninstall deinstall remove
.SUFFIXES: .c.o
.c.o:
$(CC) $(M_CFLAGS) -c $< -o $@
all: $(lib_LIBRARIES)
check: $(check_PROGRAMS)
for i in $(check_PROGRAMS); do ./$$i || exit 1; done
libl4basic.a: $(libl4basic_a_OBJECTS)
$(AR) rcs $@ $(libl4basic_a_OBJECTS)
$(RANLIB) $@
l4array.o: l4array.c l4array.h $(l4array_o_DEPENDS)
l4array2.o: l4array2.c l4array2.h $(l4array2_o_DEPENDS)
l4file.o: l4file.c l4file.h $(l4file_o_DEPENDS)
l4strv.o: l4strv.c l4strv.h $(l4strv_o_DEPENDS)
l4arg.o: l4arg.c l4arg.h $(l4arg_o_DEPENDS)
l4list.o: l4list.c l4list.h $(l4list_o_DEPENDS)
test-array: test-array.o $(test_array_o_DEPENDS)
$(CC) $(M_CFLAGS) test-array.o $(test_array_o_DEPENDS) -o $@ $(M_LDFLAGS)
test-array2: test-array2.o $(test_array2_o_DEPENDS)
$(CC) $(M_CFLAGS) test-array2.o $(test_array2_o_DEPENDS) -o $@ $(M_LDFLAGS)
test-file: test-file.o $(test_file_o_DEPENDS)
$(CC) $(M_CFLAGS) test-file.o $(test_file_o_DEPENDS) -o $@ $(M_LDFLAGS)
test-strv: test-strv.o $(test_strv_o_DEPENDS)
$(CC) $(M_CFLAGS) test-strv.o $(test_strv_o_DEPENDS) -o $@ $(M_LDFLAGS)
test-arg: test-arg.o $(test_arg_o_DEPENDS)
$(CC) $(M_CFLAGS) test-arg.o $(test_arg_o_DEPENDS) -o $@ $(M_LDFLAGS)
test-list: test-list.o $(test_list_o_DEPENDS)
$(CC) $(M_CFLAGS) test-list.o $(test_list_o_DEPENDS) -o $@ $(M_LDFLAGS)
clean:
-$(RM) \
$(lib_LIBRARIES) $(libl4basic_a_OBJECTS) \
$(check_PROGRAMS) $(check_OBJECTS)
install: all install-HEADERS install-LIB
install-LIB:
-$(MKDIR_P) $(LIBDIR)
$(INSTALL) $(lib_LIBRARIES) $(LIBDIR)
install-HEADERS:
-$(MKDIR_P) $(INCLUDEDIR)
$(INSTALL) $(libl4basic_a_HEADERS) $(INCLUDEDIR)
deinstall: uninstall
remove: uninstall
uninstall:
for i in $(lib_LIBRARIES); do $(RM) $(LIBDIR)/$$i; done
for i in $(libl4basic_a_HEADERS); do $(RM) $(INCLUDEDIR)/$$i; done
|