###########################################################################
# Makefile for the programs in the directory "appli"
# http://meganesia.int.gu.edu.au/~phmartin/int3004/cgi/appli/Makefile
###########################################################################



############################# COMPILERS ###########################

C++     = g++
CC      = gcc
OPTIONS = -g -Wall -I.
OPTLINK = -g -Wall 
#-lg++
OPTLIB  = 
#on Hal: OPTLIB = -lnsl -lsocket

#C++: at least g++-2.6.3
#CCpedantic   = gcc -c -g -pedantic -D_NO_PROTO
#CCnopedantic = gcc -c -g -D_NO_PROTO
# -O2: optimisation level 2;  no "-g" with some gcc;  -fno-gnu-linker -pedantic
#OPTLINK = -g -Wall -static 



########################### ABSOLUTE PATHS ###########################

HOME     = /home/phmartin
Appli    = $(HOME)/public_html/int3004/cgi/appli
AppliURL = http://meganesia.int.gu.edu.au/~phmartin/int3004/cgi/appli/
CgiURL   = $(AppliURL)/printParameters.cgi

CgiBIN   = $(Appli)
#The "CGI bin" directory is sometimes imposed by the CGI server. Examples:
#CgiBIN  = $(HOME)/../httpd/cgi-bin
#CgiBIN  = $(HOME)/www/cgi-bin

WWWCP_COMMAND= $(CgiBIN)/wwwcp

W3c      = $(Appli)/w3c-libwww-5.1l
#Browsable at: http://www.w3.org/Library/


#if there is no proxy, delete the following values
HTTP_PROXY  = http://webcache.gu.edu.au:8080
FTP_PROXY   = ftp://webcache.gu.edu.au:8080
NEWS_PROXY  = news://webcache.gu.edu.au:8080
WAIS_PROXY  = wais://webcache.gu.edu.au:8080
GOPHER_PROXY= proxy://webcache.gu.edu.au:8080

NO_PROXY1   = www.gu.edu.au
NO_PROXY1_PORT = 0
NO_PROXY2   = meganesia.int.gu.edu.au
NO_PROXY2_PORT = 0
PROXY_REALM = "Griffith University Internet Login"
#give empty strings for these 2 variables if no authentification is required
PROXY_UID   = "a proxy UID"
PROXY_PASSWD= "a proxy passord"


#In case of problems with libraries at compilation:
#setenv LD_LIBRARY_PATH  /usr/lib/X11:/usr/lib:/lib



########################### RELATIVE PATHS ###############################

AppliOBJ   =  $(Appli)/obj
AppliSRC   =  $(Appli)/src

W3cLIB     =  $(W3c)/Library/src/libwww.a
#W3cINC     =  -I$(W3c)/lib/include/w3c-libwww -DHAVE_CONFIG_H
W3cINC    =  -I$(W3c)/Library/src -DHAVE_CONFIG_H



########################### TARGETS #####################################

all: $(CgiBIN)/echoGETorPOSTparam $(CgiBIN)/printParameters.cgi \
     $(CgiBIN)/wwwcp



$(CgiBIN)/echoGETorPOSTparam: $(AppliOBJ)/echoGETorPOSTparam.o
	$(CC) -o $(CgiBIN)/echoGETorPOSTparam $(OPTLINK) \
                 $(AppliOBJ)/echoGETorPOSTparam.o
	chmod go+x $(CgiBIN)/echoGETorPOSTparam;  echo ''

$(AppliOBJ)/echoGETorPOSTparam.o: $(AppliSRC)/echoGETorPOSTparam.c
	$(CC) $(OPTIONS) -o $(AppliOBJ)/echoGETorPOSTparam.o \
                         -c $(AppliSRC)/echoGETorPOSTparam.c



$(CgiBIN)/printParameters.cgi: $(AppliOBJ)/printParameters.o \
               $(AppliOBJ)/handyFcts.o $(W3cLIB)
	$(CC) -o $(CgiBIN)/printParameters.cgi $(OPTLINK) $(OPTLIB) \
               $(AppliOBJ)/printParameters.o $(AppliOBJ)/handyFcts.o $(W3cLIB)
	chmod go+x $(CgiBIN)/printParameters.cgi;  echo ''

$(AppliOBJ)/printParameters.o: $(AppliSRC)/printParameters.c
	$(CC) -I. $(W3cINC) $(OPTIONS) \
              -o $(AppliOBJ)/printParameters.o \
              -c $(AppliSRC)/printParameters.c



$(CgiBIN)/wwwcp: $(AppliOBJ)/wwwcp.o  $(W3cLIB)
	$(CC) -o $(CgiBIN)/wwwcp $(OPTLINK) $(OPTLIB) \
                 $(AppliOBJ)/wwwcp.o $(W3cLIB)
	/bin/cp $(CgiBIN)/wwwcp $(CgiBIN)/wwwcp.cgi
	chmod go+x $(CgiBIN)/wwwcp $(CgiBIN)/wwwcp.cgi;  echo ''

$(AppliOBJ)/wwwcp.o: $(AppliSRC)/wwwcp.c $(AppliSRC)/Makefile
	$(CC) -I. $(W3cINC) $(OPTIONS) \
	      -DAPPLI_URL='"$(AppliURL)"' \
              -DHTTP_PROXY='"$(HTTP_PROXY)"' -DFTP_PROXY='"$(FTP_PROXY)"' \
              -DNEWS_PROXY='"$(NEWS_PROXY)"' -DWAIS_PROXY='"$(WAIS_PROXY)"' \
              -DGOPHER_PROXY='"$(GOPHER_PROXY)"' -DNO_PROXY1='"$(NO_PROXY1)"'\
              -DNO_PROXY1_PORT='$(NO_PROXY1_PORT)' \
              -DNO_PROXY2='"$(NO_PROXY2)"' \
              -DNO_PROXY2_PORT='$(NO_PROXY2_PORT)' \
              -DPROXY_REALM='$(PROXY_REALM)' \
              -DPROXY_UID='$(PROXY_UID)' -DPROXY_PASSWD='$(PROXY_PASSWD)' \
              -o $(AppliOBJ)/wwwcp.o  -c $(AppliSRC)/wwwcp.c



$(AppliOBJ)/handyFcts.o: $(AppliSRC)/handyFcts.c $(AppliSRC)/Makefile
	$(CC) -I. $(W3cINC) $(OPTIONS) \
	      -DAPPLI_URL='"$(AppliURL)"' -DWWWCP_COMMAND='"$(WWWCP_COMMAND)"'\
              -DHTTP_PROXY='"$(HTTP_PROXY)"'  -DFTP_PROXY='"$(FTP_PROXY)"' \
              -DNEWS_PROXY='"$(NEWS_PROXY)"'  -DWAIS_PROXY='"$(WAIS_PROXY)"' \
              -DGOPHER_PROXY='"$(GOPHER_PROXY)"' -DNO_PROXY1='"$(NO_PROXY1)"' \
              -DNO_PROXY1_PORT='$(NO_PROXY1_PORT)' \
              -DNO_PROXY2='"$(NO_PROXY2)"' \
              -DNO_PROXY2_PORT='$(NO_PROXY2_PORT)' \
              -DPROXY_REALM='$(PROXY_REALM)' \
              -DPROXY_UID='$(PROXY_UID)' -DPROXY_PASSWD='$(PROXY_PASSWD)' \
           -o $(AppliOBJ)/handyFcts.o  -c $(AppliSRC)/handyFcts.c
