(cd lib/util && exec $(MAKE) $@)
depend: siglist.c signame.c
- @if test "$(srcdir)" != "."; then \
- echo "make depend only supported in the source directory"; \
- exit 1; \
- fi; \
- $(srcdir)/mkdep.pl $(srcdir)/lib/util/Makefile.in \
- $(srcdir)/plugins/sample/Makefile.in \
- $(srcdir)/plugins/group_file/Makefile.in \
- $(srcdir)/plugins/sudoers/Makefile.in \
- $(srcdir)/plugins/system_group/Makefile.in \
- $(srcdir)/src/Makefile.in $(srcdir)/lib/zlib/Makefile.in; \
- ./config.status --file $(srcdir)/lib/util/Makefile \
- --file $(srcdir)/plugins/sample/Makefile \
- --file $(srcdir)/plugins/group_file/Makefile \
- --file $(srcdir)/plugins/sudoers/Makefile \
- --file $(srcdir)/plugins/system_group/Makefile \
- --file $(srcdir)/src/Makefile --file $(srcdir)/lib/zlib/Makefile
+ $(top_srcdir)/mkdep.pl --builddir=`pwd` --srcdir=$(top_srcdir) \
+ lib/util/Makefile.in lib/zlib/Makefile.in \
+ plugins/group_file/Makefile.in plugins/sample/Makefile.in \
+ plugins/sudoers/Makefile.in plugins/system_group/Makefile.in \
+ src/Makefile.in && \
+ $(top_builddir)/config.status --file $(top_builddir)/lib/util/Makefile \
+ --file $(top_builddir)/plugins/sample/Makefile \
+ --file $(top_builddir)/plugins/group_file/Makefile \
+ --file $(top_builddir)/plugins/sudoers/Makefile \
+ --file $(top_builddir)/plugins/system_group/Makefile \
+ --file $(top_builddir)/src/Makefile \
+ --file $(top_builddir)/lib/zlib/Makefile
ChangeLog:
if test -d $(srcdir)/.hg && cd $(srcdir); then \
fi
check-dist: update-pot compile-po
- @if [ -d .hg ]; then \
+ @if test -d $(srcdir)/.hg && cd $(srcdir); then \
if test `hg stat -am | wc -l` -ne 0; then \
echo "Uncommitted changes" 1>&2; \
hg stat -am 1>&2; \
dist: check-dist force-dist
force-dist: ChangeLog $(srcdir)/MANIFEST
+ cd $(top_srcdir) && \
pax -w -x ustar -s '/^/$(PACKAGE_TARNAME)-$(VERSION)\//' \
-f ../$(PACKAGE_TARNAME)-$(VERSION).tar \
- `$(SED) 's/[ ].*//' $(srcdir)/MANIFEST`
- gzip -9f ../$(PACKAGE_TARNAME)-$(VERSION).tar
+ `$(SED) 's/[ ].*//' $(srcdir)/MANIFEST` && \
+ gzip -9f ../$(PACKAGE_TARNAME)-$(VERSION).tar && \
ls -l ../$(PACKAGE_TARNAME)-$(VERSION).tar.gz
package: $(srcdir)/sudo.pp
use Fcntl;
use warnings;
-die "usage: $0 Makefile ...\n" unless $#ARGV >= 0;
+die "usage: $0 [--builddir=dir] [--srcdir=dir] Makefile.in ...\n" unless $#ARGV >= 0;
my @incpaths;
my %dir_vars;
my %implicit;
my %generated;
+my $top_builddir = ".";
+my $top_srcdir;
-# Read in MANIFEST fail if present
-my %manifest;
-if (open(MANIFEST, "<MANIFEST")) {
- while (<MANIFEST>) {
- chomp;
- next unless /([^\/]+\.[cly])$/;
- $manifest{$1} = $_;
+# Check for srcdir and/or builddir, if present
+while ($ARGV[0] =~ /^--(src|build)dir=(.*)/) {
+ if ($1 eq 'src') {
+ $top_srcdir = $2;
+ } else {
+ $top_builddir = $2;
}
+ shift @ARGV;
+}
+chdir($top_srcdir) if defined($top_srcdir);
+
+# Read in MANIFEST or fail if not present
+my %manifest;
+die "unable to open MANIFEST: $!\n" unless open(MANIFEST, "<MANIFEST");
+while (<MANIFEST>) {
+ chomp;
+ next unless /([^\/]+\.[cly])$/;
+ $manifest{$1} = $_;
}
foreach (@ARGV) {
$dir_vars{'srcdir'} = $1 || '.';
$dir_vars{'devdir'} = $dir_vars{'srcdir'};
$dir_vars{'authdir'} = $dir_vars{'srcdir'} . "/auth";
+ $dir_vars{'builddir'} = $top_builddir . "/" . $dir_vars{'srcdir'};
$dir_vars{'top_srcdir'} = '.';
#$dir_vars{'top_builddir'} = '.';
$dir_vars{'incdir'} = 'include';
my ($deps, $code, %headers);
if ($src !~ /\//) {
- # XXX - want build dir not src dir
- $src = "$dir_vars{'srcdir'}/$src";
+ # generated file, local to build dir
+ $src = "$dir_vars{'builddir'}/$src";
}
# resolve $(srcdir) etc.