summaryrefslogtreecommitdiff
path: root/main.mk.in
diff options
context:
space:
mode:
Diffstat (limited to 'main.mk.in')
-rw-r--r--main.mk.in121
1 files changed, 81 insertions, 40 deletions
diff --git a/main.mk.in b/main.mk.in
index 46fa64a..9b884e4 100644
--- a/main.mk.in
+++ b/main.mk.in
@@ -1,6 +1,6 @@
#!/usr/bin/make -f
-name=repo
-ver=0.8r61
+name = @name@
+ver = 0.8r58
# Copyright (C) 2009 Luke Shumaker
#
# This file is part of rvs.
@@ -19,67 +19,108 @@ ver=0.8r61
# If not, write to the Free Software Foundation,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-export rvs = @name@
+export rvs = $(name)
+# directories ######################################################
+srcdir = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+dirs = $(srcdir) $(prefix) $(exec_prefix) $(bindir) $(sbindir) $(libexecdir)
+export srcdir prefix exec_prefix bindir sbindir libexecdir
+
+# programs #########################################################
+CC = @CC@
+RVS = @RVS@
+SHELL = @SHELL@
+RM = rm -f
+CP = cp
+SED = sed
+INSTALL = install
+MKDIR = $(INSTALL) -d #mkdir -p
+INSTALL_PROGRAM = $(INSTALL)
+INSTALL_DATA = $(INSTALL) -m 644
+TOUCH = touch
+export RVS SHELL RM CP SED INSTALL MKDIR INSTALL_PROGRAM INSTALL_DATA TOUCH
+
+# plugins ##########################################################
+plugins = $(patsubst $(srcdir)/plugins/%,%, \
+ $(shell find $(srcdir)/plugins/* -maxdepth 0 -type d))
+
+build-plugins = $(addprefix p-,$(plugins))
+install-plugins = $(addprefix install-p-,$(plugins))
+uninstall-plugins = $(addprefix uninstall-p-,$(plugins))
+clean-plugins = $(addprefix clean-p-,$(plugins))
+distclean-plugins = $(addprefix distclean-p-,$(plugins))
+dist-plugins = $(addprefix dist-p-,$(plugins))
# phony targets ####################################################
-all : $(name)
-.PHONY : $(name) install uninstall clean distclean dist
-.SUFFIXES :
-
-# build ############################################################
-mysrcdir = $(srcdir)/plugins/$(name)
-myoutdir = outs
-
-srcFiles = $(filter-out %/Makefile.in,$(shell find $(mysrcdir)/ -type f))
+all : wrapper $(build-plugins)
+.PHONY : install uninstall clean distclean dist libexec \
+ build-wrapper install-wrapper uninstall-wrapper clean-wrapper distclean-wrapper dist-wrapper
+#$(build-plugins) $(install-plugins) $(uninstall-plugins) $(clean-plugins) $(distclean-plugins) $(dist-plugins)
-shSrcFiles = $(filter %.sh,$(srcFiles))
-shOutFiles = $(patsubst $(mysrcdir)/%,$(myoutdir)/%,$(basename $(shSrcFiles)))
+.SUFFIXES :
-$(name) : $(myoutdir) $(shOutFiles) $(myoutdir)/plugin.conf
+# install ##########################################################
-$(myoutdir)/plugin.conf : $(mysrcdir)/plugin.conf
- $(INSTALL_DATA) $< $@
+install : install-wrapper libexec $(install-plugins)
-# (un)install ######################################################
+# $(libexecdir)/rvs/*
+libexec : $(libexecdir)/$(rvs)/plugins
+$(libexecdir)/$(rvs)/plugins : $(libexecdir)/$(rvs)
+ $(TOUCH) $@
-install : all
- $(RVS) install $(name)-$(ver) $(myoutdir)
+# uninstall ########################################################
uninstall :
- $(RVS) uninstall $(name)
+ $(RM) $(bindir)/$(rvs)
+ $(RM) -r $(libexecdir)/$(rvs)
# clean ############################################################
-clean :
+clean : $(clean-plugins) clean-wrapper
-distclean : clean
+distclean : clean $(distclean-plugins) distclean-wrapper
$(RM) Makefile
- $(RM) -r out
# dist #############################################################
-id = $(name)-$(ver)
-dist : $(id).tar.gz
+d = $(name)-$(ver)
+dist : $(d).tar.gz
-$(id).tar.gz : $(id)
+$(d).tar.gz : $(d)
tar -czf $@ $<
-$(id) : distclean
+$(d) : distclean
$(INSTALL) -m 777 -d $@
- $(CP) -r $(mysrcdir)/* $@
+ $(CP) -r $(srcdir)/* $@
+
+# wrapper ##########################################################
+
+wrapper : build-wrapper
+build-wrapper : wrapper/ wrapper/Makefile; $(MAKE) -C $<
+uninstall-wrapper : wrapper/ wrapper/Makefile; $(MAKE) -C $< uninstall
+clean-wrapper : wrapper/ wrapper/Makefile; $(MAKE) -C $< clean
+distclean-wrapper : wrapper/ wrapper/Makefile; $(MAKE) -C $< distclean
+dist-wrapper : wrapper/ wrapper/Makefile; $(MAKE) -C $< dist
+
+install-wrapper : wrapper/ wrapper/Makefile wrapper; $(MAKE) -C $< install
+$(RVS) : install-wrapper
+
+# plugins ##########################################################
+
+install-p-% : plugins/% plugins/%/Makefile p-% libexec $(RVS)
+ $(MAKE) -C $< install
+p-% : plugins/% plugins/%/Makefile ; $(MAKE) -C $<
+uninstall-p-% : plugins/% plugins/%/Makefile ; $(MAKE) -C $< uninstall
+clean-p-% : plugins/% plugins/%/Makefile ; $(MAKE) -C $< clean
+distclean-p-% : plugins/% plugins/%/Makefile ; $(MAKE) -C $< distclean
+dist-p-% : plugins/% plugins/%/Makefile ; $(MAKE) -C $< dist
# implicit rules ###################################################
-b := @
-# build shell scripts
-$(myoutdir)/% : $(mysrcdir)/%.sh $(myoutdir)
- $(INSTALL_PROGRAM) $< $@
- $(SED) -i \
- -e 's/$bSHELL@/$(subst /,\/,$(SHELL))/g' \
- -e 's/$blibexecdir@/$(subst /,\/,$(libexecdir))/g' \
- -e 's/$bID@/$(subst /,\/,$(id))/g' \
- $@
-
-$(dirs) $(libexecdir)/$(rvs) $(myoutdir) :
+$(dirs) $(libexecdir)/$(rvs) :
$(MKDIR) $@