# Jamfile for Apache Server 1.2.6
#
# $Id: //guest/raymond_wiker/webkeeper/Jamfile#1 $

P4 ?= perforce ;
HDRS += $(P4) ;
LINKLIBS += $(P4)/libclient.a $(P4)/librpc.a $(P4)/libsupp.a ;

switch $(OS)
{
case AMDAHL :	CCFLAGS += -Xa -eft -DUTS21 ;
		LINKLIBS += -lsocket -lbsd -la ;
case AIX :	CCFLAGS += -DAIX -U__STR__ ;
case AUX :	CCFLAGS += -DAUX -D_POSIX_SOURCE ;
		LINKLIBS += -lposix -lbsd -s ;
case BSDI :	CCFLAGS += -m486 ;
case DOMAINOS : CCFLAGS += -DAPOLLO ;
case FREEBSD :	LINKLIBS += -lcrypt ;
case HPUX :	CCFLAGS += -DHPUX ;
case IRIX :	CCFLAGS += -DIRIX ;
		LINKLIBS += -lsun ;
case LINUX :	CCFLAGS += -DLINUX ;
case NCR :	CCFLAGS += -DSVR4 ;
		LINKLIBS += -lsocket -lnsl -lc ;
case NETBSD :	CCFLAGS += -m486 ;
		LINKLIBS += -lcrypt ;
case NEXT :	CCFLAGS += -DNEXT ; 
case OSF :	CCFLAGS += -DOSF1 ;
case PTX :	CCFLAGS += -DSEQUENT ;
case QNX :	CCFLAGS += -DQNX ;
		LINKFLAGS += -N 0x20000 ;
case SCO :	CCFLAGS += -DSCO5 ;
		LINKLIBS +=-lsocket -lmalloc ;
case SCO3 :	CCFLAGS += -Oacgiltz -DSCO ;
		LINKLIBS += -lPW -lsocket -lmalloc -lcrypt_i ;
case SOLARIS :	CCFLAGS += -DSOLARIS2 ;
		LINKLIBS += -lsocket -lnsl ;
case SUNOS :	CCFLAGS += -DSUNOS4 ; CC = gcc ; LINK = gcc ;
case ULTRIX :	CCFLAGS += -DULTRIX ;
case UNIXWARE : CCFLAGS += -DSVR4 -DUW2 ;
		LINKLIBS += -lsocket -lnsl -lcrypt ;
}

rule Module
{
	switch $(<[2])
	{
	case *.c : LOADED_MODULES += $(<[1]) ;	MODULESRC += $(<[2-]) ;
	case * :   LINKED_MODULES += $(<[1]) ;	LINKLIBS += $(<[2-]) ;
	}
}

Module core_module		http_core.c ;
Module access_module		mod_access.c ;
Module action_module		mod_actions.c ;
Module alias_module		mod_alias.c ;
Module asis_module		mod_asis.c ;
Module auth_module		mod_auth.c ;
Module browser_module		mod_browser.c ;
Module cgi_module		mod_cgi.c ;
Module config_log_module	mod_log_config.c ;
Module dir_module		mod_dir.c ;
Module env_module		mod_env.c ;
# Module fastcgi_module		mod_fastcgi.c ;
Module imap_module		mod_imap.c ;
Module includes_module		mod_include.c ;
Module mime_module		mod_mime.c ;
Module negotiation_module	mod_negotiation.c ;
Module userdir_module		mod_userdir.c ;
Module webkeep_module		mod_webkeep.c mod_webkeep2.cc ;

# Module agent_log_module	mod_log_agent.c ;
# Module anon_auth_module	mod_auth_anon.c ;
# Module cern_meta_module	mod_cern_meta.c ;
# Module db_auth_module		mod_auth_db.c ;
# Module dbm_auth_module	mod_auth_dbm.c ;
# Module digest_module		mod_digest.c ;
# Module dld_module		mod_dld.c ;
# Module example_module		modules/example/mod_example.c ;
# Module expires_module		mod_expires.c ;
# Module headers_module		mod_headers.c ;
# Module info_module		mod_info.c ;
# Module msql_auth_module	mod_auth_msql.c ;
# Module proxy_module		modules/proxy/libproxy.a ;
Module referer_log_module	mod_log_referer.c ;
# Module rewrite_module		mod_rewrite.c ;
# Module status_module		mod_status.c ;
# Module usertrack_module	mod_usertrack.c ;

Main httpd :
	alloc.c
	buff.c
	explain.c
	http_bprintf.c
	http_config.c
	http_log.c
	http_main.c
	http_protocol.c
	http_request.c
	md5c.c
	modules.c
	rfc1413.c
	util.c
	util_date.c
	util_md5.c
	util_script.c
	util_snprintf.c
	$(MODULESRC)
	$(EXTRAS)
	;

rule MakeModules 
{
	Clean clean : $(<) ;
	Depends $(<) : Jamfile ;
}

actions MakeModules
{
	(
	    echo '#include "httpd.h"'
	    echo '#include "http_config.h"'
	    echo ''
	    for i in $(LOADED_MODULES) $(LINKED_MODULES)
	    do echo "extern module $i;"
	    done
	    echo ''
	    echo 'module *prelinked_modules[] = {'
	    for i in $(LOADED_MODULES) $(LINKED_MODULES) 
	    do echo "	&$i,"
	    done
	    echo '   NULL'
	    echo '};'
	    echo ''
	    echo 'module *preloaded_modules[] = {'
	    for i in $(LOADED_MODULES)
	    do echo "	&$i,"
	    done
	    echo '   NULL'
	    echo '};'
	) > $(<)
}

MakeModules modules.c ;