3 # Copyright (c) 2015-2024 Matias Fonzo, <selk@dragora.org>.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
20 ## DO NOT MAKE CHANGES HERE.
22 # Use config.mak to override any of the following variables:
24 exec_prefix = $(prefix)
25 bindir = $(exec_prefix)/bin
26 sbindir
= $(exec_prefix)/sbin
27 libexecdir
= $(exec_prefix)/libexec
28 sysconfdir
= $(prefix)/etc
29 localstatedir
= $(prefix)/var
30 datarootdir
= $(prefix)/share
31 infodir = $(datarootdir
)/info
32 mandir = $(datarootdir
)/man
33 docdir
= $(datarootdir
)/doc
34 arch
= $(shell uname
-m
)
35 packagedir
= $(prefix)/pkgs
37 outdir
= $(localstatedir
)/cache
/qi
/packages
43 DISTNAME
= ${project}-${version}
47 INSTALL_PROGRAM
= ${INSTALL} -p
-m
755
48 INSTALL_DATA
= ${INSTALL} -p
-m
644
49 INSTALL_DIR
= mkdir
-p
-m
755
50 HELP2MAN_OPTS
= --locale
=C
--version-string
=${version}
54 dist distclean clean \
55 install install-info \
56 uninstall uninstall-info
61 all : $(project
) $(project
)rc
63 $(project
) : src
/$(project
)
65 src
/$(project
) : src
/$(project
).in
67 @echo
"Making src/$(project) ..."
69 sed
-e
"s|@VERSION@|$(version)|g" \
70 -e
"s|@PREFIX@|$(prefix)|g" \
71 -e
"s|@BINDIR@|$(bindir)|g" \
72 -e
"s|@SBINDIR@|$(sbindir)|g" \
73 -e
"s|@LIBEXECDIR@|$(libexecdir)|g" \
74 -e
"s|@SYSCONFDIR@|$(sysconfdir)|g" \
75 -e
"s|@LOCALSTATEDIR@|$(localstatedir)|g" \
76 -e
"s|@INFODIR@|$(infodir)|g" \
77 -e
"s|@MANDIR@|$(mandir)|g" \
78 -e
"s|@DOCDIR@|$(docdir)|g" \
79 -e
"s|@ARCH@|$(arch)|g" \
80 -e
"s|@PACKAGEDIR@|$(packagedir)|g" \
81 -e
"s|@TARGETDIR@|$(targetdir)|g" \
82 -e
"s|@OUTDIR@|$(outdir)|g" \
83 -e
"s|@QICFLAGS@|$(qi_cflags)|g" \
84 -e
"s|@QICXXFLAGS@|$(qi_cxxflags)|g" \
85 -e
"s|@QILDFLAGS@|$(qi_ldflags)|g" \
86 -e
"s|@QICPPFLAGS@|$(qi_cppflags)|g" \
90 $(project
)rc
: etc
/$(project
)rc
92 etc
/$(project
)rc
: etc
/$(project
)rc.in
94 @echo
"Making config: etc/$(project)rc ..."
96 sed
-e
"s|@PREFIX@|$(prefix)|g" \
97 -e
"s|@BINDIR@|$(bindir)|g" \
98 -e
"s|@SBINDIR@|$(sbindir)|g" \
99 -e
"s|@LIBEXECDIR@|$(libexecdir)|g" \
100 -e
"s|@SYSCONFDIR@|$(sysconfdir)|g" \
101 -e
"s|@LOCALSTATEDIR@|$(localstatedir)|g" \
102 -e
"s|@INFODIR@|$(infodir)|g" \
103 -e
"s|@MANDIR@|$(mandir)|g" \
104 -e
"s|@DOCDIR@|$(docdir)|g" \
105 -e
"s|@ARCH@|$(arch)|g" \
106 -e
"s|@PACKAGEDIR@|$(packagedir)|g" \
107 -e
"s|@TARGETDIR@|$(targetdir)|g" \
108 -e
"s|@OUTDIR@|$(outdir)|g" \
109 -e
"s|@QICFLAGS@|$(qi_cflags)|g" \
110 -e
"s|@QICXXFLAGS@|$(qi_cxxflags)|g" \
111 -e
"s|@QILDFLAGS@|$(qi_ldflags)|g" \
112 -e
"s|@QICPPFLAGS@|$(qi_cppflags)|g" \
118 info : doc
/$(project
).
info
120 doc
/$(project
).
info : doc
/$(project
)-header.texi doc
/$(project
)-content.texi
121 cd doc
&& env LANG
=C
$(MAKEINFO
) $(project
)-header.texi
-o
$(project
).
info
123 man
: doc
/$(project
).1
125 doc
/qi
.1 : doc
/$(project
).1.in src
/$(project
).in
126 env LANG
=C help2man
${HELP2MAN_OPTS} \
127 --name
="a simple but well-integrated package manager" \
129 --output
=$@ doc
/$(project
).1.in
130 sed
-e
"s#QI.1.IN#QI#g" -e
"s#qi.1.in#qi#g" -i
$@
132 html
: doc
/$(project
).html
134 doc
/$(project
).html
: doc
/$(project
)-header.texi doc
/$(project
)-content.texi
135 cd doc
&& env LANG
=C
$(MAKEINFO
) --html
--no-split \
136 $(project
)-header.texi
-o
$(project
).html
141 tarlz
--solid
-9 -cvf
$(DISTNAME
).
tar.lz \
142 $(DISTNAME
)/AUTHORS \
143 $(DISTNAME
)/COPYING \
144 $(DISTNAME
)/CREDITS \
145 $(DISTNAME
)/Makefile \
147 $(DISTNAME
)/README.md \
148 $(DISTNAME
)/configure \
149 $(DISTNAME
)/doc
/example.order \
150 $(DISTNAME
)/doc
/fdl.txt \
151 $(DISTNAME
)/doc
/qi
.1 \
152 $(DISTNAME
)/doc
/qi
.1.in \
153 $(DISTNAME
)/doc
/$(project
).html \
154 $(DISTNAME
)/doc
/$(project
).
info \
155 $(DISTNAME
)/doc
/$(project
)-header.texi \
156 $(DISTNAME
)/doc
/$(project
)-content.texi \
157 $(DISTNAME
)/doc
/recipe1 \
158 $(DISTNAME
)/doc
/recipe2 \
159 $(DISTNAME
)/doc
/recipe3 \
160 $(DISTNAME
)/etc
/$(project
)rc.in \
161 $(DISTNAME
)/src
/qi.in
163 sha256sum
$(DISTNAME
).
tar.lz
> $(DISTNAME
).
tar.lz.sha256
166 -rm -f
*.
tar *.
tar.lz
*.
tar.lz.
*
169 -rm -f src
/$(project
) etc
/$(project
)rc config.mak
171 install : all install-info install-man
174 @echo
"* Checking required directories ..."
175 if
[ ! -d
"$(DESTDIR)${bindir}" ] ; then \
176 $(INSTALL_DIR
) "$(DESTDIR)${bindir}" ; \
178 if
[ ! -d
"$(DESTDIR)${sysconfdir}" ] ; then \
179 $(INSTALL_DIR
) "$(DESTDIR)${sysconfdir}" ; \
183 @echo
"* Installing on $(DESTDIR)${bindir} ..."
184 $(INSTALL_PROGRAM
) src
/$(project
) "$(DESTDIR)${bindir}/$(project)"
187 @echo
"* Installing config file on $(DESTDIR)${sysconfdir} ..."
188 $(INSTALL_DATA
) etc
/$(project
)rc
"$(DESTDIR)${sysconfdir}/$(project)rc"
191 @echo
"* Creating package and target directory (if needed) ..."
192 if
[ ! -d
"$(DESTDIR)${packagedir}" ] ; then \
193 $(INSTALL_DIR
) "$(DESTDIR)${packagedir}" ; \
195 if
[ ! -d
"$(DESTDIR)${targetdir}" ] ; then \
196 $(INSTALL_DIR
) "$(DESTDIR)${targetdir}" ; \
204 @echo
"* Installing Info document on $(DESTDIR)${infodir} ..."
205 if
[ ! -d
"$(DESTDIR)${infodir}" ] ; then \
206 $(INSTALL_DIR
) "$(DESTDIR)${infodir}" ; \
209 $(INSTALL_DATA
) doc
/$(project
).
info \
210 "$(DESTDIR)${infodir}/$(project).info"
212 -install-info
--info-dir
="$(DESTDIR)${infodir}" \
213 "$(DESTDIR)${infodir}/$(project).info"
218 @echo
"* Installing manual pages on $(DESTDIR)${mandir}/man1 ..."
219 if
[ ! -d
"$(DESTDIR)${mandir}/man1" ] ; then \
220 $(INSTALL_DIR
) "$(DESTDIR)${mandir}/man1" ; \
223 $(INSTALL_DATA
) doc
/$(project
).1 "$(DESTDIR)${mandir}/man1"
225 uninstall : uninstall-info uninstall-man
228 @echo
"* Uninstalling from $(DESTDIR)${bindir} ..."
229 -rm -f
"$(DESTDIR)${bindir}/$(project)"
231 -rm -f
"$(DESTDIR)${sysconfdir}/$(project)rc"
236 --info-dir
="$(DESTDIR)${infodir}" \
237 --remove
"$(DESTDIR)${infodir}/$(project).info"
239 -rm -f
"$(DESTDIR)${infodir}/$(project).info"
243 -rm -f
"$(DESTDIR)${mandir}/man1/$(project).1"