#####################################################
# Makefile for stunnel by Michal Trojnara 1998-2001 #
#                                                   #
# Modified by Brian Hatch <bri@stunnel.org>         #
#####################################################


#-----------------------------------------------------
TOPDIR  :=  $(shell /bin/pwd)
TOPDIR  :=  $(TOPDIR)/..

include $(TOPDIR)/prerules.mk
#-----------------------------------------------------


#prefix=/usr/local
#exec_prefix=${prefix}
#sbindir=${exec_prefix}/sbin
#libdir=${exec_prefix}/lib
#man8dir=${prefix}/man/man8

piddir=${RAMDISK_DIR}/var/stunnel/
ssldir=$(RAMDISK_DIR)/usr
#openssl=$(ssldir)/bin/openssl
PEM_DIR=

VERSION=stunnel-3.26
RANDOM_FILE="/dev/urandom"
NO_DH=1
#CC=gcc
#INSTALL=/usr/bin/install -c
#INSTALLMAN=/usr/bin/install -c
CFLAGS +=-g  -I$(COMM_INC_PATH) -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DVERSION=\"3.26\" -DHAVE_OPENSSL=1 -Dssldir=\"$(RAMDISK_DIR)/usr\" -DPEM_DIR=\"\" -DRANDOM_FILE=\"$(RAMDISK_DIR)/dev/urandom\" -DNO_DH=1 -DHOST=\"armv5teb-hardhat-linux\" -DHAVE_LIBDL=1 -DHAVE_LIBNSL=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBUTIL=1 -DHAVE_LIBWRAP=1 -DHAVE_DEV_PTMX=0 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_GETOPT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_TCPD_H=1 -DHAVE_PTHREAD_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_PTY_H=1 -DHAVE_STROPTS_H=1 -DHAVE_SYS_RESOURCE_H=1 -DHAVE_GETOPT=1 -DHAVE_SNPRINTF=1 -DHAVE_VSNPRINTF=1 -DHAVE_OPENPTY=1 -DHAVE_DAEMON=1 -DHAVE_WAITPID=1 -DHAVE_WAIT4=1 -DHAVE_SYSCONF=1 -DHAVE_GETRLIMIT=1 -DHAVE_PTHREAD_SIGMASK=1 -DSIZEOF_UNSIGNED_CHAR=1 -DSIZEOF_UNSIGNED_SHORT=2 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_LONG=4 -DSIZEOF_UNSIGNED_LONG_LONG=8  -Dlibdir=\"$(libdir)\" -DPIDDIR=\"$(piddir)\"
LIBS=-lwrap -lutil -lpthread -lnsl -ldl -L$(COMM_LIB_PATH) -lssl -lcrypto 
HEADERS=common.h prototypes.h client.h
OBJS=client.o stunnel.o ssl.o protocol.o sthreads.o pty.o log.o options.o
DESTFILES=$(T_USBIN)/stunnel $(T_LIB)/stunnel.so  


# standard external rules

all: stunnel   stunnel.so 
	
install:
	cp -f stunnel $(T_USBIN)
	mkdir -p $(ssldir)/stunnel
	chmod 600 stunnel.pem
	cp -fa stunnel.pem $(ssldir)/stunnel
install.org: all installdirs $(DESTFILES)

uninstall:
	rm -f $(DESTFILES)

install-strip:
	$(MAKE) INSTALL='$(INSTALL) -s' install

clean:
	rm -f stunnel stunnel.so $(OBJS) core config.log stunnel.log

distclean: clean
	rm -f config.cache config.status Makefile stunnel.pem stunnel.exe

mostlyclean: distclean

maintainer-clean: distclean

dist: ../dist/$(VERSION).exe
	cp -rp . ../dist/$(VERSION)
	$(MAKE) -C ../dist/$(VERSION) distclean
	tar -cf - -C ../dist $(VERSION) | gzip > ../dist/$(VERSION).tar.gz
	rm -rf ../dist/$(VERSION)
	gpg --yes --armor --detach-sign --force-v3-sigs $(GPGARGS) ../dist/$(VERSION).tar.gz

installdirs: mkinstalldirs
	./mkinstalldirs $(T_USBIN) $(T_LIB)  $(piddir)
	chmod a+rwx,+t $(piddir)

# non-standard external rules

stunnel.exe: $(WINSRC) Makefile $(HEADERS)
	$(WINGCC) $(WINCFLAGS) -s -o stunnel.exe $(WINSRC) $(WINLIBS)

stunnel.8: stunnel.sdf
	sdf -2man stunnel.sdf > stunnel.8
	rm -f stunnel.out

stunnel.html: stunnel.sdf
	sdf -2html stunnel.sdf

cert:
	rm -f stunnel.pem
	$(MAKE) stunnel.pem

test: stunnel stunnel.pem
	./stunnel -D 7 -o stunnel.log -P `pwd`/stunnel.pid -d 33345 -l echo echo "It's alive!"
	./stunnel -D 7 -o stunnel.log -c -r 33345 && sleep 1 && kill `cat stunnel.pid`

# internal rules

stunnel: $(OBJS)
	$(CC) $(LDFLAGS)  -o stunnel $(OBJS) $(LIBS)
	$(CROSS_COMPILE)strip stunnel
stunnel.so: Makefile env.c
	$(CC) -fPIC -shared $(LDFLAGS) -L $(COMM_LIB_PATH)  -o stunnel.so env.c $(LIBS) || \
	touch stunnel.so

Makefile: configure Makefile.in
	./configure
	$(MAKE) clean

configure: configure.ac
	autoconf

$(OBJS): Makefile $(HEADERS)

#stunnel.pem: stunnel.cnf
#	$(openssl)/openssl req -new -x509 -days 365 -nodes \
#		-config stunnel.cnf -out stunnel.pem -keyout stunnel.pem
#	test $(NO_DH) -eq 1 || test ! -f $(RANDOM_FILE) || \
#               $(openssl) gendh -rand $(RANDOM_FILE) 512 >> stunnel.pem
#	test $(NO_DH) -eq 1 || test -f $(RANDOM_FILE) || \
#                $(openssl) gendh 512 >> stunnel.pem
#	$(openssl) x509 -subject -dates -fingerprint -noout \
#        	-in stunnel.pem

$(T_USBIN)/stunnel: stunnel
	$(INSTALL) -m 711 stunnel $(T_USBIN)

$(T_LIB)/stunnel.so: stunnel.so
	test ! -s stunnel.so || $(INSTALL) -m 755 stunnel.so $(T_LIB)



$(PEM_DIR)/stunnel.pem: stunnel.pem
	test -z "$(PEM_DIR)" -o -f "$(PEM_DIR)/stunnel.pem" || \
		$(INSTALLMAN) -m 600 stunnel.pem $(PEM_DIR)

../dist/$(VERSION).exe: stunnel.exe
	./mkinstalldirs ../dist
	cp -f stunnel.exe ../dist/$(VERSION).exe
	gpg --yes --armor --detach-sign --force-v3-sigs $(GPGARGS) ../dist/$(VERSION).exe

# End of Makefile (.in)
