syslinux/Makefile.private
<<
>>
Prefs
   1## -*- makefile -*- ------------------------------------------------------
   2##
   3##   Copyright 2000-2008 H. Peter Anvin - All Rights Reserved
   4##
   5##   This program is free software; you can redistribute it and/or modify
   6##   it under the terms of the GNU General Public License as published by
   7##   the Free Software Foundation, Inc., 53 Temple Place Ste 330,
   8##   Boston MA 02111-1307, USA; either version 2 of the License, or
   9##   (at your option) any later version; incorporated herein by reference.
  10##
  11## -----------------------------------------------------------------------
  12
  13#
  14# This should only be used by the maintainer to generate official binaries
  15# for release.  Please do not "make official" and distribute the binaries,
  16# please.
  17#
  18.PHONY: official release
  19
  20# These files are removed when tarballs are generated.
  21PRIVATE = Makefile.private mk/devel.mk
  22
  23GIT_DIR ?= .git
  24ABS_GIT_DIR := $(shell cd '$(GIT_DIR)' 2>/dev/null && pwd)
  25
  26-include release/Makefile.secret
  27
  28isolinux.iso: all
  29        cp isolinux-debug.bin isolinux-test/isolinux/isolinux.bin
  30        mkisofs -v -r -J \
  31                -b isolinux/isolinux.bin -c isolinux/boot.cat \
  32                -no-emul-boot -boot-load-size 4 -boot-info-table \
  33                -o isolinux.iso isolinux-test
  34
  35burn: isolinux.iso
  36        cdrecord -v blank=fast isolinux.iso
  37
  38official:
  39        $(MAKE) spotless CC='$(CC) -m32' SRC=$(topdir) OBJ=$(CURDIR)
  40        $(MAKE) all CC='$(CC) -m32' SRC=$(topdir) OBJ=$(CURDIR)
  41        $(MAKE) strip CC='$(CC) -m32' SRC=$(topdir) OBJ=$(CURDIR)
  42        $(MAKE) dist CC='$(CC) -m32' SRC=$(topdir) OBJ=$(CURDIR)
  43
  44release:
  45        test -d release
  46        git tag -a -m syslinux-$(VERSION) -f syslinux-$(VERSION)
  47        -rm -rf release/syslinux-$(VERSION)
  48        -rm -f release/syslinux-$(VERSION).*
  49        mkdir -p release/syslinux-$(VERSION)
  50        git archive --format=tar syslinux-$(VERSION) | \
  51                tar -x -f - -C release/syslinux-$(VERSION)
  52        ( cd gnu-efi && git archive --format=tar HEAD ) | \
  53                tar -x -f - -C release/syslinux-$(VERSION)/gnu-efi
  54        find release/syslinux-$(VERSION) \
  55                \( -name '*~' -or -name '#*' -or -name '.git*' \) -type f -print0 | \
  56                xargs -0rt rm -f
  57        find release/syslinux-$(VERSION) -name 'tests' -type d -print0 | \
  58                xargs -0rt rm -rf
  59        sed -e 's/@@VERSION@@/$(VERSION)/g' -e 's/@@RPMVERSION@@/$(VERSION)/g' \
  60                < release/syslinux-$(VERSION)/syslinux.spec.in \
  61                > release/syslinux-$(VERSION)/syslinux.spec
  62        rm -f release/syslinux-$(VERSION)/syslinux.spec.in
  63        $(MAKE) -C release/syslinux-$(VERSION) official DATE=`date +%Y-%m-%d`
  64
  65        cd release/syslinux-$(VERSION) && rm -rf $(PRIVATE)
  66        cd release && tar cvvf - syslinux-$(VERSION) | \
  67                gzip -9 > syslinux-$(VERSION).tar.gz
  68        cd release/syslinux-$(VERSION) && \
  69                zip -9r ../syslinux-$(VERSION).zip *
  70
  71
  72PRERELDIR := release/syslinux-$(VERSION)-pre
  73PRERELNO  := $(shell cat $(PRERELDIR)/.prerel 2>/dev/null || echo 1)
  74PREREL    := syslinux-$(VERSION)-pre$(PRERELNO)
  75RPMPREREL := $(shell $(PERL) -e 'printf "%.2f.%d\n", $(VERSION)-0.01, $(PRERELNO);')
  76
  77prerel:
  78        test -d release
  79        git tag -a -m $(PREREL) -f $(PREREL)
  80        -rm -rf $(PRERELDIR)/$(PREREL)
  81        -rm -f $(PRERELDIR)/$(PREREL).*
  82        mkdir -p $(PRERELDIR)/$(PREREL)
  83        git archive --format=tar $(PREREL) | \
  84                tar -x -f - -C $(PRERELDIR)/$(PREREL)
  85        ( cd gnu-efi && git archive --format=tar HEAD ) | \
  86                tar -x -f - -C $(PRERELDIR)/$(PREREL)/gnu-efi
  87        find $(PRERELDIR)/$(PREREL) \
  88                \( -name '*~' -or -name '#*' \) -type f -print0 | \
  89                xargs -0rt rm -f
  90        find $(PRERELDIR)/$(PREREL) \
  91                -name 'tests' -type d -print0 | \
  92                xargs -0rt rm -rf
  93        sed -e 's/@@VERSION@@/$(VERSION)-pre$(PRERELNO)/g' \
  94            -e 's/@@RPMVERSION@@/$(RPMPREREL)/g' \
  95                < $(PRERELDIR)/$(PREREL)/syslinux.spec.in \
  96                > $(PRERELDIR)/$(PREREL)/syslinux.spec
  97        rm -f $(PRERELDIR)/$(PREREL)/syslinux.spec.in
  98        $(MAKE) -C $(PRERELDIR)/$(PREREL) official DATE=`printf '%s-pre%d          ' $(VERSION) $(PRERELNO) | dd bs=10 count=1 2>/dev/null`
  99        cd $(PRERELDIR)/$(PREREL) && rm -rf $(PRIVATE)
 100        cd $(PRERELDIR) && tar cvvf - $(PREREL) | \
 101                gzip -9 > $(PREREL).tar.gz
 102        cd $(PRERELDIR)/$(PREREL) && \
 103                zip -9r ../$(PREREL).zip *
 104        expr $(PRERELNO) + 1 > $(PRERELDIR)/.prerel
 105
 106LATEST_PRERELNO := $(shell expr $(PRERELNO) - 1)
 107LATEST_PREREL   := syslinux-$(VERSION)-pre$(LATEST_PRERELNO)
 108
 109unprerel:
 110        echo $(LATEST_PRERELNO) > $(PRERELDIR)/.prerel
 111        @echo Next release will be $(LATEST_PREREL)
 112