r6458: Split up NTLMSSP into a new directory, and into seperate files for the
[samba.git] / source4 / build / smb_build / main.pm
1 ###########################################################
2 ### SMB Build System                                    ###
3 ### - the main program                                  ###
4 ###                                                     ###
5 ###  Copyright (C) Stefan (metze) Metzmacher 2004       ###
6 ###  Released under the GNU GPL                         ###
7 ###########################################################
8
9 use makefile;
10 use smb_build_h;
11 use input;
12 use config_mk;
13 use output;
14 use dot;
15 use strict;
16
17 sub smb_build_main($)
18 {
19         my $INPUT = shift;
20         my %SMB_BUILD_CTX = (
21                 INPUT => $INPUT
22         );
23
24         my @mkfiles = (
25                 "dsdb/config.mk",
26                 "gtk/config.mk",
27                 "smbd/config.mk",
28                 "smbd/process_model.mk",
29                 "libnet/config.mk",
30                 "auth/config.mk",
31                 "nsswitch/config.mk",
32                 "lib/basic.mk",
33                 "lib/socket/config.mk",
34                 "lib/ldb/config.mk",
35                 "lib/talloc/config.mk",
36                 "lib/tdb/config.mk",
37                 "lib/registry/config.mk",
38                 "lib/messaging/config.mk",
39                 "lib/events/config.mk",
40                 "lib/popt/config.mk",
41                 "lib/cmdline/config.mk",
42                 "lib/socket_wrapper/config.mk",
43                 "smb_server/config.mk",
44                 "rpc_server/config.mk",
45                 "ldap_server/config.mk",
46                 "winbind/config.mk",
47                 "nbt_server/config.mk",
48                 "auth/gensec/gensec.mk",
49                 "auth/kerberos/kerberos.mk",
50                 "auth/ntlmssp/ntlmssp.mk",
51                 "libcli/auth/config.mk",
52                 "libcli/ldap/config.mk",
53                 "libcli/config.mk",
54                 "utils/net/config.mk",
55                 "utils/config.mk",
56                 "ntvfs/posix/config.mk",
57                 "ntvfs/config.mk",
58                 "ntvfs/unixuid/config.mk",
59                 "torture/config.mk",
60                 "librpc/config.mk",
61                 "client/config.mk",
62                 "libcli/libsmb.mk",
63                 "libcli/config.mk",
64                 "libcli/security/config.mk",
65                 "lib/com/config.mk",
66                 "scripting/swig/config.mk",
67         );
68
69         $| = 1;
70
71         for my $mkfile (@mkfiles) {
72                 config_mk::import_file($SMB_BUILD_CTX{INPUT}, $mkfile);
73         }
74
75         %{$SMB_BUILD_CTX{DEPEND}} = input::check(\%SMB_BUILD_CTX);
76         
77         %{$SMB_BUILD_CTX{OUTPUT}} = output::create_output($SMB_BUILD_CTX{DEPEND});
78
79         makefile::create_makefile_in($SMB_BUILD_CTX{OUTPUT});
80
81         smb_build_h::create_smb_build_h($SMB_BUILD_CTX{OUTPUT});
82
83         open DOTTY, ">samba4-deps.dot";
84         print DOTTY dot::generate($SMB_BUILD_CTX{DEPEND});
85         close DOTTY;
86 }
87 1;