aboutsummaryrefslogtreecommitdiff
path: root/openssl/demos/easy_tls/Makefile
blob: 208070074c028dd97a480c60598d7c37ff71e5a2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# Makefile for easy-tls example application (rudimentary client and server)
# $Id: Makefile,v 1.2 2001/09/18 09:15:40 bodo Exp $

SOLARIS_CFLAGS=-Wall -pedantic -g -O2
SOLARIS_LIBS=-lxnet

LINUX_CFLAGS=-Wall -pedantic -g -O2
LINUX_LIBS=


auto-all:
	case `uname -s` in \
	SunOS) echo Using SunOS configuration; \
	  make SYSCFLAGS="$(SOLARIS_CFLAGS)" SYSLIBS="$(SOLARIS_LIBS)" all;; \
	Linux) echo Using Linux configuration; \
	  make SYSCFLAGS="$(LINUX_CFLAGS)" SYSLIBS="$(LINUX_LIBS)" all;; \
	*) echo "unknown system"; exit 1;; \
	esac

all: test TAGS

# For adapting this Makefile to a different system, only the following
# definitions should need customizing:

OPENSSLDIR=../..
CC=gcc

SYSCFLAGS=whatever
SYSLIBS=whatever


#############################################################################
#
# SSLeay/OpenSSL imports
#
# OPENSSLDIR (set above) can be either the directory where OpenSSL is
# installed or the directory where it was compiled.

# We rely on having a new OpenSSL release where include files
# have names like <openssl/ssl.h> (not just <ssl.h>).
OPENSSLINCLUDES=-I$(OPENSSLDIR)/include

# libcrypto.a and libssl.a are directly in $(OPENSSLDIR) if this is
# the compile directory, or in $(OPENSSLDIR)/lib if we use an installed
# library.  With the following definition, we can handle either case.
OPENSSLLIBS=-L$(OPENSSLDIR) -L$(OPENSSLDIR)/lib -lssl -lcrypto


#############################################################################
#
# Stuff for handling the source files
#

SOURCES=easy-tls.c test.c
HEADERS=easy-tls.h test.h
DOCSandEXAMPLESetc=Makefile cert.pem cacerts.pem
EVERYTHING=$(SOURCES) $(HEADERS) $(DOCSandEXAMPLESetc)

ls: ls-l
ls-l:
	ls -l $(EVERYTHING)
# For RCS:
tag:
	-rcs -n_`date +%y%m%d`: $(EVERYTHING)
	rcs -nMYTAG $(EVERYTHING)
	rcs -nMYTAG: $(EVERYTHING)
diff:
	-rcsdiff -rMYTAG -u $(EVERYTHING)
today:
	-rcsdiff -r_`date +%y%m%d` -u $(EVERYTHING)
ident:
	for a in $(EVERYTHING); do ident $$a; done

# Distribution .tar:
easy-tls.tar.gz: $(EVERYTHING)
	tar cvf - $(EVERYTHING) | \
	gzip -9 > easy-tls.tar.gz

# Working .tar:
tls.tgz: $(EVERYTHING)
	tar cfv - `find . -type f -a ! -name '*.tgz' -a ! -name '*.tar.gz'` | \
	gzip -9 > tls.tgz

# For emacs:
etags: TAGS
TAGS: $(SOURCES) $(HEADERS)
	-etags $(SOURCES) $(HEADERS)


#############################################################################
#
# Compilation
#
# The following definitions are system dependent (and hence defined
# at the beginning of this Makefile, where they are more easily found):

### CC=gcc
### SYSCFLAGS=-Wall -pedantic -g -O2
### SYSLIBS=-lxnet

EXTRACFLAGS=-DTLS_APP=\"test.h\"
# EXTRACFLAGS=-DTLS_APP=\"test.h\" -DDEBUG_TLS

#
# The rest shouldn't need to be touched.
#
LDFLAGS=$(SYSLIBS) $(OPENSSLLIBS)
INCLUDES=$(OPENSSLINCLUDES)
CFLAGS=$(SYSCFLAGS) $(EXTRACFLAGS) $(INCLUDES)

OBJS=easy-tls.o test.o

clean:
	@rm -f test
	@rm -f TAGS
	@rm -f *.o
	@rm -f core

test: $(OBJS)
	$(CC) $(OBJS) $(LDFLAGS) -o test

test.o: $(HEADERS)
easy-tls.o: $(HEADERS)