123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241 |
- #!/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=1
- #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.18
- kernel_source=kernel-source-$(kernel_version)
- 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),mipsel)
- config_orig = extra/Configs/Config.$(target)
- else
- config_orig = extra/Configs/Config.mips
- 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_/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
- extra/Configs/uClibc_config_fix.pl \
- --arch=$(target) \
- $(cross_options) \
- --devel_prefix=/usr/$(target)-linux-uclibc \
- --system_devel_prefix=/usr \
- --kernel_dir=`pwd`/$(kernel_source) \
- --large_file=true \
- --rpc_support=true \
- --c99_math=true \
- --threads=true \
- --long_long=true \
- --float=true \
- --shadow=true \
- --mmu=true \
- --ldso_path="/lib" \
- --shared_support=$(shared_libs_true) \
- --file=$(config_orig) \
- >Config
- ifeq (yes,no)
- echo '#Debian configuration overrides' >>Config
- ifneq ($(target),$(DEB_HOST_GNU_CPU))
- echo 'TARGET_ARCH = $(target)' >>Config
- echo 'CROSS = $(target)-linux-' >>Config
- else
- echo 'CROSS = ' >>Config
- endif
- echo 'DOPIC = true' >>Config
- echo 'SYSTEM_DEVEL_PREFIX = /usr' >>Config
- echo 'DEVEL_PREFIX = /usr/$$(TARGET_ARCH)-linux-uclibc' >>Config
- echo 'SHARED_LIB_LOADER_PATH = /lib' >>Config
- #echo 'TARGET_PREFIX = /' >>Config
- ifeq ($(with_shared_libs),n)
- echo 'HAVE_SHARED = false' >>Config
- else
- echo 'HAVE_SHARED = true' >>Config
- endif
- echo 'KERNEL_SOURCE = '`pwd`/$(kernel_source) >>Config
- echo 'HAS_MMU = true' >>Config
- echo 'HAS_FLOATING_POINT = true' >>Config
- echo 'DO_C99_MATH = true' >>Config
- echo 'DODEBUG = false' >>Config
- echo 'INCLUDE_THREADS = true' >>Config
- endif
- mkdir -p lib
- $(MAKE)
- touch build-stamp
- clean: debian/control
- dh_testdir
- dh_testroot
- rm -f build-stamp
- rm -f debian/$(p_dev)
- rm -rf kernel-source-*
- # Add here commands to clean up after the build process.
- -$(MAKE) clean
- -rm Config
- dh_clean
- install: build debian/control
- dh_testdir
- dh_testroot
- dh_clean -k
- dh_installdirs
- -rm debian/$(p_dev)
- ln -s tmp debian/$(p_dev)
- # Add here commands to install the package into debian/tmp.
- $(MAKE) install_dev PREFIX=`pwd`/debian/$(p_dev)
- $(MAKE) install_runtime PREFIX=`pwd`/debian/$(p_lib)
- $(MAKE) install_toolchain PREFIX=`pwd`/debian/$(p_gcc)
- $(MAKE) install_utils PREFIX=`pwd`/debian/$(p_gcc)
- install -d debian/$(p_gcc)/usr/share/man/man1
- install -m 644 debian/uclibc-gcc.1 \
- debian/$(p_gcc)/usr/share/man/man1/$(target)-uclibc-gcc.1
- (cd debian/$(p_gcc)/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 gasp nm objcopy objdump ranlib \
- size strings strip;do \
- ln -sf $$x.1.gz $(target)-uclibc-$$x.1.gz;done)
-
- install -d debian/$(p_lib)/usr/share/man/man1
- install -m 644 debian/uclibc-ldd.1 \
- debian/$(p_lib)/usr/share/man/man1/$(target)-uclibc-ldd.1
- install -m 644 debian/uclibc-ldconfig.1 \
- debian/$(p_lib)/usr/share/man/man1/$(target)-uclibc-ldconfig.1
- install -m 644 debian/uclibc-readelf.1 \
- debian/$(p_lib)/usr/share/man/man1/$(target)-uclibc-readelf.1
- (cd debian/$(p_dev); find . -name '.*' -exec rm -f '{}' ';')
- (cd debian/$(p_lib); find . -name '.*' -exec rm -f '{}' ';')
- (cd debian/$(p_gcc); find . -name '.*' -exec rm -f '{}' ';')
- ifeq ($(with_shared_libs),y)
- ifeq ($(target),$(DEB_HOST_GNU_CPU))
- mkdir -p debian/$(p_lib)/lib/
- ln -sf /usr/$(target)-linux-uclibc/lib/ld-uClibc.so.0 \
- debian/$(p_lib)/lib/ld-uClibc.so.0
- endif
- endif
- # Build architecture-independent files here.
- binary-indep:
- # Build architecture-dependent files here.
- binary-arch: build install
- # dh_testversion
- dh_testdir
- dh_testroot
- # 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
- cd debian/libuclibc0 && ../fixlinks
- cd debian/libuclibc-dev && ../fixlinks
- cd debian/uclibc-toolchain && ../fixlinks
- 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
|