From 105c6fec24c0775fde548c32d87b7e482a0edff3 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 11 Feb 2008 01:42:29 +0100 Subject: [PATCH] Avoid autogenerating the Makefile but rather include a data.mk file that is autogenerated. (This used to be commit 95967e8bfbdce2e073a3fc938f1271da40b543d3) --- .gitignore | 3 +- source4/Makefile | 207 +++++++++++++++++++++++++++ source4/build/smb_build/config_mk.pm | 2 - source4/build/smb_build/main.pl | 2 +- source4/build/smb_build/makefile.pm | 4 - source4/main.mk | 202 -------------------------- source4/rules.mk | 1 - 7 files changed, 210 insertions(+), 211 deletions(-) create mode 100644 source4/Makefile diff --git a/.gitignore b/.gitignore index a85553dc492..7a093f5205a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ autom4te.cache *.hd *.ho *.pyc -Makefile configure source/bin/* config.log @@ -195,3 +194,5 @@ source/libcli/ldap/ldap_ndr.h source/libcli/resolve/lp_proto.h source/apidocs *.swp +source/mkconfig.mk +source/data.mk diff --git a/source4/Makefile b/source4/Makefile new file mode 100644 index 00000000000..3aebc831af9 --- /dev/null +++ b/source4/Makefile @@ -0,0 +1,207 @@ +#!gmake + +include mkconfig.mk + +VPATH = $(builddir):$(srcdir):heimdal_build:heimdal/lib/asn1:heimdal/lib/krb5:heimdal/lib/gssapi:heimdal/lib/hdb:heimdal/lib/roken:heimdal/lib/des + +BASEDIR = $(prefix) +TORTUREDIR = $(libdir)/torture +SWATDIR = $(datadir)/swat +JSDIR = $(datadir)/js +SETUPDIR = $(datadir)/setup +NCALRPCDIR = $(localstatedir)/ncalrpc + +BNLD = $(LD) +BNLD_FLAGS = $(LDFLAGS) + +HOSTCC_FLAGS = -D_SAMBA_HOSTCC_ $(CFLAGS) +HOSTLD_FLAGS = $(LDFLAGS) + +default: all + +include data.mk + +DEFAULT_HEADERS = $(srcdir)/lib/util/dlinklist.h \ + $(srcdir)/version.h + +binaries:: $(BINARIES) +libraries:: $(STATIC_LIBS) $(SHARED_LIBS) +modules:: $(SHARED_MODULES) +headers:: $(PUBLIC_HEADERS) $(DEFAULT_HEADERS) +manpages:: $(MANPAGES) +all:: showflags $(ALL_PREDEP) bin/asn1_compile bin/compile_et binaries modules pythonmods +everything:: all libraries headers + +LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)=$(builddir)/bin/shared + +# 'make testsuite' creates all binaries which are +# needed by samba3's 'make test' and the build-farm +# scripts use that it as fallback in case +# 'make everything' fails +testsuite:: bin/smbclient bin/cifsdd bin/smbtorture bin/nmblookup + +showlayout:: + @echo 'Samba will be installed into:' + @echo ' basedir: $(BASEDIR)' + @echo ' bindir: $(bindir)' + @echo ' sbindir: $(sbindir)' + @echo ' libdir: $(libdir)' + @echo ' modulesdir: $(modulesdir)' + @echo ' includedir: $(includedir)' + @echo ' vardir: $(localstatedir)' + @echo ' privatedir: $(privatedir)' + @echo ' piddir: $(piddir)' + @echo ' lockdir: $(lockdir)' + @echo ' logfilebase: $(logfilebase)' + @echo ' setupdir: $(SETUPDIR)' + @echo ' jsdir: $(JSDIR)' + @echo ' swatdir: $(SWATDIR)' + @echo ' mandir: $(mandir)' + @echo ' torturedir: $(TORTUREDIR)' + @echo ' datadir: $(datadir)' + @echo ' winbindd_socket_dir: $(winbindd_socket_dir)' + +showflags:: + @echo ' srcdir = $(srcdir)' + @echo ' builddir = $(builddir)' + +# The permissions to give the executables +INSTALLPERMS = 0755 + +install:: showlayout everything installbin installdat installswat installmisc installlib \ + installheader installpc installplugins + +# DESTDIR is used here to prevent packagers wasting their time +# duplicating the Makefile. Remove it and you will have the privilege +# of packaging each samba release for multiple versions of multiple +# distributions and operating systems, or at least supplying patches +# to all the packaging files required for this, prior to committing +# the removal of DESTDIR. Do not remove it even though you think it +# is not used. + +installdirs:: + @$(SHELL) $(srcdir)/script/installdirs.sh \ + $(DESTDIR)$(BASEDIR) \ + $(DESTDIR)$(bindir) \ + $(DESTDIR)$(sbindir) \ + $(DESTDIR)$(TORTUREDIR) \ + $(DESTDIR)$(libdir) \ + $(DESTDIR)$(modulesdir) \ + $(DESTDIR)$(mandir) \ + $(DESTDIR)$(localstatedir) \ + $(DESTDIR)$(privatedir) \ + $(DESTDIR)$(datadir) \ + $(DESTDIR)$(piddir) \ + $(DESTDIR)$(lockdir) \ + $(DESTDIR)$(logfilebase) \ + $(DESTDIR)$(privatedir)/tls \ + $(DESTDIR)$(includedir) \ + $(DESTDIR)$(PKGCONFIGDIR) \ + $(DESTDIR)$(sysconfdir) \ + +installbin:: $(SBIN_PROGS) $(BIN_PROGS) $(TORTURE_PROGS) installdirs + @$(SHELL) $(srcdir)/script/installbin.sh \ + $(INSTALLPERMS) \ + $(DESTDIR)$(BASEDIR) \ + $(DESTDIR)$(sbindir) \ + $(DESTDIR)$(libdir) \ + $(DESTDIR)$(localstatedir) \ + $(SBIN_PROGS) + @$(SHELL) $(srcdir)/script/installbin.sh \ + $(INSTALLPERMS) \ + $(DESTDIR)$(BASEDIR) \ + $(DESTDIR)$(bindir) \ + $(DESTDIR)$(libdir) \ + $(DESTDIR)$(localstatedir) \ + $(BIN_PROGS) + @$(SHELL) $(srcdir)/script/installtorture.sh \ + $(INSTALLPERMS) \ + $(DESTDIR)$(TORTUREDIR) \ + $(TORTURE_PROGS) + +installlib:: $(INSTALLABLE_SHARED_LIBS) $(STATIC_LIBS) installdirs + @$(SHELL) $(srcdir)/script/installlib.sh $(DESTDIR)$(libdir) "$(SHLIBEXT)" $(INSTALLABLE_SHARED_LIBS) + #@$(SHELL) $(srcdir)/script/installlib.sh $(DESTDIR)$(libdir) "$(STLIBEXT)" $(STATIC_LIBS) + +installheader:: headers installdirs + @srcdir=$(srcdir) builddir=$(builddir) $(PERL) $(srcdir)/script/installheader.pl $(DESTDIR)$(includedir) $(PUBLIC_HEADERS) $(DEFAULT_HEADERS) + +installdat:: installdirs + @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(datadir) $(srcdir) + +installswat:: installdirs + @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir) + +installman:: manpages installdirs + @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(mandir) $(MANPAGES) + +installmisc:: installdirs + @$(SHELL) $(srcdir)/script/installmisc.sh $(srcdir) $(DESTDIR)$(JSDIR) $(DESTDIR)$(SETUPDIR) $(DESTDIR)$(bindir) + +installpc:: installdirs + @$(SHELL) $(srcdir)/script/installpc.sh $(builddir) $(DESTDIR)$(PKGCONFIGDIR) $(PC_FILES) + +uninstall:: uninstallbin uninstallman uninstallmisc uninstalllib uninstallheader \ + uninstallplugins + +uninstallmisc:: + #FIXME + +uninstallbin:: + @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(sbindir) $(DESTDIR)$(libdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(SBIN_PROGS) + @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(BIN_PROGS) + @$(SHELL) $(srcdir)/script/uninstalltorture.sh $(DESTDIR)$(TORTUREDIR) $(TORTURE_PROGS) + +uninstalllib:: + @$(SHELL) $(srcdir)/script/uninstalllib.sh $(DESTDIR)$(libdir) $(SHARED_LIBS) + #@$(SHELL) $(srcdir)/script/uninstalllib.sh $(DESTDIR)$(libdir) $(STATIC_LIBS) + +uninstallheader:: + @$(SHELL) $(srcdir)/script/uninstallheader.sh $(DESTDIR)$(includedir) $(PUBLIC_HEADERS) + +uninstallman:: + @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(mandir) $(MANPAGES) + +data.mk: config.status $(MK_FILES) + ./config.status + +pidl/Makefile: pidl/Makefile.PL + cd pidl && $(PERL) Makefile.PL + +testcov-html:: pidl-testcov + +pidl-testcov: pidl/Makefile + cd pidl && cover -test + +installpidl:: pidl/Makefile + $(MAKE) -C pidl install + +uninstallpidl:: pidl/Makefile + $(MAKE) -C pidl uninstall + +$(IDL_HEADER_FILES) \ + $(IDL_NDR_PARSE_H_FILES) $(IDL_NDR_PARSE_C_FILES) \ + $(IDL_NDR_CLIENT_C_FILES) $(IDL_NDR_CLIENT_H_FILES) \ + $(IDL_NDR_SERVER_C_FILES) $(IDL_SWIG_FILES) \ + $(IDL_NDR_EJS_C_FILES) $(IDL_NDR_EJS_H_FILES) \ + $(IDL_NDR_PY_C_FILES) $(IDL_NDR_PY_H_FILES): idl + +idl_full:: pidl/lib/Parse/Pidl/IDL.pm pidl/lib/Parse/Pidl/Expr.pm + @CPP="$(CPP)" PERL="$(PERL)" srcdir=$(srcdir) $(srcdir)/script/build_idl.sh FULL + +idl:: pidl/lib/Parse/Pidl/IDL.pm pidl/lib/Parse/Pidl/Expr.pm + @CPP="$(CPP)" PERL="$(PERL)" srcdir=$(srcdir) $(srcdir)/script/build_idl.sh PARTIAL + +pidl/lib/Parse/Pidl/IDL.pm: pidl/idl.yp + -$(YAPP) -m 'Parse::Pidl::IDL' -o pidl/lib/Parse/Pidl/IDL.pm pidl/idl.yp ||\ + touch pidl/lib/Parse/Pidl/IDL.pm + +pidl/lib/Parse/Pidl/Expr.pm: pidl/idl.yp + -$(YAPP) -m 'Parse::Pidl::Expr' -o pidl/lib/Parse/Pidl/Expr.pm pidl/expr.yp ||\ + touch pidl/lib/Parse/Pidl/Expr.pm + +include selftest/config.mk +include rules.mk + +showflags:: + @echo ' pwd = '`/bin/pwd` diff --git a/source4/build/smb_build/config_mk.pm b/source4/build/smb_build/config_mk.pm index b7dc9697a96..aa075490bce 100644 --- a/source4/build/smb_build/config_mk.pm +++ b/source4/build/smb_build/config_mk.pm @@ -251,8 +251,6 @@ sub run_config_mk($$$$) next; } - $line =~ s/^mkinclude /include /; - # empty line if ($line =~ /^[ \t]*$/) { $section = "GLOBAL"; diff --git a/source4/build/smb_build/main.pl b/source4/build/smb_build/main.pl index fb769103d05..ff540215f75 100644 --- a/source4/build/smb_build/main.pl +++ b/source4/build/smb_build/main.pl @@ -80,7 +80,7 @@ foreach my $key (values %$OUTPUT) { defined($key->{PUBLIC_PROTO_HEADER}); } -$mkenv->write("Makefile"); +$mkenv->write("data.mk"); header::create_smb_build_h($OUTPUT, "include/build.h"); cflags::create_cflags($OUTPUT, $config::config{srcdir}, diff --git a/source4/build/smb_build/makefile.pm b/source4/build/smb_build/makefile.pm index 865d231c0c2..0393e2b2589 100644 --- a/source4/build/smb_build/makefile.pm +++ b/source4/build/smb_build/makefile.pm @@ -41,14 +41,10 @@ sub new($$$) $self->{mkfile} = $mkfile; - $self->output("#!gmake\n"); $self->output("################################################\n"); $self->output("# Autogenerated by build/smb_build/makefile.pm #\n"); $self->output("################################################\n"); $self->output("\n"); - $self->output("include mkconfig.mk\n"); - - $self->output("default: all\n\n"); $self->_prepare_compiler_linker(); diff --git a/source4/main.mk b/source4/main.mk index f7ef4b445af..beba4d20392 100644 --- a/source4/main.mk +++ b/source4/main.mk @@ -1,20 +1,3 @@ -VPATH = $(builddir):$(srcdir):heimdal_build:heimdal/lib/asn1:heimdal/lib/krb5:heimdal/lib/gssapi:heimdal/lib/hdb:heimdal/lib/roken:heimdal/lib/des - -BASEDIR = $(prefix) -TORTUREDIR = $(libdir)/torture -SWATDIR = $(datadir)/swat -JSDIR = $(datadir)/js -SETUPDIR = $(datadir)/setup -NCALRPCDIR = $(localstatedir)/ncalrpc - -BNLD = $(LD) -BNLD_FLAGS = $(LDFLAGS) - -HOSTCC_FLAGS = -D_SAMBA_HOSTCC_ $(CFLAGS) -HOSTLD_FLAGS = $(LDFLAGS) - -default: all - include dynconfig.mk include heimdal_build/config.mk include config.mk @@ -46,188 +29,3 @@ include libcli/config.mk include scripting/ejs/config.mk include scripting/python/config.mk include kdc/config.mk - -DEFAULT_HEADERS = $(srcdir)/lib/util/dlinklist.h \ - $(srcdir)/version.h - -binaries:: $(BINARIES) -libraries:: $(STATIC_LIBS) $(SHARED_LIBS) -modules:: $(SHARED_MODULES) -headers:: $(PUBLIC_HEADERS) $(DEFAULT_HEADERS) -manpages:: $(MANPAGES) -all:: showflags $(ALL_PREDEP) bin/asn1_compile bin/compile_et binaries modules pythonmods -everything:: all libraries headers - -LD_LIBPATH_OVERRIDE = $(LIB_PATH_VAR)=$(builddir)/bin/shared - -# 'make testsuite' creates all binaries which are -# needed by samba3's 'make test' and the build-farm -# scripts use that it as fallback in case -# 'make everything' fails -testsuite:: bin/smbclient bin/cifsdd bin/smbtorture bin/nmblookup - -showlayout:: - @echo 'Samba will be installed into:' - @echo ' basedir: $(BASEDIR)' - @echo ' bindir: $(bindir)' - @echo ' sbindir: $(sbindir)' - @echo ' libdir: $(libdir)' - @echo ' modulesdir: $(modulesdir)' - @echo ' includedir: $(includedir)' - @echo ' vardir: $(localstatedir)' - @echo ' privatedir: $(privatedir)' - @echo ' piddir: $(piddir)' - @echo ' lockdir: $(lockdir)' - @echo ' logfilebase: $(logfilebase)' - @echo ' setupdir: $(SETUPDIR)' - @echo ' jsdir: $(JSDIR)' - @echo ' swatdir: $(SWATDIR)' - @echo ' mandir: $(mandir)' - @echo ' torturedir: $(TORTUREDIR)' - @echo ' datadir: $(datadir)' - @echo ' winbindd_socket_dir: $(winbindd_socket_dir)' - -showflags:: - @echo ' srcdir = $(srcdir)' - @echo ' builddir = $(builddir)' - -# The permissions to give the executables -INSTALLPERMS = 0755 - -install:: showlayout everything installbin installdat installswat installmisc installlib \ - installheader installpc installplugins - -# DESTDIR is used here to prevent packagers wasting their time -# duplicating the Makefile. Remove it and you will have the privilege -# of packaging each samba release for multiple versions of multiple -# distributions and operating systems, or at least supplying patches -# to all the packaging files required for this, prior to committing -# the removal of DESTDIR. Do not remove it even though you think it -# is not used. - -installdirs:: - @$(SHELL) $(srcdir)/script/installdirs.sh \ - $(DESTDIR)$(BASEDIR) \ - $(DESTDIR)$(bindir) \ - $(DESTDIR)$(sbindir) \ - $(DESTDIR)$(TORTUREDIR) \ - $(DESTDIR)$(libdir) \ - $(DESTDIR)$(modulesdir) \ - $(DESTDIR)$(mandir) \ - $(DESTDIR)$(localstatedir) \ - $(DESTDIR)$(privatedir) \ - $(DESTDIR)$(datadir) \ - $(DESTDIR)$(piddir) \ - $(DESTDIR)$(lockdir) \ - $(DESTDIR)$(logfilebase) \ - $(DESTDIR)$(privatedir)/tls \ - $(DESTDIR)$(includedir) \ - $(DESTDIR)$(PKGCONFIGDIR) \ - $(DESTDIR)$(sysconfdir) \ - -installbin:: $(SBIN_PROGS) $(BIN_PROGS) $(TORTURE_PROGS) installdirs - @$(SHELL) $(srcdir)/script/installbin.sh \ - $(INSTALLPERMS) \ - $(DESTDIR)$(BASEDIR) \ - $(DESTDIR)$(sbindir) \ - $(DESTDIR)$(libdir) \ - $(DESTDIR)$(localstatedir) \ - $(SBIN_PROGS) - @$(SHELL) $(srcdir)/script/installbin.sh \ - $(INSTALLPERMS) \ - $(DESTDIR)$(BASEDIR) \ - $(DESTDIR)$(bindir) \ - $(DESTDIR)$(libdir) \ - $(DESTDIR)$(localstatedir) \ - $(BIN_PROGS) - @$(SHELL) $(srcdir)/script/installtorture.sh \ - $(INSTALLPERMS) \ - $(DESTDIR)$(TORTUREDIR) \ - $(TORTURE_PROGS) - -installlib:: $(INSTALLABLE_SHARED_LIBS) $(STATIC_LIBS) installdirs - @$(SHELL) $(srcdir)/script/installlib.sh $(DESTDIR)$(libdir) "$(SHLIBEXT)" $(INSTALLABLE_SHARED_LIBS) - #@$(SHELL) $(srcdir)/script/installlib.sh $(DESTDIR)$(libdir) "$(STLIBEXT)" $(STATIC_LIBS) - -installheader:: headers installdirs - @srcdir=$(srcdir) builddir=$(builddir) $(PERL) $(srcdir)/script/installheader.pl $(DESTDIR)$(includedir) $(PUBLIC_HEADERS) $(DEFAULT_HEADERS) - -installdat:: installdirs - @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(datadir) $(srcdir) - -installswat:: installdirs - @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir) - -installman:: manpages installdirs - @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(mandir) $(MANPAGES) - -installmisc:: installdirs - @$(SHELL) $(srcdir)/script/installmisc.sh $(srcdir) $(DESTDIR)$(JSDIR) $(DESTDIR)$(SETUPDIR) $(DESTDIR)$(bindir) - -installpc:: installdirs - @$(SHELL) $(srcdir)/script/installpc.sh $(builddir) $(DESTDIR)$(PKGCONFIGDIR) $(PC_FILES) - -uninstall:: uninstallbin uninstallman uninstallmisc uninstalllib uninstallheader \ - uninstallplugins - -uninstallmisc:: - #FIXME - -uninstallbin:: - @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(sbindir) $(DESTDIR)$(libdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(SBIN_PROGS) - @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(bindir) $(DESTDIR)$(libdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(BIN_PROGS) - @$(SHELL) $(srcdir)/script/uninstalltorture.sh $(DESTDIR)$(TORTUREDIR) $(TORTURE_PROGS) - -uninstalllib:: - @$(SHELL) $(srcdir)/script/uninstalllib.sh $(DESTDIR)$(libdir) $(SHARED_LIBS) - #@$(SHELL) $(srcdir)/script/uninstalllib.sh $(DESTDIR)$(libdir) $(STATIC_LIBS) - -uninstallheader:: - @$(SHELL) $(srcdir)/script/uninstallheader.sh $(DESTDIR)$(includedir) $(PUBLIC_HEADERS) - -uninstallman:: - @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(mandir) $(MANPAGES) - -Makefile: config.status $(MK_FILES) - ./config.status - -pidl/Makefile: pidl/Makefile.PL - cd pidl && $(PERL) Makefile.PL - -testcov-html:: pidl-testcov - -pidl-testcov: pidl/Makefile - cd pidl && cover -test - -installpidl:: pidl/Makefile - $(MAKE) -C pidl install - -uninstallpidl:: pidl/Makefile - $(MAKE) -C pidl uninstall - -$(IDL_HEADER_FILES) \ - $(IDL_NDR_PARSE_H_FILES) $(IDL_NDR_PARSE_C_FILES) \ - $(IDL_NDR_CLIENT_C_FILES) $(IDL_NDR_CLIENT_H_FILES) \ - $(IDL_NDR_SERVER_C_FILES) $(IDL_SWIG_FILES) \ - $(IDL_NDR_EJS_C_FILES) $(IDL_NDR_EJS_H_FILES) \ - $(IDL_NDR_PY_C_FILES) $(IDL_NDR_PY_H_FILES): idl - -idl_full:: pidl/lib/Parse/Pidl/IDL.pm pidl/lib/Parse/Pidl/Expr.pm - @CPP="$(CPP)" PERL="$(PERL)" srcdir=$(srcdir) $(srcdir)/script/build_idl.sh FULL - -idl:: pidl/lib/Parse/Pidl/IDL.pm pidl/lib/Parse/Pidl/Expr.pm - @CPP="$(CPP)" PERL="$(PERL)" srcdir=$(srcdir) $(srcdir)/script/build_idl.sh PARTIAL - -pidl/lib/Parse/Pidl/IDL.pm: pidl/idl.yp - -$(YAPP) -m 'Parse::Pidl::IDL' -o pidl/lib/Parse/Pidl/IDL.pm pidl/idl.yp ||\ - touch pidl/lib/Parse/Pidl/IDL.pm - -pidl/lib/Parse/Pidl/Expr.pm: pidl/idl.yp - -$(YAPP) -m 'Parse::Pidl::Expr' -o pidl/lib/Parse/Pidl/Expr.pm pidl/expr.yp ||\ - touch pidl/lib/Parse/Pidl/Expr.pm - -mkinclude selftest/config.mk -mkinclude rules.mk - -showflags:: - @echo ' pwd = '`/bin/pwd` diff --git a/source4/rules.mk b/source4/rules.mk index 4548bfbade8..606e3dbf6ec 100644 --- a/source4/rules.mk +++ b/source4/rules.mk @@ -77,7 +77,6 @@ clean:: clean_pch distclean:: clean -rm -f include/config.h include/config_tmp.h include/build.h - -rm -f Makefile -rm -f config.status -rm -f config.log config.cache -rm -f config.pm config.mk -- 2.34.1