Improvements in Python support and installation of Python and includes
[tlspool] / lib / Makefile
1 ifdef WINVER
2 TARGETS = libtlspool.dll libtlspool.lib
3 else
4 TARGETS = libtlspool.so libtlspool.a
5 endif
6
7 #
8 # Wrappers for other languages.
9 # Built als language_tlspool.so to allow their co-existence in this directory.
10 # Installation may have to rename, e.g. pyhton_tlspool.so -> _tlspool.so
11 #
12 # Since the TLS Pool passes structures in and out, language wrappers may be needed.
13 #
14 WRAPPERS = python go
15 #WISHLIST: tcl ruby perl tcl java cis php lua go r modula3 javascript [and so on...]
16
17 CFLAGS += -fPIC -I ../include -std=gnu11
18 CFLAGS += -O0 -ggdb3
19
20 LDFLAGS += -std=gnu11
21
22 LIBS += -lpthread
23
24 PREFIX ?= /usr/local
25
26 ifdef WINVER
27 # TODO libtlspool_lidentry and libtlspool_pinentry
28 libtlspool_OBJS = libtlspool.o
29 else
30 libtlspool_OBJS = libtlspool.o libtlspool_lidentry.o libtlspool_pinentry.o libtlspool_configvar.o
31 endif
32
33 OBJS = $(libtlspool_OBJS)
34
35 ifdef WINVER
36 CFLAGS += -D_WIN32_WINNT=0x0600 -I ../include/windows
37 libtlspool_OBJS += windows/syslog.o windows/socketpair.o
38 LIBS += -lkernel32 -ladvapi32 -lmsvcrt -lwsock32 -lws2_32
39 endif
40
41 PYTHON_CFLAGS = $(shell python-config --cflags)
42 PYTHON_LIBS = $(shell python-config --libs)
43
44 PERL_CFLAGS = -I/usr/lib/perl/5.14.2/CORE
45 PERL_LIBS =
46
47 TCL_CFLAGS = -I/usr/include/tcl8.5
48 TCL_LIBS =
49
50 all: $(TARGETS) wrappers
51
52 wrappers:
53         #DIY# @$(foreach w,$(WRAPPERS),$(MAKE) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) -C '$(w)' all && ) echo Wrappers built for $(WRAPPERS)
54
55 libtlspool.so: $(libtlspool_OBJS)
56         $(CC) -shared $(LDFLAGS) -o "$@" $(libtlspool_OBJS) $(LIBS)
57
58 libtlspool.a: $(libtlspool_OBJS)
59         rm -f "$@"
60         ar rc "$@" $(libtlspool_OBJS)
61
62 libtlspool.dll: $(libtlspool_OBJS)
63         $(CC) -shared $(LDFLAGS) -o "$@" $(libtlspool_OBJS) $(LIBS)
64
65 libtlspool.lib: windows/libtlspool.def
66         $(DLLTOOL) --input-def "$<" --output-lib "$@"
67
68 .c.o:
69         $(CC) -c $(CFLAGS) -o "$@" "$<"
70
71 clean:
72         rm -f $(OBJS) *.lo *.la $(TARGETS)
73         #DIY# @$(foreach w,$(WRAPPERS),$(MAKE) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) -C '$(w)' clean && ) echo Wrappers cleaned for $(WRAPPERS)
74
75 anew: clean all
76
77 install: all
78 ifdef WINVER
79         install libtlspool.dll libtlspool.lib "$(DESTDIR)$(PREFIX)/bin/"
80         mkdir -p "$(DESTDIR)$(PREFIX)/include/tlspool"
81         install ../include/tlspool/starttls.h "$(DESTDIR)$(PREFIX)/include/tlspool"
82         install ../include/tlspool/commands.h "$(DESTDIR)$(PREFIX)/include/tlspool"
83 else
84         install -d  "$(DESTDIR)$(PREFIX)/lib/"
85         install libtlspool.so libtlspool.a "$(DESTDIR)$(PREFIX)/lib/"
86         @echo '#'
87         @echo '# Python libraries not yet installed'
88         @echo '#'
89         @echo '# You may need to run ldconfig to update the ld.so cache'
90         @echo '#'
91 endif
92         #DIY# @$(foreach w,$(WRAPPERS),$(MAKE) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) -C '$(w)' install && ) echo Wrappers installed for $(WRAPPERS)
93
94 uninstall:
95 ifdef WINVER
96         rm -f "$(DESTDIR)$(PREFIX)/bin/libtlspool.dll"
97         rm -f "$(DESTDIR)$(PREFIX)/bin/libtlspool.lib"
98         rm -rf "$(DESTDIR)$(PREFIX)/include/tlspool/"
99 else
100         rm -f "$(DESTDIR)$(PREFIX)/lib/libtlspool.so"
101         rm -f "$(DESTDIR)$(PREFIX)/lib/libtlspool.a"
102         @echo '#'
103         @echo '# Python libraries not yet removed'
104         @echo '#'
105 endif
106         #DIY# @$(foreach w,$(WRAPPERS),$(MAKE) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) -C '$(w)' uninstall && ) echo Wrappers uninstalled for $(WRAPPERS)
107