2005-04-05 14:30:38 +00:00
d e f i n e E X T R A V E R S I O N
2005-05-16 15:03:31 +00:00
$( 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 )
2005-04-05 14:30:38 +00:00
e n d e f
2005-04-30 22:09:08 +00:00
KERNEL_MAJOR = $( shell echo $( KERNEL_VERSION) | cut -d\. -f1)
KERNEL_MINOR = $( shell echo $( KERNEL_VERSION) | cut -d\. -f2)
2005-05-05 16:38:36 +00:00
KERNEL_RELEASE = $( shell echo $( KERNEL_VERSION) | cut -d\. -f3)
2006-06-27 00:53:58 +00:00
KERNEL_DLOAD_DIR ?= /home/samba/dat/share/exe/linux/os
KERNEL_PKG_BASE = $( KERNEL_DLOAD_DIR) /$( KERNEL_MAJOR) .$( KERNEL_MINOR) /linux-$( KERNEL_VERSION) .tar
2007-11-17 12:59:42 +00:00
LINUX_KERNEL_PATCH_DIR ?= $( CVS_ROOT_DIR) /conf/jannet.de/all/lx-patches
2005-05-16 15:03:31 +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 15:03:31 +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 15:03:31 +00:00
endif
2005-05-05 16:38:36 +00:00
e l s e
2005-05-16 15:03:31 +00:00
KERNEL_PKG = $( KERNEL_PKG_BASE) .bz2
KERNEL_SRC_DIR = linux-$( KERNEL_VERSION)
2005-05-05 16:38:36 +00:00
e n d i f
2005-05-16 15:03:31 +00:00
WD := $( shell pwd )
2005-04-30 22:09:08 +00:00
TAG = $( shell echo V_$( KERNEL_VERSION) _$( RPM_RELEASE) | sed 's/\./_/g' )
2005-03-30 15:42:59 +00:00
ARCH = $( shell $( RPMBUILD) --showrc | sed '/build arch / !d; s/.*build arch *://; s/ //g' )
2004-02-11 19:24:35 +00:00
2005-03-30 15:42:59 +00:00
PATCHES += $( wildcard $( LINUX_KERNEL_PATCH_DIR) /*-$( KERNEL_VERSION) .patch) \
$( wildcard $( LINUX_KERNEL_PATCH_DIR) /*-$( KERNEL_VERSION) .diff)
LOCAL_PATCHES = $( notdir $( PATCHES) )
2005-05-16 15:03:31 +00:00
SUBMAKEFILE = $( MODDIR) /make/linux-rpm-build.mk
2005-03-30 15:42:59 +00:00
2007-09-10 09:39:34 +00:00
KERNEL_URL = ftp.kernel.org:/pub/linux/kernel/v$( KERNEL_MAJOR) .$( KERNEL_MINOR) /linux-$( KERNEL_VERSION) .tar.bz2
2006-01-09 00:50:12 +00:00
KERNEL_TGZ = $( notdir $( KERNEL_URL) )
2004-02-11 19:24:35 +00:00
# exports
export KERNEL_VERSION
export KERNEL_INSTALL_PREFIX
# first target
all : rpm
2007-11-17 12:59:42 +00:00
install : install .this
2005-05-16 15:03:31 +00:00
clean : thisclean
2007-11-17 12:59:42 +00:00
distclean : clean
2004-02-11 19:24:35 +00:00
# file rules
2004-05-12 05:14:26 +00:00
$(KERNEL_PKG) :
2004-07-29 11:38:49 +00:00
mkdir -p $( dir $( KERNEL_PKG) )
2007-09-10 09:39:34 +00:00
ftp -a $( KERNEL_URL)
2006-01-09 00:50:12 +00:00
install -m 664 $( notdir $( KERNEL_PKG) ) $@
2004-02-11 19:24:35 +00:00
2005-05-16 15:03:31 +00:00
EXTRAVERSION : linux -$( KERNEL_VERSION ) /Makefile
2007-07-09 09:16:46 +00:00
sed '/^ *EXTRAVERSION *=/ !d; s/^ *EXTRAVERSION *= *-*//; s/ *$$//' $< >$@
2005-05-16 15:03:31 +00:00
COMPLETE_VERSION : EXTRAVERSION
i f e q ( $( shell echo $ ( KERNEL_VERSION ) | sed '/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/ !d ') , )
2007-07-09 09:16:46 +00:00
echo -n $( KERNEL_VERSION) -$( EXTRAVERSION) | sed 's/- *$$//' > $@
2005-05-16 15:03:31 +00:00
e l s e
echo -n $( KERNEL_MAJOR) .$( KERNEL_MINOR) .$( KERNEL_RELEASE) $( EXTRAVERSION) > $@
e n d i f
2004-02-11 19:24:35 +00:00
config-$(KERNEL_VERSION) :
2005-04-30 22:09:08 +00:00
cp $( shell ls config-$( KERNEL_MAJOR) .$( KERNEL_MINOR) .* | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]\)[.$$]./\1.\2.0\3/; s/\.\([0-9]\)$$/.0\1/' | sort -g | sed 's/\.0/./g; $$ !d' ) $@
2004-02-11 19:24:35 +00:00
cvs add $@
2005-04-30 22:09:08 +00:00
cvs commit $@
2005-01-31 13:54:46 +00:00
2005-05-16 15:03:31 +00:00
toplevel-makefile : unpack .done patches .done
2007-09-09 16:28:58 +00:00
awk -v release = $( RPM_RELEASE) ' { \
if ( $$ 0 ~ /EXTRAVERSION *= *-/) { \
oldextra = $$ 3; \
gsub( /-/,_,oldextra) ; \
printf "EXTRAVERSION = -%s_%s\n" , release, oldextra \
} else if ( $$ 0 ~ /EXTRAVERSION *= *\. /) { \
oldextra = $$ 3; \
gsub( /-/,_,oldextra) ; \
printf "EXTRAVERSION = %s-%s\n" ,oldextra, release \
} else if ( $$ 0 ~ /EXTRAVERSION *= *$$ /) { \
if ( release ~ " ^ * $$ " ) { \
printf "EXTRAVERSION =\n" \
} else { \
printf "EXTRAVERSION = -%s\n" ,release \
} \
} else { \
print $$ 0 \
} \
2005-04-25 15:44:15 +00:00
} ' linux-$( KERNEL_VERSION) /Makefile >$@
2004-08-18 18:09:20 +00:00
linux-$(KERNEL_VERSION)/Makefile : toplevel -makefile
cp $< $@
2004-02-11 19:24:35 +00:00
unpack.done : $( KERNEL_PKG )
2005-04-25 19:14:31 +00:00
rm -rf linux-$( KERNEL_VERSION)
i f e q ( $( suffix $ ( KERNEL_PKG ) ) , . g z )
2004-02-11 19:24:35 +00:00
tar -xzf $( KERNEL_PKG)
2005-04-25 19:14:31 +00:00
e n d i f
i f e q ( $( suffix $ ( KERNEL_PKG ) ) , . b z 2 )
tar -xjf $( KERNEL_PKG)
e n d i f
2005-05-16 15:03:31 +00:00
ln -s linux-$( KERNEL_VERSION) linux
2004-02-11 19:24:35 +00:00
touch $@
update.done :
cvs update -dP
make rpm
touch $@
version :
date >> RELEASE-$( KERNEL_VERSION)
cvs commit -m " $( KERNEL_VERSION) " RELEASE-$( KERNEL_VERSION)
exit 1
2005-05-18 12:21:02 +00:00
patch-% :
2006-06-26 15:34:51 +00:00
mkdir -p patches
2005-05-18 12:21:02 +00:00
make patches/$* -$( KERNEL_VERSION) .patch
clean-patch-% :
rm -f patches/$* -$( KERNEL_VERSION) .patch
make patches/$* -$( KERNEL_VERSION) .patch
patches/%-$(KERNEL_VERSION).patch : unpack .done
2005-05-18 13:17:08 +00:00
export LANG = en_US ; \
2007-04-04 13:28:37 +00:00
diff --exclude= CVS --unidirectional-new-file -aur \
linux-$( KERNEL_VERSION) linux-$( KERNEL_VERSION) -$* | \
2005-05-18 13:17:08 +00:00
grep -vie "^Nur in \|Only in " > $@ .part; exit 0
2005-05-18 12:21:02 +00:00
mv $@ .part $@
2005-05-18 13:17:08 +00:00
patches.done : unpack .done $( addsuffix .done ,$ ( notdir $ ( PATCHES ) ) )
touch $@
%.patch.done : %.patch
patch -d linux-$( KERNEL_VERSION) -p1 < $<
touch $@
2007-04-04 13:28:37 +00:00
%.diff.done : %.diff
patch -d linux-$( KERNEL_VERSION) -p1 < $<
touch $@
2005-05-18 13:17:08 +00:00
%.patch :
2007-04-04 13:28:37 +00:00
make $( filter %/$@ ,$( PATCHES) )
cp $( filter %/$@ ,$( PATCHES) ) $@
%.diff :
make $( filter %/$@ ,$( PATCHES) )
2005-05-18 13:17:08 +00:00
cp $( filter %/$@ ,$( PATCHES) ) $@
2004-02-11 19:24:35 +00:00
unpack : unpack .done
2004-09-04 14:00:26 +00:00
patch : patches .done
2005-05-16 15:03:31 +00:00
prepare : unpack patch EXTRAVERSION COMPLETE_VERSION
2005-05-16 18:12:01 +00:00
install : all
2005-05-16 15:03:31 +00:00
DEFERRED_TARGETS = \
2005-05-16 18:12:01 +00:00
current.uldone ping ssh build \
tgz spm rpm upload tag copy-run copy-devel copy \
2005-05-16 15:03:31 +00:00
shutdown reboot update-rpm erase-rpm
$(DEFERRED_TARGETS) : prepare
make -f $( MODDIR) /make/linux-rpm-build.mk $@
thisclean :
touch EXTRAVERSION COMPLETE_VERSION
make -f $( SUBMAKEFILE) clean
2007-11-17 12:59:42 +00:00
install.this :
make -f $( SUBMAKEFILE) install
2005-05-16 15:03:31 +00:00
export \
TOPDIR MODDIR KERNEL_VERSION RPM_RELEASE HOST KERNEL_PKG_SUFFIX CUSTOMER \
KERNEL_BASE_DIR KERNEL_PKG KERNEL_BASE UPLOAD_HOST UPLOAD_PATH \
2007-09-09 16:28:58 +00:00
UPLOAD_OWNER BOOT_LABEL BOOT_LABEL PATCHES KERNEL_MAJOR KERNEL_MINOR \
2005-05-16 15:03:31 +00:00
KERNEL_RELEASE WD