Browse Source

Have the whole uml kernel, modules, tools, and genext2fs properly

compiling now that a new binutils was installed.  Now need to make the
helper_root_fs and Initrd with the uml kernel which was just made and
should be just about there.  This will all be done as non-root.  And
finally need to adjust gbootroot_pkg so all the new compiled stuff can
be extracted in their proper place, ofcourse, this could be done in
the Makefile, too.
master
freesource 22 years ago
parent
commit
3690d3cc42
  1. 111
      Makefile.pkg

111
Makefile.pkg

@ -1,27 +1,43 @@
# A Makefile going to a new dimension - a combination of stuff borrowed from # A Makefile going to a new dimension - a combination of stuff borrowed from
# buildroot by Erik Andersen <andersen@codepoet.org>, UML, and gbootroot. # buildroot, UML, and gbootroot.
##all: install VERSION=2.4.19
PATCH_VERSION=35
UTIL_VER=20021103
BASE_DIR=${shell pwd} BASE_DIR=${shell pwd}
TARGET_DIR=$(BASE_DIR)/root TARGET_DIR=$(BASE_DIR)/root
BUILD_DIR=$(BASE_DIR)/staging_dir BUILD_DIR=$(BASE_DIR)/staging_dir
SOURCE_DIR=$(BASE_DIR)/sources SOURCE_DIR=$(BASE_DIR)/sources
##TARGET_CC=$(BUILD_DIR)/bin/gcc
##TARGET_CC1=$(BUILD_DIR)/usr/bin/$(ARCH)-uclibc-gcc
##TARGET_CROSS=$(BUILD_DIR)/usr/bin/$(ARCH)-uclibc-
##TARGET_PATH=$(BUILD_DIR)/usr/bin:$(BUILD_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
KERNEL=$(BASE_DIR)/user-mode-linux/usr/bin/linuxbr KERNEL=$(BASE_DIR)/user-mode-linux/usr/bin/linuxbr
IMAGE=$(BASE_DIR)/root_filesystem/root_fs_helper IMAGE=$(BASE_DIR)/root_filesystem/root_fs_helper
KERNEL_DIR=$(BASE_DIR)/linux KERNEL_DIR=$(BASE_DIR)/linux-$(VERSION)
KERNEL_SOURCE=linux-2.4.19.tar.bz2 KERNEL_SOURCE=linux-$(VERSION).tar.bz2
KERNEL_SITE=http://www.uk.kernel.org/pub/linux/kernel/v2.4 KERNEL_SITE=http://www.uk.kernel.org/pub/linux/kernel/v2.4
PATCH_1=uml-patch-2.4.19-37.bz2 # Choose a site with works best
PATCH_1_SITE=http://jdike.stearns.org/mirror PATCH_1_SITE=http://jdike.stearns.org/mirror
#PATCH_1_SITE=http://uml-pub.ists.dartmouth.edu/uml
#PATCH_1_SITE=http://ftp.nl.linux.org/pub/uml
#PATCH_1_SITE=http://mirror.math.leidenuniv.nl/uml-pub.ists.dartmouth.edu
PATCH_1=uml-patch-$(VERSION)-$(PATCH_VERSION).bz2
PATCH_2=$(BASE_DIR)/user-mode-linux/usr/lib/uml/cramfs-vfs-order.patch PATCH_2=$(BASE_DIR)/user-mode-linux/usr/lib/uml/cramfs-vfs-order.patch
KCONFIG=$(BASE_DIR)/user-mode-linux/usr/lib/uml/config KCONFIG=$(BASE_DIR)/user-mode-linux/usr/lib/uml/config
# Genext2fs
GENEXT2_DIR=$(BASE_DIR)/genext2fs
# Utilities
UTILITIES=uml_utilities_$(UTIL_VER).tar.bz2
UTIL_DIR=$(BASE_DIR)/tools
TOOLS = $(UTIL_DIR)/mconsole $(UTIL_DIR)/port-helper $(UTIL_DIR)/moo $(UTIL_DIR)/uml_net $(UTIL_DIR)/uml_router $(UTIL_DIR)/tunctl
##TARGET_CC=$(BUILD_DIR)/bin/gcc
##TARGET_CC1=$(BUILD_DIR)/usr/bin/$(ARCH)-uclibc-gcc
##TARGET_CROSS=$(BUILD_DIR)/usr/bin/$(ARCH)-uclibc-
##TARGET_PATH=$(BUILD_DIR)/usr/bin:$(BUILD_DIR)/bin:/bin:/sbin:/usr/bin:/usr/sbin
##UCLIBC_DIR=$(BASE_DIR)/uClibc ##UCLIBC_DIR=$(BASE_DIR)/uClibc
##UCLIBC_SOURCE=uClibc-snapshot.tar.gz ##UCLIBC_SOURCE=uClibc-snapshot.tar.gz
##UCLIBC_PATCH=$(SOURCE_DIR)/uClibc.patch ##UCLIBC_PATCH=$(SOURCE_DIR)/uClibc.patch
@ -30,38 +46,78 @@ KCONFIG=$(BASE_DIR)/user-mode-linux/usr/lib/uml/config
##BUSYBOX_SOURCE=busybox.tar.gz ##BUSYBOX_SOURCE=busybox.tar.gz
##BUSYBOX_PATCH=$(SOURCE_DIR)/busybox.patch ##BUSYBOX_PATCH=$(SOURCE_DIR)/busybox.patch
##BUSYBOX_SITE=http://busybox.lineo.com ##BUSYBOX_SITE=http://busybox.lineo.com
GENEXT2_DIR=$(BASE_DIR)/genext2fs
all: world all: world
world: kernel target world: kernel target
sources: $(BASE_DIR)
kernel: $(BASE_DIR) @if [ ! -e $(SOURCE_DIR)/$(KERNEL_SOURCE) ] ; then \
@if [ ! -d $(KERNEL_DIR) ] ; then \
while [ ! -f $(SOURCE_DIR)/$(KERNEL_SOURCE) ] ; do \ while [ ! -f $(SOURCE_DIR)/$(KERNEL_SOURCE) ] ; do \
wget -P $(SOURCE_DIR) --passive $(KERNEL_SITE)/$(KERNEL_SOURCE); \ wget -P $(SOURCE_DIR) --passive $(KERNEL_SITE)/$(KERNEL_SOURCE); \
done; \ done; \
fi;
@if [ ! -e $(SOURCE_DIR)/$(UTILITIES) ] ; then \
while [ ! -f $(SOURCE_DIR)/$(UTILITIES) ] ; do \
wget -P $(SOURCE_DIR) --passive $(PATCH_1_SITE)/$(UTILITIES); \
done; \
fi;
@if [ ! -d $(UTIL_DIR) ] ; then \
tar xvfj $(SOURCE_DIR)/$(UTILITIES); \
fi;
@if [ ! -e $(SOURCE_DIR)/$(PATCH_1) ] ; then \
while [ ! -f $(SOURCE_DIR)/$(PATCH_1) ] ; do \ while [ ! -f $(SOURCE_DIR)/$(PATCH_1) ] ; do \
wget -P $(SOURCE_DIR) --passive $(PATCH_1_SITE)/$(PATCH_1); \ wget -P $(SOURCE_DIR) --passive $(PATCH_1_SITE)/$(PATCH_1); \
done; \ done; \
bunzip2 -c $(SOURCE_DIR)/$(KERNEL_SOURCE) | tar -xv; \ if [ ! -d $(KERNEL_DIR) ] ; then \
tar xvfj $(SOURCE_DIR)/$(KERNEL_SOURCE); \
fi; \
bzcat $(SOURCE_DIR)/$(PATCH_1) | patch -d $(KERNEL_DIR) -p1; \ bzcat $(SOURCE_DIR)/$(PATCH_1) | patch -d $(KERNEL_DIR) -p1; \
patch -d $(KERNEL_DIR) -p1 < $(PATCH_2); \
perl -i -p -e "s/^ARCH :=.*/ARCH=um/g" $(KERNEL_DIR)/Makefile; \ perl -i -p -e "s/^ARCH :=.*/ARCH=um/g" $(KERNEL_DIR)/Makefile; \
fi; fi;
# @if [ ! -f $(KERNEL_DIR)/.config ] ; then \
# cp $(KCONFIG) $(KERNEL_DIR)/.config; \
# (cd $(KERNEL_DIR); make oldconfig; make dep); \
# fi;
# @if [ ! -f $(KERNEL_DIR)/linux ] ; then \
# (cd $(KERNEL_DIR); make linux); \
# fi;
# @cmp -s $(KERNEL) $(KERNEL_DIR)/linux; \
# if [ $$? != 0 ] ; then \
# cp -fa $(KERNEL_DIR)/linux $(KERNEL); \
# fi;
kernel:
@if [ ! -f $(KERNEL_DIR)/.config ] ; then \
cp $(KCONFIG) $(KERNEL_DIR)/.config; \
(cd $(KERNEL_DIR); make oldconfig); \
fi;
@if [ ! -f $(KERNEL_DIR)/linux ] ; then \
(cd $(KERNEL_DIR); make linux); \
fi;
if [ -e $(KERNEL_DIR)/linux ] ; then \
objcopy --strip-all $(KERNEL_DIR)/linux $(KERNEL); \
fi;
modules:
cd linux-$(VERSION) ; \
mkdir ../modules-2.4 ; \
make modules ARCH=um ; \
make modules_install ARCH=um \
INSTALL_MOD_PATH=`pwd`/../modules-2.4
cp -al modules-2.4 modules-2.2
dir=`echo modules-2.2/lib/modules/*` ;\
for pair in "kernel/fs fs" "kernel/drivers/net net"; \
do \
from=`echo $$pair | awk '{print $$1}'` ; \
to=`echo $$pair | awk '{print $$2}'` ; \
echo "pair = $$pair, from = $$from, to = $$to" ; \
mkdir $$dir/$$to ; \
cp `find $$dir/$$from -name "*.o" -print` $$dir/$$to ; \
done ; \
cd modules-2.4 ; tar cf ../modules-2.4.tar .
rm -rf modules-2.4
cd modules-2.2 ; tar cf ../modules-2.2.tar .
rm -rf modules-2.2
mv modules*tar $(BASE_DIR)/user-mode-linux/usr/lib/uml
tools:
for d in $(TOOLS) ; do $(MAKE) -C $$d all ; done
for d in $(TOOLS) ; do $(MAKE) -C $$d install DESTDIR=$(BASE_DIR)/user-mode-linux; done
mkfs: mkfs:
@if [ ! -f $(GENEXT2_DIR)/genext2fs ] ; then \ @if [ ! -f $(GENEXT2_DIR)/genext2fs ] ; then \
$(MAKE) -C $(GENEXT2_DIR); \ $(MAKE) -C $(GENEXT2_DIR); \
@ -125,3 +181,4 @@ remove:
rm /usr/X11R6/include/X11/pixmaps/gbootroot.xpm rm /usr/X11R6/include/X11/pixmaps/gbootroot.xpm
rm -rf /usr/share/doc/gbootroot rm -rf /usr/share/doc/gbootroot
.PHONY: tools sources
Loading…
Cancel
Save