# # "SystemImager" # # Copyright (C) 2015-2019 Olivier Lahaye # Copyright (C) 1999-2015 Brian Elliott Finley # Copyright (C) 2001-2004 Hewlett-Packard Company <dannf@hp.com> # # Others who have contributed to this code: # Sean Dague <sean@dague.net> # # $Id$ # vi: set filetype=make: # # 2012.03.09 Brian Elliott Finley # * Fix egrep regex so that e2fsprogs targets show with 'make show_all_targets' # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # ERRORS when running make: # If you encounter errors when running "make", because make couldn't find # certain things that it needs, and you are fortunate enough to be building # on a Debian system, you can issue the following command to ensure that # all of the proper tools are installed. # # On Debian, "apt-get build-dep systemimager ; apt-get install wget libssl-dev", will # install all the right tools. Note that you need the deb-src entries in # your /etc/apt/sources.list file. # # # SystemImager file location standards: # o images will be stored in: /var/lib/systemimager/images/ # o pre-install scripts: /var/lib/systemimager/scripts/pre-install/ # o autoinstall scripts: /var/lib/systemimager/scripts/main-install/ # o post-install scripts: /var/lib/systemimager/scripts/post-install/ # o tarball files for BT: /var/lib/systemimager/tarballs/ # o torrent files: /var/lib/systemimager/torrents/ # o override directories: /var/lib/systemimager/overrides/ # o images config files /var/lib/systemimager/configs/ # # o web gui pages: /usr/share/systemimager/web-gui/ # # o kernels: /usr/share/systemimager/boot/`arch`/flavor/ # o initrd.img: /usr/share/systemimager/boot/`arch`/flavor/ # o boel_binaries.tar.gz: /usr/share/systemimager/boot/`arch`/flavor/ # # o perl libraries: /%{perl_vendorlib} # # o docs: Use distribution appropriate location. # Defaults to /usr/share/doc/systemimager/ # for installs from tarball or source. # # o man pages: /usr/share/man/man8/ # # o log files: /var/log/systemimager/ # # o configuration files: /etc/systemimager/ # o rsyncd.conf: /etc/systemimager/rsyncd.conf # o rsyncd init script: /etc/init.d/systemimager # o netbootmond init script: /etc/init.d/netbootmond # # o tftp files will be copied to the appropriate destination (as determined # by the local SysAdmin when running "mkbootserver". # # o user visible binaries: /usr/bin # (si_lsimage, si_mkautoinstalldisk, si_mkautoinstallcd) # o sysadmin binaries: /usr/sbin # (all other binaries) # # # Standards for pre-defined rsync modules: # o boot (directory that holds architecture specific directories with # boot files for clients) # o overrides # o scripts # o torrents # # DESTDIR := VERSION := $(shell cat VERSION) DRACUT_MODULE_INDEX = 51 ## is this an unstable release? MINOR = $(shell echo $(VERSION) | cut -d "." -f 2) UNSTABLE = 0 ifeq ($(shell echo "$(MINOR) % 2" | bc),1) UNSTABLE = 1 endif FLAVOR = $(shell cat FLAVOR) TOPDIR := $(CURDIR) # RELEASE_DOCS are toplevel files that should be included with all posted # tarballs, but aren't installed onto the destination machine by default RELEASE_DOCS = CHANGE.LOG COPYING CREDITS README VERSION ARCH = $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) TAR = $(shell gtar --version >/dev/null >&2 && echo gtar || echo tar) # Follows is a set of arch manipulations to distinguish between ppc types ifeq ($(ARCH),ppc64) # Check if machine is Playstation 3 IS_PS3 = $(shell grep -q PS3 /proc/cpuinfo && echo 1) ifeq ($(IS_PS3),1) ARCH = ppc64-ps3 else IS_PPC64 := 1 ifneq ($(shell ls /proc/iSeries 2>/dev/null),) ARCH = ppc64-iSeries endif endif endif # is userspace 64bit USERSPACE64 := 0 ifeq ($(ARCH),ia64) USERSPACE64 := 1 endif ifeq ($(ARCH),x86_64) USERSPACE64 := 1 endif ifneq ($(BUILD_ARCH),) ARCH := $(BUILD_ARCH) endif # # To be used by "make" for rules that can take it! ifneq ($(shell ls -d /proc/cpuinfo 2>/dev/null),) NCPUS := $(shell egrep -c '^processor' /proc/cpuinfo ) else NCPUS := 1 endif $(info Using $(NCPUS) CPU(s) for this task) MANUAL_DIR = $(TOPDIR)/doc/manual_source MANPAGE_DIR = $(TOPDIR)/doc/man LIB_SRC = $(TOPDIR)/lib SRC_DIR = $(TOPDIR)/src BINARY_SRC = $(TOPDIR)/sbin # destination directories PREFIX = /usr USR = $(DESTDIR)$(PREFIX) ETC = $(DESTDIR)/etc INITD = $(ETC)/init.d ifneq ($(wildcard /usr/lib/systemd/system/systemd-halt.service),) SYSTEMD_OS_UNIT_DIR = /usr/lib/systemd/system else ifneq ($(wildcard /lib/systemd/system/systemd-halt.service),) SYSTEMD_OS_UNIT_DIR = /lib/systemd/system else SYSTEMD_OS_UNIT_DIR = "" endif ifneq ("$(SYSTEMD_OS_UNIT_DIR)","") SYSTEMD_UNIT_DIR = $(DESTDIR)$(SYSTEMD_OS_UNIT_DIR) else SYSTEMD_UNIT_DIR = "$(USR)/lib/systemd/system" endif SYSTEMD_SRC = $(TOPDIR)/etc/systemd/system INITD_SRC = $(TOPDIR)/etc/init.d DOC = $(USR)/share/doc/systemimager-doc BIN = $(USR)/bin SBIN = $(USR)/sbin MAN8 = $(USR)/share/man/man8 #LIBEXEC_DEST = $(USR)/libexec/systemimager LIBEXEC_DEST = $(USR)/lib/systemimager LIB_DEST = $(DESTDIR)$(shell perl -V:vendorlib | sed s/vendorlib=\'// | sed s/\'\;//) #LIB_DEST = $(USR)/lib/systemimager/perl LOG_DIR = $(DESTDIR)/var/log/systemimager LOCK_DIR = $(DESTDIR)/var/lock/systemimager INITRD_DIR = $(TOPDIR)/initrd_source INITRD_BUILD_DIR = $(INITRD_DIR)/build_dir DRACUT_BASEDIR = $(shell test -d /usr/lib/dracut && echo "/lib/dracut" || echo "/share/dracut") DRACUT_SYSDIR = /usr$(DRACUT_BASEDIR) DRACUT_MODULES = $(USR)$(DRACUT_BASEDIR)/modules.d CONF_SRC = $(TOPDIR)/conf/ CONF_DEST = $(USR)/share/systemimager/conf/ WEB_CONF_SRC = $(TOPDIR)/etc/ ifneq ($(shell ls -d /etc/apache2/sites-available 2>/dev/null),) WEB_CONF_DEST = $(ETC)/apache2/sites-available WEB_CONF_DIR = /etc/apache2/sites-available else ifneq ($(shell ls -d /etc/apache2/vhosts.d 2>/dev/null),) WEB_CONF_DEST = $(ETC)/apache2/vhosts.d WEB_CONF_DIR = /etc/apache2/vhosts.d else ifneq ($(shell ls -d /etc/httpd/conf.d/ 2>/dev/null),) WEB_CONF_DEST = $(ETC)/httpd/conf.d WEB_CONF_DIR = /etc/httpd/conf.d else ifeq ($(WEB_CONF_DIR),) WEB_CONF_DEST = else ifeq ($(shell ls -d $(WEB_CONF_DIR)),) $(error WEB_CONF_DIR=$(WEB_CONF_DIR) directory does not exists) else WEB_CONF_DEST = $(ETC)/$(WEB_CONF_DIR) endif WEB_GUI_SRC = $(TOPDIR)/webgui WEB_GUI_DEST = $(USR)/share/systemimager/webgui BOOT_BIN_DEST = $(USR)/share/systemimager/boot/$(ARCH)/$(FLAVOR) BOOT_BIN_PATH = $(PREFIX)/share/systemimager/boot/$(ARCH)/$(FLAVOR) BOOT_NOARCH_DEST = $(USR)/share/systemimager/boot BOOT_NOARCH_PATH = $(PREFIX)/share/systemimager/boot PXE_CONF_SRC = etc/pxelinux.cfg PXE_CONF_DEST = $(ETC)/systemimager/pxelinux.cfg KBOOT_CONF_SRC = etc/kboot.cfg KBOOT_CONF_DEST = $(ETC)/systemimager/kboot.cfg BINARIES := si_mkautoinstallcd si_mkautoinstalldisk si_psh si_pcp si_pushoverrides si_clusterconfig SBINARIES := si_addclients si_cpimage si_getimage si_lint si_mkdhcpserver si_mkdhcpstatic si_mkautoinstallscript si_mvimage si_pushupdate si_pushinstall si_rmimage si_mkrsyncd_conf si_mkclientnetboot si_netbootmond BT_SBINARIES := si_installbtimage CLIENT_SBINARIES := si_updateclient si_prepareclient COMMON_BINARIES := si_lsimage si_mkbootpackage WEB_SRC := index.php edit_clusters.php manage_netboot.php edit_dhcp.php health_console.php client_console.php client_list.php edit_config.php services.json statuses.json functions.js functions.php push_client_defs.php push_client_logs.php css/Background.png css/SystemImagerBanner.png css/flex_table.css css/screen.css css/sliders.css images/Alecive-Flatwoken-Apps-Dialog-Apply.svg images/Alecive-Flatwoken-Apps-Dialog-Close.svg images/Alecive-Flatwoken-Apps-Dialog-Logout.svg images/Alecive-Flatwoken-Apps-Dialog-Refresh.svg images/Alecive-Flatwoken-Apps-Settings.svg images/yes.svg images/no.svg images/client_list.png images/edit_clusters.png images/edit_config.png images/edit_dhcp.png images/health_console.png images/manage_netboot.png COPYRIGHTS IMAGESRC = $(TOPDIR)/var/lib/systemimager/images IMAGEDEST = $(DESTDIR)/var/lib/systemimager/images WARNING_FILES = $(IMAGESRC)/README $(IMAGESRC)/CUIDADO $(IMAGESRC)/ACHTUNG AUTOINSTALL_SCRIPT_DIR = $(DESTDIR)/var/lib/systemimager/scripts AUTOINSTALL_TORRENT_DIR = $(DESTDIR)/var/lib/systemimager/torrents AUTOINSTALL_TARBALL_DIR = $(DESTDIR)/var/lib/systemimager/tarballs OVERRIDES_DIR = $(DESTDIR)/var/lib/systemimager/overrides OVERRIDES_README = $(TOPDIR)/var/lib/systemimager/overrides/README FLAMETHROWER_STATE_DIR = $(DESTDIR)/var/run/systemimager/flamethrower RSYNC_STUB_DIR = $(ETC)/systemimager/rsync_stubs SI_INSTALL = $(TOPDIR)/tools/si_install --si-prefix=$(PREFIX) # Some root tools are probably needed to build SystemImager packages, so # explicitly add the right paths here. -AR- PATH := $(PATH):/sbin:/usr/sbin:/usr/local/sbin ######################################################################## # # BEGIN Give friendly config and packages help. -BEF- # IS_CONFIGURED = $(shell test -e config.inc && echo 1 || echo 0) ifeq ($(IS_CONFIGURED),0) .PHONY: all all: show_build_deps else include config.inc # build everything, install nothing .PHONY: all all: install_initrd_template manpages endif # # END Give friendly config and packages help. -BEF- # ######################################################################## include $(TOPDIR)/initrd_source/initrd.rul binaries: $(BOEL_BINARIES_TARBALL) $(INITRD_BOOTFILES_DIR).build # a full install (usefull for packaging) .PHONY: install_all install_all: install_server_all install_client install_initrd_template # a complete server install .PHONY: install_server_all install_server_all: install_server install_server_bittorrent install_server_flamethrower install_common install_binaries install_dracut install_webgui # a complete client install .PHONY: install_client_all install_client_all: install_client install_common install_initrd_template # install server-only architecture independent files .PHONY: install_server install_server: install_server_man \ install_configs \ install_server_libs $(SI_INSTALL) -d $(BIN) $(SI_INSTALL) -d $(SBIN) $(foreach binary, $(BINARIES), \ $(SI_INSTALL) -m 755 $(BINARY_SRC)/$(binary) $(BIN);) $(foreach binary, $(SBINARIES), \ $(SI_INSTALL) -m 755 $(BINARY_SRC)/$(binary) $(SBIN);) ifneq ("$(SYSTEMD_OS_UNIT_DIR)","") $(SI_INSTALL) -m 755 $(BINARY_SRC)/si_mkbootserver.systemd $(SBIN)/si_mkbootserver else $(SI_INSTALL) -m 755 $(BINARY_SRC)/si_mkbootserver.sysvinit $(SBIN)/si_mkbootserver endif $(SI_INSTALL) -d -m 755 $(LOG_DIR) $(SI_INSTALL) -d -m 755 $(LOCK_DIR) $(SI_INSTALL) -d -m 755 $(BOOT_BIN_DEST) $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_SCRIPT_DIR) $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_SCRIPT_DIR)/configs $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_SCRIPT_DIR)/disks-layouts $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_SCRIPT_DIR)/network-configs $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_SCRIPT_DIR)/main-install $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_SCRIPT_DIR)/pre-install $(SI_INSTALL) -m 644 --backup --text \ $(TOPDIR)/var/lib/systemimager/scripts/pre-install/99all.harmless_example_script \ $(AUTOINSTALL_SCRIPT_DIR)/pre-install/ $(SI_INSTALL) -m 644 --backup --text \ $(TOPDIR)/var/lib/systemimager/scripts/pre-install/README \ $(AUTOINSTALL_SCRIPT_DIR)/pre-install/ $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_SCRIPT_DIR)/post-install $(SI_INSTALL) -m 644 --backup --text \ $(TOPDIR)/var/lib/systemimager/scripts/post-install/99all.harmless_example_script \ $(TOPDIR)/var/lib/systemimager/scripts/post-install/10all.fix_swap_uuids\ $(TOPDIR)/var/lib/systemimager/scripts/post-install/11all.replace_byid_device\ $(AUTOINSTALL_SCRIPT_DIR)/post-install/ $(SI_INSTALL) -m 644 --backup --text \ $(TOPDIR)/var/lib/systemimager/scripts/post-install/README \ $(AUTOINSTALL_SCRIPT_DIR)/post-install/ $(SI_INSTALL) -d -m 755 $(OVERRIDES_DIR) $(SI_INSTALL) -m 644 $(OVERRIDES_README) $(OVERRIDES_DIR) $(SI_INSTALL) -d -m 755 $(PXE_CONF_DEST) $(SI_INSTALL) -m 644 --backup --text $(PXE_CONF_SRC)/message.txt \ $(PXE_CONF_DEST)/message.txt $(SI_INSTALL) -m 644 --backup $(PXE_CONF_SRC)/syslinux.cfg \ $(PXE_CONF_DEST)/syslinux.cfg $(SI_INSTALL) -m 644 --backup $(PXE_CONF_SRC)/syslinux.cfg.gfxboot \ $(PXE_CONF_DEST)/syslinux.cfg.gfxboot $(SI_INSTALL) -m 644 --backup $(PXE_CONF_SRC)/systemimager.png \ $(PXE_CONF_DEST)/systemimager.png $(SI_INSTALL) -m 644 --backup $(PXE_CONF_SRC)/syslinux.cfg.localboot \ $(PXE_CONF_DEST)/syslinux.cfg.localboot $(SI_INSTALL) -m 644 --backup $(PXE_CONF_SRC)/syslinux.cfg.localboot \ $(PXE_CONF_DEST)/default $(SI_INSTALL) -d -m 755 $(KBOOT_CONF_DEST) # $(SI_INSTALL) -m 644 --backup --text $(KBOOT_CONF_SRC)/message.txt \ # $(KBOOT_CONF_DEST)/message.txt $(SI_INSTALL) -m 644 --backup $(KBOOT_CONF_SRC)/localboot \ $(KBOOT_CONF_DEST)/ $(SI_INSTALL) -m 644 --backup $(KBOOT_CONF_SRC)/default \ $(KBOOT_CONF_DEST)/ $(SI_INSTALL) -d -m 755 $(IMAGEDEST) $(SI_INSTALL) -m 644 $(WARNING_FILES) $(IMAGEDEST) cp -a $(IMAGEDEST)/README $(IMAGEDEST)/DO_NOT_TOUCH_THESE_DIRECTORIES # Install server service files ifneq ($(wildcard $(SYSTEMD_OS_UNIT_DIR)),) @echo "Installing systemd service files for systemimager." mkdir -p $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-monitord.service $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-netbootmond.service $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-rsyncd.service $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-rsyncd@.service $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-rsyncd.socket $(SYSTEMD_UNIT_DIR) else [ "$(INITD)" != "" ] || exit 1 @echo "Installing init.d service files for systemimager." mkdir -p $(INITD) $(SI_INSTALL) -b -m 755 $(INITD_SRC)/systemimager-server-rsyncd $(INITD) $(SI_INSTALL) -b -m 755 $(INITD_SRC)/systemimager-server-netbootmond $(INITD) $(SI_INSTALL) -b -m 755 $(INITD_SRC)/systemimager-server-monitord $(INITD) endif .PHONY: install_server_bittorrent install_server_bittorrent: install_bittorrent_man $(SI_INSTALL) -d $(SBIN) $(SI_INSTALL) -d $(ETC)/systemimager $(SI_INSTALL) -m 644 --backup etc/bittorrent.conf $(ETC)/systemimager/ $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_TARBALL_DIR) $(SI_INSTALL) -d -m 755 $(AUTOINSTALL_TORRENT_DIR) $(foreach binary, $(BT_SBINARIES), \ $(SI_INSTALL) -m 755 $(BINARY_SRC)/$(binary) $(SBIN);) ifneq ($(wildcard $(SYSTEMD_OS_UNIT_DIR)),) @echo "Installing systemd service files for bittorrent." mkdir -p $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-bittorrent-seeder.service $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-bittorrent.service $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-bittorrent-tracker.service $(SYSTEMD_UNIT_DIR) else [ "$(INITD)" != "" ] || exit 1 @echo "Installing init.d service files for bittorrent." mkdir -p $(INITD) $(SI_INSTALL) -b -m 755 $(INITD_SRC)/systemimager-server-bittorrent $(INITD) endif .PHONY: install_server_flamethrower install_server_flamethrower: $(SI_INSTALL) -d $(ETC)/systemimager $(SI_INSTALL) -m 644 etc/flamethrower.conf $(ETC)/systemimager/ $(SI_INSTALL) -d -m 755 $(FLAMETHROWER_STATE_DIR) ifneq ($(wildcard $(SYSTEMD_OS_UNIT_DIR)),) @echo "Installing systemd service files for flamethrower." mkdir -p $(SYSTEMD_UNIT_DIR) $(SI_INSTALL) -b -m 644 $(SYSTEMD_SRC)/systemimager-server-flamethrowerd.service $(SYSTEMD_UNIT_DIR) else [ "$(INITD)" != "" ] || exit 1 @echo "Installing init.d service files for flamethrower." mkdir -p $(INITD) $(SI_INSTALL) -b -m 755 $(INITD_SRC)/systemimager-server-flamethrowerd $(INITD) endif .PHONY: install_webgui install_webgui: ifeq ($(WEB_CONF_DEST),) $(error Can't guess apache web sites configuration dir. Please set WEB_CONF_DIR) endif $(info Using distro WEB_CONF_DIR = $(WEB_CONF_DIR)) mkdir -p $(WEB_CONF_DEST) $(SI_INSTALL) -b -m 644 $(WEB_CONF_SRC)/httpd.conf $(WEB_CONF_DEST)/systemimager.conf mkdir -p $(WEB_GUI_DEST) $(WEB_GUI_DEST)/css $(WEB_GUI_DEST)/images $(foreach file, $(WEB_SRC), \ $(SI_INSTALL) -m 755 $(WEB_GUI_SRC)/$(file) $(WEB_GUI_DEST)/$(file);) mkdir -p $(LIBEXEC_DEST) $(SI_INSTALL) -m 755 $(LIB_SRC)/web_helpers/get-networks-helper $(LIBEXEC_DEST) $(SI_INSTALL) -m 755 $(LIB_SRC)/web_helpers/clients-statuses-helper $(LIBEXEC_DEST) $(SI_INSTALL) -m 644 $(LIB_SRC)/web_helpers/init_systemimager_config.php $(LIBEXEC_DEST) # install client-only files .PHONY: install_client install_client: install_client_man install_client_libs mkdir -p $(ETC)/systemimager $(SI_INSTALL) -b -m 644 etc/updateclient.local.exclude \ $(ETC)/systemimager $(SI_INSTALL) -b -m 644 etc/client.conf \ $(ETC)/systemimager mkdir -p $(SBIN) $(foreach binary, $(CLIENT_SBINARIES), \ $(SI_INSTALL) -m 755 $(BINARY_SRC)/$(binary) $(SBIN);) # install files common to both the server and client .PHONY: install_common install_common: install_common_man install_common_libs mkdir -p $(ETC)/systemimager $(SI_INSTALL) -b -m 644 etc/UYOK.modules_to_exclude $(ETC)/systemimager $(SI_INSTALL) -b -m 644 etc/UYOK.modules_to_include $(ETC)/systemimager mkdir -p $(BIN) $(foreach binary, $(COMMON_BINARIES), \ $(SI_INSTALL) -m 755 $(BINARY_SRC)/$(binary) $(BIN);) # install files for dracut-systemimager module. .PHONY: install_dracut install_dracut: mkdir -p $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/ ifneq (,$(wildcard /usr/*/dracut/modules.d/99base/install)) # if "" not equals second argument (not empty, thus found), we're using an old dracut) ########## Old dracut ('check' and 'install' in charge of module install) $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/check $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/parse-systemimager-old.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/parse-systemimager.sh $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-genrules.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-start-old.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-netstart-old.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-sysroot-helper.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/install $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager sed -i -e "s|@@SIS_INITRD_TEMPLATE@@|$(BOOT_NOARCH_PATH)/initrd_template/|g" $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/install else ########## New dracut ('module-setup.sh' in charge of module install) $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-start.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/parse-systemimager.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-sysroot.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/module-setup.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager sed -i -e "s|@@SIS_INITRD_TEMPLATE@@|$(BOOT_NOARCH_PATH)/initrd_template/|g" $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/module-setup.sh endif ########## Files common to all dracut versions $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/autoinstall-lib.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/disks-layout.xsd $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/disksmgt-lib.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/files-to-exclude-from-image.txt $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/do_partitions.xsl $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/netmgt-lib.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/network.debian.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/network.rhel.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/network.suse.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/network-config.xsd $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/parse-local-cfg.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/si_inspect_client.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-check-ifaces.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-check-kernel.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-cleanup.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-deploy-client.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-log-dispatcher.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-log-dispatcher-old.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-init.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-install-rebooted-script.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-lib.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-load-network-infos.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-load-scripts-ecosystem.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-monitor-server.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-pingtest.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-timeout.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-wait-imaging.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-xmit-docker.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-xmit-flamethrower.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-xmit-nfs.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-xmit-rsync.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-xmit-ssh.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-xmit-template.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/systemimager-xmit-torrent.sh $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/README $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager mkdir -p $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/Background.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/COPYRIGHTS $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/README $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/hide_box.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/icon_bootloader.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/icon_format.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/icon_init.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/icon_partition.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/icon_postinstall.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/icon_preinstall.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/icon_writeimage.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/no.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/action.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/dialog_bgnd.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/box.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/progress_gauge.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/README $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/SystemImagerBanner.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/systemimager.plymouth $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/systemimager.script $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme $(SI_INSTALL) -b -m 755 $(LIB_SRC)/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme/yes.png $(DRACUT_MODULES)/$(DRACUT_MODULE_INDEX)systemimager/plymouth_theme # install server-only libraries .PHONY: install_server_libs install_server_libs: mkdir -p $(LIB_DEST)/SystemImager $(SI_INSTALL) -m 644 $(LIB_SRC)/SystemImager/Server.pm $(LIB_DEST)/SystemImager $(SI_INSTALL) -m 644 $(LIB_SRC)/SystemImager/HostRange.pm $(LIB_DEST)/SystemImager mkdir -p $(USR)/share/systemimager/icons $(SI_INSTALL) -m 644 $(LIB_SRC)/icons/serverinit.gif $(USR)/share/systemimager/icons $(SI_INSTALL) -m 644 $(LIB_SRC)/icons/serverinst.gif $(USR)/share/systemimager/icons $(SI_INSTALL) -m 644 $(LIB_SRC)/icons/serverok.gif $(USR)/share/systemimager/icons $(SI_INSTALL) -m 644 $(LIB_SRC)/icons/servererror.gif $(USR)/share/systemimager/icons mkdir -p $(USR)/share/systemimager/conf $(SI_INSTALL) -m 644 $(CONF_SRC)/config_scheme.json $(CONF_DEST) # mkdir -p $(LIB_DEST)/BootMedia # mkdir -p $(LIB_DEST)/BootGen/Dev # mkdir -p $(LIB_DEST)/BootGen/InitrdFS # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootMedia/BootMedia.pm $(LIB_DEST)/BootMedia # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootMedia/MediaLib.pm $(LIB_DEST)/BootMedia # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootMedia/alpha.pm $(LIB_DEST)/BootMedia # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootMedia/i386.pm $(LIB_DEST)/BootMedia # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootGen/Dev.pm $(LIB_DEST)/BootGen/ # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootGen/Dev/Devfs.pm $(LIB_DEST)/BootGen/Dev/ # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootGen/Dev/Static.pm $(LIB_DEST)/BootGen/Dev/ # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootGen/InitrdFS.pm $(LIB_DEST)/BootGen/ # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootGen/InitrdFS/Cramfs.pm $(LIB_DEST)/BootGen/InitrdFS/ # $(SI_INSTALL) -m 644 $(LIB_SRC)/BootGen/InitrdFS/Ext2.pm $(LIB_DEST)/BootGen/InitrdFS/ # install client-only libraries .PHONY: install_client_libs install_client_libs: mkdir -p $(LIB_DEST)/SystemImager $(SI_INSTALL) -m 644 $(LIB_SRC)/SystemImager/Client.pm $(LIB_DEST)/SystemImager # install common libraries .PHONY: install_common_libs install_common_libs: mkdir -p $(LIB_DEST)/SystemImager $(SI_INSTALL) -m 644 $(LIB_SRC)/SystemImager/JConfig.pm $(LIB_DEST)/SystemImager $(SI_INSTALL) -m 644 $(LIB_SRC)/SystemImager/Common.pm $(LIB_DEST)/SystemImager $(SI_INSTALL) -m 644 $(LIB_SRC)/SystemImager/Options.pm $(LIB_DEST)/SystemImager $(SI_INSTALL) -m 644 $(LIB_SRC)/SystemImager/UseYourOwnKernel.pm $(LIB_DEST)/SystemImager mkdir -p $(LIBEXEC_DEST) #$(SI_INSTALL) -m 755 $(LIB_SRC)/confedit $(LIBEXEC_DEST) # install the initscript & config files for the server .PHONY: install_configs install_configs: $(SI_INSTALL) -d $(ETC)/systemimager $(SI_INSTALL) -m 644 etc/systemimager.conf $(ETC)/systemimager/ $(SI_INSTALL) -m 644 --backup etc/cluster.xml $(ETC)/systemimager/ $(SI_INSTALL) -m 644 etc/autoinstallscript.template $(ETC)/systemimager/ $(SI_INSTALL) -m 644 etc/autoinstallconf.template $(ETC)/systemimager/ $(SI_INSTALL) -m 644 etc/getimage.exclude $(ETC)/systemimager/ mkdir -p $(RSYNC_STUB_DIR) $(SI_INSTALL) -b -m 644 etc/rsync_stubs/10header $(RSYNC_STUB_DIR) [ -f $(RSYNC_STUB_DIR)/99local ] \ && $(SI_INSTALL) -b -m 644 etc/rsync_stubs/99local $(RSYNC_STUB_DIR)/99local.dist~ \ || $(SI_INSTALL) -b -m 644 etc/rsync_stubs/99local $(RSYNC_STUB_DIR) $(SI_INSTALL) -b -m 644 etc/rsync_stubs/README $(RSYNC_STUB_DIR) ########## END service files ########## ########## BEGIN man pages ########## # build all of the manpages .PHONY: manpages install_server_man install_client_man install_common_man install_bittorrent_man install_docs docs ifeq ($(SI_BUILD_DOCS),1) manpages: $(MAKE) -C $(MANPAGE_DIR) TOPDIR=$(TOPDIR) # install the manpages for the server install_server_man: manpages cd $(MANPAGE_DIR) && $(MAKE) install_server_man TOPDIR=$(TOPDIR) PREFIX=$(PREFIX) $@ # install the manpages for the client install_client_man: manpages cd $(MANPAGE_DIR) && $(MAKE) install_client_man TOPDIR=$(TOPDIR) PREFIX=$(PREFIX) $@ # install manpages common to the server and client install_common_man: manpages cd $(MANPAGE_DIR) && $(MAKE) install_common_man TOPDIR=$(TOPDIR) PREFIX=$(PREFIX) $@ install_bittorrent_man: manpages cd $(MANPAGE_DIR) && $(MAKE) install_bittorrent_man TOPDIR=$(TOPDIR) PREFIX=$(PREFIX) $@ ########## END man pages ########## # installs the manual and some examples install_docs: docs mkdir -p $(DOC) cp -a $(MANUAL_DIR)/html $(DOC) #cp $(MANUAL_DIR)/*.ps $(MANUAL_DIR)/*.pdf $(DOC) rsync -av --exclude 'CVS/' --exclude '.svn/' doc/examples/ $(DOC)/examples/ #XXX $(SI_INSTALL) -m 644 doc/media-api.txt $(DOC)/ # builds the manual from SGML source docs: #$(MAKE) -C $(MANUAL_DIR) html ps pdf $(MAKE) -C $(MANUAL_DIR) html endif .PHONY: install install: @echo '' @echo 'Try "make help", and/or read README for installation details.' @echo '' .PHONY: install_binaries install_binaries: install_boot_files .PHONY: source_tarball source_tarball: $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2.sign $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2.sign: $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2 cd $(TOPDIR)/tmp && gpg --detach-sign -a --output systemimager-$(VERSION).tar.bz2.sign systemimager-$(VERSION).tar.bz2 cd $(TOPDIR)/tmp && gpg --verify systemimager-$(VERSION).tar.bz2.sign $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2: $(TOPDIR)/systemimager.spec rm -fr $(TOPDIR)/tmp if [ -d $(TOPDIR)/.svn ]; then \ mkdir -p $(TOPDIR)/tmp; \ svn export . $(TOPDIR)/tmp/systemimager-$(VERSION); \ else \ make distclean && mkdir -p $(TOPDIR)/tmp/systemimager-$(VERSION); \ (cd $(TOPDIR) && $(TAR) --exclude=tmp --exclude=.git -cvf - .) | (cd $(TOPDIR)/tmp/systemimager-$(VERSION) && $(TAR) -xvf -); \ fi ifeq ($(UNSTABLE), 1) if [ -f README.unstable ]; then \ cd $(TOPDIR)/tmp/systemimager-$(VERSION) && cp README README.tmp; \ cd $(TOPDIR)/tmp/systemimager-$(VERSION) && cp README.unstable README; \ cd $(TOPDIR)/tmp/systemimager-$(VERSION) && cat README.tmp >> README; \ cd $(TOPDIR)/tmp/systemimager-$(VERSION) && rm README.tmp; \ fi PKG_REL=`test -d .git && git show --pretty='format:%ci'|head -1|sed -e 's/ .*//g' -e 's/-//g' -e 's/$$/git/' -e 's/^/0./' || echo 1`; \ cd $(TOPDIR)/tmp/systemimager-$(VERSION) && \ sed -i -e "s/##PKG_REL##/$${PKG_REL}/g" \ systemimager.spec \ lib/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/module-setup.sh \ lib/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/install && \ sed -i -e "s/##PKG_REL##/~$${PKG_REL}-1/g" \ debian/changelog else cd $(TOPDIR)/tmp/systemimager-$(VERSION) && \ sed -i -e "s/##PKG_REL##/1/g" \ systemimager.spec \ lib/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/module-setup.sh \ lib/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/install && \ sed -i -e "s/##PKG_REL##/-1/g" \ debian/changelog endif rm -f $(TOPDIR)/tmp/systemimager-$(VERSION)/README.unstable perl -pi -e "s/^%define\s+ver\s+\d+\.\d+\.\d+.*/%define ver $(VERSION)/" \ $(TOPDIR)/tmp/systemimager-$(VERSION)/systemimager.spec sed -i -e "s/##VERSION##/$(VERSION)/g" \ $(TOPDIR)/tmp/systemimager-$(VERSION)/lib/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/module-setup.sh \ $(TOPDIR)/tmp/systemimager-$(VERSION)/lib/dracut/modules.d/$(DRACUT_MODULE_INDEX)systemimager/install find $(TOPDIR)/tmp/systemimager-$(VERSION) -type f -exec chmod ug+r {} \; find $(TOPDIR)/tmp/systemimager-$(VERSION) -type d -exec chmod ug+rx {} \; cd $(TOPDIR)/tmp && $(TAR) -ch systemimager-$(VERSION) | bzip2 > systemimager-$(VERSION).tar.bz2 @echo @echo "source tarball has been created in $(TOPDIR)/tmp" @echo # make the srpms for systemimager .PHONY: srpm srpm: $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2 $(TOPDIR)/systemimager.spec rpmbuild --define '%dist %{nil}' -ts $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2 # make the rpms for systemimager .PHONY: rpm rpms rpms: rpm rpm: $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2 $(TOPDIR)/systemimager.spec rpmbuild -tb $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2 # make the debs for systemimager # # I wonder if installing libpam-dev would eliminate the need for # "--disable-login --disable-su" in initrd_source/make.d/util-linux.rul # ?? -BEF- If so, we should add libpam-dev to UBUNTU_PRECISE_BUILD_DEPS # in initrd_source/make.d/util-linux.rul. # UBUNTU_PRECISE_BUILD_DEPS += dos2unix docbook-utils libncurses-dev .PHONY: deb debs debs: deb deb: $(TOPDIR)/tmp/systemimager-$(VERSION).tar.bz2 # Check package version. @(if [ ! "`dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2`" = $(VERSION) ]; then \ echo "ERROR: versions in debian/changelog doesn't match with version specified into the file VERSION"; \ echo "Please fix it."; \ exit 1; \ else \ exit 0; \ fi) @cd $(TOPDIR)/tmp && $(TAR) xvjf systemimager-$(VERSION).tar.bz2 @cd $(TOPDIR)/tmp/systemimager-$(VERSION) && make -f debian/rules debian/control @cd $(TOPDIR)/tmp/systemimager-$(VERSION) && dpkg-buildpackage -rfakeroot -uc -us @echo "=== deb packages for systemimager ===" @ls -l $(TOPDIR)/tmp/*.deb @echo "=====================================" # removes object files, docs, editor backup files, etc. .PHONY: clean clean: initrd_clean -$(MAKE) -C $(MANPAGE_DIR) clean -$(MAKE) -C $(MANUAL_DIR) clean ## where the tarballs are built -rm -rf tmp ## editor backups -find . -name "*~" -exec rm -f {} \; -find . -name "#*#" -exec rm -f {} \; -find . -name ".#*" -exec rm -f {} \; rm -f config.inc config.log config.status # same as clean, but also removes downloaded source, stamp files, etc. .PHONY: distclean distclean: clean initrd_distclean -rm -rf $(SRC_DIR) .PHONY: help help: show_build_deps # # # Show me a list of all targets in this entire build heirarchy .PHONY: show_targets show_targets: @echo @echo Makefile targets you are probably most interested in: @echo --------------------------------------------------------------------- @echo "all" @echo " Build everything you need for your machine's architecture." @echo " " @echo "install_client_all" @echo " Install all files needed by a client." @echo " " @echo "install_server_all" @echo " Install all files needed by a server." @echo " " @echo "install_dracut" @echo " Install all files needed by dracut (dracut module)." @echo " " @echo "source_tarball" @echo " Make a source tarball for distribution." @echo " " @echo " Includes SystemImager source only. Source for all" @echo " the tools SystemImager depends on will be found in /usr/src " @echo " or will be automatically downloaded at build time." @echo " " @echo "rpm" @echo " Build all of the RPMs that can be build on your platform." @echo "" @echo "srpm" @echo " Build yourself a source RPM." @echo "" @echo "deb" @echo " Build all of the debs that can be build on your platform." @echo "" @echo "show_build_deps" @echo " Shows the list of packages necessary for building on" @echo " various distributions and releases." @echo @echo "show_all_targets" @echo " Show all available targets." @echo .PHONY: show_build_deps show_build_deps: @echo "Before you can build SystemImager, you'll need to do the following:" @echo @echo "1) Install the appropriate build dependencies for your distribution." @echo " The easiest path is to cut and paste the command below that is" @echo " appropriate for your distribution." @echo @echo " Ubuntu 12.04 and newer:" @echo " apt-get install build-essential rpm flex $(UBUNTU_PRECISE_BUILD_DEPS)" @echo @echo " Ubuntu 6.06:" @echo " apt-get install build-essential flex $(UBUNTU_DAPPER_BUILD_DEPS)" @echo @echo " RHEL6, CentOS6, and friends:" @echo " yum install rpm-build wget flex bc docbook-utils dos2unix lzop PyXML $(RHEL6_BUILD_DEPS)" @echo @echo " Debian Stable:" @echo " apt-get install build-essential flex $(DEBIAN_STABLE_BUILD_DEPS)" @echo @echo " NOTE: Other distro versions may build fine, and are simply untested by" @echo " the SystemImage dev team." @echo @echo "2) Run './configure'" @echo @echo "3) Run 'make show_targets' to see a list of make targets from which you can" @echo " choose." @echo .PHONY: show_all_targets SHOW_TARGETS_ALL_MAKEFILES = $(shell find . make.d/ initrd_source/ initrd_source/make.d/ -maxdepth 1 -name 'Makefile' -or -name '*.rul' ) show_all_targets: @echo All Available Targets Include: @echo --------------------------------------------------------------------- @cat $(SHOW_TARGETS_ALL_MAKEFILES) | egrep '^[a-zA-Z0-9_]+:' | sed 's/:.*//' | sort -u @echo