From: Jelmer Vernooij Date: Wed, 21 Jan 2009 16:21:45 +0000 (+0100) Subject: Automagically expand includes in Makefile.in during configure time X-Git-Tag: samba-4.0.0alpha7~441 X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=commitdiff_plain;h=2c1d70ab79ef3ae9de8074cae7e11cfaa1a84810;ds=sidebyside Automagically expand includes in Makefile.in during configure time when make is not GNU Make. --- diff --git a/source3/configure.in b/source3/configure.in index 4191915f96f..f1004778f40 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -6374,7 +6374,17 @@ else fi fi -AC_OUTPUT(Makefile +AC_SUBST(MAKEFILE) +if test x$samba_cv_gnu_make = xyes; then + MAKEFILE=Makefile +else + # When we don't have GNU Make, generate a copy of Makefile.in + # that doesn't have the "include " statements but just includes + # the files verbatim. + MAKEFILE=Makefile-noincludes + $PERL ./script/expand-includes.pl Makefile.in > $MAKEFILE.in +fi +AC_OUTPUT($MAKEFILE script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh lib/netapi/examples/Makefile lib/netapi/tests/Makefile @@ -6384,6 +6394,12 @@ AC_OUTPUT(Makefile pkgconfig/smbsharemodes.pc ../examples/libsmbclient/Makefile.internal ) +dnl If we had to expand the includes, make tsure the output file is moved back +AC_OUTPUT_COMMANDS([ +if test x$MAKEFILE != Makefile; then + mv $MAKEFILE Makefile +fi +]) ################################################# # Print very concise instructions on building/use diff --git a/source3/script/expand-includes.pl b/source3/script/expand-includes.pl new file mode 100755 index 00000000000..da643630810 --- /dev/null +++ b/source3/script/expand-includes.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl +# Expand the include lines in a Makefile +# Copyright (C) 2009 Jelmer Vernooij +# Published under the GNU GPLv3 or later + +sub process($) +{ + my ($f) = @_; + open(IN, $f) or die("Unable to open $f: $!"); + foreach () { + my $l = $_; + if ($l =~ /^include (.*)$/) { + process($1); + } else { + print $l; + } + } +} + +my $path = shift; +unless ($path) { + print STDERR "Usage: $0 Makefile.in > Makefile-noincludes.in\n"; + exit(1); +} +process($path);