summaryrefslogtreecommitdiffstats
path: root/Makefile.in
blob: 6f17a12af6ee0ccab80ff0135590c28e9cbb357e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
.PHONY: all check clean dist distclean doc install install-headers regressions uninstall

BUILD_DIR=@BUILD_DIR@
SRC_DIR=@SRC_DIR@
CFLAGS=@CFLAGS@
VERSION=@VERSION@
VERSION_MAJOR=@VERSION_MAJOR@
PREFIX=@PREFIX@
LIBRARY=@LIBRARY@
HEADERS=@HEADERS@
PKGCONFIG_DATA=@LIBRARY@/pkgconfig
LDNAME=@LDNAME@
LDNAME_VERSION=@LDNAME_VERSION@
LDNAME_MAJOR=@LDNAME_MAJOR@

all: doc
	$(MAKE) -C src all || exit
	@echo
	@echo
	@echo ---[ Concurrency Kit has built successfully. You may now \"make install\".

doc:
	$(MAKE) -C doc all || exit
	@echo ---[ Manual pages are ready for installation.

regressions:
	$(MAKE) -C regressions all || exit
	@echo ---[ Regressions have built successfully.

check: regressions
	@echo ---[ Executing unit tests...
	$(MAKE) -C regressions check
	@echo ---[ Unit tests have completed successfully.

install-headers:
	mkdir -p $(DESTDIR)/$(HEADERS) || exit
	cp $(SRC_DIR)/include/*.h $(DESTDIR)/$(HEADERS) || exit
	chmod 644 $(DESTDIR)/$(HEADERS)/ck_*.h || exit
	mkdir -p $(DESTDIR)/$(HEADERS)/gcc || exit
	cp -r $(SRC_DIR)/include/gcc/* $(DESTDIR)/$(HEADERS)/gcc || exit
	cp include/ck_md.h $(DESTDIR)/$(HEADERS)/ck_md.h || exit
	chmod 755 $(DESTDIR)/$(HEADERS)/gcc
	chmod 644 $(DESTDIR)/$(HEADERS)/gcc/ck_*.h $(DESTDIR)/$(HEADERS)/gcc/*/ck_*.h || exit
	mkdir -p $(DESTDIR)/$(HEADERS)/spinlock || exit
	cp -r $(SRC_DIR)/include/spinlock/* $(DESTDIR)/$(HEADERS)/spinlock || exit
	chmod 755 $(DESTDIR)/$(HEADERS)/spinlock
	chmod 644 $(DESTDIR)/$(HEADERS)/spinlock/*.h || exit

install-so:
	mkdir -p $(DESTDIR)/$(LIBRARY)
	cp src/libck.so $(DESTDIR)/$(LIBRARY)/$(LDNAME_VERSION)
	ln -sf $(LDNAME_VERSION) $(DESTDIR)/$(LIBRARY)/$(LDNAME)
	ln -sf $(LDNAME_VERSION) $(DESTDIR)/$(LIBRARY)/$(LDNAME_MAJOR)
	chmod 744 $(DESTDIR)/$(LIBRARY)/$(LDNAME_VERSION)	\
		  $(DESTDIR)/$(LIBRARY)/$(LDNAME)		\
		  $(DESTDIR)/$(LIBRARY)/$(LDNAME_MAJOR)

install-lib:
	mkdir -p $(DESTDIR)/$(LIBRARY)
	cp src/libck.a $(DESTDIR)/$(LIBRARY)/libck.a
	chmod 644 $(DESTDIR)/$(LIBRARY)/libck.a

install: all install-headers @INSTALL_LIBS@
	$(MAKE) -C doc install
	mkdir -p $(DESTDIR)/$(LIBRARY) || exit
	mkdir -p $(DESTDIR)/$(PKGCONFIG_DATA) || exit
	chmod 755 $(DESTDIR)/$(PKGCONFIG_DATA)
	cp build/ck.pc $(DESTDIR)/$(PKGCONFIG_DATA)/ck.pc || exit
	@echo
	@echo
	@echo ---[ Concurrency Kit has installed successfully.

uninstall:
	$(MAKE) -C doc uninstall
	rm -f $(DESTDIR)/$(LIBRARY)/$(LDNAME_VERSION)	\
	      $(DESTDIR)/$(LIBRARY)/$(LDNAME)		\
	      $(DESTDIR)/$(LIBRARY)/$(LDNAME_MAJOR)
	rm -f $(DESTDIR)/$(LIBRARY)/libck.so*
	rm -f $(DESTDIR)/$(LIBRARY)/libck.a
	rm -f $(DESTDIR)/$(HEADERS)/ck_*.h
	rm -f $(DESTDIR)/$(HEADERS)/spinlock/*.h
	rm -f $(DESTDIR)/$(HEADERS)/gcc/ck_*.h
	rm -f $(DESTDIR)/$(HEADERS)/gcc/*/ck_*.h
	rm -f $(DESTDIR)/$(PKGCONFIG_DATA)/ck.pc

clean:
	$(MAKE) -C doc clean
	$(MAKE) -C src clean
	$(MAKE) -C regressions clean
	rm -f $(BUILD_DIR)/*~ $(BUILD_DIR)/*.o $(BUILD_DIR)/*.tar.gz

dist:
	git archive --remote=$(SRC_DIR) --format=tar --prefix=ck-$(VERSION)/ HEAD \
		| gzip > $(BUILD_DIR)/ck-$(VERSION).tar.gz

distclean: clean
	rm -f $(BUILD_DIR)/include/ck_md.h
	rm -f $(BUILD_DIR)/build/regressions.build
	rm -f $(BUILD_DIR)/build/ck.build
	rm -f $(BUILD_DIR)/build/ck.pc
	rm -f $(BUILD_DIR)/Makefile
	rm -f $(BUILD_DIR)/doc/Makefile