#!/usr/bin/make -f # Sample debian/rules that uses debhelper. # GNU copyright 1997 to 1999 by Joey Hess. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # This is the debhelper compatability version to use. export DH_COMPAT=3 #include version major=$(shell grep '^MAJOR_VERSION' Rules.mak|sed 's/.*=//') minor=$(shell grep '^MINOR_VERSION' Rules.mak|sed 's/.*=//') version:=$(strip $(major)).$(strip $(minor)) kernel_version=2.4.20 kernel_source=kernel-source-$(kernel_version) builddir=$(shell pwd) target=$(DEB_HOST_GNU_CPU) #target=arm with_shared_libs=y #ifeq ($(target),powerpc) #with_shared_libs=n #endif ifeq ($(with_shared_libs),y) shared_libs_true=true else shared_libs_true=false endif ifneq ($(target),$(DEB_HOST_GNU_CPU)) target_suffix=-$(target) endif ifneq ($(target),$(DEB_HOST_GNU_CPU)) cross_options = --cross="$(target)-linux-" else cross_options = --cross="" endif p_dev=libuclibc-dev$(target_suffix) p_lib=libuclibc0$(target_suffix) p_gcc=uclibc$(target_suffix)-toolchain debian/control: debian/control.in debian/rules sed -e s/_TARGET_/$(target_suffix)/ \ -e "s/_ARCHS_/alpha arm i386 m68k mips mipsel powerpc sh sparc/" \ -e "s/_KERNEL_/$(kernel_source)/" \ debian/control.in >debian/control build: build-stamp build-stamp: debian/control dh_testdir # Brute force method of getting kernel headers tar --bzip2 -xf /usr/src/$(kernel_source).tar.bz2 \ $(kernel_source)/include # Hack to get include/asm-arm/arch directory. This should # stay here, and not move to the top-level Makefile, since # it adds a link _in the kernel source_, which is almost # certainly wrong in most situations. #ifeq ($(target),arm) ln -s arch-sa1100 $(kernel_source)/include/asm-arm/arch ln -s proc-armo $(kernel_source)/include/asm-arm/proc #endif touch $(kernel_source)/include/linux/autoconf.h # Various stupid programs use linux/version.h to find the # Linux version. ( \ echo '#define UTS_RELEASE "$(kernel_version)"'; \ echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))'; \ echo '#define LINUX_VERSION_CODE KERNEL_VERSION($(shell echo $(kernel_version) | sed s/\\./,/g))'; \ ) >$(kernel_source)/include/linux/version.h cp debian/config .config echo CONFIG_386=y >>.config ifeq ($(findstring $(target),alpha m68k sparc),$(target)) echo BUILD_UCLIBC_LDSO=n >>.config endif echo SHARED_LIB_LOADER_PATH=\"/lib\" >>.config echo KERNEL_SOURCE=\"$(builddir)/$(kernel_source)\" >>.config echo 'DEVEL_TOOL_PREFIX="$$(DEVEL_PREFIX)"' >>.config echo 'SYSTEM_DEVEL_PREFIX="/usr"' >>.config yes '' | make oldconfig mkdir -p lib $(MAKE) TARGET_ARCH=$(target) touch build-stamp clean: debian/control dh_testdir dh_testroot rm -f build-stamp rm -rf kernel-source-* # Add here commands to clean up after the build process. -$(MAKE) distclean -rm -f Config dh_clean install: build debian/control dh_testdir dh_testroot dh_clean -k dh_installdirs -rm debian/tmp -mkdir debian/tmp #ln -s tmp debian/tmp # Add here commands to install the package into debian/tmp. $(MAKE) install PREFIX=`pwd`/debian/tmp $(MAKE) install_runtime PREFIX=`pwd`/debian/tmp install -d debian/tmp/usr/share/man/man1 install -m 644 debian/uclibc-gcc.1 \ debian/tmp/usr/share/man/man1/$(target)-uclibc-gcc.1 (cd debian/tmp/usr/share/man/man1; \ ln -sf $(target)-uclibc-gcc.1.gz $(target)-uclibc-cc.1.gz; \ ln -sf $(target)-uclibc-gcc.1.gz $(target)-uclibc-ld.1.gz; \ for x in addr2line ar as cpp nm objcopy objdump ranlib \ size strings strip;do \ ln -sf $$x.1.gz $(target)-uclibc-$$x.1.gz;done) install -d debian/tmp/usr/share/man/man1 install -m 644 debian/uclibc-ldd.1 \ debian/tmp/usr/share/man/man1/$(target)-uclibc-ldd.1 install -m 644 debian/uclibc-ldconfig.1 \ debian/tmp/usr/share/man/man1/$(target)-uclibc-ldconfig.1 install -m 644 debian/uclibc-readelf.1 \ debian/tmp/usr/share/man/man1/$(target)-uclibc-readelf.1 mkdir debian/tmp/lib/ cd debian/tmp/lib && ln -sf /usr/$(target)-linux-uclibc/lib/ld-uClibc.so.0 . cd debian/tmp && ../fixlinks (cd debian/tmp; find . -name '.*' -exec rm -f '{}' ';') # Build architecture-independent files here. binary-indep: # Build architecture-dependent files here. binary-arch: build install # dh_testversion dh_testdir dh_testroot dh_movefiles # dh_installdebconf dh_installdocs dh_installexamples dh_installmenu # dh_installemacsen # dh_installpam # dh_installinit dh_installcron # dh_installmanpages -plibuclibc0 dh_installinfo # dh_undocumented dh_installchangelogs dh_link dh_strip dh_compress dh_fixperms -Xld-uClibc # You may want to make some executables suid here. # dh_suidregister # dh_makeshlibs dh_installdeb # dh_perl #ifeq ($(target),$(DEB_HOST_GNU_CPU)) # dh_shlibdeps --exclude=ld_uclibc -ldebian/$(p_lib)/usr/$(target)-linux-uclibc/lib #else dh_shlibdeps --exclude=lib #endif dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install