950d02a2f67b9d2f4220852a49fe1c03880c0ee7
[sfrench/samba-autobuild/.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 smb_build::makefile;
10 use smb_build::smb_build_h;
11 use smb_build::input;
12 use smb_build::config_mk;
13 use smb_build::output;
14 use smb_build::dot;
15 use strict;
16
17 my $config_list = "config.list";
18
19 sub smb_build_main($$)
20 {
21         my ($INPUT, $settings) = @_;
22
23         open(IN, $config_list) or die("Can't open $config_list: $!");
24         my @mkfiles = grep{!/^#/} <IN>;
25         close(IN);
26
27         $| = 1;
28
29         foreach (@mkfiles) {
30                 s/\n//g;
31                 config_mk::import_file($INPUT, $_);
32         }
33
34         my $DEPEND = input::check($INPUT);
35         
36         my $OUTPUT = output::create_output($DEPEND);
37
38         makefile::create_makefile_in($OUTPUT, $settings, "Makefile.in");
39
40         smb_build_h::create_smb_build_h($OUTPUT, "include/smb_build.h");
41
42         open DOTTY, ">samba4-deps.dot";
43         print DOTTY dot::generate($DEPEND);
44         close DOTTY;
45 }
46
47 1;