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