]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
Whoops, wrong include dir
[user/henk/code/inspircd.git] / configure
index dcf3d2aa305b48d39d49572b0a186670150ba83d..d586d5634b1e0a3558260c08a49b0b07b9027dc4 100755 (executable)
--- a/configure
+++ b/configure
@@ -1007,6 +1007,17 @@ EOF
        }
        chomp($modules);   # Remove Redundant whitespace..
 
+       opendir(DIRHANDLE, "src/modules");
+       foreach $name (sort readdir(DIRHANDLE)) {
+               if ($name =~ /^m_(.+?)$/) {
+                       if (opendir(MDIRHANDLE, "src/modules/$name") != 0) {
+                               closedir(MDIRHANDLE);
+                               $modules .= "$name.so ";
+                       }
+               }
+       }
+       closedir(DIRHANDLE);
+
 
        # Write all .in files.
        my $tmp = "";
@@ -1174,6 +1185,7 @@ EOENT
                        print "done\n";
                }
        }
+
        print MODLIST "{0}};\n\n#endif\n";
        close(MODLIST);
 }
@@ -1214,26 +1226,64 @@ EOF
        my $crud = "";
 
        foreach $i (@modlist) {
-       ###
-       # Write Entry to the MakeFile
-       ###
-       $cmflags = getcompilerflags("src/modules/m_".$i.".cpp");
-       $liflags = getlinkerflags("src/modules/m_".$i.".cpp");
-       $deps = getdependencies("src/modules/m_".$i.".cpp");
-
-       #print "file: $i: cmflags=$cmflags; liflags=$liflags; deps=$deps\n";
-
-       print FILEHANDLE <<EOCHEESE;
+               ###
+               # Write Entry to the MakeFile
+               ###
+               $cmflags = getcompilerflags("src/modules/m_".$i.".cpp");
+               $liflags = getlinkerflags("src/modules/m_".$i.".cpp");
+               $deps = getdependencies("src/modules/m_".$i.".cpp");
+       
+               #print "file: $i: cmflags=$cmflags; liflags=$liflags; deps=$deps\n";
+       
+               print FILEHANDLE <<EOCHEESE;
 m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $deps
        \$(CC) -pipe -I../../include \$(FLAGS) $cmflags -export-dynamic -c m_$i.cpp
        \$(CC) -pipe \$(FLAGS) -shared $liflags -o m_$i.so m_$i.o $extra
 
 EOCHEESE
-       $crud = $crud . "       install -m \$(INSTMODE) m_$i.so \$(MODPATH)\n";
+               $crud = $crud . "       install -m \$(INSTMODE) m_$i.so \$(MODPATH)\n";
 ###
-       # End Write Entry to the MakeFile
-       ###
+               # End Write Entry to the MakeFile
+               ###
        }
+
+       opendir(DIRHANDLE, "src/modules");
+       foreach $name (sort readdir(DIRHANDLE)) {
+               if ($name =~ /^m_(.+?)$/) {
+                       $crapola = "";
+                       $crap2 = "ar r $name.a ";
+                       $crap3 = "";
+                       # A module made of multiple files, in a dir, e.g. src/modules/m_spanningtree/
+                       if (opendir(MDIRHANDLE, "src/modules/$name") != 0) {
+                               print "Composing Makefile rules for directory \033[1;32m$name\033[0m... ";
+                               my $i = 0;
+                               print FILEHANDLE "$name.a: ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h $deps"; 
+                               foreach $fname (sort readdir(MDIRHANDLE)) {
+                                       if ($fname =~ /\.cpp$/) {
+                                               $cmflags = getcompilerflags("src/modules/$name/$fname");
+                                               $liflags = getlinkerflags("src/modules/$name/$fname");
+                                               $deps = getdependencies("src/modules/$name/$fname");
+                                               print FILEHANDLE " $name/$fname";
+                                               $crapola = $crapola . " \$(CC) -pipe -I../../include \$(FLAGS) $cmflags -export-dynamic -c $name/$fname\n";
+                                               $oname = $fname;
+                                               $oname =~ s/\.cpp$/.o/g;
+                                               $crap2 = $crap2 . " $oname";
+                                               $crap3 = $crap3 . " $name/$fname";
+                                               $i++;
+                                       }
+                               }
+                               print "(\033[1;32m$i files found\033[0m)\n";
+                               print FILEHANDLE "\n$crapola\n";
+                               print FILEHANDLE "$name.so: $name.a ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/configreader.h$crap3\n   $crap2\n";
+                               print FILEHANDLE "      ranlib $name.a$crap3\n";
+                               print FILEHANDLE "      \$(CC) -pipe $liflags -shared -o $name.so $name.a\n";
+                               closedir(MDIRHANDLE);
+                               $crud = $crud . "       install -m \$(INSTMODE) $name.so \$(MODPATH)\n";
+                       }
+               }
+       }
+       closedir(DIRHANDLE);
+
        print FILEHANDLE "modinst:\n    \@echo \"Installing modules...\"\n" . $crud;
 }