X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=configure;h=b467ce6265ecde0307b96f56032f776cc67a34e5;hb=1948b0ac2804166261e4ad4d4b8722a4def84135;hp=3b8b2ee1f98a55e8c4433df310ace6dc6a009733;hpb=41471dee973c34bffa59086440b5af40a02f2bb0;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/configure b/configure index 3b8b2ee1f..b467ce626 100755 --- a/configure +++ b/configure @@ -1,4 +1,5 @@ #!/usr/bin/perl + # InspIRCd Configuration Script # # Copyright 2003 The ChatSpike Development Team @@ -39,11 +40,11 @@ $config{THREADED_DNS} = "n"; # threaded dns (experimental) $config{STATIC_LINK} = "no"; # are doing static modules? chomp($config{MAX_CLIENT_T} = `sh -c \"ulimit -n\"`); # FD Limit chomp($config{MAX_DESCRIPTORS} = `sh -c \"ulimit -n\"`); # Hard FD Limit -chomp($config{GCCVER} = `gcc -dumpversion | cut -c 1`); # Major GCC Version -chomp($config{GCC34} = `gcc -dumpversion | cut -c 3`); # Minor GCC Version +chomp($config{GCCVER} = `g++ -dumpversion | cut -c 1`); # Major GCC Version +chomp($config{GCC34} = `g++ -dumpversion | cut -c 3`); # Minor GCC Version chomp($config{OSNAME} = `/bin/uname`); # Operating System Name $config{CC} = "g++"; # C++ compiler -$config{MAKEORDER} = "ircd mods config bininst"; # build order +$config{MAKEORDER} = "ircd mods"; # build order $config{STATICLIBS} = ""; # library archive path $config{MAX_IDENT} = "12"; # max ident size $config{MAX_QUIT} = "255"; # max quit message size @@ -52,6 +53,8 @@ $config{MAX_KICK} = "255"; # max kick message size $config{MAX_GECOS} = "128"; # max GECOS size $config{MAX_AWAY} = "200"; # max AWAY size +$no_svn = 0; + $config{HAS_OPENSSL} =~ /OpenSSL (\S+) \d+ \S+ \d{4}/; $config{HAS_OPENSSL} = $1; @@ -101,6 +104,21 @@ if ($arg eq "-update") { } } +if ($arg eq "-svnupdate") { + my $fail = 0; + open(FH,"<.svn/entries") or $fail = 1; + if ($fail) { + print "This is not an SVN copy of InspIRCd.\n"; + exit; + } + system("svn update"); + system("perl configure -update"); + if ($ARGV[1] eq "rebuild") { + system("make install"); + } + exit; +} + if ($arg eq "-modupdate") { # Does the cache file exist? if (!getcache()) { @@ -175,13 +193,7 @@ $has_epoll = 0; $fail = 0; open(EPOLL, ")) { - # try and find the declaration of: - # extern int epoll_create (int __size) __THROW; - if (($line =~ /int(\0x9|\s)+epoll_create(\0x9|\s)+\(/) || ($line =~ /int(\0x9|\s)+epoll_create\(/)) { - $has_epoll = 1; - } - } + $has_epoll = 1; close(EPOLL); } if ($has_epoll) { @@ -229,6 +241,7 @@ system("clear"); show_splash(); chomp($wholeos = `uname -mnr`); +my $rev = getrevision(); # Display Introduction Message.. print " Welcome to the InspIRCd Configuration program! @@ -243,31 +256,39 @@ Press \033[1m\033[0m to accept the default for any option, or enter a new value. Please note: You will \033[1mHAVE\033[0m to read the docs dir, otherwise you won't have a config file! -Your operating system is: \033[1;32m$config{OSNAME}\033[0m ($wholeos), fdmax: $config{MAX_CLIENT_T}\n\n"; +Your operating system is: \033[1;32m$config{OSNAME}\033[0m ($wholeos), fdmax: $config{MAX_CLIENT_T} +Your InspIRCd revision ID is \033[1;32mr$rev\033[0m"; +if ($rev eq "r0") { + print " (Non-SVN build)"; +} +print ".\n\n"; $config{CHANGE_COMPILER} = "n"; print "I have detected the following compiler: \033[1;32m$config{CC}\033[0m (version \033[1;32m$config{GCCVER}.$config{GCC34}\033[0m)\n"; -if ($config{GCCVER} < 3) { +while (($config{GCCVER} < 3) || ($config{GCCVER} eq "")) { print "\033[1;32mIMPORTANT!\033[0m A GCC 2.x compiler has been detected, and -should NOT be used. You should probably specify a newer compiler.\n"; -} -yesno(CHANGE_COMPILER,"Do you want to change the compiler?"); -if ($config{CHANGE_COMPILER} =~ /y/i) { - print "What command do you want to use to invoke your compiler?\n"; - print "[\033[1;32m$config{CC}\033[0m] -> "; - chomp($config{CC} = ); - if ($config{CC} eq "") { - $config{CC} = "g++"; - } - chomp($foo = `$config{CC} -dumpversion | cut -c 1`); - if ($foo ne "") { - chomp($config{GCCVER} = `$config{CC} -dumpversion | cut -c 1`); # we must redo these if we change - chomp($config{GCC34} = `$config{CC} -dumpversion | cut -c 3`); # the compiler path - print "Queried compiler: \033[1;32m$config{CC}\033[0m (version \033[1;32m$config{GCCVER}.$config{GCC34}\033[0m)\n"; - } - else { - print "\033[1;32mWARNING!\033[0m Could not execute the compiler you specified. You may want to try again.\n"; +should NOT be used. You should probably specify a newer compiler.\n\n"; + yesno(CHANGE_COMPILER,"Do you want to change the compiler?"); + if ($config{CHANGE_COMPILER} =~ /y/i) { + print "What command do you want to use to invoke your compiler?\n"; + print "[\033[1;32m$config{CC}\033[0m] -> "; + chomp($config{CC} = ); + if ($config{CC} eq "") { + $config{CC} = "g++"; + } + chomp($foo = `$config{CC} -dumpversion | cut -c 1`); + if ($foo ne "") { + chomp($config{GCCVER} = `$config{CC} -dumpversion | cut -c 1`); # we must redo these if we change + chomp($config{GCC34} = `$config{CC} -dumpversion | cut -c 3`); # the compiler path + print "Queried compiler: \033[1;32m$config{CC}\033[0m (version \033[1;32m$config{GCCVER}.$config{GCC34}\033[0m)\n"; + if ($config{GCCVER} < 3) { + print "\033[1;32mGCC 2.x WILL NOT WORK!\033[0m. Let's try that again, shall we?\n"; + } + } + else { + print "\033[1;32mWARNING!\033[0m Could not execute the compiler you specified. You may want to try again.\n"; + } } } @@ -623,9 +644,9 @@ if ($config{USE_GNUTLS} eq "y") { close(TMP); if ($failed) { print "Symlinking src/modules/m_ssl_gnutls.cpp from extra/\n"; - system("cd src/modules"); + chdir("src/modules"); system("ln -s extra/m_ssl_gnutls.cpp"); - system("cd ../.."); + chdir("../.."); } getmodules(); $failed = 0; @@ -657,9 +678,9 @@ if ($config{USE_GNUTLS} eq "y") { close(TMP); if ($failed) { print "Symlinking src/modules/m_ssl_openssl.cpp from extra/\n"; - system("cd src/modules"); + chdir("src/modules"); system("ln -s extra/m_ssl_openssl.cpp"); - system("cd ../.."); + chdir("../.."); } getmodules(); $failed = 0; @@ -819,12 +840,12 @@ sub getosflags { $config{FLAGS} = "-frtti -Wall -Woverloaded-virtual $config{OPTIMISATI}"; $config{LDLIBS} = ""; $config{MAKEPROG} = "/usr/bin/make"; - $config{MAKEORDER} = "ircd mods config bininst"; + $config{MAKEORDER} = "ircd mods"; } elsif ($config{OSNAME} eq "CYG-STATIC") { $config{FLAGS} = "-frtti -Wall -Woverloaded-virtual $config{OPTIMISATI}"; $config{LDLIBS} = ""; $config{MAKEPROG} = "/usr/bin/make"; - $config{MAKEORDER} = "mods ircd config bininst"; + $config{MAKEORDER} = "mods ircd"; $config{STATICLIBS} = "modules/mods.a"; $config{STATIC_LINK} = "yes"; } @@ -866,12 +887,32 @@ sub getmodules { closedir(DIRHANDLE); } -sub writefiles { +sub getrevision { + if ($no_svn) { + return "0"; + } + my $data = `svn info`; + if ($data eq "") { + $no_svn = 1; + $rev = "0"; + return $rev; + } + $data =~ /Revision: (\d+)/; + my $rev = $1; + if (!defined($rev)) { + $rev = "0"; + } + return $rev; +} +sub writefiles { print "Writing \033[1;32minspircd_config.h\033[0m\n"; # First File.. inspircd_config.h chomp(my $incos = `uname -n -s -r`); chomp(my $version = `sh ./src/version.sh`); + chomp(my $revision = getrevision()); + $version = "$version(r$revision)"; + chomp(my $revision2 = getrevision()); open(FILEHANDLE, ">include/inspircd_config.h"); my $NL = $config{NICK_LENGT}+1; my $CL = $config{CHAN_LENGT}+1; @@ -883,6 +924,7 @@ sub writefiles { #define CONFIG_FILE "$config{CONFIG_DIR}/inspircd.conf" #define MOD_PATH "$config{MODULE_DIR}" #define VERSION "$version" +#define REVISION "$revision2" #define MAXCLIENTS $config{MAX_CLIENT} #define MAX_DESCRIPTORS $config{MAX_DESCRIPTORS} #define NICKMAX $NL @@ -1162,7 +1204,6 @@ EOCHEESE open(MUNGED,">src/modules/m_".$i."_static.cpp") or die("Could not create m_".$i."_static.cpp"); while (chomp($a = )) { $a =~ s/init_module/$i\_init/g; - $a =~ s/Srv/$i\Srv/g; print MUNGED "$a\n"; } close(MODULE); @@ -1210,6 +1251,7 @@ EOF my $modules = ""; my $cmflags = ""; my $liflags = ""; + my $crud = ""; foreach $i (@modlist) { ### @@ -1221,14 +1263,14 @@ EOF m_$i.so: m_$i.cpp ../../include/modules.h ../../include/users.h ../../include/channels.h ../../include/base.h ../../include/inspircd_config.h ../../include/inspircd.h ../../include/inspircd_io.h \$(CC) -pipe -I../../include \$(FLAGS) $cmflags -export-dynamic -c m_$i.cpp \$(CC) \$(FLAGS) -shared $liflags -o m_$i.so m_$i.o $extra - \@-rm -f \$(MODPATH)/m_$i.so - install -v -m 0700 m_$i.so \$(MODPATH) EOCHEESE + $crud = $crud . " \@install -v -m 0700 m_$i.so \$(MODPATH)\n"; ### # End Write Entry to the MakeFile ### } + print FILEHANDLE "modinst:\n \@echo \"Installing modules...\"\n" . $crud; } @@ -1273,20 +1315,20 @@ EOM if ($config{OSNAME} =~ /CYGWIN/) { print FH <