MEGAWOOT: it just works \o/
[pyfrprog.git] / pkernel / Makefile
1 # TODO: make upload, remove warnings
2
3 # hinweise:
4 # wenn folgende meldung kommt
5 #> "*** F9012D : tool execute is failed (fasm911s)"
6 # per 'wine regedit' den string "Path" in
7 #> HKEY_CURRENT_USER/Environment
8 # setzen, naemlich auf die ausgabe von
9 #> winepath $FUJDEV/Bin
10 # natuerlich muss $FUJDEV richtig gesetzt sein!
11
12 ifeq ($(strip $(FUJDEV)),)
13 $(error "Set FUJDEV in your environment. Ususally this is the Rootpath of the Softune installer. You MUST NOT install it through wine.")
14 endif
15
16 PREFIX = wine $(FUJDEV)/Bin/
17
18 CPUT = -cpu MB91F465X
19
20 CFLAGS = -w 1 -O 4 -B -K SPEED -K LONGADDRESS
21 CFLAGS += -K SCHEDULE -K A1 -K SARG -Xdof
22 CFLAGS += -K EOPT -K LIB -K UNROLL -Xalign
23 CFLAGS += -c -cwno $(CPUT)
24
25 ASFLAGS = -w 2 -O 0 -linf ON -lsrc ON -lsec ON
26 ASFLAGS += -lcros OFF -linc ON -lexp OBJ -pl 60
27 ASFLAGS += -pw 100 -tab 8 -Xdof -cwno $(CPUT)
28
29 LDFLAGS = -AL 2
30 LDFLAGS += -ra D_RAM=0x0002C000/0x0002FFFF
31 LDFLAGS += -ra ID_RAM=0x00030000/0x00031FFF
32 LDFLAGS += -ro ROM_AREA=0x00080000/0x000FFFFF
33 LDFLAGS += -sc DATA/Data+SSTACK/Data=D_RAM
34 LDFLAGS += -sc CODE_START/Code+CODE=ID_RAM
35 LDFLAGS += -check_locate -pl 60 -pw 132 -Xals
36 LDFLAGS += -Xalr -na -w 1 -Xdof -Xset_rora -Xcwno -a $(CPUT)
37
38 LIBRFLAGS = -dt s,d,r,a -pl 60 -pw 132 -cwno $(CPUT)
39
40 CONVFLAGS = -Xcwno -Xdof
41
42 DEFINES =
43
44 TNAME = pkernel
45 TARGET_MHX = $(TNAME).mhx
46 TARGET = $(TNAME).abs
47 DEPDIR = .deps
48
49 #add all objects here
50
51 OBJS = start91460.obj mb91465k.obj main.obj uart.obj flash.obj 
52
53 AS = $(PREFIX)fasm911s
54 CC = $(PREFIX)fcc911s
55 LD = $(PREFIX)flnk911s
56 LIBR = $(PREFIX)flibs
57 CONV = $(PREFIX)f2ms
58
59 all: $(TARGET_MHX)
60
61 upload: $(TARGET_MHX)
62         @echo "  TODO upload"
63
64 $(TARGET_MHX): $(TARGET)
65         @echo "  MAKEMHX   $@"
66         @$(CONV) $(CONVFLAGS) $< -o $@
67
68 $(TARGET): $(OBJS)
69         @echo "  LINK      $@"
70         @$(LD) $(LDFLAGS) -o $@ $(OBJS) -m $(TNAME).map
71
72 %.obj: %.c
73         @echo "  COMPILE   $<"
74         @mkdir -p $(DEPDIR)
75         @echo -n "$@: " > $(DEPDIR)/$<.d
76         @$(CC) -H $(CPUT) $< | dos2unix | paste -s -d " " >> $(DEPDIR)/$<.d
77         @$(CC) $(CFLAGS) $(DEFINES) $< -o $@
78
79 %.obj: %.asm
80         @echo "  ASSEMBLE  $<"
81         @$(AS) $(ASFLAGS) $(DEFINES) $< -o $@
82
83 .PHONY: clean
84 clean:
85         rm -fr $(DEPDIR)
86         rm -f $(TARGET) $(TARGET_MHX) $(OBJS) *.map
87
88 -include $(DEPDIR)/*
89