This patch changes:
 - makes makefile require OSKIT_LIBDIR=$prefix/lib instead of $prefix/lib/oskit
 - removes the OSKIT_LIBDIR detection which does not work from configure
 - adds a check for $OSKIT_LIBDIR/oskitt/multiboot.o 
 - adds an error message saying you should set OSKIT_libdir manually

This should make the build easier for people who did not follow oskit-mach
development from the beginning and do not know this quirk. Hopefully it 
does not break anything.

-- 
Michal Suchanek
[EMAIL PROTECTED]
diff -u -x CVS gnumach/Makefile.in gnumach-mod/Makefile.in
--- gnumach/Makefile.in Wed Sep 18 19:27:08 2002
+++ gnumach-mod/Makefile.in     Wed Sep 18 18:57:11 2002
@@ -286,15 +286,15 @@
        sed -n 's/^kernel\.a(\([^)]*\)).*$$/\1/p' $< | sort > $@
 kernel-unused: kernel.a.list kernel.map.list
        (diff -u0 $^ || test $$? -eq 1) | sed -n '1,/@@/d;s/^-//p' > $@
-k%nel.o k%nel.map: $(OSKIT_LIBDIR)/multiboot.o $(osenv-overrides:=.o) k%nel.a
+k%nel.o k%nel.map: $(OSKIT_LIBDIR)/oskit/multiboot.o $(osenv-overrides:=.o) k%nel.a
        $(CC) $(CFLAGS) -nostdlib -nostartfiles $(LDFLAGS) -r \
              -o $(@:.map=.o) -Wl,-Map=$(@:.o=.map) \
-             -Wl,-\( $^ -L$(OSKIT_LIBDIR)/.. $(OSKIT_LIBS) -Wl,-\) -lgcc
+             -Wl,-\( $^ -L$(OSKIT_LIBDIR) $(OSKIT_LIBS) -Wl,-\) -lgcc
 # This rule has less overhead, but doesn't produce the intermediate
 # results necessary to compute `kernel-unused'.
-kernel.o: $(OSKIT_LIBDIR)/multiboot.o $(objfiles)
+kernel.o: $(OSKIT_LIBDIR)/oskit/multiboot.o $(objfiles)
        $(CC) $(CFLAGS) -nostdlib -nostartfiles $(LDFLAGS) -r -o $@ \
-             -Wl,-\( $^ -L$(OSKIT_LIBDIR)/.. $(OSKIT_LIBS) -Wl,-\) -lgcc
+             -Wl,-\( $^ -L$(OSKIT_LIBDIR) $(OSKIT_LIBS) -Wl,-\) -lgcc
 
 %-undef: %.o
        $(NM) -u $< | sed 's/^_*//' | sort -u > $@
@@ -308,13 +308,13 @@
 
 oskit-kern%.o: kern%.o clib-routines.o
        $(CC) $(CFLAGS) -nostdlib -nostartfiles $(LDFLAGS) -r -o $@ \
-             -Wl,-\( $^ -L$(OSKIT_LIBDIR)/.. \
+             -Wl,-\( $^ -L$(OSKIT_LIBDIR) \
                         -loskit_clientos -loskit_c $(OSKIT_LIBS) -Wl,-\) -lgcc
 
 %-undef-bad: %-undef Makefile
        sed '$(foreach r,$(clib-routines) $(magic-symbols),/^$r$$/d;)' $< > $@
 
-kern%: oskit-kern%.o $(OSKIT_LIBDIR)/crtn.o
+kern%: oskit-kern%.o $(OSKIT_LIBDIR)/oskit/crtn.o
        $(LD) $(LDFLAGS) $(KERN_LDFLAGS) -o $@ $^
 
 # This combined with the other pattern rules let you ask
@@ -328,9 +328,9 @@
        } > $@T
        mv -f $@T $@
 
-kernel-%.o: $(OSKIT_LIBDIR)/multiboot.o $(objfiles) init-%.o
+kernel-%.o: $(OSKIT_LIBDIR)/oskit/multiboot.o $(objfiles) init-%.o
        $(CC) $(CFLAGS) -nostdlib -nostartfiles $(LDFLAGS) -r -o $@ \
-             -Wl,-\( $^ -L$(OSKIT_LIBDIR)/.. $(OSKIT_LIBS) -Wl,-\) -lgcc
+             -Wl,-\( $^ -L$(OSKIT_LIBDIR) $(OSKIT_LIBS) -Wl,-\) -lgcc
 
 .PHONY: objs
 objs: $(objfiles)
diff -u -x CVS gnumach/configure.in gnumach-mod/configure.in
--- gnumach/configure.in        Wed Sep 18 19:27:09 2002
+++ gnumach-mod/configure.in    Wed Sep 18 18:57:13 2002
@@ -106,8 +106,14 @@
 # Set up `machine' link in build directory for easier header file location.
 AC_LINK_FILES(${systype}/${systype},machine)
 
-test "x${OSKIT_LIBDIR+set}" = xset ||
-  OSKIT_LIBDIR=`${CC} -print-file-name=oskit`
-AC_SUBST(OSKIT_LIBDIR)
+#This no longer works ..
+# test "x${OSKIT_LIBDIR+set}" = xset ||
+#  OSKIT_LIBDIR=`${CC} -print-file-name=oskit`
+#AC_SUBST(OSKIT_LIBDIR)
+AC_CHECK_FILES([[$OSKIT_LIBDIR/oskit/crtn.o $OSKIT_LIBDIR/oskit/multiboot.o]],
+       [AC_SUBST(OSKIT_LIBDIR)],
+       [AC_ERROR([[You do not have crtn.o or multiboot.o \$OSKIT_LIBDIR/oskit/. You 
+should set OSKIT_LIBDIR manually to point to the directory where you
+ installed oskit libraries or write a test to detect it automagically :)]]) ]
+)
 
 AC_OUTPUT(Makefile version.c doc/Makefile)

Reply via email to