]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - configure
Fix sqllog compile error
[user/henk/code/inspircd.git] / configure
index 974121e785dbf5863bcd535656b39e08e5205c44..fb4d5d842abd35b0579696c057c696130f502fc5 100755 (executable)
--- a/configure
+++ b/configure
@@ -46,8 +46,7 @@ our ($opt_use_gnutls, $opt_rebuild, $opt_use_openssl, $opt_nointeractive, $opt_p
     $opt_epoll, $opt_kqueue, $opt_noports, $opt_noepoll, $opt_nokqueue,
     $opt_noipv6, $opt_maxbuf, $opt_disable_debug, $opt_freebsd_port);
 
-our ($opt_cc, $opt_base_dir, $opt_config_dir, $opt_module_dir, $opt_binary_dir,
-    $opt_library_dir);
+our ($opt_cc, $opt_base_dir, $opt_config_dir, $opt_module_dir, $opt_binary_dir);
 
 sub list_extras ();
 
@@ -77,7 +76,6 @@ GetOptions (
        'config-dir=s' => \$opt_config_dir,
        'module-dir=s' => \$opt_module_dir,
        'binary-dir=s' => \$opt_binary_dir,
-       'library-dir=s' => \$opt_library_dir,
        'disable-debuginfo' => sub { $opt_disable_debug = 1 },
        'help'  => sub { showhelp(); },
        'update' => sub { update(); },
@@ -101,7 +99,6 @@ if (scalar(@opt_enableextras) + scalar(@opt_disableextras) > 0) {
 }
 
 our $non_interactive = (
-       (defined $opt_library_dir) ||
        (defined $opt_base_dir) ||
        (defined $opt_config_dir) ||
        (defined $opt_module_dir) ||
@@ -127,9 +124,9 @@ chomp(our $topdir = getcwd());
 our $this = resolve_directory($topdir);                                                # PWD, Regardless.
 our @modlist = ();                                                                     # Declare for Module List..
 our %config = ();                                                                      # Initiate Configuration Hash..
-$config{ME}             = resolve_directory($topdir);                          # Present Working Directory
+$config{ME} = resolve_directory($topdir);                              # Present Working Directory
 
-$config{BASE_DIR}         = $config{ME};
+$config{BASE_DIR} = $config{ME}."/run";
 
 if (defined $opt_base_dir)
 {
@@ -139,7 +136,7 @@ if (defined $opt_base_dir)
 $config{CONFIG_DIR}     = resolve_directory($config{BASE_DIR}."/conf");        # Configuration Directory
 $config{MODULE_DIR}     = resolve_directory($config{BASE_DIR}."/modules");     # Modules Directory
 $config{BINARY_DIR}     = resolve_directory($config{BASE_DIR}."/bin");         # Binary Directory
-$config{LIBRARY_DIR}   = resolve_directory($config{BASE_DIR}."/lib");          # Library Directory
+$config{BUILD_DIR}      = resolve_directory($config{ME}."/build");         # Build Directory
 
 if (defined $opt_config_dir)
 {
@@ -153,10 +150,6 @@ if (defined $opt_binary_dir)
 {
        $config{BINARY_DIR} = $opt_binary_dir;
 }
-if (defined $opt_library_dir)
-{
-       $config{LIBRARY_DIR} = $opt_library_dir;
-}
 chomp($config{HAS_GNUTLS}   = `pkg-config --modversion gnutls 2>/dev/null | cut -c 1,2,3`); # GNUTLS Version.
 
 if (defined $opt_freebsd_port)
@@ -523,7 +516,8 @@ if ($config{OSNAME} =~ /FreeBSD/i)
        my $version = `uname -r`;
        if ($version =~ /^4\./)
        {
-               print "yes. Please upgrade, FreeBSD 4.x is no longer supported\n";
+               print "yes.\n";
+               print "FreeBSD 4.x is no longer supported. By ANYONE.\n";
                print "To build, you will need to add the following to CXXFLAGS:\n";
                print "\t-L/usr/local/lib -lgnugetopt -DHAVE_DECL_GETOPT=1\n";
        }
@@ -537,9 +531,6 @@ else
        print "no ($config{OSNAME})\n";
 }
 
-print "Checking for upgrades to extra and third party modules... ";
-system "./modulemanager upgrade";
-
 ################################################################################
 #                        BEGIN INTERACTIVE PART                              #
 ################################################################################
@@ -610,13 +601,12 @@ should NOT be used. You should probably specify a newer compiler.\n\n";
                $config{CONFIG_DIR}      = resolve_directory($config{BASE_DIR}."/conf");           # Configuration Dir
                $config{MODULE_DIR}      = resolve_directory($config{BASE_DIR}."/modules");     # Modules Directory
                $config{BINARY_DIR}      = resolve_directory($config{BASE_DIR}."/bin");     # Binary Directory
-               $config{LIBRARY_DIR}    = resolve_directory($config{BASE_DIR}."/lib");      # Library Directory
        }
 
        dir_check("are the configuration files", "CONFIG_DIR");
        dir_check("are the modules to be compiled to", "MODULE_DIR");
        dir_check("is the IRCd binary to be placed", "BINARY_DIR");
-       dir_check("are the IRCd libraries to be placed", "LIBRARY_DIR");
+       dir_check("do you want the build to take place", "BUILD_DIR");
 
        my $chose_hiperf = 0;
        if ($has_kqueue) {
@@ -676,6 +666,7 @@ should NOT be used. You should probably specify a newer compiler.\n\n";
        }
 
        $config{USE_SSL} = "n";
+       $config{MODUPDATE} = 'n';
 
        if ($config{HAS_GNUTLS} eq "y" || $config{HAS_OPENSSL} eq "y")
        {
@@ -709,6 +700,13 @@ should NOT be used. You should probably specify a newer compiler.\n\n";
                print "\nCould not detect OpenSSL or GnuTLS. Make sure pkg-config is installed if\n";
                print "you intend to use OpenSSL, or that GnuTLS is in your path if you intend\nto use GnuTLS.\n\n";
        }
+
+       yesno('MODUPDATE',"Would you like to check for updates to third-party modules?");
+       print "\n";
+       if ($config{MODUPDATE} eq "y") {
+               print "Checking for upgrades to extra and third party modules... ";
+               system "./modulemanager upgrade";
+       }
 }
 
 dumphash();
@@ -932,11 +930,8 @@ sub writefiles {
 #define CoreExport /**/
 #define DllExport /**/
 
-#define CONFIG_FILE "$config{CONFIG_DIR}/inspircd.conf"
 #define MOD_PATH "$config{MODULE_DIR}"
 #define SOMAXCONN_S "$config{_SOMAXCONN}"
-#define OPTIMISATION $config{OPTIMITEMP}
-#define LIBRARYDIR "$config{LIBRARY_DIR}"
 #define ENTRYPOINT int main(int argc, char** argv)
 
 EOF
@@ -1004,18 +999,6 @@ print FILEHANDLE "#define MAXBUF " . ($config{MAXBUF}+2) . "\n";
                print FILEHANDLE "\n#include \"threadengines/threadengine_pthread.h\"\n\n#endif\n";
                close(FILEHANDLE);
 
-               open(FILEHANDLE, ">include/inspircd_se_config.h.tmp");
-               print FILEHANDLE <<EOF;
-/* Auto generated by configure, do not modify or commit to svn! */
-#ifndef __CONFIGURATION_SOCKETENGINE__
-#define __CONFIGURATION_SOCKETENGINE__
-
-#include "socketengines/$config{SOCKETENGINE}.h"
-
-#endif
-EOF
-               close(FILEHANDLE);
-
                open(FILEHANDLE, ">include/inspircd_version.h.tmp");
                print FILEHANDLE <<EOF;
 #define VERSION "$version"
@@ -1024,7 +1007,7 @@ EOF
 EOF
                close FILEHANDLE;
 
-               for my $file (qw(include/inspircd_config.h include/inspircd_se_config.h include/inspircd_version.h)) {
+               for my $file (qw(include/inspircd_config.h include/inspircd_version.h)) {
                        my $diff = 0;
                        open my $fh1, $file or $diff = 1;
                        open my $fh2, $file.'.tmp' or die "Can't read $file.tmp that we just wrote: $!";
@@ -1066,71 +1049,66 @@ EOF
        # but right now we only parse .inspircd.inc to form './inspircd'
        prepare_dynamic_makefile();
 
-    print "Writing \e[1;32mMakefiles\e[0m\n";
-
-       opendir(DIRHANDLE, $this);
-
-       foreach my $name (sort readdir(DIRHANDLE)) {
-               if ($name =~ /^\.(.+)\.inc$/) {
-                       $file = $1;
+       my @dotfiles = qw(main.mk inspircd);
+       push @dotfiles, 'org.inspircd.plist' if $config{OSNAME} eq 'darwin';
 
-                       # Bug #353, omit this on non-darwin
-                       next if (($config{OSNAME} !~ /darwin/) && ($file eq "org.inspircd.plist"));
+       foreach my $file (@dotfiles) {
+               open(FILEHANDLE, "make/template/$file") or die "Can't open make/template/$file: $!";
+               $_ = join '', <FILEHANDLE>;
+               close(FILEHANDLE);
 
-                       # All .name.inc files need parsing!
-                       open(FILEHANDLE, ".$file.inc") or die ("Can't open .$file.inc");
-                       $_ = join '', <FILEHANDLE>;
-                       close(FILEHANDLE);
+               $config{BUILD_DIR} ||= resolve_directory($config{ME}."/build");
 
+               for my $var (qw(
+                       CC SYSTEM BASE_DIR CONFIG_DIR MODULE_DIR BINARY_DIR BUILD_DIR
+                       STARTSCRIPT DESTINATION EXTRA_DIR SOCKETENGINE
+               )) {
+                       s/\@$var\@/$config{$var}/g;
+               }
+               s/\@EXECUTABLE\@/$exe/ if defined $exe;
+               s/\@VERSION\@/$version/ if defined $version;
+
+               if ($file eq 'main.mk') {
+                       print "Writing \e[1;32mGNUmakefile\e[0m ...\n";
+
+                       my $mk_tmp = $_;
+                       s/\@IFDEF (\S+)/ifdef $1/g;
+                       s/\@IFNDEF (\S+)/ifndef $1/g;
+                       s/\@IFEQ (\S+) (\S+)/ifeq ($1,$2)/g;
+                       s/\@ELSIFEQ (\S+) (\S+)/else ifeq ($1,$2)/g;
+                       s/\@ELSE/else/g;
+                       s/\@ENDIF/endif/g;
+                       s/ *\@BSD_ONLY .*\n//g;
+                       s/\@GNU_ONLY //g;
+                       s/\@DO_EXPORT (.*)/export $1/g;
+                       open MKF, '>GNUmakefile' or die "Can't write to GNUmakefile: $!";
+                       print MKF $_;
+                       close MKF;
+
+                       print "Writing \e[1;32mBSDmakefile\e[0m ...\n";
+                       $_ = $mk_tmp;
+                       s/\@IFDEF (\S+)/.if defined($1)/g;
+                       s/\@IFNDEF (\S+)/.if !defined($1)/g;
+                       s/\@IFEQ (\S+) (\S+)/.if $1 == $2/g;
+                       s/\@ELSIFEQ (\S+) (\S+)/.elif $1 == $2/g;
+                       s/\@ELSE/.else/g;
+                       s/\@ENDIF/.endif/g;
+                       s/\@BSD_ONLY //g;
+                       s/ *\@GNU_ONLY .*\n//g;
+                       $mk_tmp = $_;
+                       $mk_tmp =~ s#\@DO_EXPORT (.*)#"MAKEENV += ".join ' ', map "$_='\${$_}'", split /\s/, $1#eg;
+                       open MKF, '>BSDmakefile' or die "Can't write to BSDmakefile: $!";
+                       print MKF $mk_tmp;
+                       close MKF;
+               } else {
                        print "Writing \e[1;32m$file\e[0m ...\n";
-                       for my $var (qw(
-                               CC SYSTEM BASE_DIR CONFIG_DIR MODULE_DIR BINARY_DIR LIBRARY_DIR
-                               STARTSCRIPT DESTINATION EXTRA_DIR SOCKETENGINE CORE_FLAGS
-                       )) {
-                               s/\@$var\@/$config{$var}/g;
-                       }
-                       s/\@EXECUTABLE\@/$exe/ if defined $exe;
-                       s/\@VERSION\@/$version/ if defined $version;
-
-                       if ($file eq 'Makefile') {
-                               my $mk_tmp = $_;
-                               s/\@IFDEF (\S+)/ifdef $1/g;
-                               s/\@IFNDEF (\S+)/ifndef $1/g;
-                               s/\@IFEQ (\S+) (\S+)/ifeq ($1,$2)/g;
-                               s/\@ELSIFEQ (\S+) (\S+)/else ifeq ($1,$2)/g;
-                               s/\@ELSE/else/g;
-                               s/\@ENDIF/endif/g;
-                               s/ *\@BSD_ONLY .*\n//g;
-                               s/\@GNU_ONLY //g;
-                               s/\@DO_EXPORT (.*)/export $1/g;
-                               open MKF, '>GNUmakefile' or die "Can't write to GNUmakefile: $!";
-                               print MKF $_;
-                               close MKF;
-                               $_ = $mk_tmp;
-                               s/\@IFDEF (\S+)/.if defined($1)/g;
-                               s/\@IFNDEF (\S+)/.if !defined($1)/g;
-                               s/\@IFEQ (\S+) (\S+)/.if $1 == $2/g;
-                               s/\@ELSIFEQ (\S+) (\S+)/.elif $1 == $2/g;
-                               s/\@ELSE/.else/g;
-                               s/\@ENDIF/.endif/g;
-                               s/\@BSD_ONLY //g;
-                               s/ *\@GNU_ONLY .*\n//g;
-                               $mk_tmp = $_;
-                               $mk_tmp =~ s#\@DO_EXPORT (.*)#"MAKEENV += ".join ' ', map "$_='\${$_}'", split /\s/, $1#eg;
-                               open MKF, '>BSDmakefile' or die "Can't write to BSDmakefile: $!";
-                               print MKF $mk_tmp;
-                               close MKF;
-                       } else {
-                               open(FILEHANDLE, ">$file") or die("Can't write to $file: $!\n");
-                               print FILEHANDLE $_;
-                               close(FILEHANDLE);
-                       }
+                       open(FILEHANDLE, ">$file") or die("Can't write to $file: $!\n");
+                       print FILEHANDLE $_;
+                       close(FILEHANDLE);
                }
        }
-       closedir(DIRHANDLE);
 
-       # Make inspircd executable!
-       chmod 0744, 'inspircd';
+       chmod 0755, 'inspircd';
 }
 
 sub depcheck