Use 'ao-dbg' instead of 's51' to communicate with TeleMetrum
[fw/sdcc] / support / scripts / build.mak
index 88a0befff1813186f5134ac953add02c672178b0..d4f0477015f680a854d459abfc40b6bbaee80db7 100644 (file)
@@ -10,35 +10,53 @@ BUILD = $(TOPDIR)/build/sdcc
 SDCCLIB = $(BUILD)
 CVSFLAGS = -z5
 CVS = cvs
+SVNFLAGS =
+SVN = svn
 DIR = .
-VER = 2.94
+VER = 2.2.1
 # Used as a branch name.
-SHORTVER = 294
+SHORTVER = 221
+
+# Options:
+# linux-linux   Building on Linux, targeting Linux
+# linux-ming32  Building on Linux, targeting mingw32 based win32
+# cygwin-mingw32 Building via cygwin on win32, targeting mingw32
+
+COMPILE_MODE = linux-mingw32
+SDCC_OR_GBDK = sdcc
 
 ROOT_GBDK = :pserver:anonymous@cvs.gbdk.sourceforge.net:/cvsroot/gbdk
-ROOT_SDCC = :pserver:anonymous@cvs.sdcc.sourceforge.net:/cvsroot/sdcc
+ROOT_SDCC = https://sdcc.svn.sourceforge.net/svnroot/sdcc
+
+ifeq ($(COMPILE_MODE),linux-linux)
+# For Linux
+SE = 
+E =
+SDCC_ROOT = /usr/lib/$(SDCC_OR_GBDK)
+endif
 
+ifeq ($(COMPILE_MODE),linux-mingw32)
 # For mingw32 hosted on Linux
+# Tools name prefix
+TNP = i386-mingw32-
 # Source extension - what the gcc generated files have appended
-#SE =
+SE =
 # Dest extenstion - what extension we want them to have.
-#E = .exe
-#SDCC_ROOT = \\\\gbdk
+E = .exe
+SDCC_ROOT = /$(SDCC_OR_GBDK)
+# Set to cross to bypass the detection
+CROSS_LIBGC = 1
+endif
 
+ifeq ($(COMPILE_MODE),cygwin-mingw32)
 # For mingw32 on win32
 # Source extension - what the gcc generated files have appended
-#SE = .exe
+SE = .exe
 # Dest extenstion - what extension we want them to have.
-#E = .exe
-#SDCC_ROOT = \\\\gbdk
+SDCC_ROOT = /$(SDCC_OR_GBDK)
+endif
 
-# For Linux
-SE = 
-E =
-SDCC_ROOT = /usr/lib/sdcc
-
-#all: logged_in dist
-all: dist
+all: logged_in dist
 
 clean:
        for i in sdcc gbdk-lib gbdk-support/lcc; do make -C $$i clean; done
@@ -46,22 +64,30 @@ clean:
        rm -rf $(BUILD) gbdk-lib gbdk-support sdcc logged_in
 
 update: logged_in
-       cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_SDCC) co -r gbdk-$(SHORTVER) sdcc
-       cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r gbdk-$(SHORTVER) gbdk-lib
-       cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r gbdk-$(SHORTVER) gbdk-support
+       cd $(DIR); svn $(SVNFLAGS) co $(ROOT_SDCC)/branches/sdcc-$(SHORTVER)/sdcc sdcc
+       cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r sdcc-$(SHORTVER) gbdk-lib
+       cd $(DIR); cvs $(CVSFLAGS) -d$(ROOT_GBDK) co -r sdcc-$(SHORTVER) gbdk-support
 
-_sdcc: sdcc-bin sdcc-lib sdcc-doc
+_sdcc: sdcc-bin sdcc-misc sdcc-lib sdcc-doc
 
 tidy:
-       rm -rf `find $(BUILD) -name "CVS"`
-       rm -rf `find $(BUILD)/lib -name "*.asm"`
-       -strip $(BUILD)/bin/*
+       find $(BUILD) -name "CVS" -exec rm -rf \;
+       find $(BUILD) -name ".svn" -exec rm -rf \;
+       find $(BUILD)/lib -name "*.asm" -exec rm -rf \;
+       -$(TNP)strip $(BUILD)/bin/*
 
 sdcc-bin: sdcc/sdccconf.h
-       make -C sdcc sdcc-bin
+       make -C sdcc sdcc-bin CROSS_LIBGC=$(CROSS_LIBGC)
+       mkdir -p $(BUILD)/bin
+       for i in \
+       sdcc sdcpp link-z80 as-z80 aslink asx8051; \
+       do cp sdcc/bin/$$i$(SE) $(BUILD)/bin/$$i$(E); done
+
+sdcc-misc: sdcc/sdccconf.h
+       make -C sdcc sdcc-misc CROSS_LIBGC=$(CROSS_LIBGC)
        mkdir -p $(BUILD)/bin
        for i in \
-       sdcc sdcpp link-gbz80 as-gbz80 aslink asx8051 sdcdb; \
+       sdcdb; \
        do cp sdcc/bin/$$i$(SE) $(BUILD)/bin/$$i$(E); done
        cp sdcc/sim/ucsim/s51.src/s51$(E) $(BUILD)/bin
        cp sdcc/sim/ucsim/z80.src/sz80$(E) $(BUILD)/bin
@@ -84,37 +110,29 @@ sdcc-lib: sdcc-lib-z80 sdcc-lib-gen
 sdcc-lib-z80:
        make -C gbdk-lib/libc SDCCLIB=$(BUILD) PORTS=z80 PLATFORMS=consolez80
        (cd gbdk-lib/build; tar cf - consolez80 z80) | (cd $(BUILD)/lib; tar xf -)
+       mkdir -p $(BUILD)/include/gbdk-lib
+       (cd gbdk-lib/include; tar cf - .) | (cd $(BUILD)/include/gbdk-lib; tar xf -)
 
 sdcc-lib-gen:
        make -C sdcc sdcc-device
 
+lcc:
+       make -C gbdk-support/lcc SDCCLIB=$(SDCC_ROOT)/ TNP=$(TNP)
+       cp gbdk-support/lcc/lcc$(SE) $(BUILD)/bin/lcc$(E)
+
 sdcc/sdccconf.h: sdcc/configure
+ifdef TNP
        cd sdcc; \
-       ./configure --datadir=$(SDCC_ROOT)
-
-_gbdk-lib: _sdcc-min _gbdk-support
-       cp -r gbdk-lib/include $(BUILD)
-       make -C gbdk-lib SDCCLIB=$(SDCCLIB) PORTS=gbz80 PLATFORMS=gb
+       export CCC=$(TNP)c++; \
+       export RANLIB=$(TNP)ranlib; \
+       export CC=$(TNP)gcc; \
+       ./configure --datarootdir=$(SDCC_ROOT)
+       echo $$CCC
+else
+       cd sdcc; ./configure --datarootdir=$(SDCC_ROOT)
+endif
 
-_gbdk-support:
-       make -C gbdk-support/lcc clean
-       make -C gbdk-support/lcc SDCCLIB=$(SDCC_ROOT)/
-       mkdir -p $(BUILD)/bin
-       cp gbdk-support/lcc/lcc$(SE) $(BUILD)/bin/lcc$(E)
-
-dist: _sdcc-min _gbdk-lib _gbdk-support
-       mkdir -p $(BUILD)/bin
-       mkdir -p $(BUILD)/lib
-       cp -r gbdk-lib/build/gbz80 $(BUILD)/lib
-       cp -r gbdk-lib/build/gb $(BUILD)/lib
-       make -C gbdk-lib/libc clean
-       make -C gbdk-lib/examples/gb make.bat
-       cp -r gbdk-lib/examples $(BUILD)
-       cp -r gbdk-lib/libc $(BUILD)
-       cp -r sdcc/doc $(BUILD)
-       cp gbdk-support/README $(BUILD)
-       strip $(BUILD)/bin/*
-       rm -rf `find gbdk -name "CVS"`
+dist: _sdcc lcc tidy
 
 zdist: dist
        tar czf gbdk-$(VER).tar.gz gbdk
@@ -123,4 +141,4 @@ logged_in:
        cvs -d$(ROOT_GBDK) login
        cvs -d$(ROOT_SDCC) login
        touch logged_in
-       make -f update.mak update
+       make -f build.mak update