Tizen 2.1 base
[platform/upstream/gcd.git] / BlocksRuntime-0.1 / Makefile
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 # Build unsigned packages by default
18 DPKG_BUILDFLAGS ?= -uc -us
19
20 .PHONY :: install uninstall check dist dist-upload publish-www clean merge distclean fresh-build rpm edit cscope valgrind
21
22 include config.mk
23
24 all: $(PROGRAM).so
25
26 %.o: %.c $(DEPS)
27         $(CC) -c -o $@ $(CFLAGS) $<
28
29 $(PROGRAM).a: $(OBJS)
30         $(AR) rcs $(PROGRAM).a $(OBJS)
31
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)
36
37 test-$(PROGRAM): *.c *.h
38         gcc $(CFLAGS) -g -O0 -o test-$(PROGRAM) *.c -lpthread
39
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
46
47 $(PROGRAM)-$(VERSION).tar.gz: 
48         mkdir $(PROGRAM)-$(VERSION)
49         cp  Makefile ChangeLog configure config.inc      \
50         $(SOURCES) $(HEADERS)   \
51         $(MANS) $(EXTRA_DIST)   \
52         $(PROGRAM)-$(VERSION)
53         tar zcf $(PROGRAM)-$(VERSION).tar.gz $(PROGRAM)-$(VERSION)
54         rm -rf $(PROGRAM)-$(VERSION)
55
56 dist: $(PROGRAM)-$(VERSION).tar.gz
57
58 clean:
59         rm -f tags $(PROGRAM)-$(VERSION).tar.gz *.a $(OBJS) *.pc *.so *.so.* test-$(PROGRAM)
60         rm -rf pkg
61
62 distclean: clean
63         rm -f *.tar.gz config.mk config.h $(PROGRAM).pc $(PROGRAM).la rpm.spec
64         rm -rf $(PROGRAM)-$(VERSION) 2>/dev/null || true
65
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 
71         rpmbuild -bb rpm.spec
72         mv ./rpm/RPMS/* .
73         rm -rf rpm
74         rmdir i386 x86_64    # WORKAROUND: These aren't supposed to exist
75         fakeroot alien --scripts *.rpm
76
77 deb: clean $(DISTFILE)
78         mkdir pkg
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) 
82         cd pkg && \
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)
86         lintian -i pkg/*.deb
87         @printf "\nThe following packages have been created:\n"
88         @find ./pkg -name '*.deb' | sed 's/^/    /'