this repo has no description
1#
2# Copyright (c) 2010 Mark Heily <mark@heily.com>
3#
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.
7#
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.
15#
16
17# Flags to pass to dpkg-buildpackage
18DPKGFLAGS=-uc -us
19
20.PHONY :: install uninstall check dist dist-upload publish-www clean merge distclean fresh-build rpm edit cscope valgrind testing
21
22include config.mk
23
24all: $(PROGRAM).so testing
25
26%.dll: $(OBJS)
27 $(LD) -o $@ $(LDFLAGS) $(OBJS) $(LDADD)
28
29%.o: %.c $(DEPS)
30 $(CC) -c -o $@ $(CFLAGS) $<
31
32$(PROGRAM).a: $(OBJS)
33 $(AR) rcs $(PROGRAM).a $(OBJS)
34
35$(PROGRAM).so: $(OBJS)
36 $(LD) -shared $(LDFLAGS) $(OBJS) $(LDADD)
37 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(PROGRAM).so
38 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(PROGRAM).so.$(ABI_MAJOR)
39
40install: $(PROGRAM).so
41 $(INSTALL) -d -m 755 $(DESTDIR)$(INCLUDEDIR)
42 $(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)
43 $(INSTALL) -m 644 $(HEADERS) $(DESTDIR)$(INCLUDEDIR)
44 $(INSTALL) -m 644 $(PROGRAM).so.$(ABI_VERSION) $(DESTDIR)$(LIBDIR)
45 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(DESTDIR)$(LIBDIR)/$(PROGRAM).so.$(ABI_MAJOR)
46 $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(DESTDIR)$(LIBDIR)/$(PROGRAM).so
47 $(INSTALL) -d -m 755 $(DESTDIR)$(MANDIR)/man3
48 $(INSTALL) -m 644 pthread_workqueue.3 $(DESTDIR)$(MANDIR)/man3/pthread_workqueue.3
49
50uninstall:
51 rm -f $(INCLUDEDIR)/pthread_workqueue.h
52 rm -f $(LIBDIR)/pthread_workqueue.so
53 rm -f $(LIBDIR)/pthread_workqueue.so.*
54 rm -f $(LIBDIR)/pthread_workqueue.a
55 rm -f $(MANDIR)/man3/pthread_workqueue.3
56
57reinstall: uninstall install
58
59check: $(PROGRAM).so
60 cd testing && make check
61
62edit:
63 $(EDITOR) `find ./src -name '*.c' -o -name '*.h'` Makefile
64
65$(PROGRAM)-$(VERSION).tar.gz:
66 mkdir $(PROGRAM)-$(VERSION)
67 cp Makefile ChangeLog configure config.inc $(MANS) $(PROGRAM)-$(VERSION)
68 cp -R src testing include $(PROGRAM)-$(VERSION)
69 find $(PROGRAM)-$(VERSION) -name '.svn' -exec rm -rf {} \; 2>/dev/null || true
70 tar zcf $(PROGRAM)-$(VERSION).tar.gz $(PROGRAM)-$(VERSION)
71 rm -rf $(PROGRAM)-$(VERSION)
72
73testing:
74 cd testing && make
75
76dist: clean $(PROGRAM)-$(VERSION).tar.gz
77
78%.asc:
79 gpg --armor --detach-sign `echo '$@' | sed 's/.asc$$//'`
80
81dist-upload: dist $(DISTFILE).asc
82 scp $(DISTFILE) $(DISTFILE).asc heily.com:/var/www/heily.com/dist/$(PROGRAM)
83
84publish-www:
85 cp -R www/* ~/public_html/libkqueue/
86
87clean:
88 rm -f tags $(DISTFILE) $(DISTFILE).asc *.a $(OBJS) *.pc *.so *.so.* test-$(PROGRAM)
89 cd testing && make clean
90 rm -rf pkg
91
92distclean: clean
93 rm -f *.tar.gz config.mk config.h $(PROGRAM).pc $(PROGRAM).la rpm.spec
94 rm -rf $(PROGRAM)-$(VERSION) 2>/dev/null || true
95
96rpm: clean $(DISTFILE)
97 rm -rf rpm *.rpm *.deb
98 mkdir -p rpm/BUILD rpm/RPMS rpm/SOURCES rpm/SPECS rpm/SRPMS
99 mkdir -p rpm/RPMS/i386 rpm/RPMS/x86_64
100 cp $(DISTFILE) rpm/SOURCES
101 rpmbuild -bb rpm.spec
102 mv ./rpm/RPMS/* .
103 rm -rf rpm
104 rmdir i386 x86_64 # WORKAROUND: These aren't supposed to exist
105 fakeroot alien --scripts *.rpm
106
107deb: clean $(DISTFILE)
108 mkdir pkg
109 cd pkg && tar zxf ../$(DISTFILE) && mv libpthread_workqueue-$(VERSION) libpthread-workqueue-$(VERSION)
110 cp $(DISTFILE) pkg/libpthread-workqueue_$(VERSION).orig.tar.gz
111 cp -R ports/debian pkg/libpthread-workqueue-$(VERSION)
112 cd pkg && \
113 rm -rf `find libpthread-workqueue-$(VERSION)/debian -type d -name .svn` ; \
114 perl -pi -e 's/\@\@VERSION\@\@/$(VERSION)/' libpthread-workqueue-$(VERSION)/debian/changelog ; \
115 cd libpthread-workqueue-$(VERSION) && dpkg-buildpackage $(DPKGFLAGS)
116 lintian -i pkg/*.deb
117 @printf "\nThe following packages have been created:\n"
118 @find ./pkg -name '*.deb' | sed 's/^/ /'