@@ -9,28 +9,52 @@ DESTDIR =
9
9
# Root directory for final installation
10
10
PREFIX = /usr
11
11
12
+ # Data file directory
13
+ data_dir = ${PREFIX}/share/
14
+
12
15
# Location of the highlight data files:
13
- data_dir = ${PREFIX}/share/ highlight/
16
+ hl_data_dir = ${data_dir} highlight/
14
17
15
18
# Location of the highlight binary:
16
19
bin_dir = ${PREFIX}/bin/
17
20
21
+ # Location of the highlight library:
22
+ lib_dir = ${PREFIX}/lib/
23
+
18
24
# Location of the highlight man pages:
19
- man_dir = ${PREFIX}/share/man/
25
+ man_dir = ${data_dir}man/
26
+
27
+ # Documentation directory
28
+ doc_dir = ${data_dir}doc/
20
29
21
30
# Location of the highlight documentation:
22
- doc_dir = ${PREFIX}/share/doc/ highlight/
31
+ hl_doc_dir = ${doc_dir} highlight/
23
32
24
33
# Location of the highlight extras:
25
- examples_dir = ${doc_dir}extras/
34
+ examples_dir = ${hl_doc_dir}extras/
35
+
36
+ # Location of system-wide config files:
37
+ ifeq (${PREFIX},/usr)
38
+ conf_dir = /etc/
39
+ else
40
+ conf_dir = ${PREFIX}/etc/
41
+ endif
26
42
27
43
# Location of the highlight config files:
28
- conf_dir = ${PREFIX}/etc/highlight/
29
- # conf_dir = ${PREFIX}/etc/highlight/
44
+ hl_conf_dir = ${conf_dir}highlight/
45
+
46
+ # Location of bash completions:
47
+ bash_comp_dir = ${data_dir}bash-completion/completions/
48
+
49
+ # Location of fish completions:
50
+ fish_comp_dir = ${data_dir}fish/vendor_completions.d/
51
+
52
+ # Location of zsh completions:
53
+ zsh_comp_dir = ${data_dir}zsh/site-functions/
30
54
31
55
# Location of additional gui files
32
- desktop_apps = ${PREFIX}/share/ applications/
33
- desktop_icons = ${PREFIX}/share/ icons/hicolor/256x256/apps/
56
+ desktop_apps = ${data_dir} applications/
57
+ desktop_icons = ${data_dir} icons/hicolor/256x256/apps/
34
58
35
59
# Commands:
36
60
GZIP =gzip -9f
@@ -40,32 +64,35 @@ MKDIR=mkdir -p -m 755
40
64
RMDIR =rm -r -f
41
65
42
66
all cli :
43
- ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=${data_dir } HL_CONFIG_DIR=${conf_dir }
67
+ ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=${hl_data_dir } HL_CONFIG_DIR=${hl_conf_dir }
44
68
45
69
lib lib-static :
46
- ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=${data_dir } HL_CONFIG_DIR=${conf_dir } lib-static
70
+ ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=${hl_data_dir } HL_CONFIG_DIR=${hl_conf_dir } lib-static
47
71
48
72
lib-shared :
49
- ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=${data_dir } HL_CONFIG_DIR=${conf_dir } PIC=1 lib-shared
73
+ ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=${hl_data_dir } HL_CONFIG_DIR=${hl_conf_dir } PIC=1 lib-shared
50
74
51
75
gui :
52
- ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=\" ${data_dir } \" HL_CONFIG_DIR=\" ${conf_dir } \" HL_DOC_DIR=\" ${doc_dir } \" gui-qt
76
+ ${MAKE} -C ./src -f ./makefile2.makefile HL_DATA_DIR=\" ${hl_data_dir } \" HL_CONFIG_DIR=\" ${hl_conf_dir } \" HL_DOC_DIR=\" ${hl_doc_dir } \" gui-qt
53
77
@echo
54
78
@echo " You need to run 'make install' AND 'make install-gui' now!"
55
79
56
80
install :
57
81
@echo " This script will install highlight in the following directories:"
58
- @echo " Data directory: ${DESTDIR}${data_dir} "
59
- @echo " Documentation directory: ${DESTDIR}${doc_dir} "
60
- @echo " Plugin directory: ${DESTDIR}${data_dir} /plugins"
61
- @echo " Examples directory: ${DESTDIR}${examples_dir} "
62
- @echo " Manual directory: ${DESTDIR}${man_dir} man1/"
63
- @echo " Binary directory: ${DESTDIR}${bin_dir} "
64
- @echo " Configuration directory: ${DESTDIR}${conf_dir} "
82
+ @echo " Data directory: ${DESTDIR}${hl_data_dir} "
83
+ @echo " Documentation directory: ${DESTDIR}${hl_doc_dir} "
84
+ @echo " Plugin directory: ${DESTDIR}${hl_data_dir} plugins/"
85
+ @echo " Examples directory: ${DESTDIR}${examples_dir} "
86
+ @echo " Manual directory: ${DESTDIR}${man_dir} "
87
+ @echo " Binary directory: ${DESTDIR}${bin_dir} "
88
+ @echo " Configuration directory: ${DESTDIR}${hl_conf_dir} "
89
+ @echo " Bash completions directory: ${DESTDIR}${bash_comp_dir} "
90
+ @echo " Fish completions directory: ${DESTDIR}${fish_comp_dir} "
91
+ @echo " Zsh completions directory: ${DESTDIR}${zsh_comp_dir} "
65
92
@echo
66
93
67
- ${MKDIR} ${DESTDIR}${doc_dir }
68
- ${MKDIR} ${DESTDIR}${conf_dir }
94
+ ${MKDIR} ${DESTDIR}${hl_doc_dir }
95
+ ${MKDIR} ${DESTDIR}${hl_conf_dir }
69
96
${MKDIR} ${DESTDIR}${examples_dir} \
70
97
${DESTDIR}${examples_dir}swig \
71
98
${DESTDIR}${examples_dir}tcl \
@@ -77,30 +104,37 @@ install:
77
104
${DESTDIR}${examples_dir}themes-resources/base16 \
78
105
${DESTDIR}${examples_dir}themes-resources/css-themes
79
106
80
- ${MKDIR} ${DESTDIR}${data_dir } \
81
- ${DESTDIR}${data_dir }themes \
82
- ${DESTDIR}${data_dir }themes/base16 \
83
- ${DESTDIR}${data_dir }langDefs \
84
- ${DESTDIR}${data_dir }plugins
107
+ ${MKDIR} ${DESTDIR}${hl_data_dir } \
108
+ ${DESTDIR}${hl_data_dir }themes \
109
+ ${DESTDIR}${hl_data_dir }themes/base16 \
110
+ ${DESTDIR}${hl_data_dir }langDefs \
111
+ ${DESTDIR}${hl_data_dir }plugins
85
112
${MKDIR} ${DESTDIR}${man_dir}man1/
86
113
${MKDIR} ${DESTDIR}${man_dir}man5/
114
+ ${MKDIR} ${DESTDIR}${bash_comp_dir}
115
+ ${MKDIR} ${DESTDIR}${fish_comp_dir}
116
+ ${MKDIR} ${DESTDIR}${zsh_comp_dir}
87
117
${MKDIR} ${DESTDIR}${bin_dir}
88
118
89
- ${INSTALL_DATA} ./langDefs/*.lang ${DESTDIR}${data_dir }langDefs/
90
- ${INSTALL_DATA} ./*.conf ${DESTDIR}${conf_dir }
91
- ${INSTALL_DATA} ./themes/*.theme ${DESTDIR}${data_dir }themes/
92
- ${INSTALL_DATA} ./themes/base16/*.theme ${DESTDIR}${data_dir }themes/base16/
93
- ${INSTALL_DATA} ./plugins/*.lua ${DESTDIR}${data_dir }plugins/
119
+ ${INSTALL_DATA} ./langDefs/*.lang ${DESTDIR}${hl_data_dir }langDefs/
120
+ ${INSTALL_DATA} ./*.conf ${DESTDIR}${hl_conf_dir }
121
+ ${INSTALL_DATA} ./themes/*.theme ${DESTDIR}${hl_data_dir }themes/
122
+ ${INSTALL_DATA} ./themes/base16/*.theme ${DESTDIR}${hl_data_dir }themes/base16/
123
+ ${INSTALL_DATA} ./plugins/*.lua ${DESTDIR}${hl_data_dir }plugins/
94
124
${INSTALL_DATA} ./man/highlight.1 ${DESTDIR}${man_dir}man1/
95
125
${GZIP} ${DESTDIR}${man_dir}man1/highlight.1
96
126
${INSTALL_DATA} ./man/filetypes.conf.5 ${DESTDIR}${man_dir}man5/
97
127
${GZIP} ${DESTDIR}${man_dir}man5/filetypes.conf.5
98
128
99
- ${INSTALL_DATA} ./AUTHORS ${DESTDIR}${doc_dir}
100
- ${INSTALL_DATA} ./README* ${DESTDIR}${doc_dir}
101
- ${INSTALL_DATA} ./ChangeLog.adoc ${DESTDIR}${doc_dir}
102
- ${INSTALL_DATA} ./COPYING ${DESTDIR}${doc_dir}
103
- ${INSTALL_DATA} ./INSTALL ${DESTDIR}${doc_dir}
129
+ ${INSTALL_DATA} ./sh-completion/highlight.bash ${DESTDIR}${bash_comp_dir}highlight
130
+ ${INSTALL_DATA} ./sh-completion/highlight.fish ${DESTDIR}${fish_comp_dir}
131
+ ${INSTALL_DATA} ./sh-completion/highlight.zsh ${DESTDIR}${zsh_comp_dir}_highlight
132
+
133
+ ${INSTALL_DATA} ./AUTHORS ${DESTDIR}${hl_doc_dir}
134
+ ${INSTALL_DATA} ./README* ${DESTDIR}${hl_doc_dir}
135
+ ${INSTALL_DATA} ./ChangeLog.adoc ${DESTDIR}${hl_doc_dir}
136
+ ${INSTALL_DATA} ./COPYING ${DESTDIR}${hl_doc_dir}
137
+ ${INSTALL_DATA} ./INSTALL ${DESTDIR}${hl_doc_dir}
104
138
${INSTALL_DATA} ./extras/swig/* ${DESTDIR}${examples_dir}swig
105
139
${INSTALL_DATA} ./extras/tcl/* ${DESTDIR}${examples_dir}tcl
106
140
${INSTALL_DATA} ./extras/pandoc/* ${DESTDIR}${examples_dir}pandoc
@@ -122,28 +156,33 @@ install:
122
156
123
157
install-gui :
124
158
@echo " Installing files for the GUI..."
125
- ${MKDIR} ${DESTDIR}${data_dir } \
126
- ${DESTDIR}${data_dir } gui_files \
127
- ${DESTDIR}${data_dir } gui_files/ext \
128
- ${DESTDIR}${data_dir } gui_files/l10n \
159
+ ${MKDIR} ${DESTDIR}${hl_data_dir } \
160
+ ${DESTDIR}${hl_data_dir } gui_files \
161
+ ${DESTDIR}${hl_data_dir } gui_files/ext \
162
+ ${DESTDIR}${hl_data_dir } gui_files/l10n \
129
163
${DESTDIR}${desktop_apps} \
130
164
${DESTDIR}${desktop_icons}
131
165
132
- ${INSTALL_DATA} ./gui_files/l10n/* ${DESTDIR}${data_dir }gui_files/l10n/
133
- ${INSTALL_DATA} ./gui_files/ext/* ${DESTDIR}${data_dir }gui_files/ext/
166
+ ${INSTALL_DATA} ./gui_files/l10n/* ${DESTDIR}${hl_data_dir }gui_files/l10n/
167
+ ${INSTALL_DATA} ./gui_files/ext/* ${DESTDIR}${hl_data_dir }gui_files/ext/
134
168
${INSTALL_DATA} ./highlight.desktop ${DESTDIR}${desktop_apps}
135
169
${INSTALL_DATA} ./src/gui-qt/highlight.png ${DESTDIR}${desktop_icons}
136
170
${INSTALL_PROGRAM} ./src/highlight-gui ${DESTDIR}${bin_dir}
137
171
172
+ install-lib-shared :
173
+ ${INSTALL_DATA} ./src/libhighlight.so.4.0 ${DESTDIR}${lib_dir}
174
+
138
175
uninstall :
139
176
@echo " Removing highlight files from system..."
140
- ${RMDIR} ${DESTDIR}${data_dir }
141
- ${RMDIR} ${DESTDIR}${doc_dir }
142
- ${RMDIR} ${DESTDIR}${conf_dir }
177
+ ${RMDIR} ${DESTDIR}${hl_data_dir }
178
+ ${RMDIR} ${DESTDIR}${hl_doc_dir }
179
+ ${RMDIR} ${DESTDIR}${hl_conf_dir }
143
180
${RMDIR} ${DESTDIR}${examples_dir}
144
181
rm -rf ${DESTDIR}${man_dir} man1/highlight.1.gz
145
182
rm -rf ${DESTDIR}${man_dir} man5/filetypes.conf.5.gz
146
-
183
+ rm -rf ${DESTDIR}${bash_comp_dir} highlight
184
+ rm -rf ${DESTDIR}${fish_comp_dir} highlight.fish
185
+ rm -rf ${DESTDIR}${zsh_comp_dir} _highlight
147
186
rm -rf ${DESTDIR}${bin_dir} highlight
148
187
rm -rf ${DESTDIR}${bin_dir} highlight-gui
149
188
rm -rf ${DESTDIR}${desktop_apps} highlight.desktop
@@ -156,8 +195,10 @@ clean cleanall:
156
195
clean-obj :
157
196
$(MAKE ) -C ./src -f ./makefile2.makefile clean-obj
158
197
159
- apidocs :
160
- doxygen Doxyfile
198
+ completions :
199
+ sh-completion/gen-completions bash > sh-completion/highlight.bash
200
+ sh-completion/gen-completions fish > sh-completion/highlight.fish
201
+ sh-completion/gen-completions zsh > sh-completion/highlight.zsh
161
202
162
203
help :
163
204
@echo " This makefile offers the following options:"
@@ -166,16 +207,15 @@ help:
166
207
@echo " lib-static Compile only the static library."
167
208
@echo " lib-shared Compile only the shared library."
168
209
@echo " gui Compile the Qt (5.x) GUI."
169
- @echo " install* Copy all data files to ${data_dir } ."
170
- @echo " install-gui* Copy GUI data files to ${data_dir } ."
210
+ @echo " install Copy all data files to ${hl_data_dir } ."
211
+ @echo " install-gui Copy GUI data files to ${hl_data_dir } ."
171
212
@echo " clean Remove object files and binaries."
172
- @echo " apidocs Generate HTML API documentation using doxygen ."
173
- @echo " uninstall* Remove highlight files from system."
213
+ @echo " completions Generate shell completion scripts ."
214
+ @echo " uninstall Remove highlight files from system."
174
215
@echo
175
- @echo " * Command needs root privileges."
176
216
@echo " See src/makefile for compilation and linking options."
177
217
178
218
# Target needed for redhat 9.0 rpmbuild
179
219
install-strip :
180
220
181
- .PHONY : clean all install apidocs help uninstall install-strip clean-obj
221
+ .PHONY : clean all install help uninstall install-strip clean-obj
0 commit comments