1# Makefile for proxytunnel
2#
3# Please uncomment the appropriate settings
4
5name = proxytunnel
6version = $(shell awk 'BEGIN { FS="\"" } /^\#define VERSION / { print $$2 }' config.h)
7
8CC ?= cc
9CFLAGS ?= -Wall -O2 -ggdb
10
11# Comment on non-gnu systems
12OPTFLAGS += -DHAVE_GETOPT_LONG
13
14# Comment if you don't have/want ssl
15OPTFLAGS += -DUSE_SSL
16
17# Most systems
18OPTFLAGS += -DSETPROCTITLE -DSPT_TYPE=2
19
20# System dependant blocks... if your system is listed below, uncomment
21# the relevant lines
22
23# OpenBSD
24#OPTFLAGS += -DHAVE_SYS_PSTAT_H
25
26# DARWIN
27#OPTFLAGS += -DDARWIN
28
29# CYGWIN
30#OPTFLAGS += -DCYGWIN
31
32# SOLARIS
33#LDFLAGS += -lsocket -lnsl
34#LDFLAGS += -L/usr/local/ssl/lib	# Path to your SSL lib dir
35
36# END system dependant block
37
38SSL_LIBS := $(shell pkg-config --libs openssl 2>/dev/null)
39ifeq ($(SSL_LIBS),)
40SSL_LIBS := $(shell pkg-config --libs libssl 2>/dev/null)
41endif
42ifeq ($(SSL_LIBS),)
43SSL_LIBS := -lssl -lcrypto
44endif
45LDFLAGS += $(SSL_LIBS)
46
47prefix = /usr/local
48bindir = $(prefix)/bin
49datadir = $(prefix)/share
50mandir = $(datadir)/man
51
52# Remove strlcpy/strlcat on (open)bsd/darwin systems
53OBJ = proxytunnel.o	\
54	base64.o	\
55	strzcat.o	\
56	setproctitle.o	\
57	io.o		\
58	http.o		\
59	basicauth.o	\
60	readpassphrase.o	\
61	messages.o	\
62	cmdline.o	\
63	globals.o	\
64	ntlm.o		\
65	ptstream.o
66
67UNAME = $(shell uname)
68ifneq ($(UNAME),Darwin)
69OBJ += strlcpy.o	\
70	strlcat.o
71endif
72
73.PHONY: all clean docs install
74
75all: proxytunnel docs
76
77docs:
78	$(MAKE) -C docs
79
80proxytunnel: $(OBJ)
81	$(CC) -o $(name) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) $(OBJ) $(LDFLAGS)
82
83clean:
84	@rm -f $(name) $(OBJ)
85	$(MAKE) -C docs clean
86
87install:
88	install -d $(DESTDIR)$(bindir)
89	install -p -m555 $(name) $(DESTDIR)$(bindir)
90	$(MAKE) -C docs install
91
92.c.o:
93	$(CC) $(CPPFLAGS) $(CFLAGS) $(OPTFLAGS) -c -o $@ $<
94
95dist: clean docs
96	sed -i -e 's/^Version:.*$$/Version: $(version)/' contrib/proxytunnel.spec
97	find . ! -wholename '*/.svn*' | pax -d -w -x ustar -s ,^./,$(name)-$(version)/, | bzip2 >../$(name)-$(version).tar.bz2
98
99rpm: dist
100	rpmbuild -tb --clean --rmsource --rmspec --define "_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" --define "_rpmdir ../" ../$(name)-$(version).tar.bz2
101
102srpm: dist
103	rpmbuild -ts --clean --rmsource --rmspec --define "_rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" --define "_srcrpmdir ../" ../$(name)-$(version).tar.bz2
104