| # 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) |
| |
| 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 $@ $(PACKAGE_NAME)-$(PACKAGE_VERSION) |
| $(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 |