# Wygenerowano Tue Jun  8 19:28:21 1999
# przez mkmake - (c) Mikolaj Rydzewski, <miki@ceti.pl>

TARGET=sms
CXX?=c++
CC?=gcc

# aby skompilowac program z opcja sledzenia dodaj opcje -DDEBUG
#
# starsze wersje g++ nie mialy wlaczonej obslugi wyjatkow - jesli uzywasz
# takiej to dodaj flage --handle-exceptions
#
# aby skompilowac program w systemie gdzie nie ma funkcji vsnprintf()
# nalezy dodac opcje -DNO_VSPRINTF
#
# Aby zwracane byly kody bledow w stylu qmaila -DFOR_QMAIL
#
# wszystkie ww opcje nalezy dodawac do zmiennej CFLAGS

CFLAGS+=-O2

# dla starszych wersji Solarisa (tam gdzie nie ma snprintf, getdomainname,
# itd.) odkomentuj ponizsze dwie linie:
# CFLAGS2=-DOLD_SOLARIS
# OLD_S=snprintf.o

# jesli kompilujesz program pod SunOS / Solaris  nalezy odkomentowac
# ponizsza linie:
# SOLARIS_LIBS_OPT=-lsocket -lnsl -L/usr/local/lib -R/usr/local/lib

# jesli chcesz wylaczyc obsluge ksiazki adresowej zakomentuj ponizsze
# linie:
GDBM=-lgdbm
ADDR_DEF=-DADDR_BOOK
ADDR_O=cgdbm.o addrbook.o
SMSADDR=smsaddr
LNCMD=rm -f $(SMSADDR); ln -s $(TARGET) $(SMSADDR)

# nw katalogi nie sa przeszukiwane automatycznie na FreeBSD, NetBSD i OpenBSD.
# Odkomentuj ponizsze linie jesli kompilujesz program na tych systemach
# BSD_INC=-I/usr/local/include -I/usr/pkg/include
# BSD_LIB=-L/usr/local/lib -L/usr/pkg/lib

# katalog pod ktorym program zostanie zainstalowany po make install - binaria
# ida do $DIR/$BIN, reszta do $DIR/$DOC
PREFIX?=/usr/local
INSTALL_PREFIX=$(PREFIX)
INSTALL_BIN=$(INSTALL_PREFIX)/bin
INSTALL_DOC=$(INSTALL_PREFIX)/doc/sms

# ponizej juz nic nie powinno sie zmieniac

INCLUDE_OPT=$(BSD_INC)
LIBS_OPT=$(GDBM) $(SOLARIS_LIBS_OPT) $(BSD_LIB)

all: $(TARGET)
$(TARGET): $(ADDR_O) $(OLD_S) plus.o idea.o era.o freesms.o podziel_sms.o headers.o request.o main.o socket.o debug.o mail.o icq.o
	$(CXX) $(CFLAGS) -o $(TARGET) $(ADDR_O) $(OLD_S) plus.o idea.o era.o freesms.o podziel_sms.o headers.o request.o main.o socket.o debug.o mail.o icq.o $(LIBS_OPT)
	$(LNCMD)
#+

#ifdef GDBM
addrbook.o: addrbook.cc addrbook.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c addrbook.cc
cgdbm.o: cgdbm.cc cgdbm.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c cgdbm.cc
#endif

#ifdef OLD_S
snprintf.o: snprintf.c
	$(CC) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c snprintf.c
#endif

plus.o: plus.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c plus.cc
idea.o: idea.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c idea.cc
era.o: era.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c era.cc
icq.o: icq.cc sms.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c icq.cc
freesms.o: freesms.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c freesms.cc
podziel_sms.o: podziel_sms.cc sms.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c podziel_sms.cc
headers.o: headers.cc headers.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c headers.cc
request.o: request.cc sms.h request.h socket.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c request.cc
main.o: main.cc addrbook.h sms.h headers.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) $(ADDR_DEF) -c main.cc
socket.o: socket.cc socket.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c socket.cc
debug.o: debug.cc debug.h sms.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c debug.cc
mail.o: mail.cc sms.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c mail.cc
#.
clean:
	rm -f sms.log core *.o $(TARGET) $(SMSADDR)
install: all
	mkdir -p -m 755 $(INSTALL_BIN)
	install -s -m 755 $(TARGET) $(SMSADDR) $(INSTALL_BIN)
	mkdir -p $(INSTALL_DOC)/contrib
	install -m 644 README* $(INSTALL_DOC)
	install -m 644 contrib/* $(INSTALL_DOC)/contrib
	chmod -R a+rX $(INSTALL_DOC)

archive: clean
	./make_archive

