#!/usr/bin/perl
+
# InspIRCd Configuration Script
#
# Copyright 2003 The ChatSpike Development Team
$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
$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;
}
}
+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()) {
$fail = 0;
open(EPOLL, "</usr/include/sys/epoll.h") or $fail = 1;
if (!$fail) {
- while (chomp($line = <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) {
show_splash();
chomp($wholeos = `uname -mnr`);
+my $rev = getrevision();
# Display Introduction Message..
print "
Welcome to the InspIRCd Configuration program!
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";
$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";
}
closedir(DIRHANDLE);
}
+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 = `./src/svn-rev.sh`);
- $version = "$version (r$revision)";
- chomp(my $revision2 = `./src/svn-rev.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;
my $modules = "";
my $cmflags = "";
my $liflags = "";
+ my $crud = "";
foreach $i (@modlist) {
###
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;
}