2 # Copyright (c) 2010 Mark Heily <mark@heily.com>
4 # Permission to use, copy, modify, and distribute this software for any
5 # purpose with or without fee is hereby granted, provided that the above
6 # copyright notice and this permission notice appear in all copies.
8 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 # Build unsigned packages by default
18 DPKG_BUILDFLAGS ?= -uc -us
20 .PHONY :: install uninstall check dist dist-upload publish-www clean merge distclean fresh-build rpm edit cscope valgrind
27 $(CC) -c -o $@ $(CFLAGS) $<
30 $(AR) rcs $(PROGRAM).a $(OBJS)
32 $(PROGRAM).so: $(OBJS)
33 $(LD) $(LDFLAGS) $(OBJS) $(LDADD)
34 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(PROGRAM).so
35 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(PROGRAM).so.$(ABI_MAJOR)
37 test-$(PROGRAM): *.c *.h
38 gcc $(CFLAGS) -g -O0 -o test-$(PROGRAM) *.c -lpthread
40 install: $(PROGRAM).so
41 $(INSTALL) -d -m 755 $(INCLUDEDIR) $(LIBDIR)
42 $(INSTALL) -m 644 $(HEADERS) $(INCLUDEDIR)
43 $(INSTALL) -m 644 $(PROGRAM).so.$(ABI_VERSION) $(LIBDIR)
44 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(LIBDIR)/$(PROGRAM).so.$(ABI_MAJOR)
45 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(LIBDIR)/$(PROGRAM).so
47 $(PROGRAM)-$(VERSION).tar.gz:
48 mkdir $(PROGRAM)-$(VERSION)
49 cp Makefile ChangeLog configure config.inc \
50 $(SOURCES) $(HEADERS) \
51 $(MANS) $(EXTRA_DIST) \
53 tar zcf $(PROGRAM)-$(VERSION).tar.gz $(PROGRAM)-$(VERSION)
54 rm -rf $(PROGRAM)-$(VERSION)
56 dist: $(PROGRAM)-$(VERSION).tar.gz
59 rm -f tags $(PROGRAM)-$(VERSION).tar.gz *.a $(OBJS) *.pc *.so *.so.* test-$(PROGRAM)
63 rm -f *.tar.gz config.mk config.h $(PROGRAM).pc $(PROGRAM).la rpm.spec
64 rm -rf $(PROGRAM)-$(VERSION) 2>/dev/null || true
66 rpm: clean $(DISTFILE)
67 rm -rf rpm *.rpm *.deb
68 mkdir -p rpm/BUILD rpm/RPMS rpm/SOURCES rpm/SPECS rpm/SRPMS
69 mkdir -p rpm/RPMS/i386 rpm/RPMS/x86_64
70 cp $(DISTFILE) rpm/SOURCES
74 rmdir i386 x86_64 # WORKAROUND: These aren't supposed to exist
75 fakeroot alien --scripts *.rpm
77 deb: clean $(DISTFILE)
79 cd pkg && tar zxf ../$(DISTFILE)
80 cp $(DISTFILE) pkg/`echo $(PROGRAM)_$(VERSION) |tr A-Z a-z`.orig.tar.gz
81 cp -R ports/debian pkg/$(PROGRAM)-$(VERSION)
83 rm -rf `find $(PROGRAM)-$(VERSION)/debian -type d -name .svn` ; \
84 perl -pi -e 's/\@\@VERSION\@\@/$(VERSION)/' $(PROGRAM)-$(VERSION)/debian/changelog ; \
85 cd $(PROGRAM)-$(VERSION) && dpkg-buildpackage $(DPKG_BUILDFLAGS)
87 @printf "\nThe following packages have been created:\n"
88 @find ./pkg -name '*.deb' | sed 's/^/ /'