#-----------------------------------------------------------------------
# Makefile for Hitop Version 0.31 and above
# Darren@durge.org 19991203
#-----------------------------------------------------------------------

CXX = /usr/bin/g++
LD = ${CXX}
STRIP = /usr/bin/strip
#STRIP = /bin/true
CPPFLAGS = -O3 -Wall -pedantic -export-dynamic
MCPPFLAGS = -O3 -Wall -pedantic -DPIC -fPIC
LDFLAGS = -Wl,--export-dynamic
MLDFLAGS = -shared -fPIC -DPIC
LIBS = -ldl

#CPPFLAGS = -pg -O0 -Wall -ggdb3
#LDFLAGS = -pg

COMMONOBJ = htmlstream.o html.o vars.o image.o jpeg.o gif.o png.o\
	defstore.o imgstore.o nav.o stringproc.o error.o maths.o\
	hitopcore.o hitopcommands.o dtutils.o tables/tables.o\
	nav.o navstore.o tables/entities.o tables/elements.o\
	tokenmap.o plugin.o pluginmgr.o dbase.o dbmgr.o

PLUGINS		= plugins/calendar.so plugins/ecommerce.so plugins/color.so \
	plugins/db.so plugins/mysql.so plugins/pgsql.so plugins/scheduler.so \
	plugins/notify.so plugins/english.so plugins/francais.so \
	plugins/deutsch.so plugins/italiano.so


PLUGINSO	= plugins/calendar.o plugins/ecommerce.o plugins/color.o \
	plugins/db.o plugins/mysql.o plugins/pgsql.o plugins/scheduler.o \
	plugins/notify.o plugins/english.so plugins/francais.so \
	plugins/deutsch.o plugins/italiano.o

HITOPINSTALL = /usr/local/bin/hitop
HITOPLIVEINSTALL = /home/httpd/cgi-bin/hitoplive
PLUGINSINSTALL = /usr/local/lib/hitop

#-----------------------------------------------------------------------

all : hitop hitoplive $(PLUGINS)
	$(STRIP) hitop
	$(STRIP) hitoplive
	$(STRIP) $(PLUGINS)

include Make.dependancies

.PHONY : clean depend install
.PRECIOUS : %.lo

depend : Make.dependancies

Make.dependancies : *.cc *.h plugins/*.cc plugins/*.h tables/*.cc tables/*.h
	@ echo Remaking the file dependancies
	$(CXX) -MM *.cc plugins/*.cc tables/*.cc> $@

% : %.o
	$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)

%.so : %.o
	$(LD) $(MLDFLAGS) $(MLIBS) -o $@ $^

$(PLUGINSO) : CPPFLAGS=$(MCPPFLAGS)
plugins/passwordfile.so : MLIBS=-lcrypt
plugins/mysql.so : MLIBS=-lmysqlclient
plugins/pgsql.so : MLIBS=-lpq++
plugins/pgsql.o: CPPFLAGS=$(MCPPFLAGS) -I/usr/include/pgsql
plugins/notify.so: MLIBS=-lghttp
#-----------------------------------------------------------------------

hitop : hitop.o $(COMMONOBJ)

hitoplive : hitoplive.o $(COMMONOBJ)

clean :
	rm -f $(COMMONOBJ) $(PLUGINS) $(PLUGINSO) hitop hitoplive Make.dependancies hitop.o hitoplive.o

install : hitop hitoplive
	cp hitop $(HITOPINSTALL)
	# chgrp web $(HITOPINSTALL)
	chmod 775 $(HITOPINSTALL)
	cp hitoplive $(HITOPLIVEINSTALL)
	# chgrp web $(HITOPLIVEINSTALL)
	chmod 775 $(HITOPLIVEINSTALL)
	cp -p $(PLUGINS) $(PLUGINSINSTALL)
#-----------------------------------------------------------------------

