#
# Makefile for the GoAhead web server reference source base
#  for the Linux OS
#
# Copyright (c) GoAhead Software, Inc. 1995-2000
#
# $Id: Makefile,v 1.51 2006/07/12 17:19:12 edson Exp $
#

LISTF_T=$(shell ls ../web/*.asp.$(TARG) ../web/*.gif.$(TARG) ../web/*.jpg.$(TARG) ../web/*.css.$(TARG) ../web/*.pem.$(TARG) ../web/um/*.asp.$(TARG) ../web/cfg/*.asp.$(TARG) ../web/adm/*.asp.$(TARG) ../web/read/*.asp.$(TARG) 2>/dev/null )
LISTF=$(LISTF_T:.$(TARG)=)

# MontaVista Cross-compiler paths
CROSS_COMPILE = /opt/hardhat/devkit/ppc/8xx/bin/ppc_8xx-
CC  = $(CROSS_COMPILE)gcc
AR  = $(CROSS_COMPILE)ar
STRIP   =$(CROSS_COMPILE)strip --remove-section=.note --remove-section=.comment
#CC = gcc
#AR = ar
#STRIP   =strip --remove-section=.note --remove-section=.comment

# Libcrypto paths
LIBCRYPTO_DIR = $(OPEN_SSL_DIR)
LIBCRYPTO = $(LIBCRYPTO_DIR)/libcrypto.so
 
# Libssl paths
LIBSSL_DIR = $(OPEN_SSL_DIR)
LIBSSL = $(LIBSSL_DIR)/libssl.so

# LibZ paths
#LIBZ = $(PROJ)/zlib-1.1.4/libz.so
LIBZ = $(ZLIB_DIR)/libz.so

# LibXML paths
LIBXML = $(WEBS_DIR)/LINUX/Binaries/libxml2.a

ARFLAGS = rc

ARCH    = libwebs.a
NAME	= $(TARGET_DIR)/bin/webs

# User Management switch
UMSW	= -DUSER_MANAGEMENT_SUPPORT -DCYCLADES_TSxK

# Digest Access switch
DASW	= -DDIGEST_ACCESS_SUPPORT

# SSL switches (enable all to activate)
SSLINC = $(OPEN_SSL_DIR)/include
SSLLIB = $(LIBSSL) $(LIBCRYPTO)
SSLSW	= -DWEBS_SSL_SUPPORT -DOPENSSL -I$(SSLINC)
SSLPATCHFILE = ../websSSL.o

# XML switches (enable all to active)
#XMLINC = $(LIBXML2_DIR)/include
#XMLLIB = $(LIBXML) $(LIBZ)
#XMLSW = -DWEBS_XML_SUPPORT -I$(XMLINC)

# If-Modified-Support switches (requires math library, libm.a)
# IFMODSW = -DWEBS_IF_MODIFIED_SUPPORT
# IFMODLIB = /usr/lib/libm.a

# Dependencies
APPL_FILES		= appl1.o appl2.o appl3.o appl4.o appl5.o appl6.o
ifeq ($(DEFTARG),OEM1)
OEM1_APPL_FILES		= ./Binaries/appl7.o ./Binaries/appl8.o
endif
DEPEND_FILES	= ../asp.o ../balloc.o ../base64.o ../cgi.o ../default.o  \
				  ../ejlex.o ../ejparse.o ../form.o \
				  ../h.o ../handler.o ../mime.o ../misc.o ../page.o  \
				  ../ringq.o ../rom.o \
				  ../sock.o ../sockGen.o $(SSLPATCHFILE) \
				  ../security.o ../sym.o ../uemf.o ../url.o ../value.o \
				  ../md5c.o ../um.o ../umui.o ../websda.o ../emfdb.o \
				  ../webrom.o ../webs.o ../websuemf.o 


INSTALL=/usr/bin/install

RASDIR = $(RAS_DIR)/src
INCDIR = $(PROJ)/linux/include

CFLAGS	= -DWEBS -DUEMF -DOS="LINUX" -DLINUX $(UMSW) $(DASW) $(SSLSW) $(IFMODSW)

ifndef ($(PLATFORM),SM100)
	CFLAGS += -DWEBS_PMD
endif

CFLAGS += -D$(DEFTARG) -D$(PLATFORM)

#OTHERS	= -DB_STATS -DB_FILL -DDEBUG
OTHERS	= -DDEBUG -DCYC_FIX

ifdef APPL_DEBUG
XDEBUG = -g -ggdb
LDFLAGS	= $(SSLLIB) $(IFMODLIB)
else
XDEBUG =
LDFLAGS	= $(SSLLIB) $(IFMODLIB)
endif

ifeq ($(DEFTARG),OEM1)
	LDFLAGS += $(LIBXML) $(LIBZ)
endif

IFLAGS 	= -I.. -I$(RAS_DIR) -I$(INCDIR) -I$(PMD_DIR)

all:	compile install

compile: $(NAME)

#
#	Build archive of objects
#
$(ARCH): $(DEPEND_FILES)
	$(AR) $(ARFLAGS) $(ARCH) $(DEPEND_FILES)

#
#	Primary link
#
$(NAME): Makefile $(ARCH) main.o $(OEM1_APPL_FILES) $(APPL_FILES) $(RASDIR)/rot_nports.o
	$(CC) -o webs $(XDEBUG) \
		$(CFLAGS) $(IFLAGS) \
		main.o  $(RASDIR)/rot_nports.o $(APPL_FILES) $(OEM1_APPL_FILES) $(ARCH) $(LDFLAGS) -L$(RASDIR) -lcycl; \

clean:
	rm -f webs $(NAME) $(ARCH) $(APPL_FILES) $(DEPEND_FILES) main.o $(RASDIR)/rot_nports.o 

#
#	Dependencies
#
../asp.o:  ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../balloc.o: ../balloc.c ../uemf.h

../base64.o:  ../base64.c ../webs.h ../wsIntrn.h  ../ej.h ../ejIntrn.h ../uemf.h

../cgi.o:  ../webs.h ../wsIntrn.h ../uemf.h

../default.o:  ../default.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../ejlex.o:  ../ejlex.c ../ej.h ../ejIntrn.h ../uemf.h

../ejparse.o:  ../ejparse.c ../ej.h ../ejIntrn.h ../uemf.h

../emfdb.o:  ../emfdb.h ../wsIntrn.h ../uemf.h

../form.o:  ../form.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../h.o:  ../h.c ../uemf.h

../handler.o:  ../handler.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../md5c.o:  ../md5.h ../wsIntrn.h ../uemf.h

../mime.o:  ../mime.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../misc.o:  ../misc.c ../uemf.h

../page.o:  ../page.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../ringq.o:  ../ringq.c ../uemf.h

../rom.o:  ../rom.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../security.o:  ../security.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../sock.o:  ../sock.c ../uemf.h

../sockGen.o:  ../sockGen.c ../uemf.h

../sym.o:  ../sym.c ../uemf.h

../uemf.o:  ../uemf.c ../uemf.h

../um.o:  ../webs.h ../wsIntrn.h ../um.h ../uemf.h

../umui.o:  ../webs.h ../wsIntrn.h ../um.h ../uemf.h

../url.o:  ../url.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../value.o:  ../value.c ../uemf.h

../webrom.o:  ../webrom.c ../webs.h ../wsIntrn.h ../uemf.h

../webs.o:  ../webs.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../websda.o:  ../webs.h ../wsIntrn.h ../websda.h ../uemf.h

../websuemf.o:  ../websuemf.c ../webs.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

../websSSL.o:  ../websSSL.c ../websSSL.h ../wsIntrn.h ../ej.h ../ejIntrn.h ../uemf.h

main.o:  main.c ../wsIntrn.h ../webs.h ../ej.h ../ejIntrn.h ../uemf.h

appl1.o:  appl1.c ../wsIntrn.h ../webs.h ../ej.h ../ejIntrn.h ../uemf.h

appl2.o:  appl2.c ../wsIntrn.h ../webs.h ../ej.h ../ejIntrn.h ../uemf.h

appl3.o:  appl3.c ../wsIntrn.h ../webs.h ../ej.h ../ejIntrn.h ../uemf.h

appl4.o:  appl4.c ../wsIntrn.h ../webs.h ../ej.h ../ejIntrn.h ../uemf.h

appl5.o:  appl5.c ../wsIntrn.h ../webs.h ../ej.h ../ejIntrn.h ../uemf.h

appl6.o:  appl6.c ../wsIntrn.h ../um.h

#
#	Transition rules (add -o to put object in right directory)
#
.c.o:
	$(CC) -c -o $@ $(XDEBUG) $(CFLAGS) $(OTHERS) $(IFLAGS) $<

install: 
	${INSTALL} -m 755 webs $(NAME)
	$(STRIP) $(NAME) 
	@( \
	${INSTALL} -d -m 755 $(TARGET_DIR)/web; \
	${INSTALL} -d -m 755 $(TARGET_DIR)/web/um; \
	${INSTALL} -d -m 755 $(TARGET_DIR)/web/cfg; \
	${INSTALL} -d -m 755 $(TARGET_DIR)/web/adm; \
	${INSTALL} -d -m 755 $(TARGET_DIR)/web/read; \
	${INSTALL} -d -m 755 $(TARGET_DIR)/web/appl; \
	${INSTALL} -d -m 755 $(TARGET_DIR)/web/appl/profiles; \
	)

	@( \
	${INSTALL} -m 755 ../web/*.asp      $(TARGET_DIR)/web; \
	${INSTALL} -m 755 ../web/*.gif      $(TARGET_DIR)/web; \
	${INSTALL} -m 755 ../web/*.jpg      $(TARGET_DIR)/web; \
	${INSTALL} -m 755 ../web/*.css      $(TARGET_DIR)/web; \
	${INSTALL} -m 400 ../web/*.pem      $(TARGET_DIR)/web; \
	${INSTALL} -m 755 ../web/um/*.asp   $(TARGET_DIR)/web/um; \
	${INSTALL} -m 755 ../web/cfg/*.asp  $(TARGET_DIR)/web/cfg; \
	${INSTALL} -m 755 ../web/adm/*.asp  $(TARGET_DIR)/web/adm; \
	${INSTALL} -m 755 ../web/read/*.asp $(TARGET_DIR)/web/read; \
	${INSTALL} -m 755 ../web/appl/*.asp $(TARGET_DIR)/web/appl; \
	${INSTALL} -m 755 ../web/appl/*.conf $(TARGET_DIR)/web/appl; \
	${INSTALL} -m 755 ../web/appl/*.gif $(TARGET_DIR)/web/appl; \
	)

ifeq ($(DEFTARG),OEM1)
	${INSTALL} -m 755 ../web/appl/jta20.jar $(TARGET_DIR)/web/appl; 
else
	${INSTALL} -m 755 ../web/appl/jta25.jar $(TARGET_DIR)/web/appl; 
	@if [ "$(PLATFORM)" = "TS1H" ] ; then \
	  ${INSTALL} -m 755 ../web/appl/temperature.jar $(TARGET_DIR)/web/appl; \
	  cd $(TARGET_DIR)/web/appl; \
	  ln -s temperature.jar temp.jar; \
	fi
endif

	@if [ "$(DEFTARG)" = "OEM1" ] ; then \
           rm -f $(TARGET_DIR)/web/ts[1,4,8]00.gif; \
           rm -f $(TARGET_DIR)/web/ts[1,2,3]000.gif; \
           rm -f $(TARGET_DIR)/web/sm100.gif; \
           rm -f $(TARGET_DIR)/web/tsbg.gif; \
           ${INSTALL} -m 755 ../web/read/sportcfg.asp.pmd $(TARGET_DIR)/web/read/sportcfg.asp; \
	fi

	@if [ "$(PLATFORM)" = "TS1H" ] ; then \
           rm -f $(TARGET_DIR)/web/ts[4,8]00.gif; \
           rm -f $(TARGET_DIR)/web/ts[1,2,3]000.gif; \
           rm -f $(TARGET_DIR)/web/sm100.gif; \
    fi
	@if [ "$(PLATFORM)" = "SM100" ] ; then \
           rm -f $(TARGET_DIR)/web/ts[1,4,8]00.gif; \
           rm -f $(TARGET_DIR)/web/ts[1,2,3]000.gif; \
    fi
	@if [ "$(PLATFORM)" = "TS" ] ; then \
           rm -f $(TARGET_DIR)/web/ts110.gif; \
           rm -f $(TARGET_DIR)/web/ts100.gif; \
           rm -f $(TARGET_DIR)/web/sm100.gif; \
    fi

	@echo TARG_LISTF=$(LISTF)

	@( for file in x $(LISTF) ;  do \
		if [ ! $$file = x ] ; then \
			${INSTALL} -m 755 $$file.$(TARG) $(TARGET_DIR)/web/$$file; \
		fi \
	done )

