source: Makefile @ d6a59ca

Last change on this file since d6a59ca was 243d027, checked in by Tomasz Obrebski <to@…>, 11 years ago

tok accepts options and prints help message now

  • Property mode set to 100644
File size: 3.5 KB
Line 
1include config.mak
2
3CUR_DIR=$(shell pwd)
4SRC_DIR=$(CUR_DIR)/src
5
6TARGETS = components configuration share libraries
7
8ifeq ($(BUILD_DOC), yes)
9        TARGETS += documentation
10endif
11
12.PHONY: all
13all: $(TARGETS)
14
15# ------------------------------------------------------------------
16# main section
17# ------------------------------------------------------------------
18.PHONY: components
19components:
20        cd $(SRC_DIR)/lib && make; cd $(CUR_DIR)
21        @for cmp in $(COMPONENTS); do\
22                cd $(SRC_DIR)/$$cmp && make; cd $(CUR_DIR); \
23        done
24
25.PHONY: documentation
26documentation:
27        cd $(CUR_DIR)/doc && make; cd $(CUR_DIR)
28
29.PHONY: configuration
30configuration:
31        cd $(CUR_DIR)/conf && make; cd $(CUR_DIR)
32
33.PHONY: libraries
34libraries:
35
36.PHONY: share
37share:
38
39# ------------------------------------------------------------------
40# cleanup section
41# ------------------------------------------------------------------
42.PHONY: clean
43clean: clean_components clean_documentation clean_config clean_config_mak
44        @echo "All files cleaned successfully!"
45
46.PHONY: clean_components
47clean_components:
48        @for cmp in $(COMPONENTS); do \
49                cd $(SRC_DIR)/$$cmp && make clean; cd $(CUR_DIR); \
50        done
51        cd $(SRC_DIR)/lib && make clean; cd $(CUR_DIR);
52
53.PHONY: clean_documentation
54clean_documentation:
55        cd $(CUR_DIR)/doc && make clean; cd $(CUR_DIR)
56
57.PHONY: clean_config
58clean_config:
59        cd $(CUR_DIR)/conf && make clean; cd $(CUR_DIR)
60
61.PHONY: clean_config_mak
62clean_config_mak:
63        rm config.mak || true
64
65# ------------------------------------------------------------------
66# install section
67# ------------------------------------------------------------------
68.PHONY: install
69install: all install_dirs install_components install_configuration install_libraries install_documentation install_share
70
71.PHONY: install_dirs
72install_dirs:
73        install -d $(PREFIX) \
74                $(BIN_DIR) \
75                $(CONF_DIR) \
76                $(LANG_DIR) \
77                $(LIB_DIR) \
78                $(DOC_DIR) \
79                $(SHARE_DIR)/info
80
81.PHONY: install_components
82install_components: components
83        @for cmp in $(COMPONENTS); do \
84                cd $(SRC_DIR)/$$cmp && make install; cd $(CUR_DIR); \
85        done
86
87.PHONY: install_configuration
88install_configuration: configuration
89        cd $(CUR_DIR)/conf && make install; cd $(CUR_DIR)
90
91.PHONY: install_libraries
92install_libraries: libraries
93        cd $(CUR_DIR)/lib && make install; cd $(CUR_DIR)
94
95.PHONY: install_documentation
96install_documentation: documentation
97        cd $(CUR_DIR)/doc && make install; cd $(CUR_DIR)
98
99.PHONY: install_share
100install_share: share
101        cd $(CUR_DIR)/share && make install; cd $(CUR_DIR)
102        #grammar compilation...
103        dgc
104
105# ------------------------------------------------------------------
106# uninstall section
107# ------------------------------------------------------------------
108
109.PHONY: uninstall
110uninstall: uninstall_share uninstall_documentation uninstall_libraries uninstall_configuration uninstall_components uninstall_dirs
111
112.PHONY: uninstall_components
113uninstall_components:
114        @for cmp in $(COMPONENTS); do \
115                cd $(SRC_DIR)/$$cmp && make uninstall; cd $(CUR_DIR); \
116        done
117
118.PHONY: uninstall_configuration
119uninstall_configuration:
120        cd $(CUR_DIR)/conf && make uninstall; cd $(CUR_DIR)
121
122.PHONY: uninstall_libraries
123uninstall_libraries:
124        cd $(CUR_DIR)/lib && make uninstall; cd $(CUR_DIR)
125
126.PHONY: uninstall_documentation
127uninstall_documentation:
128        cd $(CUR_DIR)/doc && make uninstall; cd $(CUR_DIR)
129
130.PHONY: uninstall_share
131uninstall_share:
132        cd $(CUR_DIR)/share && make uninstall; cd $(CUR_DIR)
133
134.PHONY: uninstall_dirs
135uninstall_dirs: uninstall_configuration uninstall_documentation uninstall_share uninstall_libraries
136        rmdir $(CONF_DIR)
137        rmdir $(DOC_DIR)
138        rmdir $(LANG_DIR)
139        rmdir $(LIB_DIR)
Note: See TracBrowser for help on using the repository browser.