5 SHELL := ${shell which bash}
12 OBJ = obj-${shell $(CC) -dumpmachine}
14 C3SRC = ${wildcard src/*.c}
15 C3OBJ = ${patsubst src/%,${OBJ}/%,${C3SRC:.c=.lo}}
17 C3GLSRC = ${wildcard srcgl/*.c}
18 C3GLOBJ = ${patsubst srcgl/%,${OBJ}/%,${C3GLSRC:.c=.lo}}
21 PKGCONFIG = pkg-config
24 PLATFORM = ${shell uname | tr '[A-Z]' '[a-z]'}
26 ifeq (${PLATFORM}, darwin)
27 # you need to install libtool via 'brew install libtool' on the mac
33 CONFIG_H = c3config-${PLATFORM}.h
34 CPPCAIRO += ${shell $(PKGCONFIG) --cflags pango cairo}
37 CPPFLAGS += --std=gnu99 -fPIC
38 CPPFLAGS += ${patsubst %,-I%,${subst :, ,${IPATH}}}
39 CPPFLAGS += $(CPPCAIRO)
45 -include ${wildcard .make.options*}
47 all: ${OBJ} src/$(CONFIG_H) ${OBJ}/libc3.la ${OBJ}/libc3gl.la
57 src/$(CONFIG_H): Makefile
61 printf "#ifndef __C3_CONFIG__\n#define __C3_CONFIG__\n"; \
62 printf "#define CONFIG_C3_VERSION \"$(VERSION)\"\n"; \
63 printf "#define CONFIG_C3_PLATFORM \"$(PLATFORM)\"\n"; \
64 $(PKGCONFIG) --exists pango cairo || printf "// " ; \
65 printf "#define CONFIG_C3_CAIRO 1\n"; \
69 ${OBJ}/libc3.la: ${C3OBJ}
71 $(E)$(LIBTOOL) --mode=link --tag=CC \
72 $(CC) $(CPPFLAGS) $(CFLAGS) \
75 -rpath $(DESTDIR)/lib $(LDFLAGS)
77 ${OBJ}/libc3gl.la: ${C3GLOBJ}
79 $(E)$(LIBTOOL) --mode=link --tag=CC \
80 $(CC) $(CPPFLAGS) $(CFLAGS) \
83 -rpath $(DESTDIR)/lib $(LDFLAGS)
87 $(E)$(LIBTOOL) --mode=compile --tag=CC \
88 $(CC) $(CPPFLAGS) $(CFLAGS) -MT $@ -MMD \
92 mkdir -p $(DESTDIR)/lib/pkgconfig $(DESTDIR)/include/c3
93 rm -f $(DESTDIR)/lib/libc3* $(DESTDIR)/include/c3/*
94 $(INSTALL) src/*.h $(DESTDIR)/include/c3/
95 cp -a ${OBJ}/.libs/*.a ${OBJ}/.libs/*.so* $(DESTDIR)/lib/
96 sed -e 's|PREFIX|${DESTDIR}|g' -e 's|VERSION|${VERSION}|g' \
97 libc3.pc >$(DESTDIR)/lib/pkgconfig/libc3.pc
102 # include the dependency files generated by gcc, if any
103 -include ${wildcard ${OBJ}/*.d}