[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

build-from-scratch Makefile



Hi,

I made myself a Makefile in the debian-installer topdir to rebuild all
debs and udebs. It won't build on a freshly checked out cvs because
you need to autoreconf some of the packages first. I will add that
around Wednesday.

The Makefile uses stamp files. delete a stamp file to rebuild just
that package. I want to add an automatic detection of changes in there
but its manually for now.

"make clean" deletes all stamp files and the DEST dir.
"make" will build packages in the right order into "DEST/<package>".


The third script I use to move the compiled stuff into my local
mirror. Maybe thats usefull for someone else too. dpkg-scanudebs is a
copy of dpkg-scanpackages but with '*.udeb' instead of '*.deb' in the
find call.

MfG
        Goswin

=========================Makefile=====================================
DEST=$(PWD)/dest

all: libdebian-installer tools_cdebconf main-menu tools_udpkg anna utils tools_languagechooser tools_ddetect tools_cdrom-detect tools_autopartkit tools_base-installer tools_baseconfig-udeb tools_bterm-unifont tools_bugreporter-udeb tools_cdrom-checker tools_grub-installer tools_kbd-chooser tools_lilo-installer tools_lvmcfg tools_netcfg tools_partconf tools_partitioner tools_pcmcia-udeb tools_prebaseconfig tools_usb-discover tools_userdevfs retriever_cdrom retriever_choose-mirror retriever_file retriever_floppy retriever_net

clean:
	rm .stamp-*
	rm -rf $(DEST)

libdebian-installer: .stamp-libdebian-installer
.stamp-libdebian-installer:
	./compile.sh libdebian-installer . $(DEST)
	touch .stamp-libdebian-installer

tools_cdebconf: .stamp-tools_cdebconf
.stamp-tools_cdebconf:
	./compile.sh cdebconf tools $(DEST)
	touch .stamp-tools_cdebconf

main-menu: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-main-menu
.stamp-main-menu: 
	./compile.sh main-menu . $(DEST)
	touch .stamp-main-menu

tools_udpkg: .stamp-tools_udpkg
.stamp-tools_udpkg:
	./compile.sh udpkg tools $(DEST)
	touch .stamp-tools_udpkg

anna: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-anna
.stamp-anna:
	./compile.sh anna . $(DEST)
	touch .stamp-anna

utils: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-utils
.stamp-utils:
	./compile.sh utils . $(DEST)
	touch .stamp-utils

tools_languagechooser: .stamp-tools_languagechooser
.stamp-tools_languagechooser:
	./compile.sh languagechooser tools $(DEST)
	touch .stamp-tools_languagechooser

tools_ddetect: .stamp-tools_ddetect
.stamp-tools_ddetect:
	./compile.sh ddetect tools $(DEST)
	touch .stamp-tools_ddetect

tools_cdrom-detect: .stamp-tools_cdrom-detect
.stamp-tools_cdrom-detect:
	./compile.sh cdrom-detect tools $(DEST)
	touch .stamp-tools_cdrom-detect

tools_autopartkit: install-libdebconfclient-dev .stamp-tools_autopartkit
.stamp-tools_autopartkit:
	./compile.sh autopartkit tools $(DEST)
	touch .stamp-tools_autopartkit

tools_base-installer: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-tools_base-installer
.stamp-tools_base-installer:
	./compile.sh base-installer tools $(DEST)
	touch .stamp-tools_base-installer

tools_baseconfig-udeb: .stamp-tools_baseconfig-udeb
.stamp-tools_baseconfig-udeb:
	./compile.sh baseconfig-udeb tools $(DEST)
	touch .stamp-tools_baseconfig-udeb

tools_bterm-unifont: .stamp-tools_bterm-unifont
.stamp-tools_bterm-unifont:
	./compile.sh bterm-unifont tools $(DEST)
	touch .stamp-tools_bterm-unifont

tools_bugreporter-udeb: .stamp-tools_bugreporter-udeb
.stamp-tools_bugreporter-udeb:
	./compile.sh bugreporter-udeb tools $(DEST)
	touch .stamp-tools_bugreporter-udeb

tools_cdrom-checker: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-tools_cdrom-checker
.stamp-tools_cdrom-checker:
	./compile.sh cdrom-checker tools $(DEST)
	touch .stamp-tools_cdrom-checker

tools_grub-installer: .stamp-tools_grub-installer
.stamp-tools_grub-installer:
	./compile.sh grub-installer tools $(DEST)
	touch .stamp-tools_grub-installer

tools_kbd-chooser: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-tools_kbd-chooser
.stamp-tools_kbd-chooser:
	./compile.sh kbd-chooser tools $(DEST)
	touch .stamp-tools_kbd-chooser

tools_lilo-installer: .stamp-tools_lilo-installer
.stamp-tools_lilo-installer:
	./compile.sh lilo-installer tools $(DEST)
	touch .stamp-tools_lilo-installer

tools_lvmcfg: .stamp-tools_lvmcfg
.stamp-tools_lvmcfg:
	./compile.sh lvmcfg tools $(DEST)
	touch .stamp-tools_lvmcfg

tools_netcfg: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-tools_netcfg
.stamp-tools_netcfg:
	./compile.sh netcfg tools $(DEST)
	touch .stamp-tools_netcfg

tools_partconf: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-tools_partconf
.stamp-tools_partconf:
	./compile.sh partconf tools $(DEST)
	touch .stamp-tools_partconf

tools_partitioner: install-libdebconfclient-dev install-libdebian-installer4-dev .stamp-tools_partitioner
.stamp-tools_partitioner:
	./compile.sh partitioner tools $(DEST)
	touch .stamp-tools_partitioner

tools_pcmcia-udeb: .stamp-tools_pcmcia-udeb
.stamp-tools_pcmcia-udeb:
	./compile.sh pcmcia-udeb tools $(DEST)
	touch .stamp-tools_pcmcia-udeb

tools_prebaseconfig: .stamp-tools_prebaseconfig
.stamp-tools_prebaseconfig:
	./compile.sh prebaseconfig tools $(DEST)
	touch .stamp-tools_prebaseconfig

tools_usb-discover: .stamp-tools_usb-discover
.stamp-tools_usb-discover:
	./compile.sh usb-discover tools $(DEST)
	touch .stamp-tools_usb-discover

tools_userdevfs: .stamp-tools_userdevfs
.stamp-tools_userdevfs:
	./compile.sh userdevfs tools $(DEST)
	touch .stamp-tools_userdevfs

retriever_cdrom: .stamp-retriever_cdrom
.stamp-retriever_cdrom:
	./compile.sh cdrom retriever $(DEST)
	touch .stamp-retriever_cdrom

retriever_choose-mirror: install-libdebconfclient-dev .stamp-retriever_choose-mirror
.stamp-retriever_choose-mirror:
	./compile.sh choose-mirror retriever $(DEST)
	touch .stamp-retriever_choose-mirror

retriever_file: .stamp-retriever_file
.stamp-retriever_file:
	./compile.sh file retriever $(DEST)
	touch .stamp-retriever_file

retriever_floppy: .stamp-retriever_floppy
.stamp-retriever_floppy:
	./compile.sh floppy retriever $(DEST)
	touch .stamp-retriever_floppy

retriever_net: .stamp-retriever_net
.stamp-retriever_net:
	./compile.sh net retriever $(DEST)
	touch .stamp-retriever_net

install-libdebconfclient-dev: .stamp-tools_cdebconf .stamp-install-libdebconfclient-dev
.stamp-install-libdebconfclient-dev:
	dpkg -i $(DEST)/cdebconf/libdebconfclient0*.deb
	touch .stamp-install-libdebconfclient-dev

install-libdebian-installer4-dev: .stamp-libdebian-installer .stamp-install-libdebian-installer4-dev
.stamp-install-libdebian-installer4-dev:
	dpkg -i $(DEST)/libdebian-installer/libdebian-installer4*.deb
	touch .stamp-install-libdebian-installer4-dev
======================================================================

=============================compile.sh===============================
#!/bin/sh -ex

# called from makefile
# compile.sh NAME SRC-DIR DEST-DIR
# Example:
#  compile.sh libdebian-installer . dest

NAME="$1"
DIR="$2/$NAME"
DEST="$3/$NAME"

mkdir -p "$DEST"
cd "$DIR"
dpkg-buildpackage -S
cd ..
mv *.dsc *.tar.gz *.changes "$DEST"
cd $DEST
dpkg-source -x *.dsc
cd */
debuild -us -uc
cd ..
rm -rf */
======================================================================

======================mirror updates==================================
#!/bin/sh -e

DEST=/mnt/debian/debian-installer/debian-installer/dest
MIRROR=/mnt/debian/mirror/debian-installer

cd "$DEST"
for DIR in *; do
  if [ "`echo $DIR | cut -b 1-3`" = "lib" ]; then
    HASH="`echo $DIR | cut -b 1-4`"
  else
    HASH="`echo $DIR | cut -b 1`"
  fi
  rm -rf "$MIRROR/pool/main/$HASH/$DIR"
  mkdir -p "$MIRROR/pool/main/$HASH/$DIR"
  cp -v "$DIR"/* "$MIRROR/pool/main/$HASH/$DIR"/
done

cd "$MIRROR"

dpkg-scanpackages pool /dev/null "" | gzip >dists/sid/main/binary-i386/Packages.gz
dpkg-scanudebs pool /dev/null "" | gzip >dists/sid/main/debian-installer/binary-i386/Packages.gz
======================================================================



Reply to: