diff options
Diffstat (limited to 'packages/google-compute-engine-oslogin/Makefile')
-rw-r--r-- | packages/google-compute-engine-oslogin/Makefile | 211 |
1 files changed, 71 insertions, 140 deletions
diff --git a/packages/google-compute-engine-oslogin/Makefile b/packages/google-compute-engine-oslogin/Makefile index 1d7295e..67400cd 100644 --- a/packages/google-compute-engine-oslogin/Makefile +++ b/packages/google-compute-engine-oslogin/Makefile @@ -1,158 +1,89 @@ SHELL = /bin/sh -BASENAME = oslogin -NAME = google-compute-engine-$(BASENAME) -MAJOR = 1 -MINOR = 5 -REVISION = 3 - -LIBNSS_CACHE_OSLOGIN = libnss_cache_$(BASENAME) -LIBNSS_CACHE_OSLOGIN_NAME = libnss_cache_$(NAME)-$(MAJOR).$(MINOR).$(REVISION).so -LIBNSS_CACHE_OSLOGIN_SONAME = $(LIBNSS_CACHE_OSLOGIN).so.2 -NSS_LIBRARY_NAME = libnss_$(NAME)-$(MAJOR).$(MINOR).$(REVISION).so -NSS_LIBRARY_SONAME = libnss_$(BASENAME).so.2 -NSS_INSTALL_PATH = /lib -PAM_INSTALL_PATH = /lib/security -AUTHKEYS_INSTALL_PATH = /usr/bin - -JSON_INCLUDE_PATH = /usr/include/json-c -INCLUDE_FLAGS = -I$(JSON_INCLUDE_PATH) - -CXX ?= g++ -CXXFLAGS += -fPIC# -Wall -CC ?= gcc -PAMFLAGS = $(LDFLAGS) $(INCLUDE_FLAGS) -shared -NSSFLAGS = $(LDFLAGS) $(INCLUDE_FLAGS) -shared -Wl,-soname,$(NSS_LIBRARY_SONAME) -LIBNSSFLAGS = $(LDFLAGS) -Wall -Wstrict-prototypes -fPIC -g -LIBNSS_SO_FLAGS = $(LIBNSSFLAGS) -shared -Wl,-soname,$(LIBNSS_CACHE_OSLOGIN_SONAME) - -# UTILS -UTILS_DIR = utils -UTILS_SRC = $(UTILS_DIR)/$(BASENAME)_utils.cc -UTILS = $(UTILS_DIR)/$(BASENAME)_utils.o - -# AUTHORIZED KEYS -AUTHKEYS_DIR = authorized_keys -AUTHKEYS_SRC = $(AUTHKEYS_DIR)/authorized_keys.cc -AUTHKEYS_BIN = google_authorized_keys - -# NSS -NSS = nss_$(BASENAME) -NSS_DIR = nss_module -NSS_SRC = $(NSS_DIR)/$(NSS).cc - -# NSS CACHE -NSS_CACHE = nss_cache -NSS_CACHE_DIR = nss_cache -NSS_CACHE_BIN = google_$(BASENAME)_nss_cache -NSS_CACHE_SRC = $(NSS_CACHE_DIR)/$(NSS_CACHE).cc - -# LIBNSS OSLOGIN CACHE -LIBNSS_CACHE_OSLOGIN_DIR = $(LIBNSS_CACHE_OSLOGIN) -LIBNSS_CACHE = nss_cache_$(BASENAME) -LIBNSS_CACHE_SRC = $(LIBNSS_CACHE_OSLOGIN_DIR)/$(LIBNSS_CACHE).c -LIBNSS_CACHE_OBJ = $(LIBNSS_CACHE_OSLOGIN_DIR)/$(LIBNSS_CACHE).o -LIBNSS_COMPAT = compat/getpwent_r -LIBNSS_COMPAT_SRC = $(LIBNSS_CACHE_OSLOGIN_DIR)/$(LIBNSS_COMPAT).c -LIBNSS_COMPAT_OBJ = $(LIBNSS_CACHE_OSLOGIN_DIR)/$(LIBNSS_COMPAT).o - -# PAM -PAM = pam_$(BASENAME) -PAM_DIR = pam_module -PAM_ADMIN = $(PAM)_admin -PAM_ADMIN_SRC = $(PAM_DIR)/$(PAM_ADMIN).cc -PAM_ADMIN_OBJ = $(PAM_DIR)/$(PAM_ADMIN).o -PAM_ADMIN_MOD = $(PAM_ADMIN).so -PAM_LOGIN = $(PAM)_login -PAM_LOGIN_SRC = $(PAM_DIR)/$(PAM_LOGIN).cc -PAM_LOGIN_OBJ = $(PAM_DIR)/$(PAM_LOGIN).o -PAM_LOGIN_MOD = $(PAM_LOGIN).so - -# HELPER SCRIPTS -BIN_DIR = bin -OSLOGIN_HELPER = $(BIN_DIR)/google_oslogin_control -BIN_INSTALL_PATH = /usr/bin - -# SELINUX POLICY -INSTALL_SELINUX = -POLICY_DIR = policy -SELINUX_INSTALL_NAME = oslogin.pp -SELINUX_MODULE = $(POLICY_DIR)/$(SELINUX_INSTALL_NAME) -SELINUX_INSTALL_PATH = /usr/share/selinux/packages - -LIBS = -lcurl -ljson-c -PAM_LIBS = -lpam $(LIBS) +VERSION = 1.5.3 -ifdef INSTALL_SELINUX -all: $(NSS) $(NSS_CACHE_BIN) $(LIBNSS_CACHE_OSLOGIN_NAME) $(PAM) $(AUTHKEYS_BIN) -else -all: $(NSS) $(NSS_CACHE_BIN) $(LIBNSS_CACHE_OSLOGIN_NAME) $(PAM) $(AUTHKEYS_BIN) -endif +CPPFLAGS = -I/usr/include/json-c +CXXFLAGS = -fPIC -Wall -g +CFLAGS = $(CXXFLAGS) -Wstrict-prototypes -$(NSS): $(NSS_LIBRARY_SOURCE) $(UTILS) - $(CXX) $(CXXFLAGS) $(NSSFLAGS) -o $(NSS_LIBRARY_NAME) \ - $(NSS_SRC) $(UTILS) $(LIBS) +LDFLAGS = -shared -Wl,-soname,$(SONAME) +LDLIBS = -lcurl -ljson-c +PAMLIBS = -lpam $(LDLIBS) -$(NSS_CACHE_BIN): $(NSS_CACHE_SRC) $(UTILS_SRC) - $(CXX) $(CXXFLAGS) $(LDFLAGS) $(INCLUDE_FLAGS) -o $(NSS_CACHE_BIN) $(NSS_CACHE_SRC) $(UTILS_SRC) $(LIBS) +# Paths which should be overrideable. -$(LIBNSS_CACHE_OSLOGIN_NAME): $(LIBNSS_CACHE_OBJ) $(LIBNSS_COMPAT_OBJ) - $(CXX) $(LIBNSS_SO_FLAGS) -o $(LIBNSS_CACHE_OSLOGIN_NAME) $(LIBNSS_CACHE_OBJ) $(LIBNSS_COMPAT_OBJ) +PREFIX = /usr +LIBDIR = $(PREFIX)/lib +BINDIR = $(PREFIX)/bin +PAMDIR = $(LIBDIR)/security +MANDIR = /usr/share/man -$(LIBNSS_CACHE_OBJ): $(LIBNSS_CACHE_SRC) - $(CC) $(LIBNSSFLAGS) -c -o $(LIBNSS_CACHE_OBJ) $(LIBNSS_CACHE_SRC) +NSS_OSLOGIN_SONAME = libnss_oslogin.so.2 +NSS_CACHE_OSLOGIN_SONAME = libnss_cache_oslogin.so.2 -$(LIBNSS_COMPAT_OBJ): $(LIBNSS_COMPAT_SRC) - $(CC) $(LIBNSSFLAGS) -c -o $(LIBNSS_COMPAT_OBJ) $(LIBNSS_COMPAT_SRC) +NSS_OSLOGIN = nss_module/libnss_oslogin-$(VERSION).so +NSS_CACHE_OSLOGIN = nss_module/libnss_cache_oslogin-$(VERSION).so -$(PAM): $(PAM_ADMIN_MOD) $(PAM_LOGIN_MOD) +PAM_LOGIN = pam_module/pam_oslogin_login.so +PAM_ADMIN = pam_module/pam_oslogin_admin.so -$(PAM_LOGIN_MOD): $(PAM_LOGIN_OBJ) $(UTILS) - $(CXX) $(PAMFLAGS) -o $(PAM_LOGIN_MOD) $(PAM_LOGIN_OBJ) $(UTILS) $(PAM_LIBS) +BINARIES = google_oslogin_nss_cache google_authorized_keys bin/google_oslogin_control -$(PAM_ADMIN_MOD): $(PAM_ADMIN_OBJ) $(UTILS) - $(CXX) $(PAMFLAGS) -o $(PAM_ADMIN_MOD) $(PAM_ADMIN_OBJ) $(UTILS) $(PAM_LIBS) +all : $(NSS_OSLOGIN) $(NSS_CACHE_OSLOGIN) $(PAM_LOGIN) $(PAM_ADMIN) $(BINARIES) -$(PAM_LOGIN_OBJ): $(PAM_LOGIN_SRC) - $(CXX) $(CXXFLAGS) -c $(PAM_LOGIN_SRC) -o $(PAM_LOGIN_OBJ) +clean : + rm -f */*.o */*.so google_oslogin_nss_cache google_authorized_keys -$(PAM_ADMIN_OBJ): $(PAM_ADMIN_SRC) - $(CXX) $(CXXFLAGS) -c $(PAM_ADMIN_SRC) -o $(PAM_ADMIN_OBJ) +.PHONY : all clean install -$(AUTHKEYS_BIN): $(AUTHKEYS_SRC) $(UTILS_SRC) - $(CXX) $(CXXFLAGS) $(LDFLAGS) $(INCLUDE_FLAGS) -o $(AUTHKEYS_BIN) $(AUTHKEYS_SRC) $(UTILS_SRC) $(LIBS) +# NSS modules. -$(UTILS): $(UTILS_SRC) - $(CXX) $(CXXFLAGS) $(INCLUDE_FLAGS) -c $(UTILS_SRC) -o $(UTILS) +$(NSS_OSLOGIN) : SONAME = $(NSS_OSLOGIN_SONAME) +$(NSS_OSLOGIN) : nss_module/nss_oslogin.o utils/oslogin_utils.o + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS) -install: $(NSS_LIBRARY_NAME) $(LIBNSS_OSLOGIN_CACHE_NAME) $(PAM_ADMIN_MOD) $(PAM_LOGIN_MOD) $(AUTHKEYS_BIN) $(NSS_CACHE_BIN) - mkdir -p $(DESTDIR)$(PREFIX)/$(NSS_INSTALL_PATH) - mkdir -p $(DESTDIR)$(PREFIX)/$(PAM_INSTALL_PATH) - mkdir -p $(DESTDIR)$(PREFIX)/$(AUTHKEYS_INSTALL_PATH) - mkdir -p $(DESTDIR)$(PREFIX)/$(BIN_INSTALL_PATH) - install -m 0644 $(LIBNSS_CACHE_OSLOGIN_NAME) $(DESTDIR)$(PREFIX)/$(NSS_INSTALL_PATH) - install -m 0644 $(NSS_LIBRARY_NAME) $(DESTDIR)$(PREFIX)/$(NSS_INSTALL_PATH) - install -m 0644 $(PAM_ADMIN_MOD) $(PAM_LOGIN_MOD) $(DESTDIR)$(PREFIX)/$(PAM_INSTALL_PATH) - install -m 0755 $(AUTHKEYS_BIN) $(DESTDIR)$(PREFIX)/$(AUTHKEYS_INSTALL_PATH) - install -m 0755 $(OSLOGIN_HELPER) $(DESTDIR)$(PREFIX)/$(BIN_INSTALL_PATH) - install -m 0755 $(NSS_CACHE_BIN) $(DESTDIR)$(PREFIX)/$(BIN_INSTALL_PATH) -ifdef MAKE_LINKS - ln -sf $(LIBNSS_CACHE_OSLOGIN_NAME) $(DESTDIR)$(PREFIX)/$(NSS_INSTALL_PATH)/$(LIBNSS_CACHE_OSLOGIN_SONAME) - ln -sf $(NSS_LIBRARY_NAME) $(DESTDIR)$(PREFIX)/$(NSS_INSTALL_PATH)/$(NSS_LIBRARY_SONAME) -endif -ifdef INSTALL_SELINUX - mkdir -p $(DESTDIR)$(PREFIX)/$(SELINUX_INSTALL_PATH) - install -T -m 0644 $(SELINUX_MODULE) $(DESTDIR)$(PREFIX)/$(SELINUX_INSTALL_PATH)/$(SELINUX_INSTALL_NAME) -endif +$(NSS_CACHE_OSLOGIN) : SONAME = $(NSS_CACHE_OSLOGIN_SONAME) +$(NSS_CACHE_OSLOGIN) : nss_module/nss_cache_oslogin.o nss_module/compat/getpwent_r.o utils/oslogin_utils.o + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(LDFLAGS) $^ -o $@ $(LDLIBS) + +# PAM modules + +$(PAM_LOGIN) : pam_module/pam_oslogin_login.o utils/oslogin_utils.o + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -shared $^ -o $@ $(PAMLIBS) + +$(PAM_ADMIN) : pam_module/pam_oslogin_admin.o utils/oslogin_utils.o + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -shared $^ -o $@ $(PAMLIBS) -uninstall: - rm -f $(DESTDIR)$(PREFIX)/$(NSS_INSTALL_PATH)/$(LIBNSS_CACHE_OSLOGIN_NAME) - rm -f $(DESTDIR)$(PREFIX)/$(NSS_INSTALL_PATH)/$(NSS_LIBRARY_NAME) - rm -f $(DESTDIR)$(PREFIX)/$(PAM_INSTALL_PATH)/$(PAM_ADMIN_MOD) - rm -f $(DESTDIR)$(PREFIX)/$(PAM_INSTALL_PATH)/$(PAM_LOGIN_MOD) - rm -f $(DESTDIR)$(PREFIX)/$(AUTHKEYS_INSTALL_PATH)/$(AUTHKEYS_BIN) - rm -f $(DESTDIR)$(PREFIX)/$(BIN_INSTALL_PATH)/$(OSLOGIN_HELPER) - rm -f $(DESTDIR)$(PREFIX)/$(BIN_INSTALL_PATH)/$(NSS_CACHE_BIN) -clean: - rm -f $(UTILS) $(NSS_LIBRARY_NAME) $(LIBNSS_CACHE_OSLOGIN_NAME) $(LIBNSS_CACHE_OBJ) $(LIBNSS_COMPAT_OBJ) $(PAM_ADMIN_OBJ) $(PAM_ADMIN_MOD) $(PAM_LOGIN_OBJ) $(PAM_LOGIN_MOD) $(AUTHKEYS_BIN) $(NSS_CACHE_BIN) +# Utilities. +google_authorized_keys : authorized_keys/authorized_keys.o utils/oslogin_utils.o + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $^ -o $@ $(LDLIBS) + +google_oslogin_nss_cache: nss_cache/nss_cache.o utils/oslogin_utils.o + $(CXX) $(CXXFLAGS) $(CPPFLAGS) $^ -o $@ $(LDLIBS) + +# Define these to add dependency on header files. + +utils/oslogin_utils.o : utils/oslogin_utils.cc utils/oslogin_utils.h + +nss_module/nss_cache_oslogin.o : nss_module/nss_cache_oslogin.c nss_module/nss_cache_oslogin.h + +install: all + install -d $(DESTDIR)$(LIBDIR) + install -d $(DESTDIR)$(PAMDIR) + install -d $(DESTDIR)$(BINDIR) + install -d $(DESTDIR)$(MANDIR)/man8 + install -m 0644 -t $(DESTDIR)$(LIBDIR) $(NSS_OSLOGIN) $(NSS_CACHE_OSLOGIN) + install -m 0644 -t $(DESTDIR)$(PAMDIR) $(PAM_ADMIN) $(PAM_LOGIN) + install -m 0755 -t $(DESTDIR)$(BINDIR) $(BINARIES) + install -m 0644 -t $(DESTDIR)$(MANDIR)/man8 nss_module/nss-oslogin.8 nss_module/nss-cache-oslogin.8 + gzip -9 $(DESTDIR)$(MANDIR)/man8/nss-oslogin.8 + gzip -9 $(DESTDIR)$(MANDIR)/man8/nss-cache-oslogin.8 + ln -sf nss-oslogin.8.gz $(DESTDIR)$(MANDIR)/man8/$(NSS_OSLOGIN_SONAME).8.gz + ln -sf nss-cache-oslogin.8.gz $(DESTDIR)$(MANDIR)/man8/$(NSS_CACHE_OSLOGIN_SONAME).8.gz + ln -sf $(notdir $(NSS_OSLOGIN)) $(DESTDIR)$(LIBDIR)/$(NSS_OSLOGIN_SONAME) + ln -sf $(notdir $(NSS_CACHE_OSLOGIN)) $(DESTDIR)$(LIBDIR)/$(NSS_CACHE_OSLOGIN_SONAME) +ifdef INSTALL_SELINUX + install -d $(DESTDIR)/usr/share/selinux/packages + install -m 0644 -t $(DESTDIR)/usr/share/selinux/packages policy/oslogin.pp +endif |