amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Problem mit Make [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2003-01-14, 19:49 h

LooZee
Posts: 12
User
Laut Anleitung müsste folgende Regel funktionieren:

%.obj: %.c
<tab> $(CC) $(CFLG) $(CINC) $< -o $@

Doch Make ignoriert das einfach und benutzt den Standard. Ich muss also umstellen auf

CFLAGS = $(CFLG) $(CINC)

Warum? Wenn ich Make mit dem Parameter -r starte (also ohne standard Regeln) wird der Compiler ganz ausgelassen und es geht mit dem Linker los. Was zum Geier soll das?

Es funktioniert weder auf Amiga noch auf Windows. Wo liegt der Fehler?


Außerdem bekomme ich beim Versuch, MiniGL 1.2 zu compilen die Meldung

makefile.vbccwos:44: ***target pattern contains no '%'. Stop.

[ - Answer - Quote - Direct link - ]

2003-01-14, 20:07 h

Holger
Posts: 8116
User
Die Regel %.obj: wuerde bedeuten, dass Du aus einer Datei ohne Endung eine Datei mit der Endung obj machen willst. Wenn Du die Regel aus *.c mache *.obj definieren willst, lautet die Regel: .c.obj.
Oder komplett:

.c.obj:
<tab>$(CC) $(CFLG) $(CINC) $< -o $@

mfg

--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Answer - Quote - Direct link - ]

2003-01-14, 23:23 h

LooZee
Posts: 12
User
@Holger:

Danke danke danke! Es funktioniert. Das soll einer kapieren...


Hat mal jemand MiniGL mit den enthaltenen Makefiles für vbcc compiled? Make beschwert sich über Zeile 44, die da lautet:

all: $(LIBNAME) $(DEMOS)


...edit...

Ha! Fehler gefunden. LIBNAME ist deklariert als:

LIBNAME = vlibwos:mgl.lib

Und Make mag den Doppelpunkt nicht! Ist halt ein Unix Programm... und der Doppelpunkt hat in Make eine andere Bedeutung.


Gibt's ein Make für Amiga, bei dem das funktionieren würde?


[ Dieser Beitrag wurde von LooZee am 15.01.2003 editiert. ]

[ - Answer - Quote - Direct link - ]

2003-01-15, 09:44 h

gni
Posts: 1106
User
Zitat:
Holger:
Wenn Du die Regel aus *.c mache *.obj definieren willst, lautet die Regel: .c.obj.

Die % Regel hätte eigentlich funktionieren müssen. Warum sie es nicht tut, kann ich auch nicht sagen. Ich verwende immer die "veraltete" Methode, die Du auch vorgeschlagen hast :-)

[ - Answer - Quote - Direct link - ]

2003-01-15, 09:46 h

gni
Posts: 1106
User
Zitat:
LooZee:
Ha! Fehler gefunden. LIBNAME ist deklariert als:

LIBNAME = vlibwos:mgl.lib

Und Make mag den Doppelpunkt nicht! Ist halt ein Unix Programm... und der Doppelpunkt hat in Make eine andere Bedeutung.

Gibt's ein Make für Amiga, bei dem das funktionieren würde?

Was für ein Make benutzt Du denn? Es gibt im AmiNet einen Gnu-Make Port (ursprünglich von Aaron Digulla), dem der "korrekte" Umganng mit dem Doppelpunkt beigebracht wurde.

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Problem mit Make [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved.
.