make hiba, én meg nem találom.

Fórumok

Dhcpcd-t szeretnék fordítani LFS-re, a make hibája:

Makefile:12: *** missing separator. Stop.

Belenéztem a Makefile-ba, az inkriminált lokáción nem találtam semmiféle hiányzó elválasztót. Azért beletettem +1 -ot, de így is nyafog. Mi a jó élet lehet a bja akkor? :(
A Makefile:


VERSION = 3.0.19
CFLAGS ?= -O2 -pipe

# Should work for both GNU make and BSD make

# Saying that, this function only works with GNU Make :/
check_gcc=$(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
          then echo "$(1)"; else echo "$(2)"; fi)

# Luckily we can do this more long winded thing with pmake used by the BSDs
# FIXME: Look into making this into a loop
WAFTST != if $(CC) -Wextra -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
        then echo "-Wdeclaration-after-statement"; fi
WSEQ   != if $(CC) -Wextra -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
        then echo "-Wsequence-point"; fi
WEXTRA != if $(CC) -Wextra -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
        then echo "-Wextra"; fi

# Loads of nice flags to ensure our code is good
# IMPORTANT: We should be using c99 instead of gnu99 but for some reason
# generic linux headers as of 2.6.19 don't allow this in asm/types.h
CFLAGS += -pedantic -std=gnu99 \
        -Wall -Wunused -Wimplicit -Wshadow -Wformat=2 \
        -Wmissing-declarations -Wno-missing-prototypes -Wwrite-strings \
        -Wbad-function-cast -Wnested-externs -Wcomment -Winline \
        -Wchar-subscripts -Wcast-align -Wno-format-nonliteral \
        $(call check_gcc, -Wdeclaration-after-statement) \
        $(call check_gcc, -Wsequence-point) \
        $(call check_gcc, -Wextra) $(WAFTST) $(WSEQ) $(WEXTRA)

# -Werrror is a good flag to use for development, but some platforms may
#  have buggy headers from time to time, so you may need to comment this out
#CFLAGS += -Werror

# We define _BSD_SOURCE as GNU supports BSD too - which is nice :)
CDEFS = -D_BSD_SOURCE

INSTALL ?= install
DESTDIR =
SBINDIR = $(DESTDIR)/sbin
MANDIR = $(DESTDIR)/usr/share/man

SBIN_TARGETS = dhcpcd
MAN8_TARGETS = dhcpcd.8
TARGET = $(SBIN_TARGETS)

dhcpcd_H = version.h
dhcpcd_OBJS = arp.o client.o common.o configure.o dhcp.o dhcpcd.o \
                interface.o logger.o signals.o socket.o

# By default we don't need to link to anything
# Except on Darwin where we need -lresolv, so they need to uncomment this
#dhcpcd_LIBS = -lresolv

dhcpcd: $(dhcpcd_H) $(dhcpcd_OBJS)
        $(CC) $(LDFLAGS) $(dhcpcd_OBJS) $(dhcpcd_LIBS) -o dhcpcd

version.h:
        echo '#define VERSION "$(VERSION)"' > version.h

$(dhcpcd_OBJS):
        $(CC) $(CDEFS) $(CFLAGS) -c $*.c

all: $(TARGET)

install: $(TARGET)
        $(INSTALL) -m 0755 -d $(SBINDIR)
        $(INSTALL) -m 0755 $(SBIN_TARGETS) $(SBINDIR)
        $(INSTALL) -m 0755 -d $(MANDIR)/man8
        $(INSTALL) -m 0755 $(MAN8_TARGETS) $(MANDIR)/man8

clean:
        rm -f $(TARGET) $(dhcpcd_H) *.o *~ *.core *.bz2

dist:
        $(INSTALL) -m 0755 -d /tmp/dhcpcd-$(VERSION)
        cp -RPp . /tmp/dhcpcd-$(VERSION)
        (cd /tmp/dhcpcd-$(VERSION); $(MAKE) clean)
        rm -rf /tmp/dhcpcd-$(VERSION)/*.bz2 /tmp/dhcpcd-$(VERSION)/.svn
        tar cvjpf dhcpcd-$(VERSION).tar.bz2 -C /tmp dhcpcd-$(VERSION)
        rm -rf /tmp/dhcpcd-$(VERSION)
        ls -l dhcpcd-$(VERSION).tar.bz2

A probléma az alábbi három sorban van:


WAFTST != if $(CC) -Wextra -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
        then echo "-Wdeclaration-after-statement"; fi
WSEQ   != if $(CC) -Wextra -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
        then echo "-Wsequence-point"; fi
WEXTRA != if $(CC) -Wextra -S -o /dev/null -xc /dev/null >/dev/null 2>&1; \
        then echo "-Wextra"; fi

Ha ezeket kikommentezem, a make simán lefut. de nem a sor eleji tab a probléma, legalábbis látszólag, mert ha többet/kevesebbet teszek be, akkor is nyafog a missing separator miatt. Remélem, a make install is nyugisan fut le így.

Hozzászólások

Sorok elején 8 space van tab helyett. Ez az eredetiben is ilyen?

Nálam még tabok voltak... Érdekes módon másolódott ki akkor a terminálból, vagy illesztődött be ide.
De érdekes módon ha a sorok leválasztott részét a helyükre illesztem, a gond akkor is megmarad. Valahol máshol kell legyen a gond... :(
--
Fight / For The Freedom / Fighting With Steel