2005-05-16 14:42:32 +00:00
# abbreviations
d e f i n e E X T R A V E R S I O N
$( shell cat EXTRAVERSION )
e n d e f
d e f i n e C O M P L E T E _ V E R S I O N
$( shell cat COMPLETE_VERSION )
e n d e f
2008-07-13 15:03:04 +00:00
HOST ?= $( HOSTNAME)
2005-05-18 12:19:17 +00:00
KERNEL_BASE ?= lx-$( HOST)
BOOT_LABEL ?= lx-$( KERNEL_VERSION) -$( RPM_RELEASE)
KERNEL_PKG_SUFFIX ?= .tar.gz
CUSTOMER ?= jannet
2006-06-27 00:53:58 +00:00
KERNEL_DLOAD_DIR ?= /home/samba/dat/exe/linux/os
2008-02-01 13:10:09 +00:00
KERNEL_PKG ?= $( KERNEL_DLOAD_DIR) /$( shell echo $( KERNEL_VERSION) | sed 's/\([0-9]\.[0-9]*\)\..*/\1/' ) /linux-$( shell echo $( KERNEL_VERSION) | sed 's/\(2\.6\.[0-9]+\)-..*/\1/' ) $( KERNEL_PKG_SUFFIX)
2005-05-18 12:19:17 +00:00
UPLOAD_HOST ?= ftp.jannet.de
UPLOAD_PATH ?= /home/ftp/dat/pub/packages/$( CUSTOMER) /$( KERNEL_BASE)
UPLOAD_OWNER ?= $( shell whoami)
2005-05-16 14:42:32 +00:00
KERNEL_MAJOR = $( shell echo $( KERNEL_VERSION) | cut -d\. -f1)
KERNEL_MINOR = $( shell echo $( KERNEL_VERSION) | cut -d\. -f2)
KERNEL_RELEASE = $( shell echo $( KERNEL_VERSION) | cut -d\. -f3)
2006-06-27 00:53:58 +00:00
KERNEL_PKG_BASE = $( KERNEL_DLOAD_DIR) /$( KERNEL_MAJOR) .$( KERNEL_MINOR) /linux-$( KERNEL_VERSION) .tar
2005-05-16 14:42:32 +00:00
i f n e q ( $( wildcard $ ( KERNEL_PKG_BASE ) .*) , )
ifneq ( $( wildcard $( KERNEL_PKG_BASE) .gz) ,)
KERNEL_PKG = $( KERNEL_PKG_BASE) .gz
2006-01-09 01:23:12 +00:00
KERNEL_SRC_DIR = $( shell tar -tzf $( KERNEL_DIR) /$( KERNEL_PKG) | grep -v pax_global_header | head -1)
2005-05-16 14:42:32 +00:00
endif
ifneq ( $( wildcard $( KERNEL_PKG_BASE) .bz2) ,)
KERNEL_PKG = $( KERNEL_PKG_BASE) .bz2
2006-01-09 01:23:12 +00:00
KERNEL_SRC_DIR = $( shell tar -tjf $( KERNEL_DIR) /$( KERNEL_PKG) | grep -v pax_global_header | head -1)
2005-05-16 14:42:32 +00:00
endif
e l s e
KERNEL_PKG = $( KERNEL_PKG_BASE) .bz2
KERNEL_SRC_DIR = linux-$( KERNEL_VERSION)
e n d i f
#HOST = $(shell cd ../..; pwd | xargs basename)
WD := $( shell pwd )
TAG = $( shell echo V_$( KERNEL_VERSION) _$( RPM_RELEASE) | sed 's/\./_/g' )
ARCH = $( shell $( RPMBUILD) --showrc | sed '/build arch / !d; s/.*build arch *://; s/ //g' )
RPMBUILD = $( shell which rpmbuild 2>/dev/null)
i f e q ( $( RPMBUILD ) , )
RPMBUILD = $( shell which rpm 2>/dev/null)
e n d i f
#ifeq ($(wildcard RELEASE-$(KERNEL_VERSION)),)
#RPM_RELEASE := $(shell make newrelease; exit 1)
#else
#RPM_RELEASE_NUM := $(strip $(shell grep Id: RELEASE-$(KERNEL_VERSION) | sed "s/.*RELEASE-$(KERNEL_VERSION),v[ ]*[0-9]*\.\([0-9]*\)[^0-9]*.*/\1/"))
#ifeq ($(UNAME_SUFFIX),)
#RPM_RELEASE = $(RPM_RELEASE_NUM)
#else
#RPM_RELEASE = $(UNAME_SUFFIX)$(RPM_RELEASE_NUM)
#endif
#endif
BASE = $( KERNEL_BASE) -$( COMPLETE_VERSION)
TMP_INSTALL = $( KERNEL_BASE) -$( COMPLETE_VERSION)
BASE_RUN = $( KERNEL_BASE) -run-$( COMPLETE_VERSION)
BASE_DEVEL = $( KERNEL_BASE) -devel-$( COMPLETE_VERSION)
i f e q ( $( BOOT_LABEL ) , )
BOOT_LABEL = lx-$( COMPLETE_VERSION)
e n d i f
KERNEL_TGZ = $( notdir $( KERNEL_PKG) )
F_SPEC = $( BASE) .spec
F_TGZ = $( BASE) .tar.gz
F_SPM = $( BASE) .src.rpm
F_RPM_RUN = $( BASE_RUN) .$( ARCH) .rpm
F_RPM_DEVEL = $( BASE_DEVEL) .$( ARCH) .rpm
F_RPMS = $( F_RPM_RUN) $( F_RPM_DEVEL)
F_BOOTFILES = $( addsuffix -$( COMPLETE_VERSION) ,$( addprefix $( TMP_INSTALL) /boot/,vmlinuz config System.map) )
F_CURRENT = $( addprefix CURRENT_, SRC RPM_SRC RPM_RUN_I386 RPM_DEVEL_I386)
F_ULDONE = $( addsuffix .uldone,$( F_RPMS) $( F_TGZ) $( F_SPM) current)
# note that order matters for F_ULDONE and F_RPMS (remote directory attributes)
KERNEL_INSTALL_PREFIX = $( shell pwd ) /$( TMP_INSTALL)
BUILD = sh $( MODDIR) /devutil/jcs/build_linux.sh \
-c config-$( KERNEL_VERSION) \
-t $( HOST) \
-b $( WD) \
-a i386 \
-s $( KERNEL_SRC_DIR) \
-i $( TMP_INSTALL)
2005-05-16 17:45:16 +00:00
MKSPEC := $( MODDIR) /devutil/jcs/mkspec-linux.sh
2005-05-16 14:42:32 +00:00
# exports
export KERNEL_VERSION
export KERNEL_INSTALL_PREFIX
# first target
all : rpm
# file rules
%.lxdone : config -$( KERNEL_VERSION ) $( LOCAL_PRE_BUILD ) linux -$( KERNEL_VERSION ) /Makefile
$( BUILD) $( basename $@ )
touch $@
$(TMP_INSTALL)/$(F_SPEC) : linux -$( KERNEL_VERSION ) /Makefile $( MKSPEC ) Makefile
2008-02-01 13:10:09 +00:00
sh $( MKSPEC) -d $( TMP_INSTALL) -b $( KERNEL_BASE) -v $( shell echo $( COMPLETE_VERSION) | sed 's/-[0-9][0-9]*.*//' ) -r $( RPM_RELEASE) -a $( ARCH) -l $( BOOT_LABEL) > $@
2005-05-16 14:42:32 +00:00
$(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)-$(RPM_RELEASE) : build .lxdone $( LOCAL_AFTER_KERNEL_BUILD )
@echo -n
.PRECIOUS : $( TMP_INSTALL ) /boot /%-$( KERNEL_VERSION )
$(TMP_INSTALL)/boot/%-$(KERNEL_VERSION)-$(RPM_RELEASE) : $( TMP_INSTALL ) /boot /%-$( KERNEL_VERSION )
cp $< $@
$(F_TGZ) : Makefile build .lxdone $( F_BOOTFILES ) $( TMP_INSTALL ) /$( F_SPEC )
tar -czf $@ \
$( F_BOOTFILES) \
$( addprefix $( TMP_INSTALL) /, \
lib \
$( F_SPEC) \
)
%.src.rpm : %.tar .gz
$( RPMBUILD) -ts $<
cp /usr/src/packages/SRPMS/$@ .
rpm.done : $( F_SPM )
$( RPMBUILD) --rebuild $( F_SPM)
touch $@
%.$(ARCH).rpm : rpm .done
cp /usr/src/packages/RPMS/$( ARCH) /$@ .
CURRENT_RPM_RUN_I386 : $( F_RPM_RUN )
echo $( UPLOAD_PATH) /rpm/run/$( F_RPM_RUN) > $@
CURRENT_RPM_DEVEL_I386 : $( F_RPM_RUN )
echo $( UPLOAD_PATH) /rpm/devel/$( F_RPM_DEVEL) > $@
CURRENT_RPM_SRC : $( F_RPM_RUN )
echo $( UPLOAD_PATH) /rpm/src/$( F_RPM_SRC) > $@
CURRENT_SRC : $( F_RPM_RUN )
echo $( UPLOAD_PATH) /src/$( F_TGZ) > $@
update.done :
cvs update -dP
make rpm
touch $@
upload.done : $( F_RPMS )
touch $@
%.tar.gz.uldone : %.tar .gz
upload.sh $< rsync_ssh://$( UPLOAD_HOST) :$( UPLOAD_PATH) /src/$<:640:750:$( UPLOAD_OWNER) .$( CUSTOMER)
touch $@
%.src.rpm.uldone : %.src .rpm
upload.sh $< rsync_ssh://$( UPLOAD_HOST) :$( UPLOAD_PATH) /rpm/src/$<:640:750:$( UPLOAD_OWNER) .$( CUSTOMER)
touch $@
%.rpm.uldone : %.rpm
upload.sh $< rsync_ssh://$( UPLOAD_HOST) :$( UPLOAD_PATH) /rpm/$( shell echo $@ | sed 's/.*\(run\|devel\).*/\1/' ) /$<:640:750:$( UPLOAD_OWNER) .$( CUSTOMER)
touch $@
current.uldone : $( F_CURRENT )
upload.sh $^ rsync_ssh://$( UPLOAD_HOST) :$( UPLOAD_PATH) /:640:750:$( UPLOAD_OWNER) .$( CUSTOMER)
touch $@
tag.done :
cvs tag $( TAG)
touch $@
copy-run.done : $( F_RPM_RUN )
scp $< root@$( HOST) :/root/rpm/
touch $@
copy-devel.done : $( F_RPM_DEVEL )
scp $< root@$( HOST) :/root/rpm/
touch $@
ping :
ping $( HOST)
ssh :
2007-08-23 10:57:38 +00:00
$( CVS_RSH) -l root $( HOST)
2005-05-16 14:42:32 +00:00
# user targets
unpack : unpack .done
build : build .lxdone
driver : driver .done
tgz : $( F_TGZ )
spm : $( F_SPM )
rpm : $( F_RPMS )
upload : update .done rpm $( F_ULDONE )
tag : tag .done
2007-11-17 12:59:40 +00:00
install : build .lxdone install .lxdone
2005-05-16 14:42:32 +00:00
copy-run : copy -run .done
copy-devel : copy -devel .done
copy : copy -run copy -devel
patch : patches .done
shutdown :
2007-08-23 10:57:38 +00:00
$( CVS_RSH) -l root $( HOST) "shutdown -h now"
2005-05-16 14:42:32 +00:00
reboot :
2007-08-23 10:57:38 +00:00
-l root $( HOST) "reboot"
2005-05-16 14:42:32 +00:00
update-rpm : copy
2007-08-23 10:57:38 +00:00
$( CVS_RSH) -l root $( HOST) rpm -U $( addprefix rpm/,$( F_RPMS) )
2005-05-16 14:42:32 +00:00
erase-rpm :
2007-08-23 10:57:38 +00:00
$( CVS_RSH) -l root $( HOST) rpm -e $( KERNEL_BASE) -run $( KERNEL_BASE) -devel
2005-05-16 14:42:32 +00:00
dist : clean
cd ..; \
2006-03-16 08:07:38 +00:00
tar -czf kernel.tar.gz ` find kernel -maxdepth 1 -type f | grep -ve "setup\|trash\|CVS" `
2005-05-16 14:42:32 +00:00
mv ../kernel.tar.gz .
clean :
2005-05-16 15:56:34 +00:00
rm -rf $( KERNEL_BASE) -*
2007-05-04 12:51:16 +00:00
rm -rf install/* reiser.patch *~ *.done *.lxdone *.uldone *.patch *.diff *.rpm *.tar.gz *.tar \
2007-02-16 20:12:31 +00:00
$( SCOPE_DRIVER_BASE)
2006-03-15 14:32:32 +00:00
rm -rf linux linux-$( KERNEL_VERSION) CURRENT_* pax_global_header
2005-05-16 14:42:32 +00:00
rm -f toplevel-makefile EXTRAVERSION COMPLETE_VERSION
2006-06-26 15:34:31 +00:00
distclean : clean