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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren