]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Replace special treatment of spanningtree module directory with a generic directory...
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 1 Sep 2009 15:06:11 +0000 (15:06 +0000)
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>
Tue, 1 Sep 2009 15:06:11 +0000 (15:06 +0000)
This allows "make M=m_spanningtree" to work on a clean build tree
It also allows for other complex modules to be created (i.e. m_services)

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11567 e03df62e-2008-0410-955e-edbf42e46eb7

.Makefile.inc
make/bsd-dep.mk
make/bsd-real.mk
make/calcdep.pl
make/gnu-dep.mk
make/gnu-real.mk

index 00cb9c2ecc51bc48bf812b714318fca74215f8b6..99cf6f6e2b4410640b85b4c59344967ad50c945c 100644 (file)
@@ -90,8 +90,8 @@ allreal: $(HEADER) alldep
        @$(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk all
 
 module:
-       @cd src; ../make/calcdep.pl modules/$(MODNAME).cpp
-       @$(MAKEENV) $(MAKE) -C src -f modules/.$(MODNAME).d modules/$(MODNAME).so
+       cd src; if [ -d modules/$(MODNAME) ]; then ../make/calcdep.pl modules/$(MODNAME) modules/$(MODNAME)/*.cpp; else ../make/calcdep.pl modules/$(MODNAME).cpp; fi
+       $(MAKEENV) $(MAKE) -C src -f ../make/$(MAKESTYLE)-real.mk modules/$(MODNAME).so
 
 debug:
        @${MAKE} D=1 all
index 2e816bdb416c47c7aec83d15d2f2379ecd56e8ab..b283284d01fecb0b2e004edb4e06ddc9b5a48f04 100644 (file)
@@ -1,4 +1,4 @@
-DFILES != perl -e 'print join " ", <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_spanningtree/*.cpp>'
+DFILES != perl -e 'print join " ", <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_*/*.cpp>'
 DFILES += socketengines/$(SOCKETENGINE).cpp threadengines/threadengine_pthread.cpp
 
 alldep:
index 12211e7cb8c23eabb4a9e8b93e0551d17dadcd9b..f12efd2b83f371a5ee57412b618c8da6c1b1e85c 100644 (file)
@@ -1,22 +1,19 @@
 CORE_TARGS != perl -e 'print join " ", grep s/\.cpp/.o/, <*.cpp>, <modes/*.cpp>'
 CMD_TARGS != perl -e 'print join " ", grep s/\.cpp/.so/, <commands/*.cpp>'
 MOD_TARGS != perl -e 'print join " ", grep s/\.cpp/.so/, <modules/*.cpp>'
-SPANNINGTREE_TARGS != perl -e 'print join " ", grep s/\.cpp/.o/, <modules/m_spanningtree/*.cpp>'
+MDIR_TARGS != perl -e 'print join " ", grep s!/?$$!.so!, <modules/m_*/>'
 
 CORE_TARGS += socketengines/$(SOCKETENGINE).o threadengines/threadengine_pthread.o
-MOD_TARGS += modules/m_spanningtree.so
 
-DFILES != perl -e 'print join " ", grep s!([^/]+)\.cpp!.$$1.d!, <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_spanningtree/*.cpp>'
-DFILES += socketengines/.$(SOCKETENGINE).d threadengines/.threadengine_pthread.d
+DFILES != perl -e 'print join " ", grep s!([^/]+)\.cpp!.$$1.d!, <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_*/*.cpp>'
+DFILES2 != perl -e 'print join " ", grep s!([^/]+)/?$$!.$$1.d!, <modules/m_*/>'
+DFILES += $(DFILES2) socketengines/.$(SOCKETENGINE).d threadengines/.threadengine_pthread.d
 
 all: inspircd commands modules
 
 commands: $(CMD_TARGS)
 
-modules: $(MOD_TARGS)
-
-modules/m_spanningtree.so: $(SPANNINGTREE_TARGS)
-       $(RUNCC) $(FLAGS) -shared -export-dynamic -o $@ $(SPANNINGTREE_TARGS)
+modules: $(MOD_TARGS) $(MDIR_TARGS)
 
 inspircd: $(CORE_TARGS)
        $(RUNCC) $(FLAGS) $(CORE_FLAGS) -o inspircd $(LDLIBS) $(CORE_TARGS)
index 92d2cc3e07a6622af67a34bc351b16d4ec903c7b..8d85e6463d8ba5eeed8461db1afe7816da7aeda6 100755 (executable)
@@ -32,16 +32,31 @@ sub gendep {
 }
 
 for my $file (@ARGV) {
-       next unless $file =~ /cpp$/;
-       gendep $file;
-       my($path,$base) = $file =~ m#^((?:.*/)?)([^/]+)\.cpp#;
-       my $cmd = "$path.$base.d";
-       my $ext = $path eq 'modules/' || $path eq 'commands/' ? '.so' : '.o';
-       my $out = "$path$base$ext";
+       if (-e $file && $file =~ /cpp$/) {
+               gendep $file;
+               my($path,$base) = $file =~ m#^((?:.*/)?)([^/]+)\.cpp#;
+               my $cmd = "$path.$base.d";
+               my $ext = $path eq 'modules/' || $path eq 'commands/' ? '.so' : '.o';
+               my $out = "$path$base$ext";
 
-       open OUT, '>', $cmd;
-       print OUT "$out: $file $f2dep{$file}\n";
-       print OUT "\t@../make/unit-cc.pl \$(VERBOSE) $file $out\n";
-       print OUT "$cmd: $file $f2dep{$file}\n";
-       print OUT "\t../make/calcdep.pl $file\n";
+               open OUT, '>', $cmd;
+               print OUT "$out: $file $f2dep{$file}\n";
+               print OUT "\t@../make/unit-cc.pl \$(VERBOSE) $file $out\n";
+               print OUT "$cmd: $file $f2dep{$file}\n";
+               print OUT "\t../make/calcdep.pl $file\n";
+       } elsif (-d $file && $file =~ m#^(.*?)([^/]+)/?$#) {
+               my($path,$base) = ($1,$2);
+               my $cmd = "$path.$base.d";
+               my $out = "$path$base.so";
+               opendir DIR, $file;
+               my $ofiles = join ' ', grep s#(.*)\.cpp$#$path$base/$1.o#, readdir DIR;
+               closedir DIR;
+               open OUT, '>', $cmd;
+               print OUT "$out: $ofiles\n\t".'$(RUNCC) $(FLAGS) $(PICLDFLAGS) -o $@ '
+                       .$ofiles."\n";
+               print OUT "$cmd: $file\n\t".'@../make/calcdep.pl '."$path$base\n";
+       } else {
+               print "Cannot generate depencency for $file\n";
+               exit 1;
+       }
 }
index 5cf0927da530ca45a76d734e97bbb46a37f2fb58..cd5b370786429de22872d97f261221c083e22292 100644 (file)
@@ -1,4 +1,4 @@
-CFILES = $(shell perl -e 'print join " ", <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_spanningtree/*.cpp>')
+CFILES = $(shell perl -e 'print join " ", <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_*/*.cpp>')
 CFILES += socketengines/$(SOCKETENGINE).cpp threadengines/threadengine_pthread.cpp
 alldep:
        @../make/calcdep.pl $(CFILES)
index f6d86eb00275f43446463718cd55c19ffb691dfe..28c5afa607b2f3d5665d2096a9c480825e8cb783 100644 (file)
@@ -2,14 +2,14 @@ CORE_TARGS = $(patsubst %.cpp,%.o,$(wildcard *.cpp))
 MODE_TARGS = $(patsubst %.cpp,%.o,$(wildcard modes/*.cpp))
 CMD_TARGS = $(patsubst %.cpp,%.so,$(wildcard commands/*.cpp))
 MOD_TARGS = $(patsubst %.cpp,%.so,$(wildcard modules/*.cpp))
-SPANNINGTREE_TARGS = $(patsubst %.cpp,%.o,$(wildcard modules/m_spanningtree/*.cpp))
 
 CORE_TARGS += threadengines/threadengine_pthread.o
 CORE_TARGS += socketengines/$(SOCKETENGINE).o
 CORE_TARGS += $(MODE_TARGS)
-MOD_TARGS += modules/m_spanningtree.so
+MOD_TARGS += $(shell perl -e 'print join " ", grep s!([^/]+)/$$!$$1.so!, <modules/m_*/>')
 
-DFILES = $(shell perl -e 'print join " ", grep s!([^/]+)\.cpp!.$$1.d!, <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_spanningtree/*.cpp>')
+DFILES = $(shell perl -e 'print join " ", grep s!([^/]+)\.cpp!.$$1.d!, <*.cpp>, <commands/*.cpp>, <modes/*.cpp>, <modules/*.cpp>, <modules/m_*/*.cpp>')
+DFILES += $(shell perl -e 'print join " ", grep s!([^/]+)/?$$!.$$1.d!, <modules/m_*/>')
 DFILES += socketengines/.$(SOCKETENGINE).d threadengines/.threadengine_pthread.d
 
 all: inspircd commands modules
@@ -18,15 +18,15 @@ commands: $(CMD_TARGS)
 
 modules: $(MOD_TARGS)
 
-modules/m_spanningtree.so: $(SPANNINGTREE_TARGS)
-       $(RUNCC) $(FLAGS) $(PICLDFLAGS) -o $@ $(SPANNINGTREE_TARGS)
-
 inspircd: $(CORE_TARGS)
        $(RUNCC) $(FLAGS) $(CORE_FLAGS) -o $@ $(LDLIBS) $(CORE_TARGS)
 
 .%.d: %.cpp
        @../make/calcdep.pl $<
 
+.%.d: %
+       @../make/calcdep.pl $<
+
 .PHONY: all alldep commands modules
 
 -include $(DFILES)