diff options
author | Andrew G. Morgan <morgan@kernel.org> | 2000-06-20 22:10:38 +0000 |
---|---|---|
committer | Andrew G. Morgan <morgan@kernel.org> | 2000-06-20 22:10:38 +0000 |
commit | ea488580c42e8918445a945484de3c8a5addc761 (patch) | |
tree | c992f3ba699caafedfadc16af38e6359c3c24698 /Makefile | |
download | pam-ea488580c42e8918445a945484de3c8a5addc761.tar.gz pam-ea488580c42e8918445a945484de3c8a5addc761.tar.bz2 pam-ea488580c42e8918445a945484de3c8a5addc761.zip |
Initial revision
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..7a5923e7 --- /dev/null +++ b/Makefile @@ -0,0 +1,283 @@ +## +## $Id$ +## +## + +# major and minor numbers of this release +MAJOR_REL=0 +MINOR_REL=72 +DEBUG_REL=no +#DEBUG_REL=yes + +# this should be the name of this directory (under CVS) +DISTNAME = Linux-PAM +# this should be the name of this directory (when generating the release) +RELNAME = $(DISTNAME)-$(MAJOR_REL).$(MINOR_REL) + +# this is the name of the archive file +DISTFILE = $(RELNAME).tar.gz + +# define this to indicate to subdirectories that they are part of the +# full source tree. +FULL_LINUX_PAM_SOURCE_TREE=yes +export FULL_LINUX_PAM_SOURCE_TREE + +DYNLOAD="dl" +DYNTYPE="so" + +# Comment out either line to disable that type of linking for *modules only* +# Both at once is a legal configuration! +DYNAMIC=-DPAM_DYNAMIC +#STATIC=-DPAM_STATIC + +# Comment out these lines to disable building dynamic/static libpam.* +DYNAMIC_LIBPAM=yes +#STATIC_LIBPAM=yes + +# All combinations of the above four variable definitions are legal, +# however, not defining either dynamic or static modules and yet +# creating a some flavor of LIBPAM will make an authentication library +# that always fails! + +# Here we indicate which libraries are present on the local system +# they control the building of some modules in this distribution +# Note, these definitions are all "export"ed below... + +HAVE_PWDBLIB=yes +HAVE_CRACKLIB=yes +HAVE_AFSLIBS=no +HAVE_KRBLIBS=no + +# NB. The following is the generic defines for compilation. +# They can be overridden in the default.defs file below +# +WARNINGS = -ansi -D_POSIX_SOURCE -Wall -Wwrite-strings \ + -Wpointer-arith -Wcast-qual -Wcast-align \ + -Wtraditional -Wstrict-prototypes -Wmissing-prototypes \ + -Wnested-externs -Winline -Wshadow -pedantic +PIC=-fPIC + +# Mode to install shared libraries with +SHLIBMODE=755 + +# +# Conditional defines.. +# + +ifdef DYNAMIC +# need the dynamic library functions +LIBDL=-l$(DYNLOAD) +ifdef STATIC_LIBPAM +# needed because pam_xxx() fn's are now in statically linked library +RDYNAMIC = -rdynamic +endif +endif + +# Here we include the defines for the preferred operating system +# these include things like CC, CFLAGS and destination directories +# etc.. By default, this is a symbolic link to one of the .defs files +# the .../defs/ directory. Please take a moment to check that you are +# using the correct one. + +include default.defs + +# to turn on the fprintf(stderr, ..) debugging lines throughout the +# distribution uncomment this line +#EXTRAS += -DDEBUG + +# For serious memory allocation tracing uncomment the following +#MEMORY_DEBUG=-DMEMORY_DEBUG + +####################################################################### +# The pam_unix module in this file will not work on NIS based systems.# +####################################################################### + +# //////////////////////////////////////////////////// +# // You should not modify anything below this line // +# //////////////////////////////////////////////////// + +# the sub-directories to make things in + +DIRS = modules libpam conf libpam_misc libpamc examples + +# +# basic defines +# + +INCLUDEDIR=-I$(shell pwd)/include +PAMLIB=-L$(shell pwd)/libpam +PAMMISCLIB=-L$(shell pwd)/libpam_misc +ifeq ($(DEBUG_REL),yes) + PAMLIB += -lpamd + PAMMISCLIB += -lpamd_misc +else + PAMLIB += -lpam + PAMMISCLIB += -lpam_misc +endif + + +# This is Linux-PAM and not a version from Sun etc.. +# [Note, this does not describe the operating system you are using +# only that you are compiling the "Linux" (read FREE) implementation +# of Pluggable Authentication Modules. +EXTRAS += -DLINUX_PAM + +# +# build composite defines +# + +LOADLIBES = $(PAMLIB) $(RDYNAMIC) $(PAMMISCLIB) $(LIBDL) $(ULIBS) + +CFLAGS += $(EXTRAS) $(MEMORY_DEBUG) $(WARNINGS) $(INCLUDEDIR) $(PIC) +ifneq ($(strip $(OS)),) +CFLAGS += -D$(OS) +endif +ifneq ($(strip $(ARCH)),) +CFLAGS += -D$(ARCH) +endif + +# +# export the libraries-available info; the modules should know how +# to deal with this... +# +export HAVE_PWDBLIB +export HAVE_CRACKLIB +export HAVE_AFSLIBS +export HAVE_KRBLIBS + +# +# generic exports +# +export MAJOR_REL # the major release of this distribution +export MINOR_REL # the minor release of this distribution +export DEBUG_REL # for installing a debugging version of PAM +export OS # operating system +export ARCH # architecture +export CC # the C compiler +export INSTALL # to do instalations with +export MKDIR # to ensure directories exist +export CFLAGS # CC flags used to compile everything +export LD_D # build a shared object file (module) +export LD_L # build a shared library (e.g. libpam) +export USESONAME # does shlib link command require soname option +export SOSWITCH # shlib lib soname switch name +export LINKLIBS # libraries to append when making dynamic libs +export NEEDSONAME # does shared library link need versioned lib +export LD # build a generic library +export LDCONFIG # rebuild the shared libraries +export AR # build a static library +export RANLIB # reorder a static library +export LOADLIBES # libraries needed for application linking +export PAMLIB # where to find the local libpam.xx file +export DYNTYPE # which suffix is used for libraries +export SHLIBMODE # file mode for shared objects +export EXTRALS # libraries that some modules need +export LIBDL # extra library for libpam.so +# +# where to install things +# +export FAKEROOT # for package maintainers +# +export PREFIX # basic prefix for all other directories +export SUPLEMENTED # where to store module helper binaries +export LIBDIR # where libpam and libpam_misc go +export SECUREDIR # where the modules will be placed +export INCLUDED # where to store pam---.h files +export CONFIGED # where pam.conf and pam.d/ go +export SCONFIGED # where modules' config files go + +# +# Conditional exporting ( ... these go on for a while... ) +# +ifdef DYNAMIC +export DYNAMIC +endif +ifdef STATIC +export STATIC +endif +ifdef DYNAMIC_LIBPAM +export DYNAMIC_LIBPAM +endif +ifdef STATIC_LIBPAM +export STATIC_LIBPAM +endif +ifdef MEMORY_DEBUG +export MEMORY_DEBUG +endif + +## +## the rules +## + +all: .freezemake headers + + @for i in $(DIRS) ; do \ + $(MAKE) -C $$i all ; \ + if [ $$? -ne 0 ]; then break ; fi ; \ + done + +.freezemake: Makefile + @touch .freezemake + @echo "*WARNING*: If you are running a system that is dependent" + @echo " on PAM to work. DO NOT make sterile NOR make remove." + @echo " These options will delete the PAM files on your system" + @echo " and make it unusable!" + @echo "" + @echo "If you are in any doubt, just do 'make all' (or just" + @echo "'make'). It is likely that this is the SAFEST thing to do...." + @exit 1 + +install: + @for i in $(DIRS) ; do \ + $(MAKE) -C $$i install ; \ + if [ $$? -ne 0 ]; then break ; fi ; \ + done + +sterile: .freezemake + @$(MAKE) remove + @$(MAKE) extraclean + +remove: .freezemake + @for i in $(DIRS) ; do \ + $(MAKE) -C $$i remove ; \ + done + +clean: + @rm -f *~ core + @for i in $(DIRS) ; do \ + $(MAKE) -C $$i clean ; \ + done + +headers: + @mkdir -p include/security && cd include/security \ + && ln -fs ../../libpam/include/security/*.h . \ + && ln -fs ../../libpam_misc/*.h . \ + && ln -fs ../../libpamc/include/security/*.h . + +cl_headers: + @cd include/security ; rm -f *.h + +extraclean: + make cl_headers + @for i in $(DIRS) doc ; do \ + $(MAKE) -C $$i extraclean ; \ + done + +check: + @$(MAKE) -C conf check + +open: + @find . \( -type f -a -perm 644 \) -print + +release: + @egrep '^DEBUG\_REL\=yes' Makefile|grep -v grep > /dev/null ;\ + if [ $$? -eq 0 ]; then \ + echo "You should first set DEBUG_REL to no" ; exit 1 ; fi + $(MAKE) extraclean + rm -f .freezemake + touch .filelist + chmod 600 .filelist + cd .. ; find $(RELNAME) \! -type d -print | fgrep -v 'conf/.md5sum' > $(RELNAME)/.filelist + chmod 400 .filelist + $(MAKE) check + (cat .filelist ; echo $(RELNAME)/conf/.md5sum) | (cd .. ; tar -cz -f$(DISTFILE) -T-) |