5 all: lib
$(NAME
).so lib
$(NAME
).a
7 SOURCES
= $(shell find src
-name
'*.c')
8 SHARED_OBJS
= $(SOURCES
:.c
=.shared.o
)
9 STATIC_OBJS
= $(SOURCES
:.c
=.static.o
)
13 STATIC_CFLAGS
= $(CFLAGS
) $(EXTRA_CFLAGS
)
14 SHARED_CFLAGS
= $(CFLAGS
) $(EXTRA_CFLAGS
) -fPIC
15 LDFLAGS
= -Wl
,-z
,defs
-Wl
,--as-needed
-Wl
,--no-undefined
17 lib
$(NAME
).so.
$(MAJOR
).
$(MINOR
): $(SHARED_OBJS
)
18 g
++ $(LDFLAGS
) -shared \
19 -Wl
,-soname
,lib
$(NAME
).so.
$(MAJOR
) \
20 -o lib
$(NAME
).so.
$(MAJOR
).
$(MINOR
) \
23 lib
$(NAME
).so
: lib
$(NAME
).so.
$(MAJOR
).
$(MINOR
)
25 ln
-s
$@.
$(MAJOR
).
$(MINOR
) $@.
$(MAJOR
)
29 lib
$(NAME
).a
: $(STATIC_OBJS
)
33 g
++ -o
$@
-c
$+ $(CFLAGS
)
36 gcc
-o
$@
-c
$+ $(CFLAGS
)
39 g
++ $(LDFLAGS
) -shared
$^
-o
$@
42 g
++ -o
$@
-c
$+ $(SHARED_CFLAGS
)
45 gcc
-o
$@
-c
$+ $(SHARED_CFLAGS
)
48 g
++ -o
$@
-c
$+ $(STATIC_CFLAGS
)
51 gcc
-o
$@
-c
$+ $(STATIC_CFLAGS
)
57 rm -f
$(STATIC_FIXED_OBJS
)
63 mkdir
-p
"$(DESTDIR)/usr/lib/"
64 cp
-a
*.a
"$(DESTDIR)/usr/lib/"
65 cp
-a
*.so
* "$(DESTDIR)/usr/lib/"
66 mkdir
-p
"$(DESTDIR)/usr/include/"
67 cp
-a
include/* "$(DESTDIR)/usr/include/"