Fix symbols export regex to include gssspi_ too.
[idra/gss-ntlmssp.git] / Makefile.am
1 SUBDIRS =
2 #SUBDIRS += po
3
4 if HAVE_MANPAGES
5 SUBDIRS += man
6 endif
7
8 # Some old versions of automake don't define builddir
9 builddir ?= .
10
11 DOXYGEN = @DOXYGEN@
12
13 DISTSETUPOPTS =
14 if HAVE_DEBIAN
15 DISTSETUPOPTS += --install-layout=deb
16 endif
17
18 gssconfdir = $(sysconfdir)/gss
19 gssntlmsspdir = $(libdir)/gssntlmssp
20 localedir = @localedir@
21
22 pkgconfigdir = $(libdir)/pkgconfig
23
24 AM_CFLAGS =
25 if WANT_AUX_INFO
26     AM_CFLAGS += -aux-info $@.X
27 endif
28 if HAVE_GCC
29     AM_CFLAGS += -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith \
30                  -Wcast-qual -Wcast-align -Wwrite-strings \
31                  -Werror-implicit-function-declaration \
32                  -fno-strict-aliasing
33 endif
34
35 dist_pkgconfig_DATA =
36
37 ACLOCAL_AMFLAGS = -I m4 -I .
38
39 check_PROGRAMS = \
40     ntlmssptest
41
42 gssntlmssp_LTLIBRARIES = \
43     gssntlmssp.la
44
45 dist_noinst_SCRIPTS = tests/scripts/dlopen.sh
46
47 dist_noinst_DATA =
48
49 ###############################
50 # Global compilation settings #
51 ###############################
52
53 AM_CPPFLAGS = \
54     -Wall \
55     -Iinclude \
56     -I.. \
57     -I$(srcdir)/include \
58     -I$(srcdir) \
59     -Iinclude \
60     -I. \
61     -DLIBDIR=\"$(libdir)\" \
62     -DVARDIR=\"$(localstatedir)\" \
63     -DSHLIBEXT=\"$(SHLIBEXT)\" \
64     -DSYSCONFDIR=\"$(sysconfdir)\" \
65     -DLOCALEDIR=\"$(localedir)\"
66
67 #EXTRA_DIST = build/config.rpath
68
69 GN_MECHGLUE_LIBS = $(GSSAPI_LIBS) $(CRYPTO_LIBS)
70
71 GN_MECHGLUE_OBJ = \
72     src/crypto.c \
73     src/ntlm_crypto.c \
74     src/ntlm.c \
75     src/gss_spi.c \
76     src/gss_names.c \
77     src/gss_creds.c \
78     src/gss_sec_ctx.c \
79     src/gss_signseal.c \
80     src/gss_ntlmssp.c
81
82 dist_noinst_HEADERS = \
83     src/crypto.h \
84     src/ntlm_common.h \
85     src/ntlm.h \
86     src/gss_ntlmssp.h
87
88 ####################
89 # Program Binaries #
90 ####################
91
92 gssntlmssp_la_SOURCES = \
93     $(GN_MECHGLUE_OBJ)
94 gssntlmssp_la_CFLAGS = \
95     $(AM_FLAGS)
96 gssntlmssp_la_LDFLAGS = \
97     $(GN_MECHGLUE_LIBS) \
98     -export-symbols-regex '^gss(spi|)_' \
99     -avoid-version \
100     -module
101
102 ntlmssptest_SOURCES = \
103     $(GN_MECHGLUE_OBJ) \
104     tests/ntlmssptest.c
105 ntlmssptest_CFLAGS = \
106     $(AM_FLAGS)
107 ntlmssptest_LDADD = \
108     $(GSSAPI_LIBS) \
109     $(CRYPTO_LIBS)
110
111 dist_noinst_DATA += \
112     m4
113
114 noinst_PROGRAMS = ntlmssptest
115
116 ################
117 # TRANSLATIONS #
118 ################
119 update-po:
120 if HAVE_MANPAGES
121         $(MAKE) -C man update-po
122 endif
123 #       $(MAKE) -C po update-po
124
125 #######################
126 # Installation Extras #
127 #######################
128
129 installgssntlmsspdirs::
130         mkdir -p \
131     $(DESTDIR)$(libdir)/gssntlmssp \
132     $(DESTDIR)$(mandir)
133
134 if HAVE_DOXYGEN
135 docs:
136         $(DOXYGEN) doxy.config
137 else
138 docs:
139         @echo "Doxygen not installed, cannot generate documentation"
140         @exit 1
141 endif
142
143 install-exec-hook: installgssntlmsspdirs
144         mkdir -p doc $(DESTDIR)/$(docdir); cp -a doc $(DESTDIR)/$(docdir)/
145
146 clean-local:
147         rm -Rf doc
148
149 CLEANFILES = *.X */*.X */*/*.X
150
151 tests: all $(check_PROGRAMS)
152
153 # RPM-related tasks
154
155 RPMBUILD ?= $(PWD)/rpmbuild
156
157 dist_noinst_DATA += \
158     m4 \
159     contrib/gssntlmssp.spec.in \
160     BUILD.txt \
161     COPYING
162
163 rpmroot:
164         mkdir -p $(RPMBUILD)/BUILD
165         mkdir -p $(RPMBUILD)/RPMS
166         mkdir -p $(RPMBUILD)/SOURCES
167         mkdir -p $(RPMBUILD)/SPECS
168         mkdir -p $(RPMBUILD)/SRPMS
169
170 rpms: dist-gzip rpmroot
171         cp $(builddir)/contrib/gssntlmssp.spec $(RPMBUILD)/SPECS
172         cp $(distdir).tar.gz $(RPMBUILD)/SOURCES
173         cd $(RPMBUILD); \
174         rpmbuild --define "_topdir $(RPMBUILD)" -ba SPECS/gssntlmssp.spec
175
176 if GIT_CHECKOUT
177 prerelease-rpms:
178         cp $(srcdir)/version.m4 $(srcdir)/version.m4.orig
179         sed -e "s/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.*\])/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.`date +%Y%m%d.%H%M`.git`git log -1 --pretty=format:%h`\])/" < $(srcdir)/version.m4.orig > $(srcdir)/version.m4
180         $(MAKE) rpms
181         mv $(srcdir)/version.m4.orig $(srcdir)/version.m4
182 endif
183
184 # make srpms will use the old digest algorithm to be compatible
185 # with RHEL5
186 srpm: dist-gzip rpmroot
187         cp $(builddir)/contrib/gssntlmssp.spec $(RPMBUILD)/SPECS
188         cp $(distdir).tar.gz $(RPMBUILD)/SOURCES
189         cd $(RPMBUILD); \
190         rpmbuild --define "_topdir $(RPMBUILD)" \
191                  --define _source_filedigest_algorithm=1 \
192                  -bs SPECS/gssntlmssp.spec
193
194 if GIT_CHECKOUT
195 prerelease-srpm:
196         cp $(srcdir)/version.m4 $(srcdir)/version.m4.orig
197         sed -e "s/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.*\])/m4_define(\[PRERELEASE_VERSION_NUMBER\], \[.`date +%Y%m%d.%H%M`.git`git log -1 --pretty=format:%h`\])/" < $(srcdir)/version.m4.orig > $(srcdir)/version.m4
198         $(MAKE) srpm
199         mv $(srcdir)/version.m4.orig $(srcdir)/version.m4
200 endif
201
202 ####################
203 # Testing          #
204 ####################
205
206 test_gssntlmssp:
207         TMPDIR=tests/scripts/ ./tests/scripts/dlopen.sh ./.libs/gssntlmssp.so || exit 1