## ## $Id: Makefile,v 1.31 1997/04/05 07:04:25 morgan Exp morgan $ ## $FreeBSD: src/contrib/libpam/Makefile,v 1.1.1.1.6.2 2001/06/11 15:28:09 markm Exp $ ## $DragonFly: src/contrib/libpam/Attic/Makefile,v 1.2 2003/06/17 04:24:02 dillon Exp $ ## ## $Log: Makefile,v $ ## ## # major and minor numbers of this release MAJOR_REL=0 MINOR_REL=65 DEBUG_REL=no #DEBUG_REL=yes # this should be the name of this directory RELNAME = Linux-PAM-$(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=no HAVE_CRACKLIB=no 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=644 # # 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 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 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 # # 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 @for i in $(DIRS) ; do \ $(MAKE) -C $$i all ; \ if [ $$? -ne 0 ]; then break ; fi ; \ done .freezemake: # Do nothing .old_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 install ./doc/man/*.3 $(PREFIX)/man/man3/ install ./doc/man/*.8 $(PREFIX)/man/man8/ 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 extraclean: @for i in $(DIRS) doc; do \ $(MAKE) -C $$i extraclean ; \ done check: @$(MAKE) -C conf check RCScheck: @$(MAKE) -C conf RCScheck # this can be used to see what hasn't been check'd into RCS 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 .RCSlist chmod 600 .filelist .RCSlist cd .. ; find $(RELNAME) \! -type d -print | fgrep -v RCS | fgrep -v 'conf/.md5sum' > $(RELNAME)/.filelist cd .. ; find $(RELNAME) -type f -print | fgrep RCS | fgrep -v 'conf/.RCSsum' > $(RELNAME)/.RCSlist chmod 400 .filelist .RCSlist $(MAKE) check $(MAKE) RCScheck (cat .filelist ; echo $(RELNAME)/conf/.md5sum) | (cd .. ; tar -cz -f$(DISTFILE) -T-) (cat .RCSlist ; echo $(RELNAME)/conf/.RCSsum) | (cd .. ; tar -cz -fRCS+$(DISTFILE) -T-)