summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmake/calcdep.pl9
-rw-r--r--make/template/main.mk16
2 files changed, 13 insertions, 12 deletions
diff --git a/make/calcdep.pl b/make/calcdep.pl
index 99355efa4..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}
@@ -238,6 +240,10 @@ 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;
}
@@ -255,6 +261,9 @@ 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 \$\@ ${\SOURCEPATH}/src/$dir \$^ \$>\n";
return 1;
diff --git a/make/template/main.mk b/make/template/main.mk
index 4845d0dde..077084280 100644
--- a/make/template/main.mk
+++ b/make/template/main.mk
@@ -137,15 +137,9 @@ export SOURCEPATH
# Default target
TARGET = all
-ifdef INSPIRCD_MODULE
+ifdef INSPIRCD_TARGET
HEADER = mod-header
FOOTER = mod-footer
- TARGET = modules/$(INSPIRCD_MODULE:.so=).so
-endif
-
-ifdef INSPIRCD_TARGET
- HEADER =
- FOOTER = target
TARGET = $(INSPIRCD_TARGET)
endif
@@ -178,10 +172,10 @@ debug-header:
mod-header:
ifdef INSPIRCD_STATIC
- @echo 'Cannot build single modules in pure-static build'
+ @echo 'Cannot build specific targets in pure-static build'
@exit 1
endif
- @echo 'Building single module:'
+ @echo 'Building specific targets:'
mod-footer: target
@echo 'To install, copy $(BUILDPATH)/$(TARGET) to $(MODPATH)'
@@ -308,9 +302,7 @@ help:
@echo ' Currently installs to ${BASE}'
@echo ' debug Compile a debug build. Equivalent to "make D=1 all"'
@echo ''
- @echo ' INSPIRCD_MODULE=m_foo Builds a single module (core_foo also works here)'
- @echo ' INSPIRCD_TARGET=target Builds a user-specified target, such as "inspircd" or "modules"'
- @echo ' Other targets are specified by their path in the build directory'
+ @echo ' INSPIRCD_TARGET=target Builds a user-specified target, such as "inspircd" or "core_dns"'
@echo ' Multiple targets may be separated by a space'
@echo ''
@echo ' clean Cleans object files produced by the compile'