Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
268 lines (198 sloc)
7.92 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BEE_VERSION = 1.2.25 | |
CC=gcc | |
CFLAGS=-Wall -Wextra -Wno-override-init -Werror -g -O3 | |
LDFLAGS= | |
PREFIX = /usr | |
EPREFIX = ${PREFIX} | |
SBINDIR = ${EPREFIX}/sbin | |
BINDIR = ${EPREFIX}/bin | |
LIBDIR = ${EPREFIX}/lib | |
LIBEXECDIR = ${EPREFIX}/libexec | |
DATADIR = ${PREFIX}/share | |
MANDIR = ${DATADIR}/man | |
SYSCONFDIR = ${PREFIX}/etc | |
# set sysconfdir /etc if prefix /usr || /usr/local | |
ifneq (, $(filter /usr /usr/local, ${PREFIX})) | |
SYSCONFDIR = /etc | |
endif | |
# strip /bee from LIBEXECDIR if set | |
ifeq ($(notdir ${LIBEXECDIR}),bee) | |
override LIBEXECDIR := $(patsubst %/,%,$(dir ${LIBEXECDIR})) | |
endif | |
# default config directory | |
DEFCONFDIR=${SYSCONFDIR}/default | |
DESTDIR= | |
quiet-command = $(if ${V},${1},$(if ${2},@echo ${2} && ${1}, @${1})) | |
quiet-install = $(call quiet-command,install -m ${1} ${2} ${3},"INSTALL ${3}") | |
quiet-installdir = $(call quiet-command,install -m ${1} -d ${2},"MKDIR ${2}") | |
sed-rules = -e 's,@PREFIX@,${PREFIX},g' \ | |
-e 's,@EPREFIX@,${EPREFIX},g' \ | |
-e 's,@BINDIR@,${BINDIR},g' \ | |
-e 's,@SBINDIR@,${SBINDIR},g' \ | |
-e 's,@LIBDIR@,${LIBDIR},g' \ | |
-e 's,@SYSCONFDIR@,${SYSCONFDIR},g' \ | |
-e 's,@DEFCONFDIR@,${DEFCONFDIR},g' \ | |
-e 's,@LIBEXECDIR@,${LIBEXECDIR},g' \ | |
-e 's,@BEE_VERSION@,${BEE_VERSION},g' \ | |
-e 's,@DATADIR@,${DATADIR},g' | |
PROGRAMS_C+=beecut | |
PROGRAMS_C+=beeflock | |
PROGRAMS_C+=beegetopt | |
PROGRAMS_C+=beesep | |
PROGRAMS_C+=beesort | |
PROGRAMS_C+=beeuniq | |
PROGRAMS_C+=beeversion | |
PROGRAMS_SHELL+=bee | |
PROGRAMS_SHELL+=beefind | |
PROGRAMS_SHELL+=beeissue | |
PROGRAMS_SHELL+=beesh | |
HELPER_BEE_SHELL+=bee-cache | |
HELPER_BEE_SHELL+=bee-check | |
HELPER_BEE_SHELL+=bee-download | |
HELPER_BEE_SHELL+=bee-init | |
HELPER_BEE_SHELL+=bee-install | |
HELPER_BEE_SHELL+=bee-list | |
HELPER_BEE_SHELL+=bee-query | |
HELPER_BEE_SHELL+=bee-remove | |
HELPER_BEE_SHELL+=bee-update | |
HELPER_C+=bee-cache-inventory | |
HELPER_SHELL+=compat-filesfile2contentfile | |
HELPER_SHELL+=compat-fixmetadir | |
HELPER_SHELL+=content2filelist | |
HELPER_SHELL+=filelist2content | |
HELPER_SHELL+=bee-cache-update | |
LIBRARY_SHELL+=beelib.config.sh | |
BUILDTYPES+=autogen | |
BUILDTYPES+=autotools | |
BUILDTYPES+=cmake | |
BUILDTYPES+=configure | |
BUILDTYPES+=jb | |
BUILDTYPES+=make | |
BUILDTYPES+=meson | |
BUILDTYPES+=perl-module | |
BUILDTYPES+=perl-module-makemaker | |
BUILDTYPES+=python-module | |
BUILDTYPES+=r-package | |
BUILDTYPES+=haskell-module | |
HELPER_HOOKS_SHELL+=update-mime-database | |
HELPER_HOOKS_SHELL+=glib-compile-schemas | |
HELPER_HOOKS_SHELL+=mkfontdir-mkfontscale | |
HELPER_HOOKS_SHELL+=gtk-update-icon-cache | |
HELPER_HOOKS_SHELL+=ldconfig | |
HELPER_HOOKS_SHELL+=update-desktop-database | |
HELPER_HOOKS_SHELL+=gdk-pixbuf-query-loaders | |
HELPER_HOOKS_SHELL+=mandb | |
HELPER_HOOKS_SHELL+=systemd-tmpfiles | |
HELPER_HOOKS_SHELL+=gconf-install-schemas | |
HELPER_HOOKS_SHELL+=info-dir | |
HELPER_HOOKS_SHELL+=kernel-modules | |
MANPAGES+=bee.1 | |
MANPAGES+=bee-check.1 | |
MANPAGES+=bee-download.1 | |
MANPAGES+=bee-list.1 | |
MANPAGES+=bee-init.1 | |
MANPAGES+=bee-install.1 | |
MANPAGES+=bee-query.1 | |
MANPAGES+=bee-remove.1 | |
MANPAGES+=bee-update.1 | |
CONFIG_TEMPLATES+=fallback | |
CONFIG_FILES+=skiplist | |
CONFIG_FILES+=beerc | |
.SUFFIXES: .in .sh .sh.in | |
all: build | |
build: shellscripts buildtypes cprograms manpages | |
SHELLSCRIPTS=$(PROGRAMS_SHELL) $(HELPER_BEE_SHELL) $(HELPER_SHELL) | |
BEEVERSION_OBJECTS=beeversion.o bee_version_parse.o bee_version_compare.o bee_version_output.o | |
BEESEP_OBJECTS=beesep.o | |
BEECUT_OBJECTS=beecut.o | |
BEEUNIQ_OBJECTS=beeuniq.o | |
BEESORT_OBJECTS=bee_tree.o bee_version_compare.o bee_version_output.o bee_version_parse.o bee_getopt.o beesort.o | |
BEEGETOPT_OBJECTS=bee_getopt.o beegetopt.o | |
BEEFLOCK_OBJECTS=bee_getopt.o beeflock.o | |
BEECACHEINVENTORY_OBJECTS=bee-cache-inventory.o bee_getopt.o | |
bee_BUILDTYPES=$(addsuffix .sh,$(addprefix buildtypes/,$(BUILDTYPES))) | |
shellscripts: $(addsuffix .sh,$(SHELLSCRIPTS)) $(LIBRARY_SHELL) | |
cprograms: $(PROGRAMS_C) ${HELPER_C} | |
manpages: $(MANPAGES) | |
buildtypes: ${bee_BUILDTYPES} | |
beesep: $(addprefix src/, ${BEESEP_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
beeversion: $(addprefix src/, ${BEEVERSION_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
beecut: $(addprefix src/, ${BEECUT_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
beeuniq: $(addprefix src/, ${BEEUNIQ_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
beesort: $(addprefix src/, ${BEESORT_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
beegetopt: $(addprefix src/, ${BEEGETOPT_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
beeflock: $(addprefix src/, ${BEEFLOCK_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
bee-cache-inventory: $(addprefix src/, ${BEECACHEINVENTORY_OBJECTS}) | |
$(call quiet-command,${CC} ${LDFLAGS} -o $@ $^,"LD $@") | |
%.o: %.c | |
$(call quiet-command,${CC} ${CFLAGS} -o $@ -c $^,"CC $@") | |
%.sh: src/%.sh.in | |
$(call quiet-command,sed ${sed-rules} $< >$@,"SED $@") | |
%.1: manpages/%.1.in | |
$(call quiet-command,sed ${sed-rules} $< >$@,"SED $@") | |
%.sh: %.sh.in | |
$(call quiet-command,sed ${sed-rules} $< >$@,"SED $@") | |
clean: | |
$(call quiet-command,rm -f $(addsuffix .sh,${SHELLSCRIPTS}) $(LIBRARY_SHELL) $(HELPER_SHELL),"CLEAN <various>.sh") | |
$(call quiet-command,rm -f ${PROGRAMS_C},"CLEAN ${PROGRAMS_C}") | |
$(call quiet-command,rm -f ${HELPER_C},"CLEAN ${HELPER_C}") | |
$(call quiet-command,rm -f src/*.o,"CLEAN c object files") | |
$(call quiet-command,rm -f ${MANPAGES},"CLEAN manpages") | |
$(call quiet-command,rm -f ${bee_BUILDTYPES},"CLEAN buildtypes") | |
install: install-core install-config | |
install-core: build install-man install-hooks install-buildtypes install-beeshlib install-tools install-helper install-bin | |
install-bin: $(addprefix ${DESTDIR}${BINDIR}/,${PROGRAMS_C} ${PROGRAMS_SHELL}) | |
install-dir-bindir: | |
$(call quiet-installdir,0755,${DESTDIR}${BINDIR}) | |
${DESTDIR}${BINDIR}/%: % install-dir-bindir | |
$(call quiet-install,0755,$<,$@) | |
${DESTDIR}${BINDIR}/%: %.sh install-dir-bindir | |
$(call quiet-install,0755,$<,$@) | |
install-tools: $(addprefix ${DESTDIR}${LIBEXECDIR}/bee/bee.d/,${HELPER_BEE_SHELL}) | |
install-dir-tools: | |
$(call quiet-installdir,0755,${DESTDIR}${LIBEXECDIR}/bee/bee.d) | |
${DESTDIR}${LIBEXECDIR}/bee/bee.d/%: %.sh install-dir-tools | |
$(call quiet-install,0755,$<,$@) | |
${DESTDIR}${LIBEXECDIR}/bee/bee.d/%: % install-dir-tools | |
$(call quiet-install,0755,$<,$@) | |
install-helper: $(addprefix ${DESTDIR}${LIBEXECDIR}/bee/,${HELPER_SHELL} ${HELPER_C}) | |
install-dir-helper: | |
$(call quiet-installdir,0755,${DESTDIR}${LIBEXECDIR}/bee) | |
${DESTDIR}${LIBEXECDIR}/bee/%: %.sh install-dir-helper | |
$(call quiet-install,0755,$<,$@) | |
${DESTDIR}${LIBEXECDIR}/bee/%: % install-dir-helper | |
$(call quiet-install,0755,$<,$@) | |
install-beeshlib: $(addprefix ${DESTDIR}${LIBEXECDIR}/bee/,${LIBRARY_SHELL}) | |
install-dir-beeshlib: | |
$(call quiet-installdir,0755,${DESTDIR}${LIBEXECDIR}/bee) | |
${DESTDIR}${LIBEXECDIR}/bee/%: % install-dir-beeshlib | |
$(call quiet-install,0755,$<,$@) | |
install-buildtypes: $(addsuffix .sh,$(addprefix ${DESTDIR}${LIBEXECDIR}/bee/beesh.d/,${BUILDTYPES})) | |
install-dir-buildtypes: | |
$(call quiet-installdir,0755,${DESTDIR}${LIBEXECDIR}/bee/beesh.d) | |
${DESTDIR}${LIBEXECDIR}/bee/beesh.d/%.sh: buildtypes/%.sh install-dir-buildtypes | |
$(call quiet-install,0755,$<,$@) | |
install-hooks: $(addprefix ${DESTDIR}${LIBEXECDIR}/bee/hooks.d/,${HELPER_HOOKS_SHELL}) | |
install-dir-hookdir: | |
$(call quiet-installdir,0755,${DESTDIR}${LIBEXECDIR}/bee/hooks.d) | |
${DESTDIR}${LIBEXECDIR}/bee/hooks.d/%: hooks/%.sh install-dir-hookdir | |
$(call quiet-install,0755,$<,$@) | |
install-man: $(addprefix ${DESTDIR}${MANDIR}/man1/,${MANPAGES}) | |
install-dir-mandir: | |
$(call quiet-installdir,0755,${DESTDIR}${MANDIR}/man1) | |
${DESTDIR}${MANDIR}/man1/%.1: %.1 install-dir-mandir | |
$(call quiet-install,0644,$<,$@) | |
install-dir-config: | |
$(call quiet-installdir,0755,${DESTDIR}${DEFCONFDIR}/bee/templates) | |
install-config: install-config-defaults install-config-templates | |
install-config-defaults: $(addprefix ${DESTDIR}${DEFCONFDIR}/bee/,${CONFIG_FILES}) | |
install-config-templates: $(addprefix ${DESTDIR}${DEFCONFDIR}/bee/templates/,${CONFIG_TEMPLATES}) | |
${DESTDIR}${DEFCONFDIR}/bee/%: conf/% install-dir-config | |
$(call quiet-install,0444,$<,$@) |