Preparing for 2.2.1 with good z80 support.
[fw/sdcc] / support / scripts / build.mak
1 # Makefile to get and build all the parts of GBDK
2
3 CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
4         else if [ -x /bin/bash ]; then echo /bin/bash; \
5         else echo sh; fi ; fi)
6
7 TOPDIR  := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
8
9 BUILD = $(TOPDIR)/build/sdcc
10 SDCCLIB = $(BUILD)
11 CVSFLAGS = -z5
12 CVS = cvs
13 DIR = .
14 VER = 2.94
15 # Used as a branch name.
16 SHORTVER = 294
17
18 ROOT_GBDK = :pserver:anonymous@cvs.gbdk.sourceforge.net:/cvsroot/gbdk
19 ROOT_SDCC = :pserver:anonymous@cvs.sdcc.sourceforge.net:/cvsroot/sdcc
20
21 # For mingw32 hosted on Linux
22 # Source extension - what the gcc generated files have appended
23 #SE =
24 # Dest extenstion - what extension we want them to have.
25 #E = .exe
26 #SDCC_ROOT = \\\\gbdk
27
28 # For mingw32 on win32
29 # Source extension - what the gcc generated files have appended
30 #SE = .exe
31 # Dest extenstion - what extension we want them to have.
32 #E = .exe
33 #SDCC_ROOT = \\\\gbdk
34
35 # For Linux
36 SE = 
37 E =
38 SDCC_ROOT = /usr/lib/sdcc
39
40 #all: logged_in dist
41 all: dist
42
43 clean:
44         for i in sdcc gbdk-lib gbdk-support/lcc; do make -C $$i clean; done
45         rm -f *~
46         rm -rf $(BUILD) gbdk-lib gbdk-support sdcc logged_in
47
48 update: logged_in
49         cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_SDCC) co -r gbdk-$(SHORTVER) sdcc
50         cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r gbdk-$(SHORTVER) gbdk-lib
51         cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r gbdk-$(SHORTVER) gbdk-support
52
53 _sdcc: sdcc-bin sdcc-lib sdcc-doc
54
55 tidy:
56         rm -rf `find $(BUILD) -name "CVS"`
57         rm -rf `find $(BUILD)/lib -name "*.asm"`
58         -strip $(BUILD)/bin/*
59
60 sdcc-bin: sdcc/sdccconf.h
61         make -C sdcc sdcc-bin
62         mkdir -p $(BUILD)/bin
63         for i in \
64         sdcc sdcpp link-gbz80 as-gbz80 aslink asx8051 sdcdb; \
65         do cp sdcc/bin/$$i$(SE) $(BUILD)/bin/$$i$(E); done
66         cp sdcc/sim/ucsim/s51.src/s51$(E) $(BUILD)/bin
67         cp sdcc/sim/ucsim/z80.src/sz80$(E) $(BUILD)/bin
68         cp sdcc/sim/ucsim/avr.src/savr$(E) $(BUILD)/bin
69         cp sdcc/debugger/mcs51/*.el $(BUILD)/bin
70
71 sdcc-doc:
72         (cd sdcc; tar cf - doc) | (cd $(BUILD); tar xf -)
73         cp sdcc/README sdcc/COPYING $(BUILD)
74         mkdir -p $(BUILD)/sim
75         for i in COPYING INSTALL README TODO; \
76         do cp sdcc/sim/ucsim/$$i $(BUILD)/sim; done
77         (cd sdcc/sim/ucsim; tar cf - doc) | (cd $(BUILD)/sim; tar xf -)
78
79 sdcc-lib: sdcc-lib-z80 sdcc-lib-gen
80         mkdir -p $(BUILD)/lib
81         (cd sdcc/device/lib; tar cf - small large) | (cd $(BUILD)/lib; tar xf -)
82         (cd sdcc/device; tar cf - examples include) | (cd $(BUILD); tar xf -)
83
84 sdcc-lib-z80:
85         make -C gbdk-lib/libc SDCCLIB=$(BUILD) PORTS=z80 PLATFORMS=consolez80
86         (cd gbdk-lib/build; tar cf - consolez80 z80) | (cd $(BUILD)/lib; tar xf -)
87
88 sdcc-lib-gen:
89         make -C sdcc sdcc-device
90
91 sdcc/sdccconf.h: sdcc/configure
92         cd sdcc; \
93         ./configure --datadir=$(SDCC_ROOT)
94
95 _gbdk-lib: _sdcc-min _gbdk-support
96         cp -r gbdk-lib/include $(BUILD)
97         make -C gbdk-lib SDCCLIB=$(SDCCLIB) PORTS=gbz80 PLATFORMS=gb
98
99 _gbdk-support:
100         make -C gbdk-support/lcc clean
101         make -C gbdk-support/lcc SDCCLIB=$(SDCC_ROOT)/
102         mkdir -p $(BUILD)/bin
103         cp gbdk-support/lcc/lcc$(SE) $(BUILD)/bin/lcc$(E)
104
105 dist: _sdcc-min _gbdk-lib _gbdk-support
106         mkdir -p $(BUILD)/bin
107         mkdir -p $(BUILD)/lib
108         cp -r gbdk-lib/build/gbz80 $(BUILD)/lib
109         cp -r gbdk-lib/build/gb $(BUILD)/lib
110         make -C gbdk-lib/libc clean
111         make -C gbdk-lib/examples/gb make.bat
112         cp -r gbdk-lib/examples $(BUILD)
113         cp -r gbdk-lib/libc $(BUILD)
114         cp -r sdcc/doc $(BUILD)
115         cp gbdk-support/README $(BUILD)
116         strip $(BUILD)/bin/*
117         rm -rf `find gbdk -name "CVS"`
118
119 zdist: dist
120         tar czf gbdk-$(VER).tar.gz gbdk
121
122 logged_in:
123         cvs -d$(ROOT_GBDK) login
124         cvs -d$(ROOT_SDCC) login
125         touch logged_in
126         make -f update.mak update