X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=make%2Fcalcdep.pl;h=3b4ae6b0d7041b3f149489f847504bdcd0330289;hb=6cfa00e862ed9615438c0a1c6faef12f228e46ef;hp=2348edcebdd9f043ba121300281068e39548ae7a;hpb=8320bcc9df1ea89a47257c9f9c70aa6d476beaa8;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/make/calcdep.pl b/make/calcdep.pl index 2348edceb..3b4ae6b0d 100755 --- a/make/calcdep.pl +++ b/make/calcdep.pl @@ -30,6 +30,8 @@ BEGIN { use strict; use warnings FATAL => qw(all); +use File::Basename qw(basename); + use constant { BUILDPATH => $ENV{BUILDPATH}, SOURCEPATH => $ENV{SOURCEPATH} @@ -57,7 +59,7 @@ sub run() { open MAKE, '>real.mk' or die "Could not write real.mk: $!"; chdir "${\SOURCEPATH}/src"; - if ($ENV{PURE_STATIC}) { + if ($ENV{INSPIRCD_STATIC}) { run_static(); } else { run_dynamic(); @@ -85,6 +87,12 @@ END my $out = find_output $file; dep_cpp $file, $out, 'gen-o'; next if $file =~ m#^socketengines/# && $file ne "socketengines/socketengine_$ENV{SOCKETENGINE}.cpp"; + # Having a module in the src directory is a bad idea because it will be linked to the core binary + if ($file =~ /^(m|core)_.*\.cpp/) { + my $correctsubdir = ($file =~ /^m_/ ? "modules" : "coremods"); + print "Error: module $file is in the src directory, put it in src/$correctsubdir instead!\n"; + exit 1; + } push @core_deps, $out; } @@ -114,7 +122,7 @@ END print MAKE < + @\$(SOURCEPATH)/make/unit-cc.pl core-ld \$\@ \$^ \$> inspircd: bin/inspircd @@ -158,10 +166,10 @@ END print MAKE < + \@\$(SOURCEPATH)/make/unit-cc.pl gen-ld \$\@ \$^ \$> -bin/inspircd: obj/ld-extra.cmd $core_mk - \@\$(SOURCEPATH)/make/unit-cc.pl static-ld\$(VERBOSE) \$\@ \$^ \$> +bin/inspircd: $core_mk obj/ld-extra.cmd + \@\$(SOURCEPATH)/make/unit-cc.pl static-ld \$\@ \$^ \$> inspircd: bin/inspircd @@ -225,13 +233,17 @@ sub dep_cpp($$$) { gendep $file; print MAKE "$out: $file $f2dep{$file}\n"; - print MAKE "\t@\$(SOURCEPATH)/make/unit-cc.pl $type\$(VERBOSE) \$\@ \$(SOURCEPATH)/src/$file \$>\n"; + print MAKE "\t@\$(SOURCEPATH)/make/unit-cc.pl $type \$\@ \$(SOURCEPATH)/src/$file \$>\n"; } sub dep_so($) { my($file) = @_; my $out = find_output $file; + my $name = basename $out, '.so'; + print MAKE ".PHONY: $name\n"; + print MAKE "$name: $out\n"; + dep_cpp $file, $out, 'gen-so'; return $out; } @@ -249,8 +261,11 @@ sub dep_dir($$) { closedir DIR; if (@ofiles) { my $ofiles = join ' ', @ofiles; + my $name = basename $outdir; + print MAKE ".PHONY: $name\n"; + print MAKE "$name: $outdir.so\n"; print MAKE "$outdir.so: $ofiles\n"; - print MAKE "\t@\$(SOURCEPATH)/make/unit-cc.pl link-dir\$(VERBOSE) \$\@ ${\SOURCEPATH}/src/$dir \$^ \$>\n"; + print MAKE "\t@\$(SOURCEPATH)/make/unit-cc.pl link-dir \$\@ ${\SOURCEPATH}/src/$dir \$^ \$>\n"; return 1; } else { return 0;