summaryrefslogtreecommitdiff
path: root/yhttpd/src/configure
diff options
context:
space:
mode:
Diffstat (limited to 'yhttpd/src/configure')
-rwxr-xr-xyhttpd/src/configure350
1 files changed, 0 insertions, 350 deletions
diff --git a/yhttpd/src/configure b/yhttpd/src/configure
deleted file mode 100755
index 54cf650..0000000
--- a/yhttpd/src/configure
+++ /dev/null
@@ -1,350 +0,0 @@
-#!/bin/sh
-
-#
-# The yhttpd Project (2003 - 2005)
-#
-
-if ! ../scripts/checkperl.sh
-then
- exit 1
-fi
-
-if ! test -f ../g++.version
-then
- echo You need to run ./configure of the top level source dir first
- exit 1
-fi
-
-perl -e '
- use strict;
- $|=1;
-
- my %libadd;
- my %incadd;
- my $deepness = 500;
-
- my @headers = (
- "dlfcn.h",
- "pthread.h",
- "netinet/in.h",
- "time.h",
- "ncurses.h",
- "openssl/ssl.h",
- "::test::ext/hash_map"
- );
-
- my @libs = (
- "libncurses.so",
- "libssl.so",
- "libcrypto.so"
- );
-
- my @headerpaths = (
- $ENV{HOME}."/include",
- $ENV{HOME}."/usr/include",
- "/include",
- "/usr/include",
- "/usr/local/include",
- "/usr/lib/",
- "/usr/pkg/include",
- "/opt/include",
- "/opt/local/include"
- );
-
- my @libpaths = (
- $ENV{HOME}."/lib",
- $ENV{HOME}."/usr/lib",
- "/lib",
- "/usr/lib",
- "/usr/local/lib",
- "/usr/pkg/lib",
- "/opt/lib",
- "/opt/local/lib"
- );
-
- my %dependfiles = (
- database => ["data"],
- ycurses => ["curses", "ycui.cpp", "ycui.h"],
- logging => ["logd.cpp", "logd.h"],
- cli => ["cli"],
- opnssl => ["sock/sslsock.cpp", "sock/sslsock.h"]
- );
-
- open FILE, "glob.h" or die "glob.h: $!\n";
- while(<FILE>) {
- if ( /\/\/#define DATABASE/ ) {
- remove_from_array("mysql/mysql.h",\@headers);
- remove_from_array("libmysqlclient.so",\@libs);
- mkdir "../backuped" unless -d "../backuped";
- `mv $_ ../backuped` for @{$dependfiles{database}};
- }
-
- elsif ( /^#define DATABASE/ && !-d "data") {
- `mv ../backuped/$_ .` for @{$dependfiles{database}};
- }
-
- if ( /\/\/#define LOGGING/ ) {
- mkdir "../backuped" unless -d "../backuped";
- `mv $_ ../backuped` for @{$dependfiles{logging}};
- }
-
- elsif ( /^#define LOGGING/ && !-f "logd.cpp") {
- `mv ../backuped/$_ .` for @{$dependfiles{logging}};
- }
-
- if ( /\/\/#define CLI/ ) {
- mkdir "../backuped" unless -d "../backuped";
- `mv $_ ../backuped` for @{$dependfiles{cli}};
- }
-
- elsif ( /^#define CLI/ && !-d "cli") {
- `mv ../backuped/$_ .` for @{$dependfiles{cli}};
- }
-
- if ( /\/\/#define YCURSES/ ) {
- for ("ncurses", "menu", "panel") {
- remove_from_array("$_.h",\@headers);
- remove_from_array("lib$_.so",\@libs);
- }
-
- mkdir "../backuped" unless -d "../backuped";
- `mv $_ ../backuped` for @{$dependfiles{ycurses}};
- }
-
- elsif ( /^#define YCURSES/ && !-d "curses") {
- `mv ../backuped/$_ .` for @{$dependfiles{ycurses}};
- }
-
- if ( /\/\/#define OPENSSL/ ) {
- remove_from_array("openssl/ssl.h",\@headers);
- remove_from_array("lib$_.so",\@libs) for ("ssl", "crypto");
- }
- }
- close FILE;
-
- if ( defined $ENV{YHTTPDHEADERPATHS} ) {
- map { print "Adding $_...\n"; unshift @headerpaths, $_ }
- split /:/, $ENV{YHTTPDHEADERPATHS};
- }
-
- if ( defined $ENV{YHTTPDLIBPATHS} ) {
- map { print "Adding $_...\n"; unshift @libpaths, $_ }
- split /:/, $ENV{YHTTPDLIBPATHS};
- }
-
- print "Headers:\n";
-
- my $testit = 0;
- map { $incadd{&check($deepness, $_, @headerpaths)}++ }
- @headers;
-
- $testit = 0;
- print "Libraries:\n";
- map { $libadd{&check($deepness, $_, @libpaths)}++ }
- @libs;
-
- my $incadd = &make_add("-I", \%incadd);
- my $libadd = &make_add("-L", \%libadd);
-
- for ( @libs ) { $libadd .= "-l$_ " if s/^lib// and s/\.so$//; }
-
- print "Incadd: $incadd\n";
- print "Libadd: $libadd\n";
-
- `echo $incadd > includes.add`;
- `echo $libadd > libs.add`;
-
- print "Creating new base Makefile...\n";
- unlink("Makefile") if -f "Makefile";
- unlink("../err") if -f "../err";
- open Fin, "Makefile.in" or die "Makefile.in: $!\n";
- open Fout, ">Makefile" or die "Makefile: $!\n";
-
- my $cpp = `echo *.cpp */*.cpp contrib/*/*.cpp | sort`;
- my $compiler = `tail -n 1 ../g++.version`;
- my $version = `tail -n 2 ../g++.version | head -n 1`;
- my $uname = `uname -srm`;
- my $compopt = join "; ", split /\n/, `cat ../g++.version`;
-
- chomp $uname;
- chomp $compopt;
-
- print "Configuring for $uname...\n";
- chomp $cpp;
- chomp $version;
-
- while (<Fin>) {
- s/^(CC=).*\n/$1$compiler/;
- s/^(SRCS=).*/$1$cpp/;
- s/ -frepo//; # unless $version =~ /3\.4/;
- if ( $uname !~ /Linux/i ) {
- print "Disabling -ldl flag...\n" if s/ -ldl//;
- }
- print Fout;
- }
- close Fin;
-
- my $args = join(" -",@ARGV);
- $args = "-".$args unless $args eq "";
-
- for my $cppfile (split / /, $cpp) {
- my $ofile = $cppfile;
- $ofile =~ s/\.cpp/\.o/;
- print Fout "../obj/$ofile: $cppfile\n";
- print Fout "\t\@if ! test -d `dirname ../obj/$ofile`; then mkdir -p `dirname ../obj/$ofile`; fi\n";
- my $class = $ofile;
- $class =~ s/\.o//;
-
- my $text;
- if ( $class =~ /contrib\/.+/ ) {
- my $dirname = `dirname $class`;
- $text = "\t\@echo -n \"Contributed class $class \"\n";
- }
-
- else {
- $text = "\t\@echo -n \"Base class $class \"\n";
- }
-
- print Fout "\t\@\$(CC) \$(CFLAGS) \$(INCLUDES) $args -c -o ../obj/$ofile $cppfile\n";
- print Fout $text."\t\@du -hc ../obj/$ofile | tail -n 1 | sed s/total// | sed \"s/ //g\"\n";
- }
-
- close Fout;
-
- open F, "msgs.h" or die "msgs.h: $!\n";
- my @msgs = <F>;
- close F;
- unlink("msgs.h");
- open F, ">msgs.h" or die "msgs.h: $!\n";
-
- for (@msgs) {
- s/(UNAME)(.+)$/UNAME "$uname"/;
- s/(COMPOPT)(.+)$/COMPOPT "$compopt"/;
- print F;
- }
- close F;
-
- if ( -d "mods" ) {
- chdir("mods");
- my $cflags = "-fno-inline -fno-default-inline";
-
- $cflags .= " -nostdlib" if $uname =~ /FreeBSD/i && `uname -r` =~ /^4\./;
-
- system("echo $cflags > cflags.add");
- system("./configure");
- chdir("..");
- }
-
- sub remove_from_array {
- my $elem = shift;
- my $array = shift;
-
- for ( my $i = 0; $i <= $#$array; ++$i ) {
- if ( $$array[$i] eq $elem ) {
- splice(@$array,$i,1);
- last;
- }
- } # for
- }
-
- sub check {
- my $deep = shift;
-
- if ($deep == 0) {
- print "Looking too deep! ($deepness)\n";
- exit(1);
- }
-
- my $check = shift;
- $testit = 1 if $check =~ s/::test:://;
-
- my $print = 1;
- if ( $_[-1] eq "subsearch" ) {
- $print = 0;
- pop(@_);
- }
-
- if ($print) {
- print "Checking for $check...";
- print "\n" if $testit;
- }
-
- for (@_) {
- if ( -f "$_/$check" ) {
- if ($testit) {
- return $_ if test_include($_, $check);
- return "";
-
- } else {
- print "OK\n";
- return "" if $_ eq "/usr/lib" or $_ eq "/usr/include";
- return $_;
- }
- }
- }
-
- for (@_) {
- next unless -d $_;
- opendir D, $_ or warn "$_: $!\n";
- my @dir = readdir(D);
- closedir D;
-
- for my $dir ( @dir ) {
- next if $dir =~ /^\.+$/ or !-d "$_/$dir";
- my $path = &check($deep-1, $check, "$_/$dir", "subsearch");
- return $path if $path ne "";
- }
- }
-
- if ($print) {
- print "NOT OK\n";
- print "Please make sure that you have the needed software installed!\n";
- print "If you have a special path for your includes then edit src/configure!\n";
- print "Or set the environment variables YHTTPDHEADERPATHS and YHTTPDLIBPATHS.\n";
- print " Example: setenv YHTTPDHEADERPATHS \"/your/header/includes:/a/includes\"\n";
- print "(The environment variables have to be seperated by an :)\n";
- print "PS: You may use the locate and/or find command to search for files.\n";
- exit(1);
- }
-
- `touch ../err`;
- return "";
- }
-
- sub make_add {
- my $flag = shift;
- my $add = shift;
- my $ret = "";
-
- for (reverse keys %$add) {
- next unless /.+/;
- $ret .= "$flag$_ ";
- }
- return $ret;
- }
-
- sub test_include {
- my $shift = shift;
- my $check = shift;
- my $return = 0;
- print "Testing $shift/$check...";
-
- `echo "\#include \\"maps/hashmap.h\\"" > __test.cpp`;
- `echo "int main(void){return 0;}" >> __test.cpp`;
- my $cmd = "`tail -n 1 ../g++.version` -I$shift __test.cpp -o /dev/null 2>/dev/null";
- system $cmd;
-
- unless ($?) {
- print "OK\n";
- $return = 1;
-
- } else {
- print "Not OK\n";
- }
-
- unlink "__test.cpp" if -f "__test.cpp";
- return $return;
- }
-
- exit(0);
-' `echo "$*" | sed "s/-//g"`