Tizen 2.1 base
[platform/upstream/gcd.git] / kqueue-1.0.4 / Makefile
1 #
2 # Copyright (c) 2009-2011 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 REPOSITORY=svn+ssh://mark.heily.com/$$HOME/svn/$(PROGRAM)
18 DIST=heily.com:$$HOME/public_html/$(PROGRAM)/dist
19 DISTFILE=$(PROGRAM)-$(VERSION).tar.gz
20
21 include config.mk
22
23 .PHONY :: install uninstall check dist dist-upload publish-www clean merge distclean fresh-build rpm edit cscope
24
25 all: $(PROGRAM).so $(PROGRAM).a
26
27 %.o: %.c $(DEPS)
28         $(CC) -c -o $@ -I./include -I./src/common $(CFLAGS) $<
29
30 $(PROGRAM).a: $(OBJS)
31         $(AR) rcs $(PROGRAM).a $(OBJS)
32
33 $(PROGRAM).so: $(OBJS)
34         $(LD) $(LDFLAGS) $(OBJS) $(LDADD)
35         $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(PROGRAM).so
36
37 install: $(PROGRAM).so
38         $(INSTALL) -d -m 755 $(INCLUDEDIR)/kqueue/sys
39         $(INSTALL) -m 644 include/sys/event.h $(INCLUDEDIR)/kqueue/sys/event.h
40         $(INSTALL) -d -m 755 $(LIBDIR) 
41         $(INSTALL) -m 644 $(PROGRAM).so.$(ABI_VERSION) $(LIBDIR)
42         $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(LIBDIR)/$(PROGRAM).so.$(ABI_MAJOR)
43         $(LN) -sf $(PROGRAM).so.$(ABI_VERSION) $(LIBDIR)/$(PROGRAM).so
44         $(INSTALL) -m 644 $(PROGRAM).la $(LIBDIR)
45         $(INSTALL) -m 644 $(PROGRAM).a $(LIBDIR)
46         $(INSTALL) -d -m 755 $(LIBDIR)/pkgconfig
47         $(INSTALL) -m 644 libkqueue.pc $(LIBDIR)/pkgconfig
48         $(INSTALL) -d -m 755 $(MANDIR)/man2
49         $(INSTALL) -m 644 kqueue.2 $(MANDIR)/man2/kqueue.2
50         $(INSTALL) -m 644 kqueue.2 $(MANDIR)/man2/kevent.2
51
52 uninstall:
53         rm -f $(INCLUDEDIR)/kqueue/sys/event.h
54         rm -f $(LIBDIR)/libkqueue.so 
55         rm -f $(LIBDIR)/pkgconfig/libkqueue.pc 
56         rm -f $(MANDIR)/man2/kqueue.2 
57         rm -f $(MANDIR)/man2/kevent.2 
58         rmdir $(INCLUDEDIR)/kqueue/sys $(INCLUDEDIR)/kqueue
59
60 check: $(PROGRAM).a
61         cd test && ./configure && make check
62
63 debug-check: clean $(PROGRAM).a
64         cd test && ./configure && KQUEUE_DEBUG=y make check
65
66 $(DISTFILE): $(SOURCES) $(HEADERS)
67         mkdir $(PROGRAM)-$(VERSION)
68         cp  Makefile ChangeLog configure config.inc      \
69         $(MANS) $(EXTRA_DIST)   \
70         $(PROGRAM)-$(VERSION)
71         cp -R $(SUBDIRS) $(PROGRAM)-$(VERSION)
72         rm -rf `find $(PROGRAM)-$(VERSION) -type d -name .svn -o -name .libs`
73         cd $(PROGRAM)-$(VERSION) && ./configure && cd test && ./configure && cd .. && make distclean
74         tar zcf $(PROGRAM)-$(VERSION).tar.gz $(PROGRAM)-$(VERSION)
75         rm -rf $(PROGRAM)-$(VERSION)
76
77 dist:
78         rm -f $(DISTFILE)
79         make $(DISTFILE)
80
81 dist-upload: $(DISTFILE)
82         scp $(DISTFILE) $(DIST)
83
84 clean:
85         rm -f tags *.a *.so *.so.*
86         find src -name '*.o' -exec rm {} \;
87         rm -rf pkg
88         cd test && make clean || true
89
90 distclean: clean
91         rm -f *.tar.gz config.mk config.h $(PROGRAM).pc $(PROGRAM).la rpm.spec
92         rm -f test/config.mk test/config.h
93         rm -rf $(PROGRAM)-$(VERSION) 2>/dev/null || true
94
95 fresh-build:
96         rm -rf /tmp/$(PROGRAM)-testbuild 
97         svn co svn://mark.heily.com/libkqueue/trunk /tmp/$(PROGRAM)-testbuild 
98         cd /tmp/$(PROGRAM)-testbuild && ./configure && make check
99         rm -rf /tmp/$(PROGRAM)-testbuild 
100
101 merge:
102         svn diff $(REPOSITORY)/branches/stable $(REPOSITORY)/trunk | gvim -
103         @printf "Merge changes from the trunk to the stable branch [y/N]? "
104         @read x && test "$$x" = "y"
105         echo "ok"
106
107 tags: $(SOURCES) $(HEADERS)
108         ctags $(SOURCES) $(HEADERS)
109
110 edit: tags
111         $(EDITOR) $(SOURCES) $(HEADERS)
112     
113 cscope: tags
114         cscope $(SOURCES) $(HEADERS)
115
116 # Creates an ~/rpmbuild tree
117 rpmbuild:
118         mkdir -p $$HOME/rpmbuild
119         cd $$HOME/rpmbuild && mkdir -p BUILD RPMS SOURCES SPECS SRPMS
120         grep _topdir $$HOME/.rpmmacros || \
121            echo "%_topdir %(echo $$HOME/rpmbuild)" >> $$HOME/.rpmmacros
122
123 rpm: rpmbuild clean $(DISTFILE)
124         mkdir -p pkg
125         cp $(DISTFILE) $$HOME/rpmbuild/SOURCES 
126         rpmbuild -bb rpm.spec
127         find $$HOME/rpmbuild -name '$(PROGRAM)-$(VERSION)*.rpm' -exec mv {} ./pkg \;
128
129 deb: clean $(DISTFILE)
130         mkdir pkg && cd pkg ; \
131         tar zxf ../$(DISTFILE) ; \
132         cp ../$(DISTFILE) $(PROGRAM)_$(VERSION).orig.tar.gz ; \
133         cp -R ../ports/debian $(PROGRAM)-$(VERSION) ; \
134         rm -rf `find $(PROGRAM)-$(VERSION)/debian -type d -name .svn` ; \
135         perl -pi -e 's/\@\@VERSION\@\@/$(VERSION)/' $(PROGRAM)-$(VERSION)/debian/changelog ; \
136         cd $(PROGRAM)-$(VERSION) && dpkg-buildpackage -uc -us
137         lintian -i pkg/*.deb
138         @printf "\nThe following packages have been created:\n"
139         @find ./pkg -name '*.deb' | sed 's/^/    /'
140
141 debug-install:
142         ./configure --prefix=/usr --debug=yes
143         make clean && make && sudo make install
144
145 diff:
146         if [ "`pwd | grep /trunk`" != "" ] ; then \
147            (cd .. ; $(DIFF) branches/stable trunk | less) ; \
148     fi
149         if [ "`pwd | grep /branches/stable`" != "" ] ; then \
150            (cd ../.. ; $(DIFF) branches/stable trunk | less) ; \
151     fi
152
153 # Copy to/from the host to the Solaris guest VM
154 #
155 solaris-push:
156         ssh -p 2222 localhost 'rm -rf /export/home/mheily/libkqueue'
157         cd .. ; scp -rq -P 2222 trunk localhost:/export/home/mheily/libkqueue
158
159 solaris-test: solaris-push
160         ssh -p 2222 localhost 'cd /export/home/mheily/libkqueue && /usr/sfw/bin/gmake distclean && ./configure && /usr/sfw/bin/gmake clean all check'
161
162 solaris-pull:
163         scp -rq -P 2222 localhost:/export/home/mheily/libkqueue/\* .
164 #
165 #