# Hey Emacs this is a -*- makefile-*- PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ datarootdir = @datarootdir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ # The target architecture ARCH = @ARCH@ SUBARCH = @SUBARCH@ OBJDIR = @OBJDIR@ target = @target@ host = @host@ # Compiler for building kexec CC = @CC@ CPP = @CPP@ LD = @LD@ AS = @AS@ OBJCOPY = @OBJCOPY@ AR = @AR@ # C compiler for binaries to run during the build BUILD_CC = @BUILD_CC@ BUILD_CFLAGS = @BUILD_CFLAGS@ TARGET_CC = @TARGET_CC@ TARGET_LD = @TARGET_LD@ TARGET_CFLAGS = @TARGET_CFLAGS@ # Base compiler flags. These are extended by the subcomponent-Makefiles # where necessary. CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/util_lib/include \ -Iinclude/ $($(ARCH)_CPPFLAGS) CFLAGS = @CFLAGS@ -fno-strict-aliasing -Wall -Wstrict-prototypes PURGATORY_EXTRA_CFLAGS = @PURGATORY_EXTRA_CFLAGS@ ASFLAGS = @ASFLAGS@ $($(ARCH)_ASFLAGS) LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ # Utilities called by the makefiles INSTALL = @INSTALL@ CHMOD = @CHMOD@ CD = cd MKDIR = @MKDIR@ RM = @RM@ CP = @CP@ LN = @LN@ TAR = @TAR@ RPMBUILD = @RPMBUILD@ SED = @SED@ FIND = @FIND@ XARGS = @XARGS@ DIRNAME = @DIRNAME@ STRIP = @STRIP@ pkgdatadir = $(datadir)/$(PACKAGE_NAME) pkglibdir = $(libdir)/$(PACKAGE_NAME) pkgincludedir = $(includedir)/$(PACKAGE_NAME) # You can specify DESTDIR on the command line to do a add # a prefix to the install so it doesn't really happen # Useful for building binary packages DESTDIR = srcdir = @srcdir@ VPATH = .:$(srcdir) # install paths BUILD_PREFIX:=build SBINDIR=$(BUILD_PREFIX)/sbin BINDIR=$(BUILD_PREFIX)/bin LIBEXECDIR=$(BUILD_PREFIX)/libexec DATADIR=$(BUILD_PREFIX)/share SYSCONFDIR=$(BUILD_PREFIX)/etc SHAREDSTATEDIR=$(BUILD_PREFIX)/com LOCALSTATEDIR=$(BUILD_PREFIX)/var LIBDIR=$(BUILD_PREFIX)/lib INFODIR=$(BUILD_PREFIX)/info MANDIR=$(BUILD_PREFIX)/man MAN1DIR=$(MANDIR)/man1 MAN2DIR=$(MANDIR)/man2 MAN3DIR=$(MANDIR)/man3 MAN4DIR=$(MANDIR)/man4 MAN5DIR=$(MANDIR)/man5 MAN6DIR=$(MANDIR)/man6 MAN7DIR=$(MANDIR)/man7 MAN8DIR=$(MANDIR)/man8 INCLUDEDIR=$(BUILD_PREFIX)/include PKGDATADIR=$(DATADIR)/$(PACKAGE_NAME) PKGLIBDIR=$(LIBDIR)/$(PACKAGE_NAME) PKGINCLUDEIR=$(INCLUDEDIR)/$(PACKAGE_NAME) ALLOWED_UNINSTALL_DIRS := \ $(SBINDIR) \ $(sbindir) $(bindir) $(libexecdir) $(datadir) $(sysconfdir) \ $(sharedstatedir) $(localstatedir) $(libdir) $(infodir) \ $(mandir)/man1 $(mandir)/man2 $(mandir)/man3 $(mandir)/man4 \ $(mandir)/man5 $(mandir)/man6 $(mandir)/man7 $(mandir)/man8 \ $(includedir) $(pkgdatadir) $(pkglibdir) $(pkgincludedir) all: targets # generic build rules %.o: %.c @$(MKDIR) -p $(@D) $(COMPILE.c) -MD -o $@ $< %.o: %.S @$(MKDIR) -p $(@D) $(COMPILE.S) -MD -o $@ $< # collect objects to be removed in 'make clean' clean = dist = AUTHORS COPYING INSTALL News TODO Makefile.in configure.ac configure \ kexec-tools.spec.in config/ # utility function for converting a list of files (with extension) to # file.o (or file.d) format. objify = $(addsuffix .o, $(basename $(1))) depify = $(addsuffix .d, $(basename $(1))) # Documentation # include $(srcdir)/doc/Makefile # Headers # include $(srcdir)/include/Makefile # Utility function library # include $(srcdir)/util_lib/Makefile # # Stand alone utilities # include $(srcdir)/util/Makefile # # purgatory (code between kernels) # include $(srcdir)/purgatory/Makefile # # kexec (linux booting linux) # include $(srcdir)/kexec/Makefile # vmcore-dmesg (read dmesg from a vmcore) # include $(srcdir)/vmcore-dmesg/Makefile # # kexec_test (test program) # include $(srcdir)/kexec_test/Makefile SPEC=$(PACKAGE_NAME).spec GENERATED_SRCS:= $(SPEC) TARBALL=$(PACKAGE_NAME)-$(PACKAGE_VERSION).tar TARBALL.gz=$(TARBALL).gz SRCS:= $(dist) PSRCS:=$(foreach s, $(SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s)) PGSRCS:=$(foreach s, $(GENERATED_SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s)) MAN_PAGES:=$(KEXEC_MANPAGE) $(VMCORE_DMESG_MANPAGE) BINARIES_i386:=$(KEXEC_TEST) BINARIES_x86_64:=$(KEXEC_TEST) BINARIES:=$(KEXEC) $(VMCORE_DMESG) $(BINARIES_$(ARCH)) UNINSTALL_KDUMP = $(sbindir)/kdump UNINSTALL_KDUMP_MANPAGE = $(mandir)/man8/kdump.8 UNINSTALL_KEXEC = $(sbindir)/kexec UNINSTALL_KEXEC_MANPAGE = $(mandir)/man8/kexec.8 UNINSTALL_KEXEC_TEST = $(pkglibdir)/kexec_test UNINSTALL_VMCORE_DMESG = $(sbindir)/vmcore-dmesg UNINSTALL_VMCORE_DMESG_MANPAGE = $(mandir)/man8/vmcore-dmesg.8 TARGETS:=$(BINARIES) $(MAN_PAGES) targets: $(TARGETS) UNINSTALL_TARGETS_i386:=$(UNINSTALL_KEXEC_TEST) UNINSTALL_TARGETS_x86_64:=$(UNINSTALL_KEXEC_TEST) UNINSTALL_TARGETS:=$(UNINSTALL_KDUMP) $(UNINSTALL_KDUMP_MANPAGE) \ $(UNINSTALL_KEXEC) $(UNINSTALL_KEXEC_MANPAGE) \ $(UNINSTALL_VMCORE_DMESG) $(UNINSTALL_VMCORE_DMESG_MANPAGE) \ $(UNINSTALL_TARGETS_$(ARCH)) uninstall-targets: $(UNINSTALL_TARGETS) Makefile: Makefile.in config.status ./config.status configure: configure.ac cd $(srcdir) && autoheader && autoconf && rm -rf autom4te.cache dist: tarball tarball: $(TARBALL.gz) $(TARBALL): $(SRCS) $(GENERATED_SRCS) [ ! -d $(PACKAGE_NAME)-$(PACKAGE_VERSION) ] || \ $(CHMOD) u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION) $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION) $(MKDIR) $(PACKAGE_NAME)-$(PACKAGE_VERSION) $(TAR) -c $(SRCS) $(GENERATED_SRCS) | \ $(TAR) -C $(PACKAGE_NAME)-$(PACKAGE_VERSION) -x $(TAR) -cf $@ $(PSRCS) $(TAR) -rf $@ $(PGSRCS) $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION) $(TARBALL.gz): $(TARBALL) gzip -c < $^ > $@ rpm: $(TARBALL.gz) unset MAKEFLAGS MAKELEVEL; $(RPMBUILD) -ta $(TARBALL.gz) $(SPEC): kexec-tools.spec.in Makefile $(SED) -e 's,^Version: $$,Version: $(PACKAGE_VERSION),' $< > $@ echo:: @echo ARCH=$(ARCH) @echo BINARIES=$(BINARIES) @echo TARGETS=$(TARGETS) @echo UNINSTALL_TARGETS=$(UNINSTALL_TARGETS) @echo CC=$(CC) @echo AR=$(AR) @echo LD=$(LD) @echo STRIP=$(STRIP) clean: $(RM) -f $(clean) $(RM) -rf build $(RM) -f $(TARBALL) $(TARBALL.gz) distclean: dist-clean dist-clean: clean $(RM) -f config.log config.status config.cache Makefile include/config.h $(RM) -f include/config.h.in configure $(SPEC) $(RM) -rf autom4te.cache distuninstallcheck: FOUND=$$(find $(distuninstallcheck_dir) ! -type d) && \ [ -z "$$FOUND" ] || { \ echo "Unexpeced files found after uninstall:" && \ echo "$$FOUND" && \ exit 1; } distcheck: $(TARBALL) [ ! -d $(PACKAGE_NAME)-$(PACKAGE_VERSION) ] || \ $(CHMOD) u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION) $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION) $(TAR) -xf $(TARBALL) $(MKDIR) $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build \ $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build/sub \ $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_inst \ $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_dest $(CHMOD) a-w $(PACKAGE_NAME)-$(PACKAGE_VERSION) test -d $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build INSTALL_BASE=$$($(CD) $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,') &&\ DESTDIR="$(PACKAGE_NAME)-$(PACKAGE_VERSION)/_dest" && \ $(CD) $(PACKAGE_NAME)-$(PACKAGE_VERSION)/_build/sub && \ ../../configure \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$INSTALL_BASE" && \ $(MAKE) $(AM_MAKEFLAGS) && \ $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$DESTDIR" install && \ $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$DESTDIR" uninstall && \ $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$DESTDIR" \ distuninstallcheck $(CHMOD) u+w $(PACKAGE_NAME)-$(PACKAGE_VERSION) $(RM) -rf $(PACKAGE_NAME)-$(PACKAGE_VERSION) install: $(TARGETS) for file in $(TARGETS) ; do \ if test `$(DIRNAME) $$file` = "$(SBINDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(sbindir)/; \ $(INSTALL) -m 755 $$file $(DESTDIR)/$(sbindir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(BINDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(bindir)/; \ $(INSTALL) -m 755 $$file $(DESTDIR)/$(bindir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(LIBEXECDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(libexecdir)/; \ $(INSTALL) -m 755 $$file $(DESTDIR)/$(libexecdir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(DATADIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(datadir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(datadir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(SYSCONFDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(sysconfdir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(sysconfdir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(SHAREDSTATEDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(sharedstatedir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(sharedstatedir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(LOCALSTATEDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(localstatedir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(localstatedir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(LIBDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(libdir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(libdir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(INFODIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(infodir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(infodir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN1DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man1; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man1; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN2DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man2; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man2; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN3DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man3/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man3/; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN4DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man4/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man4/; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN5DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man5/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man5/; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN6DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man6/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man6/; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN7DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man7/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man7/; \ fi; \ if test `$(DIRNAME) $$file` = "$(MAN8DIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(mandir)/man8/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(mandir)/man8/; \ fi; \ if test `$(DIRNAME) $$file` = "$(INCLUDEDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(includedir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(includedir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(PKGDATADIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(pkgdatadir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(pkgdatadir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(PKGLIBDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(pkglibdir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(pkglibdir)/; \ fi; \ if test `$(DIRNAME) $$file` = "$(PKGINCLUDEDIR)" ; then \ $(MKDIR) -p $(DESTDIR)/$(pkgincludedir)/; \ $(INSTALL) -m 644 $$file $(DESTDIR)/$(pkgincludedir)/; \ fi; \ done uninstall: UINSTALL_LIST='$(UNINSTALL_TARGETS)'; \ for file in $$UINSTALL_LIST ; do \ DIRS='$(ALLOWED_UNINSTALL_DIRS)'; \ for dir in $$DIRS ; do \ if test `$(DIRNAME) $$file` = "$$dir" ; then \ rm -rf $(DESTDIR)/$$file ; \ break ; \ fi; \ done; \ done .PHONY: echo install uninstall distuninstallcheck all targets \ uninstall-targets clean dist-clean distclean distcheck \ maintainer-clean maintainerclean dist tarball rpm