X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=Android.mk;h=bf4d7280cfff7dd69b4cecac23750ee1e02f6c39;hb=d68f8f8986dbd571185bae98a81f4038a179e384;hp=c7088fa23c43157517c5748d0dcfe8611963b843;hpb=84732737cf5399580b8a8642be0bc9428fb2cddc;p=android-x86%2Fbootable-newinstaller.git diff --git a/Android.mk b/Android.mk index c7088fa..bf4d728 100644 --- a/Android.mk +++ b/Android.mk @@ -14,25 +14,24 @@ ifneq ($(filter x86%,$(TARGET_ARCH)),) LOCAL_PATH := $(call my-dir) -include $(CLEAR_VARS) -LOCAL_MODULE := edit_mbr -LOCAL_SRC_FILES := editdisklbl/editdisklbl.c -LOCAL_CFLAGS := -O2 -g -W -Wall -Werror# -D_LARGEFILE64_SOURCE -LOCAL_STATIC_LIBRARIES := libdiskconfig_host libcutils liblog -edit_mbr := $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE) -include $(BUILD_HOST_EXECUTABLE) +include $(CLEAR_VARS) +LOCAL_IS_HOST_MODULE := true +LOCAL_SRC_FILES := rpm/qemu-android +LOCAL_MODULE := $(notdir $(LOCAL_SRC_FILES)) +LOCAL_MODULE_TAGS := debug +LOCAL_MODULE_CLASS := EXECUTABLES +LOCAL_POST_INSTALL_CMD := $(hide) sed -i "s|CMDLINE|$(BOARD_KERNEL_CMDLINE)|" $(HOST_OUT_EXECUTABLES)/$(LOCAL_MODULE) +include $(BUILD_PREBUILT) -VER ?= $(shell date +"%F") +VER ?= $$(date +"%F") # use squashfs for iso, unless explictly disabled ifneq ($(USE_SQUASHFS),0) -MKSQUASHFS = $(shell which mksquashfs) +MKSQUASHFS := $(MAKE_SQUASHFS) define build-squashfs-target - $(if $(shell $(MKSQUASHFS) -version | grep "version [0-3].[0-9]"),\ - $(error Your mksquashfs is too old to work with kernel 2.6.29. Please upgrade to squashfs-tools 4.0)) - $(hide) $(MKSQUASHFS) $(1) $(2) -noappend + $(hide) $(MKSQUASHFS) $(1) $(2) -noappend -comp gzip endef endif @@ -43,61 +42,72 @@ initrd_bin := \ systemimg := $(PRODUCT_OUT)/system.$(if $(MKSQUASHFS),sfs,img) -INITRD_RAMDISK := $(PRODUCT_OUT)/initrd.img +TARGET_INITRD_OUT := $(PRODUCT_OUT)/initrd +INITRD_RAMDISK := $(TARGET_INITRD_OUT).img $(INITRD_RAMDISK): $(initrd_bin) $(systemimg) $(TARGET_INITRD_SCRIPTS) | $(ACP) $(MKBOOTFS) - rm -rf $(TARGET_INSTALLER_OUT) - $(ACP) -pr $(initrd_dir) $(TARGET_INSTALLER_OUT) - $(if $(TARGET_INITRD_SCRIPTS),$(ACP) -p $(TARGET_INITRD_SCRIPTS) $(TARGET_INSTALLER_OUT)/scripts) - ln -s /bin/ld-linux.so.2 $(TARGET_INSTALLER_OUT)/lib - mkdir -p $(addprefix $(TARGET_INSTALLER_OUT)/,android iso mnt proc sys tmp sfs hd) - echo "VER=$(VER)" > $(TARGET_INSTALLER_OUT)/scripts/00-ver - $(MKBOOTFS) $(TARGET_INSTALLER_OUT) | gzip -9 > $@ + $(hide) rm -rf $(TARGET_INITRD_OUT) + mkdir -p $(addprefix $(TARGET_INITRD_OUT)/,android hd iso lib mnt proc scripts sfs sys tmp) + $(if $(TARGET_INITRD_SCRIPTS),$(ACP) -p $(TARGET_INITRD_SCRIPTS) $(TARGET_INITRD_OUT)/scripts) + ln -s /bin/ld-linux.so.2 $(TARGET_INITRD_OUT)/lib + echo "VER=$(VER)" > $(TARGET_INITRD_OUT)/scripts/00-ver + $(if $(RELEASE_OS_TITLE),echo "OS_TITLE=$(RELEASE_OS_TITLE)" >> $(TARGET_INITRD_OUT)/scripts/00-ver) + $(if $(INSTALL_PREFIX),echo "INSTALL_PREFIX=$(INSTALL_PREFIX)" >> $(TARGET_INITRD_OUT)/scripts/00-ver) + $(MKBOOTFS) $( $@ INSTALL_RAMDISK := $(PRODUCT_OUT)/install.img -$(INSTALL_RAMDISK): $(wildcard $(LOCAL_PATH)/install/*/* $(LOCAL_PATH)/install/*/*/*/*) | $(MKBOOTFS) - $(if $(TARGET_INSTALL_SCRIPTS),$(ACP) -p $(TARGET_INSTALL_SCRIPTS) $(TARGET_INSTALLER_OUT)/scripts) - $(MKBOOTFS) $(dir $(dir $( $@ +INSTALLER_BIN := $(TARGET_INSTALLER_OUT)/sbin/efibootmgr +$(INSTALL_RAMDISK): $(wildcard $(LOCAL_PATH)/install/*/* $(LOCAL_PATH)/install/*/*/*/*) $(INSTALLER_BIN) | $(MKBOOTFS) + $(if $(TARGET_INSTALL_SCRIPTS),mkdir -p $(TARGET_INSTALLER_OUT)/scripts; $(ACP) -p $(TARGET_INSTALL_SCRIPTS) $(TARGET_INSTALLER_OUT)/scripts) + $(MKBOOTFS) $(dir $(dir $( $@ + +isolinux_files := $(addprefix external/syslinux/bios/com32/, \ + ../core/isolinux.bin \ + chain/chain.c32 \ + elflink/ldlinux/ldlinux.c32 \ + lib/libcom32.c32 \ + libutil/libutil.c32 \ + menu/vesamenu.c32) boot_dir := $(PRODUCT_OUT)/boot -$(boot_dir): $(shell find $(LOCAL_PATH)/boot -type f | sort -r) $(systemimg) $(GENERIC_X86_CONFIG_MK) | $(ACP) +$(boot_dir): $(shell find $(LOCAL_PATH)/boot -type f | sort -r) $(isolinux_files) $(systemimg) $(INSTALL_RAMDISK) $(GENERIC_X86_CONFIG_MK) | $(ACP) $(hide) rm -rf $@ $(ACP) -pr $(dir $( /dev/null),xorriso -as mkisofs,genisoimage) ISO_IMAGE := $(PRODUCT_OUT)/$(TARGET_PRODUCT).iso +ISOHYBRID := LD_LIBRARY_PATH=$(LOCAL_PATH)/install/lib external/syslinux/bios/utils/isohybrid $(ISO_IMAGE): $(boot_dir) $(BUILT_IMG) @echo ----- Making iso image ------ $(hide) sed -i "s|\(Installation CD\)\(.*\)|\1 $(VER)|; s|CMDLINE|$(BOARD_KERNEL_CMDLINE)|" $ $(@D)/grub.cfg - $(hide) size=0; \ - for s in `du -sk $^ | awk '{print $$1}'`; do \ - size=$$(($$size+$$s)); \ - done; \ - size=$$(($$(($$(($$(($$(($$size + $$(($$size / 100)))) - 1)) / 32)) + 1)) * 32)); \ - rm -f $@.fat; mkdosfs -n Android-x86 -C $@.fat $$size - $(hide) mcopy -Qsi $@.fat $( $@; $(edit_mbr) -l $(ESP_LAYOUT) -i $@ esp=$@.fat - $(hide) rm -f $@.fat - -.PHONY: iso_img usb_img efi_img +rpm: $(wildcard $(LOCAL_PATH)/rpm/*) $(BUILT_IMG) + @echo ----- Making an rpm ------ + OUT=$(abspath $(PRODUCT_OUT)); mkdir -p $$OUT/rpm/BUILD; rm -rf $$OUT/rpm/RPMS/*; $(ACP) $< $$OUT; \ + echo $(VER) | grep -vq rc; EPOCH=$$((-$$? + `echo $(VER) | cut -d. -f1`)); \ + rpmbuild -bb --target=$(if $(filter x86,$(TARGET_ARCH)),i686,x86_64) -D"cmdline $(BOARD_KERNEL_CMDLINE)" \ + -D"_topdir $$OUT/rpm" -D"_sourcedir $$OUT" -D"systemimg $(notdir $(systemimg))" -D"ver $(VER)" -D"epoch $$EPOCH" \ + $(if $(BUILD_NAME_VARIANT),-D"name $(BUILD_NAME_VARIANT)") \ + -D"install_prefix $(if $(INSTALL_PREFIX),$(INSTALL_PREFIX),android-$(VER))" $(filter %.spec,$^); \ + mv $$OUT/rpm/RPMS/*/*.rpm $$OUT + +.PHONY: iso_img usb_img efi_img rpm iso_img: $(ISO_IMAGE) usb_img: $(ISO_IMAGE) -efi_img: $(EFI_IMAGE) +efi_img: $(ISO_IMAGE) endif