======== arch/alpha/boot/Makefile.in

# XXX add arch/../lib.a twice or else link problem...
bootloader_objects     += $(objfile /arch/$(ARCH)/lib/lib.a) $(objfile /lib/lib.a) 
$(objfile /arch/$(ARCH)/lib/lib.a)

That should not be necessary, it implies there is a reference loop
between arch/$(ARCH)/lib/lib.a and /lib/lib.a.  Could you try this?

bootloader_objects     += $(objfile /lib/lib.a) $(objfile /arch/$(ARCH)/lib/lib.a)
bootpheader_objects    += $(objfile /lib/lib.a) $(objfile /arch/$(ARCH)/lib/lib.a)

ifdef CONFIG_INSTALL_INITRD_NAME

Don't use ifdef, 2.5 may define variables to 'n' for autoconfiguration.
Use ifsel(CONFIG_INSTALL_INITRD_NAME).

user_command(bootpfile
       ($(objfile vmlinux.nh) $(objfile tools/bootph))
       (set -e;
        cat $(objfile tools/bootph) $(objfile vmlinux.nh) >$@;
        [ -f $(CONFIG_INSTALL_INITRD_NAME) ] || exit 1;
        cat $(CONFIG_INSTALL_INITRD_NAME) >>$@;
       )
       ()
       )

Make initrd_name contain the name of a local file and wrap in
$(objfile).

        [ -f $(objfile $(CONFIG_INSTALL_INITRD_NAME)) ] || exit 1;
        cat $(objfile $(CONFIG_INSTALL_INITRD_NAME)) >>$@;

# ksize.h
# ouch. now this is quoting .
# am i missing something obvious ?
# (as it runs sh -c ' ... ' , and i want quotes for the awk command ...
ifdef CONFIG_INSTALL_INITRD_NAME
user_command(tmp_ksize.h
       ($(objfile vmlinux.nh))
       (set -e;
        echo "#define KERNEL_SIZE `ls -l $(objfile vmlinux.nh) | awk '\''{print 
$$5}'\''`" > $@;
       [ -f $(CONFIG_INSTALL_INITRD_NAME) ] || exit 1;
        echo "#define INITRD_IMAGE_SIZE `ls -l $(CONFIG_INSTALL_INITRD_NAME) | awk 
'\''{print $$5}'\''`" >> $@
       )
       ()
       )

Quoting in user commands is tricky.  user_command() uses ' so it is
best if the commands do not use '.  Both the shell and make have their
own quoting rules in addition to user_command().  Write the initial
command as it would be typed into the shell, using " instead of '.

  ls -l $(objfile vmlinux.nh) | awk "{print \$5}"

Backticks need \ to be doubled up inside ".

  echo `ls -l $(objfile vmlinux.nh) | awk "{print \\$5}"`

Add the rest of the command

  echo "#define KERNEL_SIZE "`ls -l $(objfile vmlinux.nh) | awk "{print \\$5}"` > $@;

make requires that a literal $ be doubled up.

  echo "#define KERNEL_SIZE "`ls -l $(objfile vmlinux.nh) | awk "{print \\$$5}"` > $@;


======== arch/alpha/boot/tools/Makefile.in

create_objdir(CONFIG_Y)

AFAICT tools is only required if bootimage or bootpfile are requested.
If so, make that

create_objdir(CONFIG_BOOTIMAGE)
create_objdir(CONFIG_BOOTP)

extra_cflags(objstrip.o $(src_includelist /include))

Export include_list in Makefile-2.5 and change to

extra_cflags(objstrip.o $(include_list))

# is that clean ? (ghoz)

Looks clean to me.


======== arch/alpha/kernel/Makefile.in

Nice.  I like the duplicated lines for generic, especially since you
seem to have found some bugs doing it that way.


======== arch/alpha/lib/Makefile.in

# OK. the order of old makefile is now respected, but boy, what-a-mess ...
# FIXME clean this up if the ordering is not *that* important.

By definition, the order of entries in an archive is irrelevant.  There
is no defined link order for members read from an archive.

# some of the .S includes <alpha/regdef.h> witch is in /usr/include ... (baaad .h)
#extra_aflags_all(-I/usr/include)

Dead comments.

# question: where those 2 .S fit in the library ? I don't see these files in the old 
makefiles ... (ghoz)
uses_asm_offsets(stackcheck.o stackkill.o)

They are debugging tools that probably only make sense when you compile
with -pg.  Ask RTH if he has any sample build code, if not, delete the
stack*.S files, they are dead.


======== arch/alpha/Makefile.defs.config

Yeuch!  However I don't see a cleaner way of doing it.


======== arch/alpha/Makefile.defs.noconfig

ifeq ($(old_gas),y)
  # How do we do #error in make?
  CFLAGS := --error-please-upgrade-your-assembler
endif

This might work.

ifeq ($(old_gas),y)
  $(error please upgrade your assembler)
endif


======== arch/alpha/math-emu/Makefile.in

extra_cflags_all(-I. $(src_includelist /include/math-emu) -w)

You do not need -I., it is automatic for all directories.


======== include/asm-alpha/regdef.h

Minor niggle, #ifdef guards are usually in upper case in the kernel.


_______________________________________________
kbuild-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/kbuild-devel

Reply via email to