diff options
author | Luke Shumaker <luke@HP-dv6426us-u904.(none)> | 2009-10-29 22:00:30 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-06-26 00:30:18 -0600 |
commit | 22568919e9bdf29557be5aa3c69857d815a93751 (patch) | |
tree | 68e7d8fcca18d266962ae7b752ee8d05dcdf6f9d | |
parent | 5688c8498f178feb364afdb714f580b295e983a0 (diff) |
rework rvs's build system, currently, it doesn't build :(
it fails on the plugins, the wrapper works fine
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | Makefile.in | 4 | ||||
-rw-r--r-- | rvs/plugins/Makefile | 42 | ||||
-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.in | 71 | ||||
-rw-r--r-- | rvs/plugins/plugin.mk.in | 79 | ||||
-rw-r--r-- | rvs/plugins/users/info.mk.in (renamed from rvs/plugins/users/info.mk) | 0 | ||||
-rw-r--r-- | rvs/wrapper/main.mk.in | 2 | ||||
-rw-r--r-- | rvs/wrapper/runcom.c | 15 |
10 files changed, 113 insertions, 111 deletions
@@ -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; } |