Merge branch 'devel'
[yaboot.git] / Makefile
index b8b02c77a7b0fc98923ad68d3941b280b27d8b66..336ac527b0b1c718eedd9abd859cc07f785efaa4 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,7 +2,7 @@
 
 include Config
 
 
 include Config
 
-VERSION = 1.3.5pre2
+VERSION = 1.3.16
 # Debug mode (spam/verbose)
 DEBUG = 0
 # make install vars
 # Debug mode (spam/verbose)
 DEBUG = 0
 # make install vars
@@ -20,18 +20,23 @@ TEXTADDR    = 0x200000
 # Malloc block at 3Mb -> 4Mb
 MALLOCADDR     = 0x300000
 MALLOCSIZE     = 0x100000
 # Malloc block at 3Mb -> 4Mb
 MALLOCADDR     = 0x300000
 MALLOCSIZE     = 0x100000
-# Load kernel at 20Mb and ramdisk just after
-KERNELADDR     = 0x01400000
+# Load kernel and ramdisk at real-base.  If there is overlap, will retry until find open space
+KERNELADDR     = 0x00C00000
 
 # Set this to the prefix of your cross-compiler, if you have one.
 # Else leave it empty.
 #
 
 # Set this to the prefix of your cross-compiler, if you have one.
 # Else leave it empty.
 #
-CROSS = 
+CROSS =
+
+CC             := $(CROSS)gcc
+LD             := $(CROSS)ld
+AS             := $(CROSS)as
+OBJCOPY                := $(CROSS)objcopy
 
 # The flags for the yaboot binary.
 #
 
 # The flags for the yaboot binary.
 #
-YBCFLAGS = -Os $(CFLAGS) -nostdinc -Wall -isystem `gcc -print-file-name=include` -fsigned-char
-YBCFLAGS += -DVERSION=\"${VERSION}\"   #"
+YBCFLAGS = -Os $(CFLAGS) -nostdinc -Wall -isystem `$(CC) -m32 -print-file-name=include` -fsigned-char
+YBCFLAGS += -DVERSION=\"${VERSION}${VERSIONEXTRA}\"    #"
 YBCFLAGS += -DTEXTADDR=$(TEXTADDR) -DDEBUG=$(DEBUG)
 YBCFLAGS += -DMALLOCADDR=$(MALLOCADDR) -DMALLOCSIZE=$(MALLOCSIZE)
 YBCFLAGS += -DKERNELADDR=$(KERNELADDR)
 YBCFLAGS += -DTEXTADDR=$(TEXTADDR) -DDEBUG=$(DEBUG)
 YBCFLAGS += -DMALLOCADDR=$(MALLOCADDR) -DMALLOCSIZE=$(MALLOCSIZE)
 YBCFLAGS += -DKERNELADDR=$(KERNELADDR)
@@ -59,11 +64,11 @@ endif
 
 # Link flags
 #
 
 # Link flags
 #
-LFLAGS = -Ttext $(TEXTADDR) -Bstatic 
+LFLAGS = -Ttext $(TEXTADDR) -Bstatic -melf32ppclinux
 
 # Libraries
 #
 
 # Libraries
 #
-LLIBS = lib/libext2fs.a
+LLIBS = -lext2fs
 
 # For compiling userland utils
 #
 
 # For compiling userland utils
 #
@@ -78,7 +83,8 @@ HOSTCFLAGS = -O2 $(CFLAGS) -Wall -I/usr/include
 
 OBJS = second/crt0.o second/yaboot.o second/cache.o second/prom.o second/file.o \
        second/partition.o second/fs.o second/cfg.o second/setjmp.o second/cmdline.o \
 
 OBJS = second/crt0.o second/yaboot.o second/cache.o second/prom.o second/file.o \
        second/partition.o second/fs.o second/cfg.o second/setjmp.o second/cmdline.o \
-       second/fs_of.o second/fs_ext2.o second/fs_iso.o second/iso_util.o \
+       second/fs_of.o second/fs_ext2.o second/fs_iso.o second/fs_swap.o \
+       second/iso_util.o \
        lib/nosys.o lib/string.o lib/strtol.o lib/vsprintf.o lib/ctype.o lib/malloc.o lib/strstr.o
 
 ifeq ($(USE_MD5_PASSWORDS),y)
        lib/nosys.o lib/string.o lib/strtol.o lib/vsprintf.o lib/ctype.o lib/malloc.o lib/strstr.o
 
 ifeq ($(USE_MD5_PASSWORDS),y)
@@ -93,12 +99,8 @@ ifeq ($(CONFIG_FS_REISERFS),y)
 OBJS += second/fs_reiserfs.o
 endif
 
 OBJS += second/fs_reiserfs.o
 endif
 
-CC = $(CROSS)gcc
-LD = $(CROSS)ld
-AS = $(CROSS)as
-OBJCOPY = $(CROSS)objcopy
-
-lgcc = `$(CC) -print-libgcc-file-name`
+# compilation
+lgcc = `$(CC) -m32 -print-libgcc-file-name`
 
 all: yaboot addnote mkofboot
 
 
 all: yaboot addnote mkofboot
 
@@ -110,7 +112,7 @@ addnote:
        $(CC) $(UCFLAGS) -o util/addnote util/addnote.c
 
 elfextract:
        $(CC) $(UCFLAGS) -o util/addnote util/addnote.c
 
 elfextract:
-       $(HOSTCC) $(HOSTCFLAGS) -o util/elfextract util/elfextract.c
+       $(CC) $(UCFLAGS) -o util/elfextract util/elfextract.c
 
 mkofboot:
        ln -sf ybin ybin/mkofboot
 
 mkofboot:
        ln -sf ybin ybin/mkofboot
@@ -128,28 +130,47 @@ mkofboot:
 dep:
        makedepend -Iinclude *.c lib/*.c util/*.c gui/*.c
 
 dep:
        makedepend -Iinclude *.c lib/*.c util/*.c gui/*.c
 
+docs:
+       make -C doc all
+
 bindist: all
        mkdir ../yaboot-binary-${VERSION}
 bindist: all
        mkdir ../yaboot-binary-${VERSION}
-       ${GETROOT} make ROOT=../yaboot-binary-${VERSION} install
+       $(GETROOT) make ROOT=../yaboot-binary-${VERSION} install
        mkdir -p -m 755 ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot
        cp -a COPYING ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/COPYING
        cp -a README ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/README
        mkdir -p -m 755 ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot
        cp -a COPYING ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/COPYING
        cp -a README ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/README
-       mv ../yaboot-binary-${VERSION}/etc/yaboot.conf ../yaboot-binary-${VERSION}/usr/local/share/doc/
+       cp -a doc/README.rs6000 ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/README.rs6000
+       cp -a doc/yaboot-howto.html ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/yaboot-howto.html
+       cp -a doc/yaboot-howto.sgml ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/yaboot-howto.sgml
+       mv ../yaboot-binary-${VERSION}/etc/yaboot.conf ../yaboot-binary-${VERSION}/usr/local/share/doc/yaboot/
        rmdir ../yaboot-binary-${VERSION}/etc
        rmdir ../yaboot-binary-${VERSION}/etc
-       ${GETROOT} tar -C ../yaboot-binary-${VERSION} -zcvpf ../yaboot-binary-${VERSION}.tar.gz .
+       $(GETROOT) tar -C ../yaboot-binary-${VERSION} -zcvpf ../yaboot-binary-${VERSION}.tar.gz .
        rm -rf ../yaboot-binary-${VERSION}
 
 clean:
        rm -f second/yaboot util/addnote util/elfextract $(OBJS)
        rm -rf ../yaboot-binary-${VERSION}
 
 clean:
        rm -f second/yaboot util/addnote util/elfextract $(OBJS)
-       find . -name '#*' | xargs rm -f
-       find . -name '.#*' | xargs rm -f
-       find . -name '*~' | xargs rm -f
-       find . -name '*.swp' | xargs rm -f
+       find . -not -path './\{arch\}*' -name '#*' | xargs rm -f
+       find . -not -path './\{arch\}*' -name '.#*' | xargs rm -f
+       find . -not -path './\{arch\}*' -name '*~' | xargs rm -f
+       find . -not -path './\{arch\}*' -name '*.swp' | xargs rm -f
+       find . -not -path './\{arch\}*' -name ',,*' | xargs rm -rf
        -gunzip man/*.gz
        rm -rf man.deb
        -gunzip man/*.gz
        rm -rf man.deb
-       chmod 755 ybin/ybin ybin/ofpath ybin/yabootconfig
-       chmod -R u+rwX,go=rX .
-       chmod a-w COPYING
+
+cleandocs:
+       make -C doc clean
+
+## removes arch revision control crap, only to be called for making
+## release tarballs.  arch should have a export command like cvs...
+
+archclean:
+       rm -rf '{arch}'
+       find . -type d -name .arch-ids | xargs rm -rf
+       rm -f 0arch-timestamps0
+
+maintclean: clean cleandocs
+
+release: docs bindist clean
 
 strip: all
        strip second/yaboot
 
 strip: all
        strip second/yaboot
@@ -190,7 +211,7 @@ install: all strip
        @echo
        @echo "Installation successful."
        @echo
        @echo
        @echo "Installation successful."
        @echo
-       @echo "An example /etc/yaboot.conf has been installed (unless /etc/yaboot.conf already existed"
+       @echo "An example /etc/yaboot.conf has been installed (unless /etc/yaboot.conf already existed)"
        @echo "You may either alter that file to match your system, or alternatively run yabootconfig"
        @echo "yabootconfig will generate a simple and valid /etc/yaboot.conf for your system"
        @echo
        @echo "You may either alter that file to match your system, or alternatively run yabootconfig"
        @echo "yabootconfig will generate a simple and valid /etc/yaboot.conf for your system"
        @echo