use ExtUtils::MakeMaker; my %make = ( 'NAME' => 'Search::Circa', 'VERSION_FROM' => 'lib/Search/Circa.pm', # finds $VERSION 'PL_FILES' => { 'demo/CircaConf.PL' => [ '../blib/lib/CircaConf.pm', 'demo/circa_admin', 'demo/circa_search', 'demo/circa_annuaire', 'demo/cgi-bin/search.cgi', 'demo/cgi-bin/admin.cgi', 'demo/cgi-bin/admin_compte.cgi' ] }, 'PREREQ_PM' => { 'Test::Simple' => 0, 'DBI' => 0, 'DBD::mysql' => 0 , 'URI::URL' => 0 , 'LWP::RobotUA' => 0, }, 'EXE_FILES' => [ 'demo/circa_admin', 'demo/circa_search', 'demo/circa_annuaire' ], 'clean' => { FILES => "*~ lib/Search/Circa/*~ lib/Search/*~ ". "demo/circa_admin demo/circa_search demo/circa_annuaire ". "lib/CircaConf.pm demo/cgi-bin/*.cgi demo/*~ demo/cgi-bin/*~". ".m .t"}, ($] ge '5.005') ? ( 'AUTHOR' => 'Alain BARBET (alian@alianwebserver.com)', 'ABSTRACT' => 'Circa - a Search Engine/Indexer running with Mysql' ) : ()); print "--- Module Search-Circa - a www search engine --- You will be prompted for his configuration: (You need Apache & Mysql running for advanced tests)\n\n"; my $user = prompt("1/ Which Mysql user you want use ?","root"); #$ENV{USER}); my $pass = prompt("2/ Mysql password for this user ?"); my $host = prompt("3/ On which host mysql run ?","localhost"); my $db = prompt("4/ On which database on $host you want to install Circa ?", "circa"); my $tmp = prompt("5/ Directory where put files on import/export ?","/tmp"); my $tes = prompt("6/ Did you want to do advanced tests ? ". "(others than load tests)","no"); if ($tes =~ m/^y(es)?$/i) { my $dbt = prompt("6b/ On which database did you want to do advanced tests ?", "test"); open(F,">.t"); print F $dbt; close(F); } my $root_access = prompt("7/ Did you have write access to install perl ". "modules on standard directory ? \n". "(else I need put use lib 'something' in [.pl|.cgi]". " files)", "yes"); my $path; if ($root_access !~ m/^y(es)?$/i) { $path = prompt("7b/ Where did you plan to install Circa ?", "$ENV{HOME}/circa"); $make{PREFIX} = $path; $make{INSTALLSITELIB}=$path."/lib"; } my $template = prompt("8/ Where you want put HTML templates files ?", "$ENV{HOME}/circa/templates"); my $httpd_conf = &tryfind_httpd; $httpd_conf = prompt("9/ Where I can find your httpd.conf ?", $httpd_conf); my $cgidir= &tryfind_cgidir($httpd_conf) || $path."/cgi-bin/circa/"; my $htdocs = &tryfind_htdocsdir($httpd_conf) || $path."/html/"; if ($httpd_conf) { $cgidir = prompt("10/ Where I can install Circa cgi ?", $cgidir); $htdocs = prompt("11/ Where I can install Circa html docs ?", $htdocs); } open(FILE,">.m") || warn "Can't create .m for test: $!\n"; print FILE $user,"\t",$pass,"\t",$host,"\t",$db,"\t",$tmp,"\t",$template, "/\t",$path; close FILE; WriteMakefile(%make); print "***\n*** Remember: \n*** 1/ If you want update later Circa", " configuration,\n", "*** edit $make{PREFIX}/lib/CircaConf.pm.\n", "*** 2/ After make install, do make cgi.\n***\n"; sub tryfind_httpd { my $l; if (!$ENV{APACHE} || !-x $ENV{APACHE}) { my @l = `ps ax|grep httpd >&1`; @l = `ps -fe|grep httpd >&1` if (!@l or $#l==1); @l = `locate httpd | grep 'bin/httpd' >&1` if (!@l or $#l==1); @l = `locate httpd | grep 'sbin/httpd' >&1` if (!@l); $l = join('',@l); } else { $l= $ENV{APACHE}; } if ($l=~m!(/.*/httpd)!) { my $bin = $1; my @l2 = `$1 -V`; my ($root, $conf); foreach (@l2) { $root = $1 if (/HTTPD_ROOT="(.*)"/); $conf = $1 if (/SERVER_CONFIG_FILE="(.*)"/); } return $root.'/'.$conf if ($root && $conf); } } sub tryfind_cgidir { my $httpconf = shift; return if (!$httpconf); my $s = "more $httpconf | grep 'ScriptAlias /cgi-bin/' >&1"; my $l = `$s`; if ($l=~m!ScriptAlias[\s\t]*/cgi-bin/[\s\t]*"(.*)"!) { return $1."circa/"; } } sub tryfind_htdocsdir { my $httpconf = shift; return if (!$httpconf); my $s = "more $httpconf | grep 'DocumentRoot' >&1"; my $l = `$s`; if ($l=~m!DocumentRoot[\s\t]"(.*)"!) { return $1."/circa/"; } } sub MY::postamble { "cgi:all \t".'@echo "Install cgi in '.$cgidir.'"'." \t\@mkdir -p $cgidir \t\@cp demo/cgi-bin/search.cgi $cgidir \t\@cp demo/cgi-bin/admin_compte.cgi $cgidir \t\@cp demo/cgi-bin/admin.cgi $cgidir \t\@chmod 755 $cgidir/*.cgi \t\@if [ ! -e \"$template\" ] ; then \\ \t\tmkdir -p $template; \\ \tfi; \ \t\@cp demo/ecrans/*.htm $template \t\@if [ ! -e \"$htdocs\" ] ; then \\ \t\tmkdir -p $htdocs; \\ \tfi; \ \t\@cp demo//*.html $htdocs \t\@if [ ! -e \"$htdocs/images\" ] ; then \\ \t\tmkdir -p $htdocs/images; \\ \tfi; \ \t\@cp demo//images/*.gif $htdocs/images \t\@if [ ! -e \"$htdocs/php3\" ] ; then \\ \t\tmkdir -p $htdocs/php3; \\ \tfi; \ \t\@cp demo//php3/*.php3 $htdocs/php3 \t\@echo \"Lauch your browser on http://localhost/cgi-bin/circa/admin.cgi\" "; }