Hello again!
The "advanced" patch for makefiles lacked "stage2/Makefile.am" and was not
index-prop'ed, which can cause subtle problems with some versions of
patch.
Sorry for that.
Two unrelated notes:
1) index-prop is not needed if cvs-1.10.4 or newer is used on the server
side. Please consider upgrading anoncvs.gnu.org
2) The GNU GRUB is not mentioned at
http://www.gnu.org/software/software.html
Even writing "Sorry, there is no homepage" is better, because it could
draw attention of people able to provide webspace for this nice program.
Pavel Roskin
Index: Makefile.am
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/Makefile.am,v
retrieving revision 1.4
diff -u -r1.4 Makefile.am
--- Makefile.am 1999/06/06 01:40:41 1.4
+++ Makefile.am 1999/06/21 08:07:04
@@ -1,7 +1,7 @@
-SUBDIRS = grub stage1 stage2 \
+SUBDIRS = shared_src stage1 stage2 grub \
e2fs_stage1_5 fat_stage1_5 ffs_stage1_5 \
- docs shared_src debian
-DISTCLEANFILES = ssrcrules.mk
+ docs debian
+
EXTRA_DIST = BUGS
# We get $(PACKAGE) and $(VERSION) from debian/changelog.
Index: configure.in
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/configure.in,v
retrieving revision 1.8
diff -u -r1.8 configure.in
--- configure.in 1999/06/06 01:40:42 1.8
+++ configure.in 1999/06/21 08:07:04
@@ -32,11 +32,14 @@
#
# Options
#
-sbingrub=
AC_ARG_ENABLE(sbin-grub,
[ --enable-sbin-grub build /sbin/grub command-line utility],
-[test "x$enableval" = xno || sbingrub=grub])
-AC_SUBST(sbingrub)
+[case "${enableval}" in
+ yes) sbingrub=yes ;;
+ no) sbingrub=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --enable-sbin-grub) ;;
+esac],[sbingrub=no])
+AM_CONDITIONAL(SBINGRUB, test x"$sbingrub" = xyes)
#
# Programs
@@ -44,6 +47,7 @@
AC_CHECK_TOOL(CC, gcc)
AC_PROG_CC
+AC_PROG_RANLIB
# Enforce coding standards.
CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused"
@@ -70,38 +74,6 @@
[AC_CHECK_LIB(curses, getch, [LIBS="$LIBS -lcurses"
AC_DEFINE(HAVE_LIBCURSES)])])
fi
-
-# Create rules for our shared sources.
-AC_SUBST_FILE(SHARED_SRC_RULES)dnl
-SHARED_SRC_RULES=./ssrcrules.mk
-echo creating $SHARED_SRC_RULES
-rm -f $SHARED_SRC_RULES
-cat > $SHARED_SRC_RULES <<EOF
-# $SHARED_SRC_RULES - Rules for building objects from files in shared_src.
-# Generated automatically by configure.
-asm.o: \$(top_srcdir)/shared_src/asm.S
- @echo '\$(COMPILE) -c \$(top_srcdir)/shared_src/asm.S'; \\
- if test -d .deps; then \\
- \$(COMPILE) -Wp,-MD,.deps/asm.P -c \$(top_srcdir)/shared_src/asm.S; \\
- else \\
- \$(COMPILE) -c \$(top_srcdir)/shared_src/asm.S; \\
- fi
-EOF
-for f in boot common char_io cmdline disk_io gunzip fsys_ffs \
- fsys_ext2fs fsys_fat stage1_5 stage2 bios; do
-
- cat >> $SHARED_SRC_RULES <<EOF
-
-$f.o: \$(top_srcdir)/shared_src/$f.c
- @echo '\$(COMPILE) -c \$(top_srcdir)/shared_src/$f.c'; \\
- if test -d .deps; then \\
- \$(COMPILE) -Wp,-MD,.deps/$f.P -c \$(top_srcdir)/shared_src/$f.c; \\
- else \\
- \$(COMPILE) -c \$(top_srcdir)/shared_src/$f.c; \\
- fi
-
-EOF
-done
AC_OUTPUT([Makefile grub/Makefile stage1/Makefile stage2/Makefile \
e2fs_stage1_5/Makefile fat_stage1_5/Makefile \
Index: e2fs_stage1_5/Makefile.am
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/e2fs_stage1_5/Makefile.am,v
retrieving revision 1.6
diff -u -r1.6 Makefile.am
--- e2fs_stage1_5/Makefile.am 1999/06/06 23:30:43 1.6
+++ e2fs_stage1_5/Makefile.am 1999/06/21 08:07:05
@@ -7,20 +7,11 @@
CLEANFILES = $(pkgdata_DATA) $(pkgdata_DATA)T
noinst_PROGRAMS = e2fs_stage1_5.exec
-# We can't use builtins or standard includes.
-COMPILE = $(CC) -fno-builtin -nostdinc -DFSYS_EXT2FS=1 -DNO_DECOMPRESSION=1 \
- -DSTAGE1_5=1 -DNO_BLOCK_FILES=1 \
- -DCONFIG_FILE_ASM='.string "/boot/grub/stage2"' \
- $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
-INCLUDES = -I$(top_srcdir)/shared_src
-
# asm.o absolutely needs to come first!
-e2fs_stage1_5_exec_LDADD = asm.o common.o char_io.o disk_io.o \
- stage1_5.o fsys_ext2fs.o bios.o
+e2fs_stage1_5_exec_LDADD = ../shared_src/libe2fs_a-asm.o \
+ ../shared_src/libe2fs.a
# FIXME: Automake hackery.
-DEP_FILES = .deps/dummy.P $(wildcard .deps/*.P)
-e2fs_stage1_5_exec_SOURCES = dummy.c # needed to drag in C Makefile variables
DISTFILES = $(DIST_COMMON)
e2fs_stage1_5.exec: $(e2fs_stage1_5_exec_LDADD)
@@ -36,5 +27,3 @@
echo "WARNING: stage 1.5 is too big for boot block area ($$size >
$(IMPORTANT_SIZE_LIMIT))."; \
fi
mv -f $@T $@
-
-@SHARED_SRC_RULES@
Index: fat_stage1_5/Makefile.am
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/fat_stage1_5/Makefile.am,v
retrieving revision 1.6
diff -u -r1.6 Makefile.am
--- fat_stage1_5/Makefile.am 1999/06/06 23:30:44 1.6
+++ fat_stage1_5/Makefile.am 1999/06/21 08:07:05
@@ -7,19 +7,11 @@
CLEANFILES = $(pkgdata_DATA) $(pkgdata_DATA)T
noinst_PROGRAMS = fat_stage1_5.exec
-# We can't use builtins or standard includes.
-COMPILE = $(CC) -fno-builtin -nostdinc -DFSYS_FAT=1 -DNO_DECOMPRESSION=1 \
- -DSTAGE1_5=1 -DCONFIG_FILE_ASM='.string "/boot/grub/stage2"' \
- $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
-INCLUDES = -I$(top_srcdir)/shared_src
-
# asm.o absolutely needs to come first!
-fat_stage1_5_exec_LDADD = asm.o common.o char_io.o disk_io.o \
- stage1_5.o fsys_fat.o bios.o
+fat_stage1_5_exec_LDADD = ../shared_src/libfat_a-asm.o \
+ ../shared_src/libfat.a
# FIXME: Automake hackery.
-DEP_FILES = .deps/dummy.P $(wildcard .deps/*.P)
-fat_stage1_5_exec_SOURCES = dummy.c # needed to drag in C Makefile variables
DISTFILES = $(DIST_COMMON)
fat_stage1_5.exec: $(fat_stage1_5_exec_LDADD)
@@ -35,5 +27,3 @@
echo "WARNING: stage 1.5 is too big for boot block area ($$size >
$(IMPORTANT_SIZE_LIMIT))."; \
fi
mv -f $@T $@
-
-@SHARED_SRC_RULES@
Index: ffs_stage1_5/Makefile.am
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/ffs_stage1_5/Makefile.am,v
retrieving revision 1.6
diff -u -r1.6 Makefile.am
--- ffs_stage1_5/Makefile.am 1999/05/12 02:43:08 1.6
+++ ffs_stage1_5/Makefile.am 1999/06/21 08:07:05
@@ -5,20 +5,11 @@
CLEANFILES = $(pkgdata_DATA) $(pkgdata_DATA)T
noinst_PROGRAMS = ffs_stage1_5.exec
-# We can't use builtins or standard includes.
-COMPILE = $(CC) -fno-builtin -nostdinc -DFSYS_FFS=1 -DNO_DECOMPRESSION=1 \
- -DSTAGE1_5=1 -DNO_BLOCK_FILES=1 \
- -DCONFIG_FILE_ASM='.string "/boot/grub/stage2"' \
- $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
-INCLUDES = -I$(top_srcdir)/shared_src
-
# asm.o absolutely needs to come first!
-ffs_stage1_5_exec_LDADD = asm.o common.o char_io.o disk_io.o \
- stage1_5.o fsys_ffs.o bios.o
+ffs_stage1_5_exec_LDADD = ../shared_src/libffs_a-asm.o \
+ ../shared_src/libffs.a
# FIXME: Automake hackery.
-DEP_FILES = .deps/dummy.c $(wildcard .deps/*.P)
-ffs_stage1_5_exec_SOURCES = dummy.c # needed to drag in C Makefile variables
DISTFILES = $(DIST_COMMON)
ffs_stage1_5.exec: $(ffs_stage1_5_exec_LDADD)
@@ -34,5 +25,3 @@
echo "WARNING: stage 1.5 is too big for boot block area ($$size >
$(IMPORTANT_SIZE_LIMIT))."; \
fi
mv -f $@T $@
-
-@SHARED_SRC_RULES@
Index: grub/Makefile.am
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/grub/Makefile.am,v
retrieving revision 1.4
diff -u -r1.4 Makefile.am
--- grub/Makefile.am 1999/03/27 22:24:25 1.4
+++ grub/Makefile.am 1999/06/21 08:07:06
@@ -1,15 +1,11 @@
-EXTRA_PROGRAMS = grub
-sbin_PROGRAMS = $(sbingrub)
-CLEANFILES = $(EXTRA_PROGRAMS)
+if SBINGRUB
+sbin_PROGRAMS = grub
+else
+sbin_PROGRAMS =
+endif
-COMPILE = $(CC) -DGRUB_UTIL=1 -fwritable-strings $(DEFS) $(INCLUDES) $(CPPFLAGS)
$(CFLAGS)
-INCLUDES = -I$(top_srcdir)/shared_src
+AM_CFLAGS = -DGRUB_UTIL=1 -fwritable-strings -I$(srcdir)/../shared_src
grub_SOURCES = main.c asmstub.c
-grub_LDADD = boot.o common.o char_io.o cmdline.o disk_io.o gunzip.o \
- fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o
-# FIXME: Automake hackery.
-DEP_FILES = .deps/main.P .deps/asmstub.P $(wildcard .deps/*.P)
-
-@SHARED_SRC_RULES@
+grub_LDADD = ../shared_src/libgrub.a
Index: shared_src/Makefile.am
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/shared_src/Makefile.am,v
retrieving revision 1.2
diff -u -r1.2 Makefile.am
--- shared_src/Makefile.am 1999/03/08 06:28:11 1.2
+++ shared_src/Makefile.am 1999/06/21 08:07:06
@@ -2,6 +2,43 @@
fat.h filesys.h freebsd.h fs.h i386-elf.h imgact_aout.h \
mb_header.h mb_info.h pc_slice.h shared.h smp-imps.h
-EXTRA_DIST = asm.S boot.c char_io.c cmdline.c common.c disk_io.c \
- fsys_ext2fs.c fsys_fat.c fsys_ffs.c gunzip.c smp-imps.c \
- stage1_5.c stage2.c
+EXTRA_DIST = smp-imps.c
+
+if SBINGRUB
+libgrub = libgrub.a
+else
+libgrub =
+endif
+
+noinst_LIBRARIES = libstage2.a libe2fs.a libfat.a libffs.a $(libgrub)
+
+libstage2_a_SOURCES = asm.S boot.c common.c char_io.c cmdline.c disk_io.c \
+ gunzip.c fsys_ffs.c fsys_ext2fs.c fsys_fat.c stage2.c bios.c
+
+libstage2_a_CFLAGS = -fno-builtin -nostdinc
+
+libe2fs_a_SOURCES = asm.S common.c char_io.c disk_io.c \
+ stage1_5.c fsys_ext2fs.c bios.c
+
+libe2fs_a_CFLAGS = -fno-builtin -nostdinc -DFSYS_EXT2FS=1 \
+ -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 -DNO_BLOCK_FILES=1 \
+ -DCONFIG_FILE_ASM='.string "/boot/grub/stage2"'
+
+libfat_a_SOURCES = asm.S common.c char_io.c disk_io.c \
+ stage1_5.c fsys_fat.c bios.c
+
+libfat_a_CFLAGS = -fno-builtin -nostdinc -DFSYS_FAT=1 \
+ -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 \
+ -DCONFIG_FILE_ASM='.string "/boot/grub/stage2"'
+
+libffs_a_SOURCES = asm.S common.c char_io.c disk_io.c \
+ stage1_5.c fsys_ffs.c bios.c
+
+libffs_a_CFLAGS = -fno-builtin -nostdinc -DFSYS_FFS=1 \
+ -DNO_DECOMPRESSION=1 -DSTAGE1_5=1 -DNO_BLOCK_FILES=1 \
+ -DCONFIG_FILE_ASM='.string "/boot/grub/stage2"'
+
+libgrub_a_SOURCES = boot.c common.c char_io.c cmdline.c disk_io.c \
+ gunzip.c fsys_ffs.c fsys_ext2fs.c fsys_fat.c stage2.c
+
+libgrub_a_CFLAGS = -DGRUB_UTIL=1 -fwritable-strings
Index: stage2/Makefile.am
===================================================================
RCS file: /gd/gnu/anoncvsroot/grub/stage2/Makefile.am,v
retrieving revision 1.4
diff -u -r1.4 Makefile.am
--- stage2/Makefile.am 1999/04/24 07:23:17 1.4
+++ stage2/Makefile.am 1999/06/21 08:07:07
@@ -3,19 +3,13 @@
CLEANFILES = $(pkgdata_DATA)
MOSTLYCLEANFILES = stage2.exec
-# We can't use builtins or standard includes.
-COMPILE = $(CC) -fno-builtin -nostdinc $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
-INCLUDES = -I$(top_srcdir)/shared_src
-
# asm.o absolutely needs to come first!
-stage2_exec_LDADD = asm.o boot.o common.o char_io.o cmdline.o disk_io.o \
- gunzip.o fsys_ffs.o fsys_ext2fs.o fsys_fat.o stage2.o bios.o
+stage2_exec_LDADD = ../shared_src/libstage2_a-asm.o \
+ ../shared_src/libstage2.a
noinst_PROGRAMS = stage2.exec
# FIXME: Automake hackery.
-DEP_FILES = .deps/dummy.P $(wildcard .deps/*.P)
-stage2_exec_SOURCES = dummy.c # needed to drag in C Makefile variables
DISTFILES = $(DIST_COMMON)
stage2.exec: $(stage2_exec_LDADD)
@@ -23,5 +17,3 @@
stage2: stage2.exec
$(OBJCOPY) -O binary stage2.exec stage2
-
-@SHARED_SRC_RULES@