Ich versuche, das Benutzerland für os161 zu bauen. Wenn ich schreibe in der Befehlszeile mache ich die folgende Fehlermeldung erhalten:Makefile Fehler - "*** fehlende Trennzeichen" & "*** Rezept beginnt vor dem ersten Ziel"
Makefile 24: ***missing separator (did you mean TAB instead of 8 spaces?). Stop.
ich das Makefile überprüfte in Zeile 24 und versuchte, eine TAB zu Beginn der Zeile hinzufügen, aber das hat nicht funktioniert, wie ich dann bekommen ein anderer Fehler:
Makefile 24: ***recipe commences before first target. Stop.
Hier ist die vollständige Make-Datei als Referenz:
#
# Toplevel makefile for OS/161.
#
#
# Main rules:
# all (default): depend and compile system; install into staging area
# rebuild: likewise, but start with a clean slate.
# fullrebuild: likewise, but start with a very clean slate.
#
# What all does, in order:
# tools: depend and compile the tools used in build.
# includes: install header files.
# build: depend and compile the system.
#
# Other targets:
# depend: just update make dependency information.
# tags: generate/regenerate "tags" files.
# install: install into $(OSTREE).
# clean: remove generated files.
# distclean: remove all generated files.
#
TOP=.
.include "$(TOP)/mk/os161.config.mk"
all:; # make this first
MKDIRS=$(OSTREE)
.include "$(TOP)/mk/os161.mkdirs.mk"
all: tools .WAIT includes .WAIT build
rebuild:
$(MAKE) clean
$(MAKE) all
fullrebuild:
$(MAKE) distclean
$(MAKE) all
# currently no tools required, hence no tools/ dir or work to do
tools:
@true
build:
(cd userland && $(MAKE) build)
(cd man && $(MAKE) install-staging)
(cd testscripts && $(MAKE) build)
includes tags depend:
(cd kern && $(MAKE) [email protected])
(cd userland && $(MAKE) [email protected])
clean:
(cd kern && $(MAKE) [email protected])
(cd userland && $(MAKE) [email protected])
rm -rf $(INSTALLTOP)
distclean: clean
rm -rf $(WORKDIR)
install: $(OSTREE)
(cd $(INSTALLTOP) && tar -cf - .) | (cd $(OSTREE) && tar -xvf -)
.PHONY: all rebuild fullrebuild tools build includes tags depend
.PHONY: clean distclean
# old BSD name, same as distclean
cleandir: distclean
.PHONY: cleandir
die Linie ist Frage (24) ist:
.include "$(TOP)/mk/os161.config.mk"
Jede Hilfe wäre willkommen. Ich habe ähnliche Makefile-Fehler ausgecheckt, aber ich kann nicht finden, was falsch ist.
Diese Zeile sollte nach der 'all:' Zeile mindestens –
immer noch den fehlenden Separator Fehler haben. Versucht, alles zu setzen :; vor Zeile 24. –
Ich habe dieses Problem behoben, es hatte nichts wirklich mit der Makefile-Syntax zu tun. Meine Standardmarke war GNU make und ich musste stattdessen BSD make verwenden. –