SUBDIRS = . tests
#SUBDIRS += po
if HAVE_MANPAGES
SUBDIRS += man
endif
# Some old versions of automake don't define builddir
builddir ?= .
DOXYGEN = @DOXYGEN@
DISTSETUPOPTS =
if HAVE_DEBIAN
DISTSETUPOPTS += --install-layout=deb
endif
gssplibdir = $(libdir)/gssproxy
gsspconfdir = $(sysconfdir)/gssproxy
gssconfdir = $(sysconfdir)/gss
localedir = @localedir@
ccpath = @ccpath@
systemdunitdir = @systemdunitdir@
examplesdir= @datarootdir@/examples
logpath = @logpath@
pubconfpath = @pubconfpath@
pkgconfigdir = $(libdir)/pkgconfig
gpstatedir = @gpstatedir@
gpclidir = @gpstatedir@/clients
AM_DISTCHECK_CONFIGURE_FLAGS = \
--with-systemdunitdir='$$(prefix)/$(systemdunitdir)'
AM_CPPFLAGS =
AM_CFLAGS =
AM_LDFLAGS =
if WANT_AUX_INFO
AM_CFLAGS += -aux-info $@.X
endif
AM_CFLAGS += -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith \
-Wcast-qual -Wcast-align -Wwrite-strings \
-fstrict-aliasing -Wstrict-aliasing -Werror=strict-aliasing \
-Werror-implicit-function-declaration \
-Werror=format-security -Wextra
if BUILD_HARDENING
AM_CPPFLAGS += -D_FORTIFY_SOURCE=2 -Wdate-time
AM_CFLAGS += -fPIE -fstack-protector-strong
AM_LDFLAGS += -fPIE -pie -fPIC -Wl,-z,relro -Wl,-z,now
endif
dist_pkgconfig_DATA =
ACLOCAL_AMFLAGS = -I m4 -I .
sbin_PROGRAMS = \
gssproxy
check_PROGRAMS = \
cli_srv_comm interposetest
gssplib_LTLIBRARIES = \
proxymech.la
dist_noinst_SCRIPTS = tests/scripts/dlopen.sh
dist_noinst_DATA =
###############################
# Global compilation settings #
###############################
AM_CPPFLAGS += \
-Wall \
-Iinclude \
-I$(srcdir)/include \
-I$(srcdir) \
-Iinclude \
-I. \
$(POPT_CFLAGS) \
$(GSSAPI_CFLAGS) \
$(INI_CFLAGS) \
-DLIBDIR=\"$(libdir)\" \
-DVARDIR=\"$(localstatedir)\" \
-DSHLIBEXT=\"$(SHLIBEXT)\" \
-DSYSCONFDIR=\"$(sysconfdir)\" \
-DLOCALEDIR=\"$(localedir)\"
GSS_PROXY_LIBS = $(POPT_LIBS) $(KRB5_LIBS) $(VERTO_LIBS) $(INI_LIBS) $(GSSAPI_LIBS) $(GSSRPC_LIBS)
if BUILD_SELINUX
GSS_PROXY_LIBS += $(SELINUX_LIBS)
endif
GP_RPCGEN_OBJ = rpcgen/gp_rpc_xdr.c rpcgen/gss_proxy_xdr.c rpcgen/gp_xdr.c
GP_RPCCLI_OBJ = \
src/client/gpm_display_status.c \
src/client/gpm_accept_sec_context.c \
src/client/gpm_release_handle.c \
src/client/gpm_acquire_cred.c \
src/client/gpm_indicate_mechs.c \
src/client/gpm_import_and_canon_name.c \
src/client/gpm_init_sec_context.c \
src/client/gpm_inquire_context.c \
src/client/gpm_get_mic.c \
src/client/gpm_verify_mic.c \
src/client/gpm_wrap.c \
src/client/gpm_unwrap.c \
src/client/gpm_wrap_size_limit.c \
src/client/gpm_common.c \
src/gp_util.c
GP_MECHGLUE_OBJ = \
src/mechglue/gpp_accept_sec_context.c \
src/mechglue/gpp_acquire_cred.c \
src/mechglue/gpp_creds.c \
src/mechglue/gpp_context.c \
src/mechglue/gpp_init_sec_context.c \
src/mechglue/gpp_display_status.c \
src/mechglue/gpp_import_and_canon_name.c \
src/mechglue/gpp_indicate_mechs.c \
src/mechglue/gpp_priv_integ.c \
src/mechglue/gpp_misc.c \
src/mechglue/gss_plugin.c
dist_noinst_HEADERS = \
rpcgen/gp_rpc.h \
rpcgen/gp_xdr.h \
rpcgen/gss_proxy.h \
src/gp_rpc_process.h \
src/gp_proxy.h \
src/client/gssapi_gpm.h \
src/gp_common.h \
src/gp_rpc_debug.h \
src/gp_log.h \
src/gp_creds.h \
src/gp_export.h \
src/gp_conv.h \
src/gp_config.h \
src/gp_debug.h \
src/gp_rpc_creds.h \
src/gp_selinux.h \
src/mechglue/gss_plugin.h
####################
# Program Binaries #
####################
gssproxy_SOURCES = \
src/gp_config.c \
src/gp_init.c \
src/gp_socket.c \
src/gp_workers.c \
src/gp_creds.c \
$(GP_RPCGEN_OBJ) \
src/gp_rpc_debug.c \
src/gp_rpc_process.c \
src/gp_conv.c \
src/gp_export.c \
src/gp_debug.c \
src/gp_log.c \
src/gp_util.c \
src/gp_rpc_accept_sec_context.c \
src/gp_rpc_release_handle.c \
src/gp_rpc_acquire_cred.c \
src/gp_rpc_indicate_mechs.c \
src/gp_rpc_import_and_canon_name.c \
src/gp_rpc_init_sec_context.c \
src/gp_rpc_get_mic.c \
src/gp_rpc_verify_mic.c \
src/gp_rpc_wrap.c \
src/gp_rpc_unwrap.c \
src/gp_rpc_wrap_size_limit.c \
src/gssproxy.c
proxymech_la_SOURCES = \
src/gp_conv.c \
$(GP_RPCGEN_OBJ) \
$(GP_RPCCLI_OBJ) \
$(GP_MECHGLUE_OBJ)
proxymech_la_CFLAGS = \
$(AM_FLAGS)
proxymech_la_LDFLAGS = \
-avoid-version \
-module
cli_srv_comm_SOURCES = \
src/gp_conv.c \
src/gp_debug.c \
src/gp_log.c \
$(GP_RPCGEN_OBJ) \
$(GP_RPCCLI_OBJ) \
tests/t_utils.c \
tests/cli_srv_comm.c
interposetest_SOURCES = \
src/gp_log.c \
src/gp_debug.c \
tests/t_utils.c \
tests/interposetest.c
gssproxy_LDADD = \
$(GSS_PROXY_LIBS)
cli_srv_comm_LDADD = \
$(GSS_PROXY_LIBS)
interposetest_LDADD = \
$(GSS_PROXY_LIBS)
dist_noinst_DATA += \
m4
noinst_PROGRAMS = cli_srv_comm interposetest
################
# TRANSLATIONS #
################
update-po:
if HAVE_MANPAGES
$(MAKE) -C man update-po
endif
# $(MAKE) -C po update-po
#######################
# Installation Extras #
#######################
systemdunit_DATA =
if HAVE_SYSTEMD_UNIT
systemdunit_DATA += \
systemd/gssproxy.service
endif
noinst_DATA = \
examples/gssproxy.conf \
examples/24-nfs-server.conf \
examples/80-httpd.conf \
examples/99-nfs-client.conf \
examples/mech
edit_cmd = $(SED) \
-e 's|@sbindir[@]|$(sbindir)|g' \
-e 's|@localstatedir[@]|$(localstatedir)|g' \
-e 's|@libdir[@]|$(libdir)|g' \
-e 's|@gpclidir[@]|$(gpclidir)|g'
replace_script = \
@rm -f $@ $@.tmp; \
srcdir=''; \
test -f ./$@.in || srcdir=$(srcdir)/; \
$(edit_cmd) $${srcdir}$@.in >$@.tmp; \
mv $@.tmp $@
EXTRA_DIST = \
systemd/gssproxy.service.in \
examples/gssproxy.conf.in \
examples/24-nfs-server.conf.in \
examples/80-httpd.conf.in \
examples/99-nfs-client.conf.in \
examples/mech.in
systemd/gssproxy.service: systemd/gssproxy.service.in Makefile
@$(MKDIR_P) systemd/
$(replace_script)
examples/%.conf: examples/%.conf.in Makefile
@$(MKDIR_P) examples/
$(replace_script)
examples/mech: examples/mech.in Makefile
@$(MKDIR_P) examples/
$(replace_script)
installgsspdirs::
mkdir -p \
$(DESTDIR)$(includedir) \
$(DESTDIR)$(libdir) \
$(DESTDIR)$(sbindir) \
$(DESTDIR)$(mandir) \
$(DESTDIR)$(gsspconfdir) \
$(DESTDIR)$(gssconfdir) \
$(DESTDIR)$(logpath) \
$(DESTDIR)$(gpstatedir) \
$(DESTDIR)$(gpclidir) \
$(DESTDIR)$(pubconfpath)
if HAVE_DOXYGEN
docs:
$(DOXYGEN) doxy.config
else
docs:
@echo "Doxygen not installed, cannot generate documentation"
@exit 1
endif
install-exec-hook: installgsspdirs
mkdir -p doc $(DESTDIR)/$(docdir); cp -a doc $(DESTDIR)/$(docdir)/
if HAVE_SYSTEMD_UNIT
mkdir -p $(DESTDIR)$(systemdunitdir)
endif
clean-local:
rm -Rf doc
rm -Rf testdir
CLEANFILES = *.X */*.X */*/*.X \
examples/mech \
examples/gssproxy.conf \
examples/24-nfs-server.conf \
examples/80-httpd.conf \
examples/99-nfs-client.conf \
systemd/gssproxy.service
check: all $(check_PROGRAMS)
$(srcdir)/tests/runtests.py $(CHECKARGS)
tests: check
# RPM-related tasks
RPMBUILD ?= $(PWD)/rpmbuild
dist_noinst_DATA += \
m4 \
contrib/gssproxy.spec.in \
BUILD.txt \
COPYING
rpmroot:
mkdir -p $(RPMBUILD)/BUILD
mkdir -p $(RPMBUILD)/RPMS
mkdir -p $(RPMBUILD)/SOURCES
mkdir -p $(RPMBUILD)/SPECS
mkdir -p $(RPMBUILD)/SRPMS
rpms: dist-gzip rpmroot
cp $(builddir)/contrib/gssproxy.spec $(RPMBUILD)/SPECS
cp $(distdir).tar.gz $(RPMBUILD)/SOURCES
cd $(RPMBUILD); \
rpmbuild --define "_topdir $(RPMBUILD)" -ba SPECS/gssproxy.spec
if GIT_CHECKOUT
prerelease-rpms:
cp $(srcdir)/version.m4 $(srcdir)/version.m4.orig
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
$(MAKE) rpms
mv $(srcdir)/version.m4.orig $(srcdir)/version.m4
endif
# make srpms will use the old digest algorithm to be compatible
# with RHEL5
srpm: dist-gzip rpmroot
cp $(builddir)/contrib/gssproxy.spec $(RPMBUILD)/SPECS
cp $(distdir).tar.gz $(RPMBUILD)/SOURCES
cd $(RPMBUILD); \
rpmbuild --define "_topdir $(RPMBUILD)" \
--define _source_filedigest_algorithm=1 \
-bs SPECS/gssproxy.spec
if GIT_CHECKOUT
prerelease-srpm:
cp $(srcdir)/version.m4 $(srcdir)/version.m4.orig
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
$(MAKE) srpm
mv $(srcdir)/version.m4.orig $(srcdir)/version.m4
endif
####################
# Testing #
####################
test_proxymech:
TMPDIR=tests/scripts/ $(srcdir)/tests/scripts/dlopen.sh ./.libs/proxymech.so || exit 1