summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <luke@HP-dv6426us-u904.(none)>2009-10-29 22:00:30 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-06-26 00:30:18 -0600
commit22568919e9bdf29557be5aa3c69857d815a93751 (patch)
tree68e7d8fcca18d266962ae7b752ee8d05dcdf6f9d
parent5688c8498f178feb364afdb714f580b295e983a0 (diff)
rework rvs's build system, currently, it doesn't build :(
it fails on the plugins, the wrapper works fine
-rw-r--r--Makefile11
-rw-r--r--Makefile.in4
-rw-r--r--rvs/plugins/Makefile42
-rw-r--r--rvs/plugins/filedata/info.mk.in (renamed from rvs/plugins/filedata/info.mk)0
-rw-r--r--rvs/plugins/files/info.mk.in (renamed from rvs/plugins/files/info.mk)0
-rw-r--r--rvs/plugins/main.mk.in71
-rw-r--r--rvs/plugins/plugin.mk.in79
-rw-r--r--rvs/plugins/users/info.mk.in (renamed from rvs/plugins/users/info.mk)0
-rw-r--r--rvs/wrapper/main.mk.in2
-rw-r--r--rvs/wrapper/runcom.c15
10 files changed, 113 insertions, 111 deletions
diff --git a/Makefile b/Makefile
index 260b95f..5840c65 100644
--- a/Makefile
+++ b/Makefile
@@ -42,8 +42,7 @@ commit : distclean
%/Makefile.in : Makefile.in %/; cp $< $@
distclean-mods = $(addprefix distclean-,$(mods))
-
-.PHONY : distclean $(distclean-mods)
+#.PHONY : distclean $(distclean-mods)
distclean : $(distclean-mods)
distclean-% : % %/
$(RM) -r $<-build/
@@ -57,11 +56,11 @@ complete-% : %/
find $< -type d -exec cp Makefile.in '{}' \;
%-build : %/; $(MKDIR) $@
-%-build/Makefile : %-build %/configure
+%-build/Makefile : %-build complete-%
cd $<; ../$(patsubst %-build,%/,$<)/configure
$(MAKE) -C $< Makefiles
-build-% : %-build complete-% %-build/Makefile; $(MAKE) -C $<
-install-% : %-build; $(MAKE) -C $< install
-clean-% : %-build; $(MAKE) -C $< clean
+build-% : %-build %-build/Makefile; $(MAKE) -C $<
+install-% : %-build %-build/Makefile; $(MAKE) -C $< install
+clean-% : %-build %-build/Makefile; $(MAKE) -C $< clean
diff --git a/Makefile.in b/Makefile.in
index fe2a268..b6ce55e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -80,5 +80,7 @@ Makefiles : $(shell find '$(srcdir)' -type f -name Makefile.in) \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
-include $(csources:.c=.d)
+ifneq ($(shell ls -d $(csources:.c=.d) 2>/dev/null),)
+ include $(csources:.c=.d)
+endif
diff --git a/rvs/plugins/Makefile b/rvs/plugins/Makefile
deleted file mode 100644
index 53ebc17..0000000
--- a/rvs/plugins/Makefile
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/make -f
-name=rvs plugins
-#version='1.0'
-# Copyright (C) 2009 Luke Shumaker
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING.
-# If not, see <http://www.gnu.org/licenses>.
-
-# programs
-SHELL = /bin/sh
-
-# variables
-mods = $(patsubst ./%,%,$(shell find ./* -maxdepth 0 -type d))
-
-.PHONY : all
-all : build
-
-.PHONY : install build
-install : $(addprefix install-,$(mods))
-build : $(addprefix build-,$(mods))
-
-.SECONDARY:
-
-%/main.mk : main.mk %/; cp $< $@
-
-complete-% : %/ %/main.mk
-build-% : %/ complete-% %/main.mk; $(MAKE) -C $<
-install-% : %/ complete-% %/main.mk; $(MAKE) -C $< install
-clean-% : %/ complete-% %/main.mk; $(MAKE) -C $< clean
-distclean-% : %/ complete-% %/main.mk; $(MAKE) -C $< distclean
-
diff --git a/rvs/plugins/filedata/info.mk b/rvs/plugins/filedata/info.mk.in
index 77643cd..77643cd 100644
--- a/rvs/plugins/filedata/info.mk
+++ b/rvs/plugins/filedata/info.mk.in
diff --git a/rvs/plugins/files/info.mk b/rvs/plugins/files/info.mk.in
index d7ccb97..d7ccb97 100644
--- a/rvs/plugins/files/info.mk
+++ b/rvs/plugins/files/info.mk.in
diff --git a/rvs/plugins/main.mk.in b/rvs/plugins/main.mk.in
index ed5dca8..8ffa1d7 100644
--- a/rvs/plugins/main.mk.in
+++ b/rvs/plugins/main.mk.in
@@ -1,7 +1,6 @@
#!/usr/bin/make -f
-#name=rvs plugin Makefile
-#ver=0.9
-include info.mk # this contains the actuall name/version for the plugin
+#name=rvs plugins
+#version='1.0'
# Copyright (C) 2009 Luke Shumaker
#
# This program is free software; you can redistribute it and/or
@@ -18,62 +17,22 @@ include info.mk # this contains the actuall name/version for the plugin
# along with this program; see the file COPYING.
# If not, see <http://www.gnu.org/licenses>.
-rvs = @name@
-id = $(name)-$(ver)
+mods = $(patsubst ./%,%,$(shell find ./* -maxdepth 0 -type d))
-# phony targets ####################################################
-all : $(name)
-.PHONY : $(name) install uninstall clean distclean dist
-.SUFFIXES :
+.PHONY : all
+all : build
-# build ############################################################
-mysrcdir = $(srcdir)/plugins/$(name)
-myoutdir = out
+.PHONY : install build
+install : $(addprefix install-,$(mods))
+build : $(addprefix build-,$(mods))
-srcFiles = $(filter-out %/Makefile.in,$(shell find $(mysrcdir)/ -type f))
+.SECONDARY:
-shSrcFiles = $(filter %.sh,$(srcFiles))
-shOutFiles = $(patsubst $(mysrcdir)/%,$(myoutdir)/%,$(basename $(shSrcFiles)))
+%/main.mk : plugin.mk %/; cp $< $@
-$(name) : $(myoutdir) $(shOutFiles) $(myoutdir)/plugin.conf
-
-$(myoutdir)/plugin.conf : $(mysrcdir)/plugin.conf
- $(INSTALL_DATA) $< $@
-
-# (un)install ######################################################
-
-install : all
- $(RVS) install $(name)-$(ver) $(myoutdir)
-
-uninstall :
- $(RVS) uninstall $(name)
-
-# clean ############################################################
-
-clean :
-
-distclean : clean
- $(RM) Makefile
- $(RM) -r out
-
-# 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' \
- $@
-
-plugin.conf : plugin.conf.in
- $(SED) \
- -e 's/$bname@/$(subst /,\/,$(name))/g' \
- -e 's/$bver@/$(subst /,\/,$(ver))/g' \
- $< > $@
-
-$(DESTDIR)$(libexecdir)/$(rvs) $(myoutdir) :
- $(MKDIR) $@
+complete-% : %/ %/main.mk
+build-% : %/ complete-% %/main.mk; $(MAKE) -C $<
+install-% : %/ complete-% %/main.mk; $(MAKE) -C $< install
+clean-% : %/ complete-% %/main.mk; $(MAKE) -C $< clean
+distclean-% : %/ complete-% %/main.mk; $(MAKE) -C $< distclean
diff --git a/rvs/plugins/plugin.mk.in b/rvs/plugins/plugin.mk.in
new file mode 100644
index 0000000..ed5dca8
--- /dev/null
+++ b/rvs/plugins/plugin.mk.in
@@ -0,0 +1,79 @@
+#!/usr/bin/make -f
+#name=rvs plugin Makefile
+#ver=0.9
+include info.mk # this contains the actuall name/version for the plugin
+# Copyright (C) 2009 Luke Shumaker
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; see the file COPYING.
+# If not, see <http://www.gnu.org/licenses>.
+
+rvs = @name@
+id = $(name)-$(ver)
+
+# phony targets ####################################################
+all : $(name)
+.PHONY : $(name) install uninstall clean distclean dist
+.SUFFIXES :
+
+# build ############################################################
+mysrcdir = $(srcdir)/plugins/$(name)
+myoutdir = out
+
+srcFiles = $(filter-out %/Makefile.in,$(shell find $(mysrcdir)/ -type f))
+
+shSrcFiles = $(filter %.sh,$(srcFiles))
+shOutFiles = $(patsubst $(mysrcdir)/%,$(myoutdir)/%,$(basename $(shSrcFiles)))
+
+$(name) : $(myoutdir) $(shOutFiles) $(myoutdir)/plugin.conf
+
+$(myoutdir)/plugin.conf : $(mysrcdir)/plugin.conf
+ $(INSTALL_DATA) $< $@
+
+# (un)install ######################################################
+
+install : all
+ $(RVS) install $(name)-$(ver) $(myoutdir)
+
+uninstall :
+ $(RVS) uninstall $(name)
+
+# clean ############################################################
+
+clean :
+
+distclean : clean
+ $(RM) Makefile
+ $(RM) -r out
+
+# 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' \
+ $@
+
+plugin.conf : plugin.conf.in
+ $(SED) \
+ -e 's/$bname@/$(subst /,\/,$(name))/g' \
+ -e 's/$bver@/$(subst /,\/,$(ver))/g' \
+ $< > $@
+
+$(DESTDIR)$(libexecdir)/$(rvs) $(myoutdir) :
+ $(MKDIR) $@
+
diff --git a/rvs/plugins/users/info.mk b/rvs/plugins/users/info.mk.in
index 8289128..8289128 100644
--- a/rvs/plugins/users/info.mk
+++ b/rvs/plugins/users/info.mk.in
diff --git a/rvs/wrapper/main.mk.in b/rvs/wrapper/main.mk.in
index 7959612..7d9cc19 100644
--- a/rvs/wrapper/main.mk.in
+++ b/rvs/wrapper/main.mk.in
@@ -28,7 +28,7 @@ CFLAGS = -g \
-Dplugin_conf=\"plugin.conf\"
# phony targets ####################################################
-all : rvs runcom Makefiles
+all : Makefiles rvs runcom
.PHONY : install uninstall clean distclean dist install-runcom
.SUFFIXES : .c .o
VPATH = $(srcdir)/wrapper
diff --git a/rvs/wrapper/runcom.c b/rvs/wrapper/runcom.c
index 5928bb3..30603a2 100644
--- a/rvs/wrapper/runcom.c
+++ b/rvs/wrapper/runcom.c
@@ -41,15 +41,20 @@ main ( int argc, char *argv[] )
plugins=load_plugins(stdin);
struct plugin_command_list *list;
if ( strchr(argv[1],'/') == NULL )
+ /* this is a normal command */
list=plugin_find_commands(plugins,argv[1]);
else {
/* this is a command for a specific plugin */
- list=xmalloc(sizeof(*list));
- list->command=plugin_depend_parse(stralloc(argv[1]));
- list->next=NULL;
+
+ list=xmalloc(sizeof(*list)); list->next=NULL;
+
+ list->command=plugin_depend_parse(
+ // | command-name |plugins|ret if name==""|
+ stralloc(argv[1]),plugins,NULL);
if ( list->command == NULL ) {
- /* plugin_depend_parse should fail the program*\
- \* on its own, but just to be safe... */
+ // `command->list' should be NULL if
+ // no plugin/command was found
+ // no command was specified (argv[1]=="")
plugin_free_list(list);
list=NULL;
}