1
2DESTDIR	:=
3prefix	:= $(PREFIX)
4
5incdir	:= $(DESTDIR)$(prefix)/include
6libdir	:= $(DESTDIR)$(prefix)/lib
7
8CC	?= gcc
9WARN	:= -Wall -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
10CFLAGS	?= -g -O2
11CFLAGS	+= $(WARN)
12
13MAJOR	:= 2
14MINOR	:= 2.0.1
15SONAME	:= libpcd.so.$(MAJOR)
16TARGETS	:= libpcd.a libpcd.so.$(MINOR)
17
18SRCS	:= file.c yuv2rgb.c huff.c inter.c
19STATIC	:= $(subst .c,.o,$(SRCS))
20SHARED	:= $(subst .c,.pic.o,$(SRCS))
21depfile	 = $(subst .o,.dep,$@)
22
23all build: $(TARGETS)
24
25%.o: %.c
26	$(CC) $(CFLAGS) -Wp,-MD,$(depfile) -c -o $@ $<
27
28%.pic.o: %.c
29	$(CC) $(CFLAGS) -Wp,-MD,$(depfile) -fPIC -c -o $@ $<
30
31libpcd.a: $(STATIC)
32	rm -f $@
33	ar rc $@ $(STATIC)
34	ranlib $@
35
36libpcd.so.$(MINOR): $(SHARED)
37	rm -f $@
38	$(CC) $(CFLAGS) -shared -Wl,-soname,$(SONAME) -o $@ $(SHARED)
39
40install:
41	install -d $(libdir)
42	install -d $(incdir)
43	install -m644 libpcd.a $(libdir)
44	install -m755 libpcd.so.$(MINOR) $(libdir)
45	ln -s libpcd.so.$(MINOR) $(libdir)/libpcd.so.$(MAJOR)
46	ln -s libpcd.so.$(MINOR) $(libdir)/libpcd.so
47	install -m644 pcd.h $(incdir)
48
49clean:
50	-rm -f *~ *.bak *.dep $(STATIC) $(SHARED)
51
52realclean distclean: clean
53	-rm -f libpcd.a libpcd.so.$(MAJOR) libpcd.so.$(MINOR)
54
55# auto dependencies
56-include *.dep
57
58# debian stuff
59dsc source: distclean
60	dpkg-buildpackage -S -us -uc -rfakeroot
61
62debs pbuild: dsc
63	sudo /usr/sbin/pbuilder build ../libpcd_*.dsc
64
65