Makefile (für NC30)

OP #1801845
Lesenswert?
• ▲
▼
Hallo,

ich muß unter Windows ein Makefile erstellen, welches den Renesas NC30 
Compiler aufruft. Da ich (leider) bisher immer Tools hatte welches das 
im Hintergrund gemacht haben, kenne ich mich mit Makefiles nicht genug 
aus. Folgendes ist vorgegeben:

- Projektstruktur (Dateissystem):
ProjectName
 sub1
  sub1.c
  sub1.h
 sub2
  sub2.c
  sub2.h
 TEMP
 OUTPUT
 Makefile
 main.c
 main.h

- alle temporären Dateien müssen nach TEMP (.r30, .x30, ...)
- das .mot und .map müssen in OUTPUT landen

Hier der letzte Stand nach 2 Tagen arbeit!!!!:
1
PROJ_NAME = ProjectName
2

3
COMPILER_BASE = C:\Renesas\nc30wa\v545r00
4
COMPILER_BIN  = $(COMPILER_BASE)\bin
5
COMPILER_INC  = $(COMPILER_BASE)\inc30
6
COMPILER_LIB  = $(COMPILER_BASE)\lib30
7

8
CC = $(COMPILER_BASE)/bin/nc30.exe
9
AS = $(COMPILER_BASE)/bin/as30.exe
10
LN = $(COMPILER_BASE)/bin/ln30.exe
11
LI = $(COMPILER_BASE)/bin/lb30.exe
12
ABS= $(COMPILER_BASE)/bin/abs30.exe
13
LMC= $(COMPILER_BASE)/bin/lmc30.exe
14

15
ECHO  = @-echo
16

17
export BIN30=$(COMPILER_BASE)\BIN
18
export LIB30=$(COMPILER_BASE)\LIB30
19
export INC30=$(COMPILER_BASE)\INC30
20
export TMP30=TEMP
21

22
OBJDIR = TEMP
23

24
  
25
INCLUDES = -Isub1 -I sub2
26
CFLAGS = -c -R8C -silent -dsource -OR -P -dir OUTPUT $< 
27
AFLAGS = $< -LM
28
LFLAGS = -ln30
29

30
CSRC = main.c \
31
       sub1\sub1.c
32
       sub2\sub2.c
33

34

35
all: startmessage dep build 
36
  $(ECHO) Target ALL
37

38

39
# Define all object files.
40
OBJ = $(CSRC:%.c=$(OBJDIR)/%.o) $(ASRC:%.S=$(OBJDIR)/%.o) 
41
# Wie kann man hier den Pfad subX entfernen?
42

43
startmessage:
44
  $(ECHO) objects: $(OBJ)
45
  $(ECHO) starting...
46
  
47

48
build: $(PROJ_NAME).mot
49
  $(ECHO) build...
50

51
$(PROJ_NAME).mot: $(PROJ_NAME).x30
52
  $(ECHO) mot...
53
  $(LMC) $<
54

55

56
$(PROJ_NAME).x30: $(OBJDIR)/%.o
57
  $(ECHO) $(PROJ_NAME).x30
58
  $(CC) $(LFLAGS) $(OBJDIR)/%.o
59

60

61
# Compile: create object files from C source files.
62
$(OBJDIR)/%.o: %.c  
63
  @echo compiling $<
64
  $(CC) -c $(ALL_CFLAGS) $< -o $@
65
  
66

67

68
##################################################################
69
# This generates a dependency file (with help off gcc)
70
GCC  = gcc
71
DEPENDFILE = $(OBJDIR)\depend
72

73
dep: $(CSRC)
74
  $(GCC) -MM $(CSRC) > $(DEPENDFILE)
75

76
-include $(DEPENDFILE)
77
##################################################################
78

79

80
clean:
81
# fehlt noch
Ich weiß, die Compiler/Linkeroptionen sind noch nicht vollständig.

Das ist die Ausgabe:
objects: TEMP/main.o TEMP/tools\crc.o
starting...
gcc -MM main.c tools\crc.c > TEMP\depend
mingw32-make: *** No rule to make target `TEMP/%.o', needed by 
`ProjectName.x30'
.  Stop.


Ich weiß echt nicht mehr weiter...

Danke + Gruß
Bronko

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.