}
my @modlist;
- for my $file (<commands/*.cpp>, <modules/*.cpp>) {
+ for my $file (<commands/*.cpp>) {
my $out = find_output $file;
dep_cpp $file, $out;
push @modlist, $out;
}
opendir my $moddir, 'modules';
- for my $dir (readdir $moddir) {
- next unless $dir =~ /^m_/ && -d "modules/$dir";
- if (dep_dir "modules/$dir") {
- mkdir "$build/obj/$dir";
- push @modlist, "modules/$dir.so";
+ for my $file (readdir $moddir) {
+ next if $file =~ /^\./;
+ if (-e "modules/extra/$file" && !-l "modules/$file") {
+ # Incorrect symlink?
+ print "Replacing symlink for $file found in modules/extra\n";
+ rename "modules/$file", "modules/$file~";
+ symlink "extra/$file", "modules/$file";
+ }
+ if ($file =~ /^m_/ && -d "modules/$file" && dep_dir "modules/$file") {
+ mkdir "$build/obj/$file";
+ push @modlist, "modules/$file.so";
+ }
+ if ($file =~ /^m_.*\.cpp$/) {
+ my $out = find_output "modules/$file";
+ dep_cpp "modules/$file", $out;
+ push @modlist, $out;
}
}
print MAKE <<END;
bin/inspircd: $core_mk
- \$(RUNCC) -o \$\@ \$(CORELDFLAGS) \$(LDLIBS) \$^
+ cd \$(BUILDPATH); \$(RUNCC) -o \$\@ \$(CORELDFLAGS) \$(LDLIBS) \$^ \$>
inspircd: bin/inspircd
modules: $mods
gendep $file;
print MAKE "$out: $file $f2dep{$file}\n";
- print MAKE "\t@\$(SOURCEPATH)/make/unit-cc.pl \$(VERBOSE) \$< \$\@\n";
+ print MAKE "\t@\$(SOURCEPATH)/make/unit-cc.pl \$(VERBOSE) \$\@ \$< \$>\n";
}
sub dep_dir($) {
closedir DIR;
if (@ofiles) {
my $ofiles = join ' ', @ofiles;
- print MAKE "$dir.so: $ofiles\n\t\$(RUNCC) \$(PICLDFLAGS) -o \$\@ \$^\n";
+ print MAKE "$dir.so: $ofiles\n\tcd \$(BUILDPATH); \$(RUNCC) \$(PICLDFLAGS) -o \$\@ \$^ \$>\n";
return 1;
} else {
return 0;