creditcrunch:FREEBSD下使用crunch集成编译程序

  PKkingson < [email protected] >

  鼓捣linux朋友都知道,linux下有个叫busybox项目它把大多数unix基本命令都集成编译成个单独 FREEBSD也有种机制叫做crunch.它允许我们不用加载标准库也可以利用其它相同crunch使用个平板文本文件来定制集成、编译选项以及需要LIBS下面是我在freebsd4.9RELEASE上,集成编译 /bin和/sbin下常用个配置文件这些文件如果静态编译大约占用16M左右空间.

# cat tinyware.conf  #crunch配置文件最常见指令有buildopts(编译选项)、srcdirs(指定代码路径)

  #progs(指定要集成)、ln(创建指向连接)、libs(指定需要库)

  #其他指令和crunch细节请参看 man crunchgen和crunchide

  #指定编译时不包含ipsec、ipv6、和crypt

  buildopts -DRELEASE_CRUNCH -DNOIPSEC -DNOINET6 -DNOCRYPT

  #指定需要代码路径

  srcdirs /usr/src/bin
srcdirs /usr/src/sbin
srcdirs /usr/src/secure/lib


  #/bin下常见

  progs cat chio chmod cp csh date dd df doname echo
progs expr hostname kill ln ls mkdir mv ps pwd rm sh rmdir
progs sleep stty sync test ed


  #创建个指向test连接

  ln test [

  #/sbin下常见

  progs adjkerntz dmesg disklabel fsck config init
progs ipf ipfs ipfstat ipfw ipmon ipnat natd
progs kldconfig kldload kldstat kldunload ldconfig md5 mknod
progs mount mount_null mount_union fs mount_std umount
ln mount_std mount_procfs
ln fs mount_mfs
progs ping reboot restore route routed shutdown sysctl


  #指定这些需要想知道这些都需要什么库你可以使用这样命令:

  # grep -ir LDADD /usr/src/bin/*

  # 这样就能抽取出包含在Makefile中指定库

  libs -ltermcap -lcrypt -lutil -lm -lcipher -lkvm -ll -ledit
libs -lcrypto -lipx -lncurses -lmd -lalias -lipsec
  写完配置文件后就可以使用crunchgen来生成Makefile和代码了

  # crunchgen -m Makefile tinyware.conf

  然后你可以这样编译它:

  # make -f Makefile

  如果没什么应该就可以生成tinyware可执行如果出错请重新检查是

  否没写全libs和srcdirs

Tags:  crunchbox crunchtime crunch creditcrunch

延伸阅读

最新评论

发表评论