# 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
#
# Aby nie wkompilowywac opcji wysylania wiadomosci z dowolnego dostepnegp IP
# nalezy dodac opcje -DNO_ANYIP Jesli podczas kompilacji otrzymamy
# bledy o nieznanych funkcjach, np.  getaddrinfo() nalezy dodac wlasnie te
# opcje.
#
# 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 caly
# ponizszy blok:
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

# jesli kompilujemu program w systemie AmigaOS nalezy odkomentowac
# ponizsze linie:
# AMIGA_LIB=-lstdc++

# 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)/share/sms
INSTALL_MAN=$(INSTALL_PREFIX)/man

# ponizej juz nic nie powinno sie zmieniac

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

all: $(TARGET)
$(TARGET): $(ADDR_O) $(OLD_S) plus.o era.o podziel_sms.o headers.o request.o main.o socket.o debug.o mail.o czat.o match.o eranet.o wap.o nike.o miastoplusa.o idea_mbox.o
	$(CXX) $(CFLAGS) -o $(TARGET) $(ADDR_O) $(OLD_S) plus.o era.o podziel_sms.o headers.o request.o main.o socket.o debug.o mail.o czat.o match.o eranet.o wap.o nike.o miastoplusa.o idea_mbox.o $(LIBS_OPT)
	$(LNCMD)
#+

addrbook.o: addrbook.cc addrbook.h match.o
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c addrbook.cc
cgdbm.o: cgdbm.cc cgdbm.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c cgdbm.cc

snprintf.o: snprintf.c
	$(CC) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c snprintf.c
nike.o: nike.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c nike.cc
eranet.o: eranet.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c eranet.cc
wap.o: wap.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c wap.cc
match.o: match.c match.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c match.c

miastoplusa.o: miastoplusa.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c miastoplusa.cc
idea_mbox.o: idea_mbox.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c idea_mbox.cc
czat.o: czat.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c czat.cc
plus.o: plus.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(CFLAGS2) $(INCLUDE_OPT) -c plus.cc
era.o: era.cc sms.h headers.h request.h
	$(CXX) $(CFLAGS) $(INCLUDE_OPT) -c era.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_MAN)/man1 $(INSTALL_MAN)/man5
	install -s -m 755 $(TARGET) $(SMSADDR) $(INSTALL_BIN)
	mkdir -p -m 755 $(INSTALL_DOC)/contrib/tksms
	cp README* $(INSTALL_DOC);
	cp -R contrib/* $(INSTALL_DOC)/contrib
	chmod -R a+rX $(INSTALL_DOC)/*
	install -m 644 doc/man/sms.1 $(INSTALL_MAN)/man1
	install -m 644 doc/man/smsaddr.1 $(INSTALL_MAN)/man1
	install -m 644 doc/man/smsrc.5 $(INSTALL_MAN)/man5

archive: clean
	./make_archive

