Pure LFS - latest work in progress

Richard Lightman richard at nezumi.plus.com
Tue Feb 4 05:33:04 PST 2003


* Greg Schafer <gschafer at zip.com.au> [2003-02-04 12:21]:
> On Mon, Feb 03, 2003 at 01:48:07PM +0000, Richard Lightman wrote:
> > If you want the depenancies I use, just ask.
> 
> Richard, that information might be real handy. May I?
> 
These are from my automated LFS makefile (ralfs), which is almost at
the point where I can distribute it. Remember, if you do not use the
symlink forest (or equivilant) to remove static/stage1 from the path,
then there will be other dependencies. Ralfs needs a program called
chrude (change root, user, directory, enviroment) internally. Also
ralfs does as much as possible as an ordinary user, so the /etc/passwd
is needed early than you would expect. Rafs does not need some of the
usual static packages. This adds some dependencies on the shared
versions of these packages.


#doc/var:skip                 list of packages not to install

##############################################################################
# Group copy does not require any compilation, so it can be done before
# the chroot environment is ready:
#doc/target:mount_points      Create mount points for entries in $(LFS)
#doc/target:create_files      /var/{run/utmp,log/{btmp,lastlog,wtmp}}
#doc/var:config_list          list of categories of config files to install.
copy=mount_points $(config_list)\
     create_dirs create_files create_mtab create_passwd\
     kernel-headers man-pages LFS-BOOK\
     abs-guide bugzilla cpg cvsbp ldp_lame lcg LDP-Author-Guide\
     linuxcookbook lkilkmpg lpg nag sag\
     DirectFB_Reference DirectFB_Tutorials ftdocs\
     howto mini-howto\
     ucspi-tcpdoc\
     wdgcss wdghtml
copy: $(filter-out $(skip),$(copy))
$(config_list) create_dirs create_files create_mtab man-pages: $(if $(LFS),mounts)
config_list: $(config_list)
kernel-headers mount_points: $(config_list)
mini-howto: howto
create_passwd: mounts


##############################################################################
# group base and group copy contain all the packages that need special
# rules to compile. Think carefully before changing any path name. bacause
# he commands may take place in chroot, but make is running in the host
# environment.

static=static_gcc static_binutils static_bash static_diffutils \
       static_fileutils static_gawk static_grep static_gzip static_make \
       static_sed static_sh-utils static_textutils static_texinfo

replace=$(static:static_%=%)

#doc/target:chroot            Sufficient for ralfs to run in chroot. Most packages
#doc/target:                  depend on this because it makes the rules simpler.
# The first line are things ralfs depends on explicily. The rest
# depend on the first line.
chroot=bzip2 chrude findutils patch tar\
       bison ed groff gettext help2man less m4 ncurses net-tools perl zlib

# packages where ralfs is running in the host environment.
before_chroot=$(static) $(replace) $(chroot) glibc _rm_static

base=$(before_chroot) glibc_again

base: $(filter-out $(skip),$(base))
$(static): lfs_user mounts
static_gcc: static_binutils
static: $(static)
glibc: static kernel-headers $(filter-out $(skip),$(config_list))

$(replace): $(if $(LFS),create_passwd glibc)
_rm_static: $(replace)

$(chroot): $(if $(LFS),create_passwd glibc)
bash: ncurses
bison: m4
chrude: help2man
gcc: tar $(shell case '$(configure) (' in *java*) echo zlib;; esac)
groff: bison gcc
# gzip: zlib # well it will do one day
help2man: perl
less: ncurses
ncurses: gcc
net-tools: gettext
patch: ed
perl: bison gcc glibc groff less net-tools
texinfo: ncurses
chroot: $(chroot)

glibc_again: binutils chroot gcc


##############################################################################
# group_lfs: The remaining stuff in LFS (does not need anything clever to
# compile).

lfs=autoconf automake bin86 e2fsprogs file flex kbd \
    kernel libtool lilo man modutils netkit-base \
    procinfo procps psmisc reiserfsprogs shadow sysklogd \
    sysvinit util-linux vim
lfs: $(filter-out $(skip),$(lfs) $(config_list) create_dirs create_files create_mtab man-pages mount_points)
#doc/target:install           All the normal package building packages are compiled.
#doc/target:                  Most of the packages that are not part of LFS depend
#doc/target:                  on this because I could not be bothered to find out
#doc/target:                  the minimum dependencies for so many packages.
install: $(filter-out $(skip),autoconf automake flex libtool)
#doc/target:boot              enough to boot the new system
boot: $(filter-out $(skip),kbd kernel lilo modutils netkit-base procps psmisc shadow sysklogd sysvinit util-linux vim)

$(lfs): chroot
autoconf: m4 perl
automake: perl
e2fsprogs: sed
flex: bison
kbd: fileutils flex
kernel: gcc binutils findutils flex modutils
libtool: binutils
lilo: bin86
man: bzip2 diffutils gzip textutils
modutils: bison flex
shadow: $(filter-out $(skip),linux-PAM)



Richard
-- 
Demons are a Ghouls best Friend.
-- 
Unsubscribe: send email to listar at linuxfromscratch.org
and put 'unsubscribe lfs-dev' in the subject header of the message



More information about the lfs-dev mailing list