* added a TMPFILES variable. Place all files there which should be removed on
authorBernd Petrovitsch <bernd@firmix.at>
Sun, 4 Nov 2007 19:07:43 +0000 (19:07 +0000)
committerBernd Petrovitsch <bernd@firmix.at>
Sun, 4 Nov 2007 19:07:43 +0000 (19:07 +0000)
  a "clean" (which are usually temporary files - thus the name).
* Killed the recursive make of the src/cfgparser directory
 - extracted the directory-local dependencies etc. into src/cfgparser/local.mk
   src/cfgparser/Makefile retains all of the rest to build in the local directory.
   Does actually anyone need that?
 - include'ing that in Makefile
 - removed all special handling/casing of cfgparser parts in Makefile
* cleanup: plugin rules are now all more similar

Makefile
src/cfgparser/Makefile
src/cfgparser/local.mk [new file with mode: 0644]

index ce6715e..7f2f897 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -35,7 +35,7 @@
 # to the project. For more information see the website or contact
 # the copyright holders.
 #
-# $Id: Makefile,v 1.102 2007/11/02 10:11:43 bernd67 Exp $
+# $Id: Makefile,v 1.103 2007/11/04 19:07:43 bernd67 Exp $
 
 VERS =         0.5.5pre
 
@@ -53,23 +53,17 @@ endif
 
 SWITCHDIR =    src/olsr_switch
 CFGDIR =       src/cfgparser
-CFGOBJS =      $(CFGDIR)/oscan.o $(CFGDIR)/oparse.o $(CFGDIR)/olsrd_conf.o
-CFGDEPS =      $(wildcard $(CFGDIR)/*.[ch]) $(CFGDIR)/oparse.y $(CFGDIR)/oscan.lex
+include $(CFGDIR)/local.mk
 TAG_SRCS =     $(SRCS) $(HDRS) $(wildcard $(CFGDIR)/*.[ch] $(SWITCHDIR)/*.[ch])
 
+.PHONY: default_target cfgparser switch
 default_target: cfgparser $(EXENAME)
 
-$(EXENAME):    $(OBJS) $(CFGOBJS) src/builddata.o
+$(EXENAME):    $(OBJS) src/builddata.o
                $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
 
-cfgparser:     $(CFGDEPS)
-               $(MAKECMD) -C $(CFGDIR)
-
 switch:                
-               $(MAKECMD) -C $(SWITCHDIR)
-
-$(CFGOBJS):
-               $(MAKECMD) -C $(CFGDIR)
+       $(MAKECMD) -C $(SWITCHDIR)
 
 # generate it always
 .PHONY: src/builddata.c
@@ -84,18 +78,16 @@ src/builddata.c:
 .PHONY: help libs clean_libs libs_clean clean uberclean install_libs libs_install install_bin install_olsrd install build_all install_all clean_all 
 
 clean:
-               -rm -f $(OBJS) $(SRCS:%.c=%.d) $(EXENAME) $(EXENAME).exe src/builddata.c
+       -rm -f $(OBJS) $(SRCS:%.c=%.d) $(EXENAME) $(EXENAME).exe src/builddata.c $(TMPFILES)
 ifeq ($(OS), win32)
-               -rm -f libolsrd.a
+       -rm -f libolsrd.a
 endif
-               $(MAKECMD) -C $(CFGDIR) clean
 
 uberclean:     clean clean_libs
-               -rm -f $(TAGFILE)
-               # BSD-xargs has no "--no-run-if-empty" aka "-r"
-               find . \( -name '*.[od]' -o -name '*~' \) -print0 | xargs -0 rm -f
-               $(MAKECMD) -C $(CFGDIR) uberclean
-               $(MAKECMD) -C $(SWITCHDIR) clean
+       -rm -f $(TAGFILE)
+#      BSD-xargs has no "--no-run-if-empty" aka "-r"
+       find . \( -name '*.[od]' -o -name '*~' \) -print0 | xargs -0 rm -f
+       $(MAKECMD) -C $(SWITCHDIR) clean
 
 install: install_olsrd
 
@@ -154,14 +146,17 @@ httpinfo:
 
 tas:
                $(MAKECMD) -C lib/tas clean
+               $(MAKECMD) -C lib/tas
                $(MAKECMD) -C lib/tas DESTDIR=$(DESTDIR) install
 
 dot_draw:
                $(MAKECMD) -C lib/dot_draw clean
+               $(MAKECMD) -C lib/dot_draw
                $(MAKECMD) -C lib/dot_draw DESTDIR=$(DESTDIR) install
 
 nameservice:
                $(MAKECMD) -C lib/nameservice clean
+               $(MAKECMD) -C lib/nameservice
                $(MAKECMD) -C lib/nameservice DESTDIR=$(DESTDIR) install
 
 dyn_gw:
@@ -195,6 +190,6 @@ quagga:
                $(MAKECMD) -C lib/quagga DESTDIR=$(DESTDIR) install 
 
 
-build_all:     all cfgparser $(EXENAME) switch libs
+build_all:     all $(EXENAME) switch libs
 install_all:   install install_libs
 clean_all:     uberclean clean_libs
index 3b5f1ce..b1a6874 100644 (file)
 # to the project. For more information see the website or contact
 # the copyright holders.
 #
-# $Id: Makefile,v 1.30 2007/09/17 21:44:15 bernd67 Exp $
+# $Id: Makefile,v 1.31 2007/11/04 19:07:43 bernd67 Exp $
 
 TOPDIR=../..
 include $(TOPDIR)/Makefile.inc
 
-SRCS =         olsrd_conf.c  oparse.c  oscan.c cfgfile_gen.c
-HDRS =         olsrd_conf.h  oparse.h
+# delete the variables from above
+SRCS =
+HDRS =
+
+include local.mk
 
 ifeq ($(OS), win32)
 
@@ -82,42 +85,19 @@ NAME =              $(LIBNAME)
 
 endif
 
+.PHONY: install clean uberclean
 
+# Targets
 default_target: $(NAME)
 
 $(NAME):       $(OBJS)
                $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS)
 
-oscan.c:       oscan.lex Makefile
-               $(FLEX) -Cem -ooscan.c-tmp oscan.lex
-               sed     -e '/^static/s/yy_get_next_buffer[\(][\)]/yy_get_next_buffer(void)/' \
-                       -e '/^static/s/yy_get_previous_state[\(][\)]/yy_get_previous_state(void)/' \
-                       -e '/^static/s/yygrowstack[\(][\)]/yygrowstack(void)/' \
-                       -e '/^static/s/input[\(][\)]/input(void)/' \
-                       -e '/^static  *void  *yy_fatal_error/s/^\(.*)\);$$/\1 __attribute__((noreturn));/' \
-                       -e '/^#line/s/$(subst .,\.,$@-tmp)/$@/' \
-                       < oscan.c-tmp >oscan.c
-               $(RM) oscan.c-tmp
-
-oscan.o: CFLAGS := $(filter-out -Wunreachable-code -Wsign-compare, $(CFLAGS)) -Wno-sign-compare
-
-oparse.c:      oparse.y olsrd_conf.h Makefile
-               $(BISON) -d -o oparse.c oparse.y
-
-oparse.o: CFLAGS := $(filter-out -Wunreachable-code, $(CFLAGS))
-
-
-.PHONY: install clean uberclean
-
 install:
                install -D -m 755 $(NAME) $(LIBDIR)/$(NAME)
                /sbin/ldconfig -n $(LIBDIR)
 
 clean:
-               rm -f *.[od~] oscan.c oparse.[ch]
-               rm -f $(LIBNAME)
-               rm -f $(BINNAME)
-               $(RM) oparse.c-tmp
+               rm -f *.[od~] $(LIBNAME) $(BINNAME) $(TMPFILES)
 
 uberclean:     clean
-               rm -f oparse.c oparse.h oscan.c
diff --git a/src/cfgparser/local.mk b/src/cfgparser/local.mk
new file mode 100644 (file)
index 0000000..c120cc8
--- /dev/null
@@ -0,0 +1,78 @@
+
+# The olsr.org Optimized Link-State Routing daemon(olsrd)
+# Copyright (c) 2004, Andreas T√łnnesen(andreto@olsr.org)
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without 
+# modification, are permitted provided that the following conditions 
+# are met:
+#
+# * Redistributions of source code must retain the above copyright 
+#   notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright 
+#   notice, this list of conditions and the following disclaimer in 
+#   the documentation and/or other materials provided with the 
+#   distribution.
+# * Neither the name of olsr.org, olsrd nor the names of its 
+#   contributors may be used to endorse or promote products derived 
+#   from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# Visit http://www.olsr.org for more information.
+#
+# If you find this software useful feel free to make a donation
+# to the project. For more information see the website or contact
+# the copyright holders.
+#
+# $Id: local.mk,v 1.1 2007/11/04 19:07:43 bernd67 Exp $
+
+# avoid the $(if) everywhere
+C=$(if $(CFGDIR),$(CFGDIR)/)
+
+# add the variables as we may have others already there
+SRCS += $(foreach file,olsrd_conf oparse oscan cfgfile_gen,$(C)$(file).c)
+OBJS += $(foreach file,olsrd_conf oparse oscan cfgfile_gen,$(C)$(file).o)
+HDRS += $(foreach file,olsrd_conf oparse,$(C)$(file).h)
+
+$(C)oscan.c: $(C)oscan.lex $(C)Makefile
+       $(FLEX) -Cem -o"$@-tmp" "$<"
+       sed     -e '/^static/s/yy_get_next_buffer[\(][\)]/yy_get_next_buffer(void)/' \
+               -e '/^static/s/yy_get_previous_state[\(][\)]/yy_get_previous_state(void)/' \
+               -e '/^static/s/yygrowstack[\(][\)]/yygrowstack(void)/' \
+               -e '/^static/s/input[\(][\)]/input(void)/' \
+               -e '/^static  *void  *yy_fatal_error/s/^\(.*)\);$$/\1 __attribute__((noreturn));/' \
+               -e 's/register //' \
+               -e '/^#line/s/$(call quote,$@-tmp)/$(call quote,$@)/' \
+               < "$@-tmp" >"$@"
+       $(RM) "$@-tmp"
+
+# we need a dependency to generate oparse before we compile oscan.c
+$(C)oscan.o: $(C)oparse.c
+$(C)oscan.o: CFLAGS := $(filter-out -Wunreachable-code -Wsign-compare,$(CFLAGS)) -Wno-sign-compare
+# we need potentially another -I directory
+$(C)oscan.o: CPPFLAGS += $(if $(CFGDIR),-I$(CFGDIR))
+
+$(C)oparse.c: $(C)oparse.y $(C)olsrd_conf.h $(C)Makefile
+       $(BISON) -d -o "$@-tmp" "$<"
+       sed     -e 's/register //' \
+               -e '/^#line/s/$(call quote,$@-tmp)/$(call quote,$@)/' \
+               < "$@-tmp" >"$@"
+       mv "$(subst .c,.h,$@-tmp)" "$(subst .c,.h,$@)"
+       $(RM) "$@-tmp" "$(subst .c,.h,$@-tmp)"
+
+$(C)oparse.o: CFLAGS := $(filter-out -Wunreachable-code,$(CFLAGS))
+
+# and a few files to be cleaned
+TMPFILES += $(foreach pat,oscan.c oparse.c oparse.h,$(C)$(pat) $(C)$(pat)-tmp)